angetriggerter Watchdog soll trotz "disabledForIntervals" noch auslösen

Begonnen von roedert, 31 Mai 2022, 23:07:18

Vorheriges Thema - Nächstes Thema

roedert

Das Licht im Flur soll je nach Tag oder Nacht unterschiedlich lang nach Auslösen des Bewegungsmelders aktiv sein. Deswegen habe ich einen Tages- und ein Nacht-Watchdog-Device angelegt jeweils mit DisabledForIntervals "06:00-22:00" bzw 22:00-24:00 00:00-06:00".
Das klappt soweit auch prima, Problem ist nur, dass wenn um 21:59 der TagesWatchdog zwar noch getriggert wird, aber nach Ablauf der eingestellten Zeit nicht mehr auslöst, da es schon im Disable-Interval liegt.
Wie könnte man es umsetzen, dass ein getriggerter Watchdog nach Ablauf der eingestellten Zeit doch noch auslöst - auch wenn es schon das Disabled-Interval erreicht hat? Oder kann man dieses "Feature" evtl im Modul nachrüsten?

rudolfkoenig

Ich habe das completeOnDisabled Attribut hinzugefuegt. Commandref Eintrag:
Zitatfalls gesetzt (auf 1), wird ein aktiviertes (STATE Next:...) watchdog auch dann ausgeführt, wenn zur Ausführungszeit disabled aktiv ist (siehe disabledForIntervals).
Denke darueber nach, die Voreinstellung irgendwannmal auf 1 zu aendern.

roedert

Wow, was nen Service! Werde ich nach em nächsten Update testen....
Besten Dank schonmal!

betateilchen

Zitat von: rudolfkoenig am 01 Juni 2022, 10:27:05
Denke darueber nach, die Voreinstellung irgendwannmal auf 1 zu aendern.

Das würde in meinen Installationen einiges durcheinanderbringen, da ich mich derzeit strikt darauf verlasse, dass disabled generell respektiert wird und innerhalb des angegebenen Intervalls nichts mehr passiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig


rudolfkoenig

ZitatDas würde in meinen Installationen einiges durcheinanderbringen, da ich mich derzeit strikt darauf verlasse, dass disabled generell respektiert wird und innerhalb des angegebenen Intervalls nichts mehr passiert.
Nur zum Verstaendnis (und nicht zum Diskutieren :) ) kannst Du mir einen Beispiel nennen?
Ich habe Schwierigkeiten einen Fall vorzustellen, wo das sinnvoll ist.

betateilchen

Beleuchtungssteuerung über mehrere Bewegungsmelder mit watchdog Zeiten von 240 Sekunden und relativ langen on-for-timer Werten (1800 Sekunden).

Annahme: Um 22:59 Uhr wird der watchdog getriggert, disabledForIntervals gilt ab 23 Uhr.
Im schlimmsten Fall würde dann um 23:03 Uhr nochmal das Licht für eine halbe Stunde eingeschaltet, obwohl ich das ab 23 Uhr nicht mehr möchte.

Das neue Attribut finde ich für bestimmte Szenarien durchaus sinnvoll. Aber bitte nicht als Voreinstellung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roedert

Danke für das Beispiel, aber denn richtigen Sinn dahinter habe ich auch noch nicht verstanden? Dein Watchdog schaltet beim Auslösen das Licht ein statt aus?
22:59 - WD wird getriggert (vermutlich vom Bewegunsmelder)
23:03 - WD löst aus und schaltet das Licht für 30 min ein?

Mein Verständnis vom einem Beleuchtungssteuerung mit Bewegungsmelder ist doch dass bei erkannter Bewegung das Licht eingeschaltet wird und der Watchdog getriggert wird - zB 5 Minuten.
Jede erneute Bewegung "retriggert" den WD und bei 5 Minuten ohne Bewegung löst der WD aus und schaltet das Licht ab.

betateilchen

Zitat von: roedert am 02 Juni 2022, 15:40:42
Dein Watchdog schaltet beim Auslösen das Licht ein statt aus?

Ja.

Zitat von: roedert am 02 Juni 2022, 15:40:42
aber denn richtigen Sinn dahinter habe ich auch noch nicht verstanden?

Mußt Du auch nicht.

Zitat von: rudolfkoenig am 01 Juni 2022, 12:43:20
Nur zum Verstaendnis (und nicht zum Diskutieren :) ) kannst Du mir einen Beispiel nennen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!