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
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?
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?
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
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
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 :-)
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
Ja das geht ;)
FB7590:vpn\d{1,2}_state:.ready 00:05 FB7590:vpn\d{1,2}_state:.not\sactive set vpncheck_at execNow
wenn schon, denn schon...
FB7590:vpn\d+_state:.ready 00:05 FB7590:vpn\d+_state:.not\sactive set vpncheck_at execNow