FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Bastian0302 am 21 Mai 2017, 00:59:24

Titel: [gelöst] Watchdog schaltet trotz, dass er inactive ist
Beitrag von: Bastian0302 am 21 Mai 2017, 00:59:24
Guten Tag zusammen.

Ich hab ein Problem mit dem Watchdog. Soweit tut er was er soll. Aber wenn ich ihn auf "inactive" setze nach dem regexp1 erfüllt wurde, zählt er trotzdem noch die Zeit runter und führt wenn regexp2 nicht erfüllt wurden ist den Befehl (command) aus. Und setzt sich durch "autorestart 1" auf defined zurück.

Gibt es eine Attribut welches dies verhindert?

Ich hatte ihn jetzt eine Weile nicht mehr benutzt und bin der Meinung, dass dieses Verhalten erst mit dem neuen Update kam.

Danke schon einmal im Voraus.
Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: amenomade am 21 Mai 2017, 01:15:15
Machst Du set watchdog_name inactive oder attr watchdog_name disable 1 ?
Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: Benni am 21 Mai 2017, 06:23:59
Ich kenne jetzt leider dein Geamtkonstrukt nicht genau...

Du könntest aber dort, wo du den Watchdog auf inaktiv setzt, ihn vorher noch per

trigger watchdog_name .
manuell auf Ausgangsstellung bringen, ggf. auch Zustandsabhängig.

Wobei ich eigentlich schon auch erwarten würde, dass der Watchdog komplett deaktiviert wird, egal in welchem Zustand er sich gerade befindet. (Ich hab's jetzt nicht selbst überprüft)

Ob set inactive oder attr disable sollte m.E. funktionell keinen Unterschied machen. Lediglich die Auswirkungen auf den Speichermechanismus sind unterschiedlich (Stw.: Rotes Fragezeichen / statefile)
(s.u. -> Noch 'n update)

Update: Ich habe das eben mal schnell durchgespielt und das Verhalten ist tatsächlich so wie beschrieben. Mein Workaround mit zusätzlichem trigger . funktioniert auch wie erwartet.

Wie schon gesagt, ich halte es tendenziell für einen Bug.
Rudi sollte hier normalerweise mitlesen ... schau mer mal ;D

Noch 'n update: Bei attr disable scheint das Problem tatsächlich nicht zu bestehen, dort verhält sich der watchdog wie erwartet und bricht die Ausführung zustandsunabhängig komplett ab.
Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: Bastian0302 am 21 Mai 2017, 10:44:51
Guten Tag zusammen und Danke für die schnelle Hilfe.

Mein Watchdog:
Wohnzimmer_Bewegungsmelder_Zeit watchdog Wohnzimmer_Bewegungsmelder:on.* 00:00:15 Lampe_Dachschraege:off.* {Licht_Bewegungsmelder("Wohnzimmer_Bewegungsmelder","Lampe_Dachschraege")}

Im Prinzip benutze ich ihn als on-for-timer, den man auch eigentlich vor Ablauf der Zeit deaktivieren können sollte..

Ich setze ihn über ein Befehl in 99_myUtils auf {fhem("set Wohnzimmer_Bewegungsmelder_Zeit inactive")} und dies kann zu jedem Zeitpunkt stattfinden.

Ich werde mal die Lösung mit dem "trigger Wohnzimmer_Bewegungsmelder_Zeit" versuchen.

Update:

Mit "trigger Wohnzimmer_Bewegungsmelder_Zeit . ; set Wohnzimmer_Bewegungsmelder_Zeit inactive"  macht er genau das was ich will.


Danke sehr.

Schönen Sonntag noch :)
Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: rudolfkoenig am 21 Mai 2017, 11:54:37
Inactive hat bisher verhindert, dass der Watchdog neue Events bekommt, zusammen mit disable und dsabledForIntervals. Falls der Timer zugeschlagen hat, wurde bisher nur disable geprueft.

Ich finde das ist ein Bug. Ab sofort wird beim Ausfuehren des Codes auch auf disabledForIntervals und inactive geprueft. Achtung: in manchen Situationen kann der Watchdog deswegen sich anders verhalten.
Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: Bastian0302 am 21 Mai 2017, 12:31:20
Oki danke für die Hilfe.

Also wird dies später noch behoben und es funktioniert dann auch mit "set device inactive"?

Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: rudolfkoenig am 21 Mai 2017, 12:34:19
Die Aenderung ist ab sofort im SVN, und morgen etwa ab 8 per update in FHEM verfuegbar.
Titel: Antw:Watchdog schaltet trotz, dass er inactive ist
Beitrag von: Bastian0302 am 21 Mai 2017, 12:37:18
Wow geht das schnell :o

Großes Lob mal an der Stelle an alle, die da so engagiert dran arbeiten.
Titel: Aw: [gelöst] Watchdog schaltet trotz, dass er inactive ist
Beitrag von: Rampler am 11 Juni 2023, 12:17:23
Hallo zusammen,
kann es sein, dass der Fehler wieder auftritt ?
Jedenfalls bewirkt ein  "inactive" nicht, dass der watchdog abgebrochen wird. Die Befehle im watchdog werden trotzdem ausgeführt, lediglich ein neues triggern wird verhindert.
Während des sleep 15 wird der watchdog inactiviert, die Befehle dahinter werden trotzdem ausgeführt.

GA.torkontakt:open 00:01 GA.torkontakt:closed {if
(ReadingsVal('GA.tor','autoclose',0)  eq "1" &&
 ReadingsVal('FL.EG.gong.mp3.muteswitch','state','') eq "off")
{fhem("set Alarm_sir_ext on-for-timer 0.1 ; sleep 15 ; set set GA.taster on-for-timer 1 ;
define Check_if_really_closed at +00:00:45 {if(Value('GA.torkontakt') ne 'closed') {fhem('set FL.EG.gong.mp3 playTone 42')}
                                         else {fhem('set FL.EG.gong.mp3 playTone 15')}}")}
Titel: Aw: [gelöst] Watchdog schaltet trotz, dass er inactive ist
Beitrag von: betateilchen am 11 Juni 2023, 13:14:46
Zitat von: Rampler am 11 Juni 2023, 12:17:23Während des sleep 15 wird der watchdog inactiviert, die Befehle dahinter werden trotzdem ausgeführt.

Das ist kein Fehler, denn alles was hier drinsteht

{fhem("set Alarm_sir_ext on-for-timer 0.1 ; sleep 15 ; set set GA.taster on-for-timer 1 ;
define Check_if_really_closed at +00:00:45 {if(Value('GA.torkontakt') ne 'closed') {fhem('set FL.EG.gong.mp3 playTone 42')}

ist für den watchdog ein einziger "Befehl", der zum Zeitpunkt des sleep 15 bereits vollständig ausgeführt wurde. Von dem sleep in Deinem perl Code bekommt der watchdog nichts mehr mit.

Und FHEM kann nicht unterscheiden, woher ein Ausführungsteil stammt, der nach den 15 Sekunden zur Abarbeitung eingeplant ist.