FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Gisbert am 19 Januar 2025, 09:09:15

Titel: [gelöst] watchdog: wiederkehrender Trigger möglich?
Beitrag von: Gisbert am 19 Januar 2025, 09:09:15
Hallo,

ich hab mehrere watchdog-Devices, die die Öffnung von Fenstern und Türen überwachen.

Wenn bspw. die Haustür 5 Minuten offen ist, dann wird eine Nachricht aufs Handy geschickt. Mittlerweile verlasse ich mich total darauf und es funktioniert auch sehr zuverlässig - bis auf die Tatsache, dass ich gelegentlich nicht auf die Erinnerung reagiere.

Ich benötige dann eine 2. Erinnerung. Geht eine wiederkehrende Erinnerung mit einem watchdog und wie sieht sie aus.

Meine Definition:
defmod Tuerkontakt_Haustuer_watchdog watchdog Tuerkontakt_Haustuer:open 00:05:00 Tuerkontakt_Haustuer:closed \
set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';; \
set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];; \
set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];;
attr Tuerkontakt_Haustuer_watchdog activateOnStart 1
attr Tuerkontakt_Haustuer_watchdog autoRestart 1
attr Tuerkontakt_Haustuer_watchdog room IT
attr Tuerkontakt_Haustuer_watchdog verbose 1

Viele Grüße Gisbert
Titel: Aw: watchdog: wiederkehrender Trigger möglich?
Beitrag von: frober am 19 Januar 2025, 11:33:41
Du kannst deine "sets" einfach mit einem
defmod Erinnerung at +00:10 set... am Schluss nochmal anhängen.

Das at ist nur temporär bis zur Ausführung vorhanden.
Titel: Aw: watchdog: wiederkehrender Trigger möglich?
Beitrag von: Gisbert am 19 Januar 2025, 15:48:22
Hallo frober,

ich hab's so wie beschrieben durchgeführt, aber das at wird nicht ausgeführt. Der STATE steht auf defined.

Nach Schließen der Haustür (ist doch ziemlich kalt und nebelig hier), sieht das Device wie folgt aus:
define Tuerkontakt_Haustuer_watchdog watchdog Tuerkontakt_Haustuer:open 00:00:30 Tuerkontakt_Haustuer:closed \
set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';; \
set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];; \
set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];; \
at +00:01 \
set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';;
attr Tuerkontakt_Haustuer_watchdog activateOnStart 1
attr Tuerkontakt_Haustuer_watchdog autoRestart 1
attr Tuerkontakt_Haustuer_watchdog room IT
attr Tuerkontakt_Haustuer_watchdog verbose 1
#   CFGFN      ./FHEM/Fensterkontakte.cfg
#   CMD       
#set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#at +00:01
#set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#   DEF        Tuerkontakt_Haustuer:open 00:00:30 Tuerkontakt_Haustuer:closed
#set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#at +00:01
#set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#   FUUID      66c772dd-f33f-e986-8b06-0736c95fb4061370
#   NAME       Tuerkontakt_Haustuer_watchdog
#   NOTIFYDEV  Tuerkontakt_Haustuer_watchdog,Tuerkontakt_Haustuer
#   NR         1538
#   NTFY_ORDER 50-Tuerkontakt_Haustuer_watchdog
#   RE1        Tuerkontakt_Haustuer:open
#   RE2        Tuerkontakt_Haustuer:closed
#   STATE      defined
#   TO         30
#   TYPE       watchdog
#   READINGS:
#     2025-01-19 15:44:47   Activated       activated
#     2025-01-19 15:45:17   Reset           reset
#     2025-01-19 15:45:17   Triggered       triggered
#     2025-01-19 15:44:47   triggeredByDev  Tuerkontakt_Haustuer
#     2025-01-19 15:44:47   triggeredByEvent open
#   helper:
#     bm:
#       watchdog_Define:
#         cnt        3
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        19.01. 15:33:03
#         max        0.000478982925415039
#         tot        0.00105786323547363
#         mAr:
#           HASH(0x55f1803df2b8)
#           Tuerkontakt_Haustuer_watchdog watchdog Tuerkontakt_Haustuer:open 00:00:30 Tuerkontakt_Haustuer:closed
#set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#at +00:00:30
#set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#       watchdog_Notify:
#         cnt        49
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        19.01. 14:40:35
#         max        0.00224614143371582
#         tot        0.019085168838501
#         mAr:
#           HASH(0x55f1803df2b8)
#           HASH(0x55f18036b400)
#       watchdog_Set:
#         cnt        62
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        19.01. 15:44:51
#         max        0.000133991241455078
#         tot        0.00158381462097168
#         mAr:
#           HASH(0x55f1803df2b8)
#           Tuerkontakt_Haustuer_watchdog
#           ?
#
setstate Tuerkontakt_Haustuer_watchdog defined
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 15:44:47 Activated activated
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 15:45:17 Reset reset
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 15:45:17 Triggered triggered
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 15:44:47 triggeredByDev Tuerkontakt_Haustuer
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 15:44:47 triggeredByEvent open


Bist du sicher, dass die Konstruktion, wie von dir beschrieben, so funktioniert?

Viele Grüße Gisbert
Titel: Aw: watchdog: wiederkehrender Trigger möglich?
Beitrag von: frober am 19 Januar 2025, 15:59:47
So habe ich das nicht geschrieben
at +00:01
defmod Erinnerung at +00:10 set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]'und ohne Zeilenumbruch

