FHEM Forum

FHEM => Automatisierung => Thema gestartet von: heinzfo am 30 März 2024, 08:31:51

Titel: watchdog wiederholt ausführen
Beitrag von: heinzfo am 30 März 2024, 08:31:51
Hallo

Warum wird dieser watchdog nicht wiederholt ausgeführt, was mache ich falsch?

defmod vpncheck_wd watchdog FB7590:vpn[0-9]_state:.ready 00:05:00 FB7590:vpn[0-9]_state:.not.active {\
fhem "set vpncheck_at execNow"}
attr vpncheck_wd autoRestart 1
attr vpncheck_wd comment print "Element $i of array1: $array1[$i]\n";;\
print "Element $i of array2: $array2[$i]\n";;
attr vpncheck_wd disable 0
attr vpncheck_wd group FritzBox
attr vpncheck_wd icon secur_locked
attr vpncheck_wd room IT_Equipment
attr vpncheck_wd sortby 07

Grüße
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: rudolfkoenig am 30 März 2024, 10:32:20
Ich habe die Definition eingespielt und mit Hilfe von dummy+trigger ausgeuehrt: bei mir wird der watchdog wiederholt ausgefuehrt.
Mir kommt die Definition aber komisch vor: warum soll im Normalfall(!) "not active" nach ready  kommen?
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: kadettilac89 am 30 März 2024, 11:57:32
Zitat von: heinzfo am 30 März 2024, 08:31:51Hallo

Warum wird dieser watchdog nicht wiederholt ausgeführt, was mache ich falsch?

Poste mal die Events die erzeugt werden. Hast du irgend ein stateformat oder anderes was die Events anders aussehen ließen? Oder einen Filter mit event-on-**-reading?

Zusätzlich mal ein verbose 4 oder 5 beim Monitoring device. Gibt es da irgend was verdächtiges?
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: heinzfo am 30 März 2024, 12:45:36
Leider löst der gezeigte watchdog jetzt gar nicht mehr :-(
Komischerweise ist der setstate "triggeredByEvent" vpn4_state: ready

2024-03-30 12:40:49 FRITZBOX FB7590 vpn10_state: ready
2024-03-30 12:40:49 FRITZBOX FB7590 vpn10_remote_ip: 123456
2024-03-30 12:40:49 FRITZBOX FB7590 vpn10_last_negotiation: 30-03-2024 12:39:28
2024-03-30 12:41:52 FRITZBOX FB7590 vpn10_state: not active

defmod vpncheck_wd watchdog FB7590:vpn[0-9]_state:.ready 00:05:00 FB7590:vpn[0-9]_state:.not.active {\
fhem "set vpncheck_at execNow"}
attr vpncheck_wd autoRestart 1
attr vpncheck_wd comment print "Element $i of array1: $array1[$i]\n";;\
print "Element $i of array2: $array2[$i]\n";;
attr vpncheck_wd disable 0
attr vpncheck_wd group FritzBox
attr vpncheck_wd icon secur_locked
attr vpncheck_wd room IT_Equipment
attr vpncheck_wd sortby 07

setstate vpncheck_wd defined
setstate vpncheck_wd 2024-03-30 06:58:28 Activated activated
setstate vpncheck_wd 2024-03-30 07:03:28 Reset reset
setstate vpncheck_wd 2024-03-30 07:03:28 Triggered triggered
setstate vpncheck_wd 2024-03-30 12:14:28 state defined
setstate vpncheck_wd 2024-03-30 06:58:28 triggeredByDev FB7590
setstate vpncheck_wd 2024-03-30 06:58:28 triggeredByEvent vpn4_state: ready
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: kadettilac89 am 30 März 2024, 13:07:13
Zitat von: heinzfo am 30 März 2024, 12:45:36Leider löst der gezeigte watchdog jetzt gar nicht mehr :-(
Komischerweise ist der setstate "triggeredByEvent" vpn4_state: ready

2024-03-30 12:40:49 FRITZBOX FB7590 vpn10_state: ready
2024-03-30 12:40:49 FRITZBOX FB7590 vpn10_remote_ip: 123456
2024-03-30 12:40:49 FRITZBOX FB7590 vpn10_last_negotiation: 30-03-2024 12:39:28
2024-03-30 12:41:52 FRITZBOX FB7590 vpn10_state: not active



works as designed. Du hast in der Definition vpn[0-9]. Das event ist aber vpn10 was dein regex nicht abdeckt. 0-9 ist genau ein nummerischer Wert. 10  sind aber 2 Ziffern

Edit: teste mal das hier -- vpn[0-9]{1,2} -- {1,2} sagt, ein oder zwei Vorkommnisse der Bedingung davor oder -- ([1-9]|1[0-9]) -- ungetestet. Ich weiß nicht wie viel hier Perl auflöst
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: heinzfo am 30 März 2024, 13:50:16
Ja genau  8)

So geht es nun bis vpn15

FB7590:vpn(1[0-5]|[0-9])_state:.ready 00:05:00 FB7590:vpn(1[0-5]|[0-9])_state:.not.active {
fhem "set vpncheck_at execNow"}

Danke :-)
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: betateilchen am 31 März 2024, 18:40:41
ob diese Art der numerischen Auswertung per regex sinnvoll ist, mag ich jetzt nicht beurteilen, aber zumindest der Ausführungsteil geht noch einfacher:

FB7590:vpn(1[0-5]|[0-9])_state:.ready 00:05:00 FB7590:vpn(1[0-5]|[0-9])_state:.not.active set vpncheck_at execNow
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: heinzfo am 31 März 2024, 19:29:03
Ja das geht  ;)

FB7590:vpn\d{1,2}_state:.ready 00:05 FB7590:vpn\d{1,2}_state:.not\sactive set vpncheck_at execNow
Titel: Aw: watchdog wiederholt ausführen
Beitrag von: betateilchen am 31 März 2024, 19:47:58
wenn schon, denn schon...

FB7590:vpn\d+_state:.ready 00:05 FB7590:vpn\d+_state:.not\sactive set vpncheck_at execNow