Hallo zusammen,
ich habe folgendes Szenario. Ich prüfe meine FritzBox und Repeater ob jemand zu Hause und speichere das Ergebnis in einer Struct JemandDa
ab. Nun soll wenn JemandDa eq "absent"
ist und das Schloss auf unlock
steht, das Schloss abgeschlossen werden.
Dazu verwende ich folgendes doIf, in dem aber ein Fehler in der Abfrage des Zustand des Schlosses steckt, kann jemand helfen?
([JemandDa] eq "absent" and [NUKIDevicexxxxxxxx:lockState] eq "unlocked") (set NUKIDevicexxxxxxxx lock)
ohne die Überprüfung des Lockzustandes funktioniert es, dass will ich aber nicht, da es ansonsten das Schloss zweimal lockt, wenn es manuell gelockt wurde.
Liebe Grüße
Du kannst das NukiDevice einfach abfragen...
([JemandDa] eq "absent" and [?NUKIDevicexxxxxxxx:lockState] eq "unlocked") (set NUKIDevicexxxxxxxx lock)
Es ist immer unwahrscheinlich das beide Trigger gleichzeitig da sind - ein ? holt nur den aktuellen Zustand des readings...
Klasse, vielen Dank. Ich habe es jetzt so umgeändert, da es ja eigentlich immer ausgeführt werden kann, wenn es nicht gerade auf "locked" steht:
([JemandDa] eq "absent" and [?NUKIDevicexxxxxxx:lockState] ne "locked") (set NUKIDevicexxxxxxx lock)
muss ich auch hier doAlways=true
setzen?
Oder FILTER nehmen.
Per meint damit:
([JemandDa] eq "absent") (set NUKIDevicexxxxxxx:FILTER=lockState!=locked lock)
LG
Christian
Zitat von: yep_DD am 14 Oktober 2018, 17:46:01
muss ich auch hier doAlways=true
setzen?
Würde ich eher nicht machen, würde eher:
([JemandDa] eq "absent") (set NUKIDevicexxxxxxx:FILTER=lockState!=locked lock)
DOELSE
machen, das mach' ich in der Regel so, weil dann der gleiche Zustand nicht zweimal auslöst, falls es das gleiche Event gibt.
LG
Christian