Du musst ein "normales" at-Device definieren, nur mit defmod.

Das at wird temporär als Device unter unbekannt angelegt.
Titel: Aw: watchdog: wiederkehrender Trigger möglich?
Beitrag von: Gisbert am 19 Januar 2025, 23:26:10
Hallo frober,

dein Vorschlag funktioniert mit folgender Einschränkung:
Man muss für jede Nachricht ein separates defmod hernehmen, da ansonsten die nachfolgenden Nachrichten der "zweiten Welle" dirket mit der "ersten Welle" rausgeschickt werden, und nur die erste Nachricht der "zweiten Welle" fristgerecht ausgeliefert wird (hoffentlich verständlich genug formuliert).

Also so:
define Tuerkontakt_Haustuer_watchdog watchdog Tuerkontakt_Haustuer:open 00:05:00 Tuerkontakt_Haustuer:closed \
set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';; \
set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];; \
set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];; \
defmod kill1 at +00:05:00 set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';; \
defmod kill2 at +00:05:00 set PushNotifier.Nachricht message Türkontakt Haustür II_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];; \
defmod kill3 at +00:05:00 set NTFY message Title="Türkontakt Haustür II"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];;
attr Tuerkontakt_Haustuer_watchdog activateOnStart 1
attr Tuerkontakt_Haustuer_watchdog autoRestart 1
attr Tuerkontakt_Haustuer_watchdog room IT
attr Tuerkontakt_Haustuer_watchdog verbose 1
#   CFGFN      ./FHEM/Fensterkontakte.cfg
#   CMD       
#set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#defmod kill1 at +00:05:00 set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#defmod kill2 at +00:05:00 set PushNotifier.Nachricht message Türkontakt Haustür II_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#defmod kill3 at +00:05:00 set NTFY message Title="Türkontakt Haustür II"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#   DEF        Tuerkontakt_Haustuer:open 00:05:00 Tuerkontakt_Haustuer:closed
#set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#defmod kill1 at +00:05:00 set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#defmod kill2 at +00:05:00 set PushNotifier.Nachricht message Türkontakt Haustür II_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#defmod kill3 at +00:05:00 set NTFY message Title="Türkontakt Haustür II"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#   FUUID      66c772dd-f33f-e986-8b06-0736c95fb4061370
#   NAME       Tuerkontakt_Haustuer_watchdog
#   NOTIFYDEV  Tuerkontakt_Haustuer_watchdog,Tuerkontakt_Haustuer
#   NR         1538
#   NTFY_ORDER 50-Tuerkontakt_Haustuer_watchdog
#   RE1        Tuerkontakt_Haustuer:open
#   RE2        Tuerkontakt_Haustuer:closed
#   STATE      defined
#   TO         300
#   TYPE       watchdog
#   READINGS:
#     2025-01-19 16:32:06   Activated       activated
#     2025-01-19 16:33:06   Reset           reset
#     2025-01-19 16:33:06   Triggered       triggered
#     2025-01-19 16:32:06   triggeredByDev  Tuerkontakt_Haustuer
#     2025-01-19 16:32:06   triggeredByEvent open
#   helper:
#     bm:
#       watchdog_Define:
#         cnt        9
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        19.01. 15:33:03
#         max        0.000478982925415039
#         tot        0.00303912162780762
#         mAr:
#           HASH(0x55f1803df2b8)
#           Tuerkontakt_Haustuer_watchdog watchdog Tuerkontakt_Haustuer:open 00:00:30 Tuerkontakt_Haustuer:closed
#set Pushover.Nachricht msg 'Türkontakt Haustür' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#set PushNotifier.Nachricht message Türkontakt Haustür_offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#set NTFY message Title="Türkontakt Haustür"offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp];
#at +00:00:30
#set Pushover.Nachricht msg 'Türkontakt Haustür II' 'offen seit: [Tuerkontakt_Haustuer:Tuerkontakt_Haustuer_open_timestamp]';
#       watchdog_Notify:
#         cnt        76
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        19.01. 14:40:35
#         max        0.00224614143371582
#         tot        0.0249722003936768
#         mAr:
#           HASH(0x55f1803df2b8)
#           HASH(0x55f18036b400)
#       watchdog_Set:
#         cnt        100
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        19.01. 15:44:51
#         max        0.000133991241455078
#         tot        0.00285816192626953
#         mAr:
#           HASH(0x55f1803df2b8)
#           Tuerkontakt_Haustuer_watchdog
#           ?
#
setstate Tuerkontakt_Haustuer_watchdog defined
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 16:32:06 Activated activated
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 16:33:06 Reset reset
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 16:33:06 Triggered triggered
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 16:32:06 triggeredByDev Tuerkontakt_Haustuer
setstate Tuerkontakt_Haustuer_watchdog 2025-01-19 16:32:06 triggeredByEvent open

Titel: Aw: [gelöst] watchdog: wiederkehrender Trigger möglich?
Beitrag von: frober am 20 Januar 2025, 09:12:57
Möglich das es sich bei einem at mit mehreren Kommandos anders verhält.Diese Konstellation habe ich noch nicht getestet.

Du kannst aber auch ein sleep anstelle vom at benutzen. Das sleep mit nachfolgendem Kommando blockiert nicht in FHEM und alles was danach kommt wird entsprechend verzögert.