FHEM Forum

FHEM => Automatisierung => Thema gestartet von: volschin am 06 Juli 2018, 11:10:42

Titel: watchdog nach restart
Beitrag von: volschin am 06 Juli 2018, 11:10:42
Ich habe einige länger laufende Watchdogs und dabei festgestellt, dass diese immer lahmgelegt sind, nachdem ich ein shutdown restart gemacht habe.

Der Status "activated" mit der zugehörigen Zeit ist zwar weiter in den Readings vorhanden, wird aber nicht mehr benutzt (Status defined).

Lässt sich dieses Verhalten ändern? Ist das so gewollt oder letztlich ein Bug?
Titel: Antw:watchdog nach restart
Beitrag von: KölnSolar am 06 Juli 2018, 14:30:43
Ich denke, dass es so gewollt ist. Normalerweise willst Du ja, wenn nach Ereignis A nicht innerhalb einer bestimmten Zeit Ereignis B eintritt eine Aktion auslösen. Nach dem Reboot hast Du da einen quasi undefinierten Zustand. B könnte zwischenzeitlich stattgefunden haben oder auch nicht. Vielleicht sogar ein erneutes Ereignis A, dessen Zeitpunkt aber nicht bekannt(zwischen dem shutdown/reboot) ist.
Du musst Dir also wahrscheinlich eine eigene "Initialisierung" für Deinen case mit dem event "global INITIALIZED" bauen.

Grüße Markus
Titel: Antw:watchdog nach restart
Beitrag von: rudolfkoenig am 06 Juli 2018, 15:38:57
Bug oder Feature weiss ich nicht, es ist eher ein "ich habe mich um das Problem bisher nicht gekuemmert".Eine Loesung waere (optional per Attribut) den Timeout in einem Reading zu speichern, und nach dem Restart sie auszuwerten. Die Bemerkung von Markus bleibt valide.
Titel: Antw:watchdog nach restart
Beitrag von: volschin am 07 Juli 2018, 16:20:42
OK, ich verstehe, dass mein Bedarf nicht für alle Anwendungsfälle sinnvoll ist. Ich fände aber ein zusätzliches Attribut Klasse.

Grundsätzlich funktioniert Wiederherstellung des Status beim at-TYPE ja auch. Dort wird allerdings
TRIGGERTIME         1530993600
TRIGGERTIME_FMT     2018-07-07 22:00:00

nochmal separat in den Internals hinterlegt.

Wäre vermutlich gut, wenn die Realisierung nach der gleichen Logik erfolgt.

Ich würde mir auch selber was mit global INITIALIZED bauen, aber ich kenne keinen Weg um den zeitlichen Status des Watchdog wiederherzustellen, auch wenn ich aus dem Reading
Activated     activated   2018-07-06 11:37:55
und der Dauer im Internal TO den Zeitpunkt herausbekomme.
Titel: Antw:watchdog nach restart
Beitrag von: rudolfkoenig am 08 Juli 2018, 18:49:18
Ich habe dem watchdog jetzt das Attribut activateOnStart spendiert.
Zusaetzliche Readings waren nicht notwendig, das bisher gesetzte Activated, die Definition und die aktuelle Uhrzeit reicht.
Titel: Antw:watchdog nach restart
Beitrag von: volschin am 09 Juli 2018, 08:46:43
Hallo Rudolf,
herzlichen Dank, ich habe es erfolgreich getestet. Das löst mein Problem. Es gibt allerdings den Effekt, dass auch ein Watchdog, der vor dem Restart auf defined stand, dadurch wiedererweckt wurde (nicht abgelaufenes Activate). In meinem Szenario stört das nicht, könnte sich aber bei jemand anderem möglicherweise negativ auswirken.

Viele Grüße
Veit
Titel: Antw:watchdog nach restart
Beitrag von: rudolfkoenig am 09 Juli 2018, 09:40:43
Danke fuer den Hinweis, habs gefixt.