Hallo,
ich habe folgendes Problem. Ich möchte meine Fenster nicht zu lange offen stehen haben (~20min maximal). Deswegen habe ich mir ein paar watchdogs für die relevanten Fenster erstellt, die im Aufbau her alle identisch sind und sich nur die überwachten Geräte unterscheiden. Nachfolgend die Raw-Defintion:
defmod KontrolleSchlafzimmerfenster watchdog Alarmanlage:OG1:.Offen 00:20:00 Alarmanlage:OG1:.Geschlossen\
set TelegramMessenger.* send Das Schlafzimmerfenster steht seit 20 Minuten offen. Bitte umgehend schließen.;;\
trigger KontrolleSchlafzimmerfenster .
"Alarmanlage" ist ein HTTPMOD-Gerät, das für jeden Kontakt eine Reading hat (hier: OG1), die wiederum zwei Stati besitzen (Offen oder Geschlossen). Sobald also der Status "Offen" im überwachten Kontakt angenommen wird, soll dieser innerhalb von 20min wieder geschlossen werden (Status "Geschlossen" im Reading). Falls das nicht passiert soll per Telegram eine Nachricht an die Nutzer gesendet werden.
Das Problem ist jetzt nur, dass der watchdog die Nachricht immer sendet, selbst wenn der Kontakt bereits wieder geschlossen wurde. Vielleicht findet ja jemand von euch meinen Denkfehler.
mfG Bednorz
Vermutlich sind die Events nicht genau so, wie die Regexps.
Kannst du bitte beide im Event-Monitor anzeigen lassen, und hier anhaengen?
Hallo,
habe eben testweise das Fenster kurz geöffnet und wieder geschlossen. Das taucht dann im Event Monitor auf:
2018-01-15 12:51:57 HTTPMOD Alarmanlage OG1: Offen
2018-01-15 12:52:03 HTTPMOD Alarmanlage OG1: Geschlossen
mfG Bednorz
Die Ursache: nach Alarmanlage:OG1:.Geschlossen folgt ein NeewLine und nicht ein Leerzeichen, deswegen gehoert NL zum RegeExp2, und deswegen passt "Alarmanlage OG1: Geschlossen" nicht.
Die Loesung: vor dem ersten \ ein Leerzeichen einfuegen.
Vielen Dank. Jetzt funktioniert's.
Da hätte ich ja echt noch Stunden und Tage suchen können.
mfG Bednorz