Batterieüberwachung - Regulärer Ausdruck

Begonnen von thunder1902, 17 Oktober 2014, 23:17:16

Vorheriges Thema - Nächstes Thema

thunder1902

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!!!

rudolfkoenig

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.

Damian

Oder direkt in FHEM:

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


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF