Die u.g. Codes stammen aus "Raw definition".
geht nicht - keine Reaktion des Moduls (weder brightness noch Uhrzeit), obwohl die auslösenden Events im Eventmonitor sichtbar sind:
defmod KuecheAbenddaemmerungOnOff DOIF ( [HM_Bewegungsmelder_SW:brightness] < 120 ) \
(set KuecheAbenddaemmerung on) \
DOELSEIF ([23:45] or [01:30]) \
(set KuecheAbenddaemmerung off)
Beide Teile in einzelnen DOIFs funktionieren:
defmod KuecheAbenddaemmerungOn DOIF ( [HM_Bewegungsmelder_SW:brightness] < 120 ) \
(set KuecheAbenddaemmerung on)
defmod KuecheAbenddaemmerungOff DOIF ([23:45] or [01:30]) \
(set KuecheAbenddaemmerung off)
Hat dazu Jemand eine Idee?
Da gibt es Vermutungen. Wäre gut, wenn Du sagt in welchem Zustand Deine KuecheAbenddaemmerung ist und welche Helligkeit aktuell ist.
Pauschal denke ich cmd_1 trifft bei jeder Änderung der Helligkeit unterhalb 120 zu. attr <name> do always
gesetzt?
Ich versteh's nicht. Da suche ich seit Tagen nach dem Fehler, und jetzt läuft's plötzlich.
In den letzten Tagen hatte ich behelfsmäßig das DOIF auf disabled gesetzt und stattdessen die beiden einzelnen DOIFs aktiviert. Heute Nachmittag habe ich das umgedreht, zum Debuggen die Zeiten und brightness-Level geändert, und plötzlich ist alles gut. Springt, wie es sein soll zwischen cmd_1 und cmd_2, je nach Event.
Ich beobachte das jetzt mal ein paar Tage und werde den Thread ggf. auf "gelöst" setzen. Erst mal besten Danke für die Hilfe.
Ach ja: do always hatte ich absichtlich nicht. Sonst versucht das DOIF alle 5 Minuten, wenn ein neuer Wert vom Helligkeitssensor kommt, das schon leuchtende Licht einzuschalten. Das führt zu unnötigem Traffic, der bei Funksignalen (Homematic) nicht so schön wäre. Außerdem würde das Licht nach dem abendlichen Abschalten gleich wieder angehen.
Zitat von: willybauss am 16 November 2020, 18:27:56
Außerdem würde das Licht nach dem abendlichen Abschalten gleich wieder angehen.
Das wird mMn sowieso passieren
warum - ohne do always?
Ist bisher mit den einzelnen DOIFs seit Jahren nicht passiert.
DOIF mit DOELSEIF :
- 23:45 Uhr => cmd_2 => off
- 23:50 Uhr, neue Meldung von Brightness < 120 => cmd_1 => on
Einzelne DOIFs:
- brightness < 120 => cmd_1 => on
- es bleibt auf cmd_1, bis brightness wieder > 120, dann cmd_2 => off (inzwischen hat das 2. DOIF wahrscheinlich geschlatet, aber das hat keinen Einfluss auf dem Zustand des 1. DOIFs
- es bleibt auf cmd_2, bis brightness wieder < 120
Man kann die Abfrage [HM_Bewegungsmelder_SW:brightness] < 120 in DOIF_Readings auslagern, dann kann man auch do always aktivieren, ohne dass ständig geschaltet wird.
@amenomade:
Sieht aus, als ob Du recht hast. Jedenfalls brannte das Licht heute Morgen wieder und das Logfile zeigt, dass es offenbar so ablief wie von Dir beschrieben. Klingt jetzt auch völlig logisch, ich war nur nicht drauf gekommen.
Ich werde es dann wohl wieder mit 2 getrennten DOIFs machen müssen.
Besten Dank für die Hilfe. Ich werde es im Titel auf [gelöst] setzen.
Solche Aufgaben löst man besser mit Zeitintervallen.
z. B.
DOIF ([16:00-23:45] and Brightness < 120) (set ... on) DOELESE (set ... off)