bei Error Pushover-Message

Begonnen von justcallmeal, 12 Februar 2018, 16:42:19

Vorheriges Thema - Nächstes Thema

justcallmeal

Hallo Leutz,

ich kriegs einfach nicht hin, trotz vieler Vorlagen im Netz etc. etc.
Ich möchte, dass ich eine Meldung aufs Handy bekomme, wenn bei meiner keyMatic der Status des readings "error" vom Normalzustand "none" in einen anderen übergeht.

Nach einigen Versuchen bin ich zuletzt hierbei hängengeblieben:

define keyMaticError at +*00:20:00 notify keyMatic { if (ReadingsVal("error") ne "none") {fhem ("set Pushover msg 'Fehlermeldung KeyMatic!' '' 1 ''")    }  }

Sollte bezwecken, dass alle 20 minuten nachgeschaut wird, ob der Status ungleich "none" ist.
Funzt aber nicht :-(

Ich könnte mir vorstellen, dass es noch eleganter geht, - vielleicht mag mir jemand mal Schützenhilfe geben :-)


VG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

Wuehler

Das ist eine interessante Mischung aus at und notify. Vielleicht reicht es schon, das notify keymatic zu entfernen. Besser wäre aber ein echtes notify und kein at.
Kannst du den error einfach erzeugen? Wenn ja, dann den EventMonitor vorher starten und das notify aus dem EventMonitor erzeugen (siehe Wiki).

Kurz gehalten wegen Handy.

justcallmeal

Zitat von: Wuehler am 12 Februar 2018, 17:43:03
...Vielleicht reicht es schon, das notify keymatic zu entfernen.
Wenn ich das mache, dann kommt dies im LogFile:
2018.02.12 18:01:16 3: keyMaticError: Not enough arguments for main::ReadingsVal at (eval 13614) line 1, near ""error") "
Zitat von: Wuehler am 12 Februar 2018, 17:43:03
Besser wäre aber ein echtes notify und kein at.
Mir ist alles recht, hauptsache ich kriege eine zeitnahe meldung, wenn das error-reading nicht mehr "none" ist.
Zitat von: Wuehler am 12 Februar 2018, 17:43:03
Kannst du den error einfach erzeugen?
Das gerade nicht, aber ich nehme zum Testen das reading "state" welches ich erzeugen kann.
Zitat von: Wuehler am 12 Februar 2018, 17:43:03
Wenn ja, dann den EventMonitor vorher starten und das notify aus dem EventMonitor erzeugen (siehe Wiki).
hm, da muss ich drüber nachdenken. Vielleicht verstehe ich es wenn ich das im Eventmonitor sehe...

VG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

kadettilac89

test als notify das regex ^(?!none)


define keyMagic notify ^(?!none) set .... pushover befehl ....


DAmit solltest du für jedes Event ausgeschlossen none benachrichtigt werden.

justcallmeal

Zitat von: kadettilac89 am 12 Februar 2018, 18:32:51
test als notify das regex ^(?!none)

Kannst Du das etwas genauer beschreiben? Wie soll ich das testen?
Wie weiß "fhem", dass hiermit das reading "error" gemeint ist.

VG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

kadettilac89

#5
Notify syntax je nach event

<device>:<reading>.* --> .* steht für alle Werte. Wenn du eine Werteliste willst dann ersetzt du das mit (Wert1|Wert2|Wert3). Bei dir z. B. (error|failed|away).

`?!´ ist zum negieren. Das wollte ich damit andeuten.

Schau dir hierzu am besten das Wiki an, da sind eine Menge Beispiele zu notify.

Regex überfordert dich wahrscheinlich, versuchs mit IF

defmod ntf_error notify keyMatic:error:.* \
{ if ($EVTPART1 ne 'none' ) \
  { fhem('set pushover xxxxx') } \
}

--> wie dein Notify genau aussehen muss kannst du dir im Eventmonitor anzeigen lassen, Zeile des Events markieren und notify-Code anzeigen lassen.

justcallmeal

#6
...wow, wieder was gelernt.  -  Vielen Dank für Deine Mühe!
Das liest sich jetzt für mich schon eher so, dass ich es nachvollziehen kann.
Bis gestern wusste ich gar nicht was "Regex" ist, bis ich es aufgrund Deiner Antwort nachgelesen hatte.
Richtig kapiert habe ich es immer noch nicht, insofern hast Du recht, dass es mich im Moment noch überfordert.

Ich denke ich werde es mit dem "if"-Code -entsprechend Deinem Vorschlag- versuchen, den verstehe ich wenigstens  :)
Jedenfalls hast Du mich schon sehr viel weitergebracht und das mit dem Regex habe ich noch nicht aufgegeben zu verstehen  ;)

VG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

justcallmeal

Zitat von: kadettilac89 am 12 Februar 2018, 22:01:54

defmod ntf_error notify keyMatic:error:.* \
{ if ($EVTPART1 ne 'none' ) \
  { fhem('set pushover xxxxx') } \
}


funktioniert prima, - Vielen Dank nochmal!
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.