Hallo,
bei meinem Notify für Batteriestatus wird meine Routine "Batterie_warnung" nicht ausgeführt.
.*:[Bb]attery.*:.* { if($EVENT !~ m/ok/) {Batterie_warnung}}
EVENT Monitor
2023-01-05 14:21:21 MQTT2_DEVICE TempLuftTKT battery: low
Habe schon einiges probiert. Kann jemand unterstützen?
Vielen Dank
Hi,
da ist immer die Frage: nicht getriggert oder nicht ausgeführt? Ob getriggert siehst Du in den Readings.
Laut Deiner Zeile Event und dem notify sollte es triggern und das if sollte auch true liefern.
Gruß Otto
Hallo,
Readings vom Notify:
triggeredByDev TempLuftTKT 2023-01-05 15:01:19
triggeredByEvent battery: low 2023-01-05 15:01:19
Habe Notify geändert um einen Log Eintrag zu erstellen:
.*:[Bb]attery.*:.* { if($EVENT !~ m/ok/) {Batterie_warnung};; Log 3, "$NAME : Batteriewarnung $EVENT";;}
es wird kein Log Eintrag geschrieben wenn battery auf low geht
Zitat.*:[Bb]attery.*:.* { if($EVENT !~ m/ok/) {Batterie_warnung}}
ich vermute der Doppelpunkt vor [Bb] ist das Problem.
In deinem Event taucht kein Doppelpunkt vor dem battery auf und somit passt es nicht zu dem gewählten regulären Ausdruck (RegEx)
NEIN der Doppelpunkt ist ok! Suchmuster beim notify ist Device:Event siehe auch https://fhem.de/commandref_modular_DE.html#notify
Dann mach mal nur ein Log
.*:[Bb]attery.*:.* { Log 1, "$NAME : Batteriewarnung $EVENT"}
und poste mal die funktion Batterie_warnung.
falls dort zb bestimmte "setreadings" enthalten sind, könnten die zb "verhindert" werden.
Nach Änderung Notifiy def auf:
.*:[Bb]attery.*:.* { Log 1, "$NAME : Batteriewarnung $EVENT"}
werden Logeinträge geschrieben
2023.01.05 16:11:16 1: TempLuftTKT : Batteriewarnung battery: low
2023.01.05 16:09:15 1: LaCrosse_WzF : Batteriewarnung battery: ok
2023.01.05 16:07:58 1: TempLuftBad : Batteriewarnung batteryPercent: 83.7
usw..
defmod TempLuftTKT dummy
defmod TempLuftTKT_notify notify .*:[Bb]attery.*:.* {if($EVENT !~ m/ok/) {Debug $EVENT}}
setreading TempLuftTKT battery low
ergibt bei mir im Log
2023.01.05 16:18:53 1: DEBUG>battery: low
grundsätzlich funktioniert Deine Definition also.
Habe das:
.*:[Bb]attery.*:.* {if($EVENT !~ m/ok/) {Debug $EVENT}}
bei mir reinkopiert und jetzt funktioniert es. Keine Ahnung was das Problem war.
Danke an alle