FHEM Forum

FHEM => Automatisierung => Thema gestartet von: thunder1902 am 17 Oktober 2014, 23:17:16

Titel: Batterieüberwachung - Regulärer Ausdruck
Beitrag von: thunder1902 am 17 Oktober 2014, 23:17:16
Hallo!

Ich möchte gerne die Batterieüberwachung von der Seite http://www.fhemwiki.de/wiki/Batterie%C3%BCberwachung anpassen.

Dabei möchte ich einen Sensor abfragen, der folgendes Reading liefert:
ZitatbatVoltage
3.55
.

Ich möchte eine Warn-Email erhalten, wenn der Wert <3 ist.

Wie frag' ich das ab?

Meine Idee:

Zitat#define n_batt_chk notify .*:batVoltage:.* { if("%" !~  m/[0-2]+(.[0-9]{1,2})/){\

Aber das funktioniert nicht - die Email wird bei jedem Wert verschickt.

Der Reguläre Ausdruck der Prüfung wäre
Zitat[0-2]+(.[0-9]{1,2}
- nur wie baue ich das in die vorhandene Abfrage ein?

Kann mir da jemand kurz helfen? Das wäre super!!!
Titel: Antw:Batterieüberwachung - Regulärer Ausdruck
Beitrag von: rudolfkoenig am 18 Oktober 2014, 07:49:07
1. % ist unerwuenscht (deprecated, siehe notify Abschnitt im commandref), man sollte $EVENT verwenden
2. Statt Regexp-Akrobatik wuerde ich ReadingsNum($NAME,"batVoltage",0)<3.55 verwenden. Achtung, diese Funktion hat auch PERL WARNING ausgeloest, was ich gerade behoben habe, d.h. ein update ist erforderlich.
3. man kann perl Ausdruecke im telnet/FHEMWEB einfach testen:
fhem> { "batVoltage 2.55" =~ m/[0-2]+(.[0-9]{1,2})/ ? "Y" : "N" }
Y
fhem> { "batVoltage 3.55" =~ m/[0-2]+(.[0-9]{1,2})/ ? "Y" : "N" }
N

4. !~ bedeuten NICHT zutreffend, was vermutlich nicht gewollt ist.
Titel: Antw:Batterieüberwachung - Regulärer Ausdruck
Beitrag von: Damian am 18 Oktober 2014, 08:40:12
Oder direkt in FHEM:

define n_batt_chk notify .*:batVoltage:.* IF ([$NAME:batVoltage:d]<3.55)({email...


Gruß

Damian