Bestimmten Zustandswechsel erkennen

Begonnen von gadget, 13 August 2017, 09:20:12

Vorheriges Thema - Nächstes Thema

gadget

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

CoolTux

Dafür gibt es doch ein Reading namens lastState das man dann abfragen kann.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Per

Allgemein (da bei DOIF eingestellt) kannst du mit
and [?$SELF:cmd] == 3
auf den vorhergehenden Zustand abfragen.