(gelöst) cmdState Beispiel aus commandref funktioniert nicht ?

Begonnen von gadget, 18 März 2018, 10:10:43

Vorheriges Thema - Nächstes Thema

gadget

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



Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gadget