Batteriewarnung, vermutlich die hundertste ...

Begonnen von PeMue, 29 Juli 2014, 19:42:43

Vorheriges Thema - Nächstes Thema

PeMue

Hallo zusammen,

ich habe versucht, für diejenigen Sensoren, die einen Batteriezustand senden, die Batteriewarnung 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

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

PeMue

#2
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 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 Programmierer würde ich die Starklammern lieber vorne setzen, aber das ist sicherlich Geschmackssache.

Gruß PeMue

Edit: Wiki ist angepasst ...
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

ph1959de

@PeMue - schreibst Du bei der Wiki-Überarbeitung dann bitte auch dazu, auf welche Art der Konfigurationsbearbeitung sich die Beschreibung dann bezieht?

Danke, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Brockmann

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.