Cmdalias: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 40: Zeile 40:
<pre>define c_say cmdalias say .* AS set MyTTS tts '$EVENT'</pre>
<pre>define c_say cmdalias say .* AS set MyTTS tts '$EVENT'</pre>


Umbenennen eines FHEM Raumes
Umbenennen eines FHEM Raumes '''Aufruf roomrename <oldroom> <newroom>'''
'''Aufruf roomrename <oldroom> <newroom>'''
<pre>define c_roomrename cmdalias roomrename .* AS { for my $name (devspec2array("room=$EVTPART0")){ map {s/$EVTPART0/$EVTPART1/;; fhem("attr $name room $_")} AttrVal($name,'room','') } }</pre>
<pre>define c_roomrename cmdalias roomrename .* AS { for my $name (devspec2array("room=$EVTPART0")){ map {s/$EVTPART0/$EVTPART1/;; fhem("attr $name room $_")} AttrVal($name,'room','') } }</pre>


Löschen eines FHEM Raumes
Löschen eines FHEM Raumes '''Aufruf: roomdelete <roomName>'''
<pre>define c_roomdelete cmdalias roomdelete .* AS { for my $name (devspec2array("room=$EVENT")){ map { /^$EVENT$/ ? fhem("deleteattr $name room") : do{s/,$EVENT|$EVENT,//;; fhem("attr $name room $_")} } AttrVal($name,'room','') } }</pre>
<pre>define c_roomdelete cmdalias roomdelete .* AS { for my $name (devspec2array("room=$EVENT")){ map { /^$EVENT$/ ? fhem("deleteattr $name room") : do{s/,$EVENT|$EVENT,//;; fhem("attr $name room $_")} } AttrVal($name,'room','') } }</pre>



Version vom 18. Oktober 2015, 08:51 Uhr

Cmdalias
Zweck / Funktion
Erstellen von Benutzer-definierten Befehlen in FHEM
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) FHEM
Modulname 98_cmdalias.pm
Ersteller rudolfkoenig
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


cmdalias ist ein Modul zum definieren von benutzerdefinierten Befehlen.

Zielsetzung

Die jeweiligen Befehlsketten können mit diesem Modul verkürzt werden oder sogar verändert werden.

Einbindung in Fhem

define <name> cmdalias <cmd> [parameter] AS newcommand..."

Beispieldefinition

define s1 cmdalias shutdown update AS save;;shutdown
define s2 cmdalias set lamp .* AS { Log 1, "$EVENT";; fhem("set $EVENT") }

Aufruf in Fhem

Die aliase können entweder in der FHEM Befehlzeie oder direkt im telnet eingegeben werden.

Ausgabe Telnet
Ausgabe in FHEMWEB

Beispiele

Auflisten von Geräten die in FHEM das Attribut "ignore" gesetzt haben:

define c_showignoreddevices cmdalias showignoreddevices AS { join("\n", grep { $attr{$_}{ignore} } sort keys %attr ) }

Auflisten von Geräten ohne TYPE Definition (sollte nur bei einer fehlerhaften Definition eine Ausgabe erstellen):

define c_shownotypedevices cmdalias shownotypedevices AS { join("\n", grep { !defined($defs{$_}{TYPE}) } keys %defs) }

In diesem Beispiel wird dem Gerät MiLight_1 nicht erlaubt ausgeschaltet zu werden

define c_aliasMiLight_1 cmdalias set MiLight_1 off AS set HMSchaltaktor_1 off

Verkürzter Befehlsaufruf des TTS Moduls

define c_say cmdalias say .* AS set MyTTS tts '$EVENT'

Umbenennen eines FHEM Raumes Aufruf roomrename <oldroom> <newroom>

define c_roomrename cmdalias roomrename .* AS { for my $name (devspec2array("room=$EVTPART0")){ map {s/$EVTPART0/$EVTPART1/;; fhem("attr $name room $_")} AttrVal($name,'room','') } }

Löschen eines FHEM Raumes Aufruf: roomdelete <roomName>

define c_roomdelete cmdalias roomdelete .* AS { for my $name (devspec2array("room=$EVENT")){ map { /^$EVENT$/ ? fhem("deleteattr $name room") : do{s/,$EVENT|$EVENT,//;; fhem("attr $name room $_")} } AttrVal($name,'room','') } }

Links