FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: WhyTea am 21 Juli 2016, 11:37:04

Titel: Batteriewarnung optimieren
Beitrag von: WhyTea am 21 Juli 2016, 11:37:04
Hallo
Mithilfe des unten zu sehen Codeschnipsels überwache ich den Batteriestatus von meinem Homematic Geräten.
Das funktioniert auch nur leider wird das Gerät welches den Batteriestatus meldet nicht erfasst.

define n_batt_chk notify .*[Bb]attery:.* { if($EVENT !~ m/ok/) {\
  { sendEmail('xxx@xxx.de', '***FHEM*** Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME: $EVENT";; \
  } \
}
attr n_batt_chk room Zentralsysteme

Logausgabe:
2016.07.20 19:29:58 3: hm: ERR_battery: low:1,

Kann mir jemand dabei helfen wie ich den Namen des Devices noch mitgeteilt bekomme?

Gruß
Daniel
Titel: Antw:Batteriewarnung optimieren
Beitrag von: frank am 21 Juli 2016, 12:07:03
mir scheint, dass die meldung von hminfo ist. hm ist also dein meldendes device (hminfo) mit der entsprechenden batterie-"sammelmeldung".
das tatsächliche device muss natürlich auch eine meldung senden, damit das notify darauf reagieren kann. wenn du in diesem device aber event-on-change gesetzt hast, kommen hier natürlich keine weiteren meldungen. eventuell hast du die erste meldung verpasst.
Titel: Antw:Batteriewarnung optimieren
Beitrag von: betateilchen am 21 Juli 2016, 12:38:10
Der Name des devices (oder der devices, denn es können auch mehrere gleichzeitig sein) steht im device hm unterr Err_names (oder so ähnlich, bin grade nicht zuhause)

Ein separates notify wie in der Frage angegeben, ist für homematic Komponenten völlig überflüssig.
Titel: Antw:Batteriewarnung optimieren
Beitrag von: WhyTea am 21 Juli 2016, 12:54:02
Oh ok du hast recht das internal ERR_names beinhaltet den Namen. :)




Titel: Antw:Batteriewarnung optimieren
Beitrag von: WhyTea am 21 Juli 2016, 14:39:48
Ich hab das mal versucht umzusetzen. Leider nur mit mäßigem erfolg.

define n_batt_chk at +*00:01:00 {\
my $ERR_battery=ReadingsVal("hm","ERR_battery","ok");;\
my $ERR_names=InternalVal("hm","ERR_names",0);;\
IF ([hm:ERR_battery] ne "ok") (sendEmail('xxx@xxxl.de', '***FHEM*** Batteriewarnung', $ERR_battery.': '.$ERR_names), set Alle_Batterien low)\
}
attr n_batt_chk room Zentralsysteme


bringt den Fehler
2016.07.21 14:35:47 3: n_batt_chk: syntax error at (eval 623) line 4, near "hm:"

Ich sehe den Fehler aber nicht.
Titel: Antw:Batteriewarnung optimieren
Beitrag von: marvin78 am 21 Juli 2016, 16:31:27
Du befindest dich im Perl-Bereich und versuchst mit FHEM IF zu arbeiten. Das wird so nicht gehen.