FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: gadget am 18 März 2018, 10:10:43

Titel: (gelöst) cmdState Beispiel aus commandref funktioniert nicht ?
Beitrag von: gadget am 18 März 2018, 10:10:43
Hallo,

Aus der commandref:


Fenster Status/Meldung:

define di_Fenster DOIF (["^Window:open"])
(push "Fenster $DEVICE wurde geöffnet. Es sind folgende Fenster offen: [@"^Window":state:"open"]")
DOELSEIF ([#"^Window:closed":state:"open"] == 0)
(push "alle Fenster geschlossen")

attr di_Fenster do always
attr di_Fenster cmdState $DEVICE zuletzt geöffnet|alle geschlossen



Ich hab das mit drei Dummys in einer Testumgebung nachgebaut. Aber der State der DOIF ist entweder "alle geschlossen" oder "$DEVICE zuletzt geöffnet" ($DEVICE wird nicht expandiert). Warum ?

Grüße, gadget


Titel: Antw:cmdState Beispiel aus commandref funktioniert nicht ?
Beitrag von: Damian am 18 März 2018, 10:54:46
Zitat von: gadget am 18 März 2018, 10:10:43
Hallo,

Aus der commandref:


Fenster Status/Meldung:

define di_Fenster DOIF (["^Window:open"])
(push "Fenster $DEVICE wurde geöffnet. Es sind folgende Fenster offen: [@"^Window":state:"open"]")
DOELSEIF ([#"^Window:closed":state:"open"] == 0)
(push "alle Fenster geschlossen")

attr di_Fenster do always
attr di_Fenster cmdState $DEVICE zuletzt geöffnet|alle geschlossen



Ich hab das mit drei Dummys in einer Testumgebung nachgebaut. Aber der State der DOIF ist entweder "alle geschlossen" oder "$DEVICE zuletzt geöffnet" ($DEVICE wird nicht expandiert). Warum ?

Grüße, Roland

ja, $DEVICE wird wohl im cmdState nicht expandiert, dafür ist die Perlvariable $device belegt, daher geht:

attr di_Fenster cmdState {("$device zuletzt geöffnet")}|alle geschlossen
Titel: Antw:cmdState Beispiel aus commandref funktioniert nicht ?
Beitrag von: gadget am 18 März 2018, 10:56:54
Hallo,

Bingo !

Grüße, gadget