Hallo zusammen,
ich habe versucht, für diejenigen Sensoren, die einen Batteriezustand senden, die Batteriewarnung (http://www.fhemwiki.de/wiki/Batterie%C3%BCberwachung) einzurichten.
Wenn ich den Code
define n_batt_chk notify .*:[Bb]attery.* { if($EVENT !~ m/ok$/mi/) { \
{ FB_mail('recipient@internet.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
Log 3, "$NAME : Batteriewarnung $EVENT";; \
} \
}
(natürlich mit angepasster Mailadresse) in mein fhem.cfg kopiere, kommt nach einem
trigger Bad_T_H2 battery:low
auf der Kommandozeile im Log-File
2014.07.29 18:45:41 3: n_batt_chk return value: syntax error at (eval 66930) line 1, near "/) "
syntax error at (eval 66930) line 1, near "; }"
Dann habe ich im Forum mal etwas gestöbert und folgendes in die Kommandozeile eingegeben:
define Batteriecheck notify *:[Bb]attery.* {if("$EVENT" !~ /ok/) { FB_mail('recipient@internet.de', 'FHEM Batteriewarnung', $NAME." ".$EVENT)}}
und siehe da, mit trigger Bad_T_H2 battery:low
wird die Mail versendet. 91_notify.pm mault zwar schwer rum, aber die Mail wird verschickt.
Gretchenfrage für die Könner: Woran liegt das? Ich dachte immer, die Wiki Schnipsel funktionieren schon irgendwo >:(
Vielen Dank und viele Grüße
PeMue
Hallo,
bei mir schaut der Code (nicht aus der fhem.cfg ;) ) so aus:
.*:[Bb]attery.* {
if($EVENT !~ m/ok/) {
if (Value("Zustands_Warnung") ne "Batterie") {
Log(3,"$NAME: Batteriewarnung $EVENT");
fhem("set Batteriestatus_Led led red");
fhem ("set Zustands_Warnung on");
DebianMail('xxx.yyy@zzz.ab',$NAME,$EVENT);
}
}
}
so aus und funktioniert einwandfrei.
Grüße
Hallo zusammen,
nach ein bisschen rumprobieren habe ich eine Lösung gefunden, direkt in der DEF des notifys editiert:
.*:[Bb]attery.* {
if($EVENT !~ m/ok/) {
FB_mail('recipient@internet.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT);
Log 3, "$NAME : Batteriewarnung $EVENT";
}
}
Was ich nach dem Speichern in die fhem.cfg festgestellt habe:
- die Zeilen werden mit\ (direkt nach dem letzten Zeichen) maskiert
- die Strichpunkte werden verdoppelt (Prozentzeichen hatte ich nicht)
- das @ wurde (im Gegensatz zu der Bemerkung in UliM's Leitfaden V4.0) nicht verdoppelt >:(
Sprich: wenn keiner etwas dagegen hat, werde ich den Wiki (http://www.fhemwiki.de/wiki/Batterie%C3%BCberwachung) Artikel anpassen:
!~ m/ok$/mi/
durch !~ m/ok/
ersetzen und die Backslashe direkt nach dem entsprechenden Zeichen setzen.
@Puschel bzw. @UliM: danke für den Tipp bzw. die S. 38 im Einsteigerleitfaden ;)
Als ehemaliger Pascal (http://de.wikipedia.org/wiki/Pascal_%28Programmiersprache%29) Programmierer würde ich die Starklammern lieber vorne setzen, aber das ist sicherlich Geschmackssache.
Gruß PeMue
Edit: Wiki ist angepasst ...
@PeMue - schreibst Du bei der Wiki-Überarbeitung dann bitte auch dazu, auf welche Art der Konfigurationsbearbeitung (http://www.fhemwiki.de/wiki/Konfiguration) sich die Beschreibung dann bezieht?
Danke, Peter
Ich habe das bei mir noch ein bißchen anders gelöst:
.*[Bb]attery:.(?!ok).*
Dadurch spart man sich den if-Teil, denn das notify wird überhaupt nur getriggert, wenn nach dem "attery:." irgendetwas anderes als "ok" kommt.
Müsste effektiv das gleiche in grün sein, nur vielleicht noch ein klein bißchen effizienter.