Cmdalias
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.
Beispiele
Verkürzter Aufruf von list mit Wildcard Suche
define c_ls cmdalias ls .* AS list .*$EVENT.*
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) }
Setzen des "Verbose Level" in FHEM auf 5
define v5 cmdalias v5 .* AS {fhem ("attr ".($EVENT||="global")." verbose 5")}
Setzen des "Verbose Level" in FHEM auf 3
define v3 cmdalias v3 .* AS {fhem ("attr ".($EVENT||="global")." verbose 3")}
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
- Thread über das Modul im Fhem Forum
- Thread mit weiteren Informationen