Ich bewundere das Problem - habe aber keine lösung.
vom prinzip her möchte ich 3 Zustände erreichen:
- standBy betrieb - der angeschlossene verbraucher hat eine Digitaluhr, im leerlauf einen leistungsaufnahme von <2 Watt wenn der verbrauch >2 watt wird aktiviert sich on
- on - der angeschlossene verbraucher arbeitet. Wenn der verbrauch unter >25 Watt sinkt wird abgeschaltet. Nach Zeit x soll wieder angeschaltet werden, verbrauch <2 also standBy
- adjust clock - wenn on aktiv ist soll das einstellen der Uhr unterdrückt werden. Falls on nicht aktiv ist wird ein timer um 11:59 abschalten, um 12 wieder anschalten - die Digitaluhr würde die korrekte uhrzeit zeigen.
Meine notifys dazu sehen so aus:
standBy
DEF
mpl_Herd_m IF (([mpl_Herd_m:power:d] >0.5 ) and ([mpl_Herd_m:power:d] <2.0 ))
(attr mpl_Herd_s devStateIcon on:power-black:on off:power-orange:on,attr m_Herd_on disable 1,modify timer_Herd_mpl *12:00:00 )
ELSE (attr mpl_Herd_s devStateIcon on:power-green:off off:power-orange:on,attr m_Herd_on disable 0)
on
DEF
mpl_Herd_m IF (([mpl_Herd_m:power:d] > 2.0 ) and ([mpl_Herd_m:power:d] < 25.0 ))
(set mpl_Herd_s off,attr mpl_Herd_s devStateIcon off:power-orange:on on:power-black:on,modify timer_Herd_mpl +00:33:00)
adj clock
DEF
m_Herd_on IF ([m_Herd_on] eq "active" ) (attr timer_Herd_clock disable 1)
ELSE (attr timer_Herd_clock disable 0)
das Problem entsteht wenn aus dem Zustand on heraus der timer mit + abläuft und auslöst.
Es wird zwar in den standBy gewechselt - on wird deaktiviert, aber der timer löscht sich und wird als nicht defined von standBy aus angemeckert.
jetzt das eigentliche phänomen - wenn ich nach ablauf von + in den raum schaue in dem der timer liegt ist alles schick, die schaltung wäre für den nächsten durchgang bereit. Wenn ich dort aber nicht hineinschaue und es zur nächsten on periode kommt wird auch vom on der timer als nicht definiert angemeckert...
Ich glaube ich habe schon ein brett vorm kopf - ich bin mittlerweile auch offen für einen entsprechenden Baustein in myUtils. Vielleicht kann mir jemand sagen wo mein denkfehler liegt...
Oder mir bei einem lösungsansatz mit einer Perl Routine helfen.
Tausend Dank schonmal.