Hallo,
ich möchte folgendes tun:
define nt_Cmd_Raum1_auf notify dm_Cmd_Raum1:auf { jalousie("Raum1", "auf");; }
define nt_Cmd_Raum2_auf notify dm_Cmd_Raum2:auf { jalousie("Raum2", "auf");; }
define nt_Cmd_Raum3_auf notify dm_Cmd_Raum3:auf { jalousie("Raum3", "auf");; }
durch Perl-Auswertung vereinfachen:
define di_Cmd_direct DOIF (["^dm_Cmd_:auf|hoch|runter|zu"]) ( {("$DEVICE"=~/^dm_Cmd_(.*)/;;"jalousie($1, $EVENT);;")} )
Leider bekomme ich den Befehl "Jalousie(..., ...)" nicht hin. Wie müsste das im obigen Beispiel heißen, damit es wie bisher funktioniert?
Vielen Dank schonmal.
define di_Cmd_direct DOIF (["^dm_Cmd_:auf|hoch|runter|zu"]) ( {jalousie($1, $EVENT)} )
so klappt es bei mir, wobei hier die Definition von $1 wohl fehlt.
mit ("$DEVICE"=~/^dm_Cmd_(.*)/;;
kann ich nichts anfangen. Wofür?
Siehe Beispiel im DOIF:
define di_air DOIF (["^window_contact_:open|tilted"]) (set {("$DEVICE"=~/^window_contact_(.*)/;"shutters_$1")} 10)
Hier werden alle Fensterkontakte, die mit dem Device-Namen "window_contact_" beginnen auf "open" oder "tilted" im Event überwacht und der entsprechende Rollladen mit der gleichen Endung auf Lüften per set shutters_<postfix> 10 gestellt. In diesem Beispiel wird die Möglichkeit genutzt bei FHEM-Befehlen Perlcode innerhalb der Klammern {(...)} einzufügen. Siehe Berechnungen im Ausführungsteil
Jetzt geht es:
{ jalousie( {("$DEVICE"=~/^dm_Cmd_(.*)/;;"\"$1\", \"$EVENT\"")} );;}
Gelöste Themen bitte nicht schließen, sondern auf [Gelöst] im Titel setzen. (Editieren im ersten Beitrag) Danke