trigger dev value
so dass dev:value auf regexp2 passt.
> Gibt es eine M�glichkeit einen Watchdog zu definieren �hnlich wie bei
> define <name> watchdog <regexp1> <timespec> SAME <command>, der aber auch
> ohne Vorbedingung automatisch startet???
???
Das habe ich nicht verstanden oder auch: das ist doch die erste Variante...
"trigger w ." startet den watchdog wieder (. passt auf dem Regexp ^.$ :)
watchdog is fuer 2 Problemklassen gebaut:
- Ueberwachung eines HMS-FIT, der alle 10 Minuten ein Telegramm schickt, es sei
denn die Sicherung hat ausgeloest, dann ist es "tot".
define w watchdog . 00:11 hmsfit:.* "send_sms.sh fit hat ausgeloest"
- Ueberwachen eines Fensters, bei dem ein Kontakt erst auf open dann auf closed
geht, und der nicht laenger als 10 Minuten offen sein darf.
define w watchdog contact:open 00:10 contact:closed "send_sms.sh fenster offen"
In beiden Faellen passiert das was ich erwarte.
Hmmm. Ich bin in meine eigene Falle geraten. Das Regexp muss auf devname oder
devname:event passen (genau wie bei einem notify). Da ich zum testen mein
watchdog w genannt habe, passt . auf w (devname), und nicht auf dem . in
event, wie ich es vorhin geschrieben habe. In deinem Fall passt aber . weder
auf "wd_Sender1", noch auf "wd_Sender1:."
Ich habe 91_watchdog.pm erweitert (und eingecheckt), damit ein watchdog mit
"trigger <watchdogname> ." wieder initialisiert werden kann, wenn es abgelaufen
ist.
Stimmt, ich hoffe ich habe es gefixed und eingecheckt.
define <name> watchdog <regexp1> <timespec> <regexp2> <command>Ich finde das passiert. Da ich Dich nicht folgen kann, hier ein Beispiel:
fhem> define w2 watchdog w2:open 00:00:10 w2:close { Log 1, "w2 trigger" }
fhem> list w2
STATE defined
fhem> tri w2 open
fhem> list w2
STATE Next: 06:51:23
... (Trigger abwarten)
fhem> list w2
STATE triggered
fhem> tri w2 open
fhem> list w2
STATE Next: 06:54:27
Falls regexp "." ist, dann wird es nicht neu gestartet.
Eine wunderschoene Grafik. Womit baut man sowas? Kannst Du bitte auch alle
anderen Befehle so schoen "bebildern"? Commandref.html muss bunter werden :)
Dein bemaengeltes Szenario (Fenster offen / zu) hat bisher die Verlaengerung
mittels "zweiten "Fenster offen" nicht benoetigt. Und "trigger watchdogname ."
war nur fuers Neustarten des "." Triggers gedacht.
Da dein Wunsch um Verlaengerung in diesem Szenario nicht stoert, habe ich es
zugelassen und eingecheckt. Als Seiteneffekt verlaengert
"trigger watchdogname ." den watchdog.
Jetzt kommt hoffentlich keiner mit einem anderen Szenario, bei dem das
Verlaengern nicht gewuenscht ist...
Gruss,
Rudi
Danke fuer den Hinweis. Hab ein regexp1WontReactivate Attribut eingefuehrt und
eingecheckt, bitte testen. Hab auch den commandref Eintrag etwas erweitert.
Immer wenn die kalte Jahreszeit vor der T�r steht, aktiviere ich meinen
Fensterwatchdog, so auch gestern. Dazu setze ich Fensterwatchdog auf
aktiv, und das hat auch bisher funktioniert:
define WC_FensterWatchdog watchdog WC_Fenstersensor:Window:.Open 00:15
WC_Fenstersensor:Window:.Closed { fhem("define WC_tmp at +*{2}00:00:15
set Kueche_Statue toggle") if ($value{Fensterwatchdog} eq "aktiv") }
Leider hat der Watchdog bei meinen ersten Tests nie ausgel�st. Dann habe
ich (um besser testen zu k�nnen), die Zeit von 15 Minuten auf 2
runtegesetzt - dann hat es manchmal funktioniert, manchmal nicht. Ich
war schon am verzweifeln, da habe ich die Doku gelesen, und folgenden
Eintrag hinzugef�gt:
attr WC_FensterWatchdog regexp1WontReactivate
Funktioniert aber immer noch nicht; der Watchdog wird nicht ausgef�hrt.
Was mache ich falsch?
Hinweis: WC_Fenstersensor ist ein FHTTK, der sendet ca. alle 4 Minuten
wenn sich nichts �ndert und alle 60 Sekunden wenn sich gerade etwas
ge�ndert hat.
Viele liebe Gr��e,
Thomas
Ich hab jetzt das watchdog Thema nochmal angenommen, eine Weile getestet,
gefixed, nochmal getestet, und ich meine, dass es jetzt mit der bisherigen
Semantik funktionieren sollte. Eingecheckt in SVN und fhemupload ausgefuehrt.
Hallo Rudi,
da ich meine Fenster auch überwachen wollte habe ich mit einem
Testschalter (DS10a an RFXCOM) folgendes probiert:
define watch_win_17a1 watchdog RFXX10REC_17a1:Open 00:00:10
RFXX10REC_17a1:Closed { Log 1, "Alarm: Windows 17a1 geoeffnet "}
Mit dem alten 91_watchdog.pm (Revision 1009 aus 2010 ohne
regexp1WontReactivate) funktioniert alles wie gewünscht. Wird der
Kontakt mehr als 10 Sekunden geöffnet, erhalte ich die entsprechende
Log-Meldung.
Dieser Test funktioniert auch mit der geringen Testzeit in Sekunden,
da der DS10a-Fensterkontakt die Meldung unmittelbar sendet.
Wenn ich die neue Version 91_watchdog.pm aus SVN probiere, klappt auch
das erste Überschreiten der Öffnung für mehr als 10 Sekunden und ich
erhalte die entsprechende Log-Meldung. STATE wechselt daei von defined
-> NEXT -> triggered.
Wenn allerdings der Fensterkontakt danach wieder geschlossen wird und
geöffnet wird, bleibt STATE bei triggered und geht nicht mehr zu NEXT.
Damit wird die zweite Öffung nicht mehr ausgelöst.
Das gleiche passiert auch, wenn ich das Attribut regexp1WontReactivate
definiere.
Ich habe für den Test nur 91_watchdog.pm ausgetauscht. Ist das evtl.
der Fehler und ich muss komplett updaten? Oder gibt es noch einen
Fehler bei 91_watchdog.pm?
MfG Willi
Das ist eigentlich so wie gewollt, ich will ja auch nur eine Nachricht kriegen.
Alternativ muss man den Trigger mit "trigger NAME ." wieder aktivieren.
Also "works as designed!" ;-)
Bei einem manuellen (also in der Koammandozeile)
trigger watch_win_17a1 .
funktioniert das auch wie erwartet.
Ich habe darauf hin versucht den trigger in den Watchdog einzubauen:
define watch_win_17a1 watchdog RFXX10REC_17a1:Open 00:00:10
RFXX10REC_17a1:Closed { Log 1, "Alarm: Windows 17a1 geoeffnet ";;fhem
"trigger watch_win_17a1 ."}
Das funktioniert aber nicht.
Mit
define watch_win_17a1 watchdog RFXX10REC_17a1:Open 00:00:10
RFXX10REC_17a1:Closed { Log 1, "Alarm: Windows 17a1 geoeffnet ";;fhem
"define a5 at +00:00:02 trigger watch_win_17a1 ."}
habe ich es dann hinbekommen. Ist das auch so gewollt?
Danke Rudi, dass Du 91_watchdog.pm überarbeitest hast.
regexp1WontReactivate scheint auch in meinem Fall ein wichtiges
Feature zu sein.
Nich wirklich. Hab die Rekursion-Vermeidende INWATCHDOG enfernt, weil ich den
Eindruck habe, dass Rekursion mittels watchdog doch nicht so einfach zu bauen
ist, wie mit notify. Da vermeidet INTRIGGER die Rekursion.
Bin leider erst jetzt dazu gekommen, es zu testen. Es sieht aber so aus,
als wenn jetzt alles so funktioniert, wie es in der Doku beschrieben steht.
Danke f�r die schnelle Hilfe
Thomas