Hallo,
Wie bekomme ich es elegant hin, bei einem reading, das z.B. 7 Zustände annehmen kann, den Zustandswechsel von Wert 1 auf Wert 2 in einer DOIF-Bedingung abzufragen ? Der Ausführungsteil soll also nur dann greifen, wenn das reading von Wert 1 auf Wert 2 springt, aber nicht wenn das Reading von Wert 3 auf Wert 2 springt.
Beispiel: Modul PRESENCE: Hier kann der state
home - Bewohner sind zu Hause und mindestens einer schläft nicht
gotosleep - alle anwesenden Bewohner sind auf dem Weg ins Bett (wenn sie nicht schon schlafen)
asleep - alle anwesenden Bewohner schlafen
awoken - mindestens einer der anwesenden Bewohner ist gerade aufgewacht
absent - keiner der Bewohner ist momentan zu Hause; mindestens einer ist aber in Kürze zurück
gone - alle Bewohner sind für längere Zeit verreist
none - kein Mitglied aktiv
sein. Ich will jetzt eine Aktion ausführen wenn der state von absent auf home wechselt, aber nicht wenn der state von asleep auf home wechselt.
Grüße,
gadget
Dafür gibt es doch ein Reading namens lastState das man dann abfragen kann.
Allgemein (da bei DOIF eingestellt) kannst du mit
and [?$SELF:cmd] == 3
auf den vorhergehenden Zustand abfragen.