FHEM: Rechtzeitige Benachrichtigung bei leeren Batterien

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Wer funkbasierte¬†Smart-Home-Devices nutzt, muss die zur Stromversorgung¬†ben√∂tigten¬†Batterien¬†regelm√§√üig austauschen. Standardm√§√üig wird der¬†aktuelle Batteriezustand in FHEM zwar¬†im jeweiligen Ger√§t dargestellt, dort regelm√§√üig den Status zu pr√ľfen, um einen rechtzeitigen Tausch sicherzustellen, ist¬†auf Dauer aber doch¬†eher unpraktisch.

Aus diesem Grund zeigt das nachfolgende Howto, wie¬†der¬†Batteriestatus aller Ger√§te¬†√ľbersichtlich dargestellt und eine monatliche Pushover-Benachrichtigung¬†nachger√ľstet werden kann, die automatisch √ľber anstehende Batteriewechsel¬†informiert.

Batteriestatus aller Geräte visualisieren

Fast jedes¬†batteriebetriebene¬†Ger√§t, das¬†per Funk in¬†FHEM angelernt wurde, teilt entweder¬†periodisch und/oder¬†bei Status√§nderungen seinen¬†aktuellen Energiestatus¬†mit, welcher im Reading „battery“ angezeigt und gew√∂hnlich auch im ger√§tespezifischen Logfile abgespeichert wird.

Device mit Reading battery

Um das zu verbessern, werden im ersten Schritt¬†alle Devices, welche¬†das Reading „battery“ besitzen, in einer √ľbersichtlichen¬†Liste dargestellt, sodass¬†der Anwender¬†den aktuellen Status sofort ablesen¬†kann.

FHEM readingsGroup Batterieueberwachung

F√ľr die Umsetzung wird das Attribut readingsGroup genutzt, welches genau f√ľr solche¬†Zwecke vorgesehen ist.

Dazu wird die¬†fhem.cfg mit nachfolgendem Code gef√ľttert:

#Batteriestatus aller Devices im Raum Zentral anzeigen
define ZE.Batterie readingsGroup .*:[Bb]attery\
.*:[Bb]atteryLevel
attr ZE.Batterie notime 1
attr ZE.Batterie room Zentral
attr ZE.Batterie valueFormat {return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );; return "25" if( $VALUE < 2.1 );; return "50" if( $VALUE < 2.3 );; return "75" if( $VALUE < 2.5 );; return "100"}
attr ZE.Batterie valueIcon {'battery.0' => 'measure_battery_0@red','battery.100' => 'measure_battery_100@green','Battery.0' => 'measure_battery_0@red','Battery.100' => 'measure_battery_100@green','batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@red','batteryLevel.50' => 'measure_battery_50@orange','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}

Dabei werden automatisch alle Ger√§te einbezogen, die ein Reading des Typs „Battery“ bzw. „battery“ besitzen.

Mit dem Attribut „notime 1“ wird der Zeitstempel in der¬†erzeugten Gruppe ausgeblendet. Wer dies nicht m√∂chte, kann den Eintrag nat√ľrlich auch weglassen oder mit einer Raute (#) am Zeilenanfang auskommentieren.

Durch das¬†Attribut „room Zentral“¬†taucht die Liste dann im gleichlautenden Raum auf.

Das Attribut „valueFormat“ schnappt dich die vorhandenen Batteriestatuswerte und formatiert diese passend um. Dabei geben einige Sensoren, wie bspw. die optischen HomeMatic Fensterkontakte (Affiliate-Link) den Batteristatus mit „ok“ bzw. „low“ an, welche dann in die Werte „100“ bzw. „0“ umgewandelt werden. Andere Sensoren geben hingegen den Batteristand¬†in Volt an, welcher √ľber obige Logik dann¬†entsprechend¬†in die Werte „0“, „25“, „50“, „75“ und „100“ umformatiert wird, was dann eine genauere Batteriestandsanzeige erlaubt.

Mit dem letzten Attribut „valueIcon“ werden dann die gerade umformatierten¬†Werte in ein passenden Icon inklusive verschiedener Farbgebung √ľbersetzt, wodurch man schnell erkennen kann, welche Batterie getauscht werden sollte.

Monatliche Benachrichtigung per Pushover

Neben der Tabelle, die ab sofort¬†f√ľr mehr √úbersichtlichkeit sorgt, macht es aber auch noch Sinn¬†eine zus√§tzliche¬†Benachrichtigung einzurichten, um aktiv informiert zu werden, sobald eine Batterie erneuert werden sollte. Damit das nicht allzu sehr nervt, habe ich die Idee von Frederic¬†umgesetzt, der eine monatliche Benachrichtigung vorgeschlagen hatte.

#Pushover-Benachrichtigung bei leeren Batterien
define BatteryLowPushover at *19:00:00 { if ( $mday <= 6 && $wday == 0 )\
 {if (ReadingsVal("AZ.Fenster.Geschlossen", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Arbeitszimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}\
 };;\
 {if (ReadingsVal("BZ.Fenster.Geschlossen", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Badezimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}\
 };;\
 {if (ReadingsVal("BZ.KlimaClimate", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Badezimmer Klimasensor' 'Bitte Batterie tauschen' '' 0 ''")}\
 };;\
 {if (ReadingsVal("BZ.Tuer.Geschlossen", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Badezimmer T√ľr' 'Bitte Batterie tauschen' '' 0 ''")}\
 };;\
 {if (ReadingsVal("FL.Tuerschloss", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Flur T√ľrschloss' 'Bitte Batterie tauschen' '' 0 ''")}\
 };;\
}

Dabei wird f√ľr alle angegebenen Ger√§te einmal¬†am ersten Sonntag eines neuen Monats um 19:00 Uhr gepr√ľft, wie die aktuellen Batteriest√§nde aussehen¬†und entsprechend¬†eine Pushover-Benachrichtung abgesendet, sofern der Batteriestatus eines Ger√§ts gering („low“) ist.

Pushover iPhone

Auf den Pushover-Dienst wird an dieser Stelle nicht weiter eingegangen. Weitere Informationen dazu sind im Blogpost Raumklima im Smart Home mit FHEM verbessern: Taupunktoptimiertes L√ľften zu finden.

Hier muss jeder¬†selbst die bestehenden Eintr√§ge durch die eigenen Devices ersetzen bzw. weitere entsprechend¬†erg√§nzen. Zum besseren Verst√§ndnis sind im¬†obigen Beispiel auch die ersten f√ľnf Ger√§te angegeben, deren Namen direkt aus der im vorhergehenden¬†Schritt¬†erzeugten Liste entnommen wurden.

Wer die Benachrichtigung nicht am Sonntag (erster Tag der Woche in der FHEM-Logik) versenden möchte, kann die 0 bei

$wday == 0

entsprechend √§ndern. 1 steht f√ľr Montag, 2 f√ľr Dienstag, etc.

Und wer die Benachrichtung bspw. immer am ersten Tag des Monats, egal welcher Wochentag das dann auch sein mag, senden möchte, muss

$mday <= 6 && $wday == 0

einfach in

$mday == 1

abändern.

Aus meinem täglichen Leben

Bisher habe¬†ich die¬†Batterie√ľberwachung aus dem FHEM-Wiki¬†genutzt, die immer sofort Alarm schlug, sobald eine Batterie leer wurde. Das war¬†auf Dauer aber¬†eher¬†nervig und so hoffe ich, dass¬†die oben beschriebene Methode k√ľnftig etwas nervenschonender ist.

Im Grunde¬†halten die Batterien bisher bei all meinen im Einsatz befindlichen HomeMatic-Ger√§ten sehr lange. Aber man weiss ja nie, gerade beim KeyMatic (Affiliate-Link) w√§ren leere Batterien schon wirklich nervig, da dann die T√ľr nicht mehr automatisch aufsperren w√ľrde.

An dieser Stelle einmal ein rie√üen Lob an HomeMatic, √ľber den ich bereits im Mai 2013 im Artikel Keymatic per HMLan am FHEM-Server anlernen gebloggt hatte und der mich bisher nie im Stich gelassen hat. Die dort eingesetzten Eneloops (Affiliate-Link) musste ich bisher auch erst einmal nachladen.

Zusätzlich lasse ich mir jetzt noch eine Liste aller (funkbasierten) Geräte anzeigen, deren Aktvititätsstatus in FHEM verarbeitet wird. So lässt sich dann auch recht einfach erkennen, ob ein Gerät ausgefallen ist.

#Aktivitätsstatus aller Devices im Raum Zentral anzeigen
define ZE.Activity readingsGroup .*:Activity
attr ZE.Activity notime 1
attr ZE.Activity room Zentral
attr ZE.Activity valueIcon {'Activity.unknown' => 'unknown@orange','Activity.dead' => 'unknown@red','Activity.alive' => 'general_ok@green'}

So sieht das dann im Raum Zentral aus:

FHEM readingsGroup Aktivitaetsstatus

Affiliate-Links

[easyazon_image align=“none“ height=“200″ width=“38″ identifier=“B00LFLHZZ6″ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/affiliate/B00LFLHZZ6_2.gif“ tag=“meintechblog-150831-21″ target=“_blank“ rel=“nofollow“>[easyazon_image align=“none“ height=“200″ width=“140″ identifier=“B00FFE1CDA“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/affiliate/B00FFE1CDA.gif“ tag=“meintechblog-150831-21″ target=“_blank“ rel=“nofollow“>[easyazon_image align=“none“ height=“200″ width=“139″ identifier=“B00IWS52MI“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/affiliate/B00IWS52MI.gif“ tag=“meintechblog-150831-21″ target=“_blank“ rel=“nofollow“>

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Verpasse keine Inhalte mehr! Trage dich in den Newsletter ein und folge uns auf Facebook.

Was ist ein Affiliate-Link? Wenn du auf einen Affiliate-Link klickst und √ľber diesen Link einkaufst, bekomme ich vom betreffenden Online-Shop oder Anbieter eine Provision, was mich u.A. bei den laufenden Kosten den Blogs unterst√ľtzt. F√ľr dich ver√§ndert sich der Preis nicht.

Jörg

hat meintechblog.de ins Leben gerufen, um seine Technikbegeisterung und Erkenntnisse zu teilen. Er veröffentlicht regelmäßig Howtos in den Bereichen Smart Home und Home Entertainment. Mehr Infos

107 Gedanken zu „FHEM: Rechtzeitige Benachrichtigung bei leeren Batterien“

  1. Moin, die zentrale Übersicht ist viel besser als alles in den einzelnen Räumen anzuzeigen, super !
    Er hat bei mir nicht alle HM Heizungsthermostate eingesammelt, nur 4 von 6. Nat√ľrlich habe ich die Logs sowie die Eigenschaften gepr√ľft, sieht alles identisch aus. Evtl. noch eine Idee ?
    Was f√ľr Erfahrungen gibt es in den HM Thermostaten mit Eneloop Akkus bzw. Amazon Basics ?
    Gruß Axel Ahlborn

    1. Hi Axel,
      werde die HM Heizungsthermostate in meiner neuen Wohnung erst noch in Betrieb nehmen. Sofern ich auf das gleiche Problem sto√üe wie du, folgt ein Update. Haben die beiden nicht „eingesammelten“ Thermostate bei dir auch jeweils das Reading „battery“? Zur Not w√ľrde ich die betreffenden Thermostate einfach einmal rausl√∂schen und neu anlernen. Vorher nat√ľrlich noch ein Backup erstellen!
      Erfahrungen mit Akkus (Eneloop bzw. Amazon Basics) in den HM Thermostaten habe ich noch keine, da die mitgelieferten AA-Batterien noch funktionieren.

      Gr√ľ√üe
      Jörg

  2. Hallo Jörg,
    super die neue Funktion. Werde es demn√§chst auch bei mir einbauen, um regelm√§√üig mit einem guten Gef√ľhl einschlafen zu k√∂nnen.
    Hatte es bei mal so, dass die Batterie des Haupt-Relais der Heizung leer war und ich erst nach zwei Tagen festgestellt habe, dass die Batterie nicht mehr genug Saft hatte.

  3. Hallo Jörg,

    wieder einmal ein super Artikel, vielen Dank daf√ľr.
    Habe die „Batterie√ľberwachung“ in nicht mal 5 Minuten nachgebaut, nun habe ich alle meine batteriebetriebenen Sensoren im Blick (Homematic unc LaCrosse).
    Leider liefern die LaCrosse-Temperatursensoren keine Activity-Reading (nur Temp, Humidity und State), deshalb kann ich diese nicht im Aktivit√§tsstatus √ľberwachen.

  4. Moin,

    die Batterieanzeige funktioniert super.
    Leider habe ich ein T√ľr/Fenster-Kontakt von meinen FHT80 der Battery gro√ü schreibt, damit klappt das √úbersetzen der 100 in das Bild nicht mehr.
    in der 2. Zeile wird nur f√ľr battery der Wert angepasst.
    Ich habe diese Zeile einfach doppelt in die Konfig, einmal klein- und einmal großgeschrieben aufgenommen, nun geht es :)

    Viele Gr√ľ√üe

    juniorfux

  5. Hallo Jörg,

    wieder mal ein super Beitrag, w√ľsste garnicht was mein FHEM ohne euren Blog machen w√ľrde :)
    Habe noch ein kleines Problem, evtl hast ja eine Idee.
    Mein HM Heizungsthermostat (habe erst einen zum testen) wurde nicht angezeigt. Bei den readings vom Thermostat heißt der Punkt batteryLevel.
    Habe es in der config so angepasst:
    define Batterie_Status readingsGroup .*:[Bb]attery\
    .*:[Bb]atteryLevel
    attr Batterie_Status notime 1
    attr Batterie_Status room tools
    attr Batterie_Status valueFormat {return „0“ if( $VALUE eq „low“ );; return „100“ if( $VALUE eq „ok“ );; return „25“ if( $VALUE < 2.1 );; return "50" if( $VALUE < 2.3 );; return "75" if( $VALUE ‚measure_battery_0@red‘,’battery.25′ => ‚measure_battery_25@red‘,’battery.50′ => ‚measure_battery_50@orange‘,’battery.75′ => ‚measure_battery_75@green‘,’battery.100′ => ‚measure_battery_100@green‘}

    Damit wird in der √úbersicht das Thermostat angezeigt, aber ohne Icon. Statt dem Icon steht da 100 (original reading ist 3.1).
    Hättest du mir evtl nen Tip wie ich das Icon angezeigt bekomme?
    Danke

    Gruß Andi

    1. Hi Andi!
      Freut mich, dass du ein regelmäßiger Blogleser bist und dich auch bereits zum Newsletter angemeldet hast!
      Ich habe den Code im Blogpost nochmal angepasst, sodass es auch bei mit deinen Thermostaten funktionieren sollte.

      Gr√ľ√üe
      Jörg

      PS: Wenn du uns unterst√ľtzen m√∂chtest, kannst du unsere Inhalte auf Facebook teilen und unsere Seite liken. Dazu ist nat√ľrlich auch jeder andere Leser eingeladen :)

    2. Hallo Jörg,

      danke f√ľr die schnelle Antwort, funktioniert jetzt 1a :)
      geliked hab ich euch nat√ľrlich auch :)

  6. Hallo Jörg,
    mein oben geschildertes Problem löst sich mit dem Beitrag von Andi, die beiden fehlenden Systeme zeigen beim Reading nur batteryLevel, aber nicht Battery an. Identischer Firmwarestand 1.3. Naja sei es drum. Ich werde mir Andis Skript mal genauer anschauen und das ggf. implementieren.
    @Andi vielen Dank daf√ľr.
    Fehlen nur noch Erfahrungen mit den Eneloops bzw. Amazon Basics, aber meine Batterien zeigen auch noch 3V an.

    Gruß Axel

    1. Komisch, aber egal. Kannst einfach den Code im Blogpost 1:1 √ľbernehmen. Dieser ist entsprechend angepasst und sollte direkt funktionieren.

      Gr√ľ√üe
      Jörg

    2. Hi,
      ich habe das gleiche Problem wie du, manche Devices haben trotz identischer Firmware usw kein Battery und nur ein BatteryLevel
      Und zwar bei mir ein HM-TC-IT-WM-W-EU (da hab ich nur eins also keinen Vergleich), daf√ľr hat das Climate von dem Thermostat ein battery Reading

      Und ein Heizungsregler HM-CC-RT-DN hat bei mir kein battery (die anderen allerdings schon bei gleichem Stand)
      Wenn ich dazu noch was finde, wie man das battery Reading auch bei den anderen einblenden lassen kann meld ich mich ;-)

      Ich habe meine Anzeige noch etwas angepasst, da ich den Batterielevel als Zahl angezeigt haben wollte

      .*:[Bb]attery,[Bb]atteryLevel

      Wenn kein battery vorhanden ist rutschen die Felder danach nach links, was etwas irritierend aussieht.

      Viele Gr√ľ√üe
      Ina

    3. Hi,
      es hat mir doch keine Ruhe gegeben, hab im fhem Forum einen Hinweis gefunden der bei mir geholfen hat.
      im _Clima Channel den Modus einmal auf manual setzten, kurz warten sobald er gesetzt ist ist das Reading battery da, danach kann man wieder zur√ľckschalten auf den urspr√ľnglichen Wert.
      Alternativ soll auch Batterien raus und wieder rein helfen. Infos hier.

      Viele Gr√ľ√üe
      Ina

  7. Hallo Jörg,

    wieder mal ein super Artikel! Vielen Dank!

    Ich hatte das mit den Batteriestatus-Anzeigen zwar bereits umgesetzt, zus√§tzlich gef√§llt mir aber die Pushmessage mit dem FHEM-Icon und der HTML-Formatierung. Wie bekommst du das hin? Ich finde in keiner Doku etwas dar√ľber…

    Gruß,
    Ralf

    1. Hi Ralf,
      das Thema wurde schon mal kurz in den Kommentaren angesprochen. Im Grund habe ich selbst nicht viel dazu beigetragen. Auf der Apple Watch wird das standardmäßig genau so dargestellt, sofern man das Logo in der Pushover-Anwendung hinterlegt hat.

      Gr√ľ√üe
      Jörg

    2. Hallo Jörg,

      vielen Dank f√ľr den Link – kannte ich nicht.
      Es klappt zwar mit der Formatierung nicht direkt auf dem Homescreen des iPhones, aber zumindest in den Push-Notifications selbst. Man muss halt darauf achten, dass man ein 72×72 PNG-File hochl√§dt (wenn’s jemand interessiert :-) )

      Gruß,
      Ralf

  8. Hallo Jörg, wiedermal ein sehr guter Blog!
    Habe es gleich umgesetzt!
    Gibt es eine Möglichkeit den Batteriestatus per udp in einem Rutsch an Loxone zu senden? So dass man es in der Visu einbinden kann?
    Mit freundlichen Gr√ľ√üen

    1. Ich experimentiere gerade damit, bei Status√§nderungen meiner Homematic-Ger√§te gleichzeitig auch alle relevanten Infos – u.A. auch die Batteriewerte – in einem UDP-String an Loxone zu √ľbergeben. Visualisieren l√§sst sich das auch ganz h√ľbsch direkt im jeweiligen Device. Das funktioniert bisher tadellos. Werde sicherlich bald einmal dar√ľber bloggen.

      Gr√ľ√üe
      Jörg

  9. Hallo Jörg,

    wenn Dich die vielen Pushnachrichten nerven, wäre es dann nicht sinnvoller in den if-Abfragen die Namen der Geräte in einer Variable zu sammeln und anschließend eine Pushnachricht zu senden wenn die Variable nicht leer ist? Dann bekommt man nur eine Nachricht mit allen Geräten. Oder könnten das dann zu viele Zeichen in der Nachricht werden?

    mfg
    Tom

    1. Guter Punkt. Werde mal sehen, wieviele Batterie-Leer-Meldungen bei meinen diversen Funk-Devices so die n√§chsten Monate tats√§chlich durchkommen und werde den Code bei Bedarf nachbesssern. Hab derzeit alleine √ľber zehn optische Fenster-/T√ľrsensoren von HoemMatic im Einsatz… :)

  10. Hallo Jörg,
    Ich richte mir die Batteriewarnung auch gerade ein. Super Artikel √ľbrigens. Ich hatte das Ph√§nomen, das ich keine Devices angezeigt bekam. Die Readingsgroup war aber „initialized“

    define ZE.Batterie readingsGroup .*:[Bb]attery\.*:[Bb]atteryLevel

    Ich habe nun alle meine Devices mal durchgesehen. Alle Ger√§te weisen nur „battery“ als Reading auf. Jetzt habe ich die o.g. verschiedenen M√∂glichkeiten mal alle weggelassen und nur

    define ZE.Batterie readingsGroup .*:battery

    genommen. Pl√∂tzlich waren alle Devices mit Batterien aufgelistet. Vielleich hat ja der ein o. andere das Problem auch noch. Scheinbar listet FHEM √ľberhaupt keine Devices auf, wenn eins in der DEF genannt ist, welches gar nicht existiert.
    Ach ja, im LOGFILE wurde √ľbrigens kein Fehler angezeigt.

    Gruß Carsten

    1. Der Trick ist der Zeilenumbruch nach \
      Es muss heissen:

      define ZE.Batterie readingsGroup .*:[Bb]attery\
      .*:[Bb]atteryLevel

      Dann sollte es auch klappen.

      Gr√ľ√üe
      Jörg

    1. Hi Thomas,
      unter ZE.Activity sollten alle Devices angezeigt werden, welche ein Reading namens „Activity“ besitzen. Also einfach mal die Detailsicht eines Ger√§ts √∂ffnen, welches du in der Liste erwarten w√ľrdest, und nachsehen, ob ein solches Reading existiert.

      Gr√ľ√üe
      Jörg

      PS: Welche Geräte hast du im Einsatz?

  11. Hallo Jörg,
    Danke f√ľr Deine Antwort. Das ist was ich im Einsatz habe:
    Homematic Funk-Heizkörperthermostat
    HomeMatic Funk-Rauchmelder
    Homematic Wandthermostat
    Homematic Funk-Wandtaster 6-fach
    Homematic Bewegungsmelder
    Homematic Temperatursensor innen

  12. Hallo Jörg,

    top Artikel, mach bloß weiter so ;-)

    Bei mir sind einige Devices jetzt doppelt drinnen, das diese sowohl battery als auch batterLevel haben.

    battery ok 2015-07-05 11:40:07
    batteryLevel 2.9 2015-09-03 15:03:57

    Was sollte ich tun ?

    LG

    Michael

    1. Hi,
      ich habe das gleiche Thema wie Michael am 03.09.2015:

      Bei mir sind einige Devices jetzt doppelt drinnen, da diese sowohl battery als auch batterLevel haben.

      battery ok 2015-07-05 11:40:07
      batteryLevel 2.9 2015-09-03 15:03:57

      In meinem Fall zeigt ein Raumthermostat 2.3 und low an. Diese beiden Werte fuehren zu unterschiedlichen grafischen Darstellungen…

  13. Das Notify finde ich nicht sehr gut.
    Da hier nur die Devices abgefragt werden die Eingetragen sind.

    Ich hab das mal vor längerem so gelöst:
    define notifiy_batt_chk notify .*:[Bb]attery:.* {\
    if($EVENT !~ m/ok/) {\
    Log(3,“$NAME: Batteriewarnung $EVENT“);;\
    fhem(„set pushmsg msg ‚FHEM‘ ‚FHEM Batteriewarnung, $NAME. – $EVENT‘ “0““);;\
    }\
    }
    attr notifiy_batt_chk room 9.90_Notifications

    Weniger Zeilen und auch die Notfication √ľber alle Ger√§te. Nur ohne Monatliche abfrage.

    1. H√§tte das aber nicht den (kleinen) Nachteil, dass die Message nur einmal kommt? Ich hatte zwar noch keine schwachen Batterien. Wie ich mich erkenne, ignoriere ich aber gerne die ersten paar Warnungen zum niedrigen Batteriestand. Das d√ľrfte mit dem definierten AT von J√∂rg funktionieren.

      Darf ich Dich auch mal fragen, was Du mit „attr notifiy_batt_chk room 9.90_Notifications“ anstellst – und wie? Sieht nach einem Raum aus, der individuelle Nachrichten darstellt?!?

    2. Hi Robert,
      die von dir angesprochene Batteriewarnung aus dem FHEM-Wiki hatte ich schon im Blogpost verlinkt. Ist nat√ľrlich eleganter, war aber eben nicht das, was ich wollte, da ich
      a) nur einmal im Monat √ľber leere Batterien informiert werden m√∂chte und
      b) erneut √ľber leere Batterien informiert werden m√∂chte, wenn diese immer noch nicht gewechselt wurden.
      Aber du hast Recht, die aktuelle L√∂sung ist noch verbesserungsf√§hig, da jedes Ger√§t einzeln eingetragen werden muss. Hab schon eine Idee, wie sich das geschickter l√∂sen l√§sst, dazu fehlt mir aktuell aber schlicht die Zeit. √úber Vorschl√§ge w√ľrde ich mich nat√ľrlich freuen.

      Gr√ľ√üe
      Jörg

  14. Hi
    wenn man noch das Attribut
    mapping %ALIAS
    zu der readingsGroup hinzuf√ľgt und den Devices ein Alias gibt (es wird sonst der Name genommen wenn kein Alias vorhanden ist) kann man sich auch „sch√∂nere“ Namen anzeigen lassen.

    Viele Gr√ľ√üe
    Ina

  15. Hallo Jörg,
    ich muss nochmal nach Aktivitätsstatus fragen. Ich habe ja selber zumindest auch 2 HOmematic Geräte wie Du (IR Bewegungsmelder und Rauchmelder). Das Feld sehe ich aber nicht. Muss man das extra definieren?
    Gruss Thomas

  16. Hi !

    Allerdings hast du nicht ber√ľcksichtigt das bei den neuen Geraeten battery und batteryLevel vorhanden sind und somit auch (unnoetigerweise) doppelt in der Liste auftauchen.

    Gruss Gerd

    1. Das ist mir auch aufgefallen, gibt es hier schon Möglichkeiten das abzufangen? Eventuell dass man pro Gerät nur eine Anzeige zulässt?

  17. Hallo Jörg,
    ich habe die folgenden Probleme:
    1. bei der Anzeige des Batterie-Status wird nur der folgenede Text zum jeweiligen Ger√§t angezeigt z.Bsp. „FK_Schlafzimmer:battery“. Alle Anzeigen der Batterie-Icons fehlen jedoch.
    2. Bei den Aktivit√§tsanzeigen werden ebenfalls keine Icons angezeigt, statt dessen steht bspw. jeweils ein Text „general_ok@green“ oder „unknown@orange“ dort.
    Ich habe bisher ledichlich die angegebenen Befehle zur Erkennung des Batteriestatus und des Activitätsstatus in die fhem.config eingegeben. Da ich noch Anfänger beim Thema FHEM bin, bitte ich nach Möglichkeit um eine kurze Info was ich falsch mache.
    F√ľr Ihre Bem√ľhungen im vorraus schon vielen Dank.
    Hans-J√ľrgen Grebe

  18. Hallo Jörg,
    Nachtrag zu meinem zuvor geschilderten Fehler vom 10. Okt. bzgl. der fehlenden Icon. Der Fehler besteht nur, wie ich jetzt festgestellt habe, wenn ich Fhem von meinem Desktop-PC nutze. Vom Tablet sind die Icon der Batteriestati zu sehen, die der Activity jedoch nicht. Vom Smartphone sind sowohl die Batterie- als auch die Activitystati zu sehen. Bin ratlos woran das liegt.
    Gruss Hans-J√ľrgen

  19. Hallo Jörg,

    du hast vor einiger Zeit folgendes geschrieben:
    „J√∂rg
    September 2nd, 2015
    Der Trick ist der Zeilenumbruch nach \
    Es muss heissen:
    define ZE.Batterie readingsGroup .*:[Bb]attery\
    .*:[Bb]atteryLevel
    Dann sollte es auch klappen.
    Gr√ľ√üe
    Jörg“

    ist dort ein Schreibfehler drin?
    m√ľsste es nicht hei√üen:
    define ZE.Batterie readingsGroup .*:[Bb]attery \
    .*:[Bb]atteryLevel
    sobald ich hinter [Bb]attery das „\“ durch ein Leerzeichen „abtrenne“
    funktioniert bei mir die Anzeige. Vorher hat nur das mit dem BatteryLevel
    auswerten geklappt

    Gruß Herby

    1. Kann ich von meiner Seite aus bestätigen!
      Ich habe nun auch eine ganze Weile gesucht, und habe nun Herbys Hinweis gefunden. Sobald man den Backslash „\“ mit einem Leerzeichen nach dem „y“ von „[Bb]attery“ trennt, erscheinen auch bei mir alle Devices.
      Davor bekam ich nur meine zwei Thermostate, allerdings nicht meine Fensterkontakte. Mit dem eingef√ľgten Leerzeichen nun bekomme ich alle Devices.

  20. Hi,

    ich finde es komisch, dass sobald ich den Battery Reading Code in meine fhem.cfg eingebe meine LaCrosse Temperatur Sensoren √ľber den JeeLink pl√∂tzlich keine Daten mehr senden??? Woran kann das liegen?

    Gr√ľ√üe
    Dirk

    1. Ich habe herausgefunden woran es gelegen hat. Ich habe das direkt in die cfg eingetragen was nich gut ist. Nach der Verwendung der Kommandozeile l√§uft es wie gew√ľnscht.

  21. @Gerd und @Henry:
    Ich finde das auch ziemlich irritierend, dass bei meinem Homematic-Wandthermostat das reading „battery“ und „batteryLevel“ existiert, da dann der Batterielevel mehrfach auftaucht. (In meinem Fall gleich 3 mal, da der .climate Kanal auch noch mal ein battery-reading hat).
    Besonders bl√∂d ist, dass das reading „battery“ bereits ein rotes Batterie-Symbol generiert, w√§hrend das „batteryLevel“ mit 2,3 noch einen akzeptablen Wert hat und deshalb noch gr√ľn mit einem Balken weniger angezeigt wird.
    Gibt es nicht eine M√∂glichkeit, bei Ger√§ten mit beiden readings das „batteryLevel“ zu „bevorzugen“? Vielleicht geht das ja mit einem regex-Ausdruck, aber da kenn‘ ich mich zu wenig aus.

    Gruß pure-current

  22. Hey @all,
    ich habe mir das Problem mit dem batteryLevel so gelöst, indem ich bei den devices die ein batteryLevel haben, z.B. mein device Heizkoerperventil_Kinderzimmer ein

    userReadings battery {return „low“ if (ReadingsVal(„Heizkoerperventil_Kinderzimmer“,“batteryLevel“,“0″) < "2.2"); return "ok" }

    angelegt habe, somit hat man dann ein Reading mit dem Namen battery f√ľr sein Device, welches bei einem Wert von unter 2.2 auf low geht und sonst ok zeigt, man kann dies ganz normal mit der Readingsgroup anzeigen lassen und auch mit dem notify darauf reagieren.

  23. Hallo,
    ist es möglich, bei der Batteriestatusanzeige, neben den Icons die ausgelesenen Werte ebenfalls als Zahlen darzustellen? Also in meinem Fall wären das 3,1 und 3,0.

    Sch√∂ne Gr√ľ√üe.

  24. Hallo Jörg,
    erst mal herzlichen Dank f√ľr deien Blog. Man kann sich sehr gut in deine Gedankeng√§nge und der deiner Leser hinein versetzen.
    Allerdings ist mir beim Thema „Activity“ etwas unlogisch. Ich habe deinen Script gerade mal integriert. L√§uft soweit auch alles ganz gut und mach was es soll. Jetzt habe ich aber folgenden Gedanken. Was passiert, wenn ein Ger√§t einen Komplettausfall hat. Hab gerade die Batterie des HK-Ventils entfernt. es dauert eine Ganze Weile bis die Meldung kommt. Wie erfolgt eigentlich die Kommunikation? Es m√ľsste ja von der Zentrale (Cul-HM) eine Abfrage kommen.
    Wo kann man die Intervallzeit einstellen? Ich frage jetzt weil ich z.B. einen Fenstekontakt einerseits in die Heizungssteuerung und anderseits in einer Alarmanlage nutzen will. Ist das √ľberhaut m√∂glich? Die Logic vom HM m√ľsste das doch her geben?

    Gru√ü Andre‘

  25. Hallo zusammen,

    ich hatte auch das Problem mit den doppelten Eintr√§gen aufgrund von battery und batteryLevel. Ich fand auch die batteryLevel Angabe die bessere L√∂sung, da hier eine genauere Unterscheidung nach dem Grad der Entleerung der Batterie m√∂glich ist. Ich habe mir als L√∂sung bei allen Devices die nur ein battery Reading besitzen einfach ein userReading namens batteryLevel kreiert, in das ich den Status des Readings battery √ľbernehme ( attr Raum.Sensor userReadings batteryLevel { ReadingsVal(„Raum.Sensor“,“battery“,0);; } ). Dann habe ich meine readingsGroup entsprechend angepasst dass sie nur noch batteryLevel auswertet (define HW.Batterie readingsGroup .*:[Bb]atteryLevel), was ja nun alle Devices haben, und nun habe ich s√§mtliche Ger√§te nur 1x in der √úbersicht stehen und bei den Ger√§ten mit den genauen Spannungsangaben auch die differenzierten Icons. :-)

    Gr√ľ√üe,
    Marco

  26. Hallo Jörg

    auch von mir vielen Dank f√ľr das obige Batterie Script.
    Ich w√ľrde gerne neben dem Icon auch noch den Wert bzw. bei meinen ZWave Ger√§ten die Prozent Angabe anzeigen lassen.
    Kriege es nicht hin. Habe auch schon die Wiki durchgekaut.
    Geht das denn √ľberhaupt?
    M√ľsste ja zwei Werte anzeigen obwohl nur einer ausgelesen wird.

    Gruß
    Tom

  27. Hi Jörg,

    ein sch√∂ner und n√ľtzlicher Beitrag. Eine R√ľckfrage bleibt bei der Einbindung der Homematic Bewegungsmelder, die bei mir kein battery-readings haben – wie kann ich dort den Batterie-Status √ľberwachen?

    VG Stephan

  28. Als Neueinsteiger habe ich schon einige deiner Artikel erfolgreich“nachgebaut“ d.h copy and paste , hier scheitere ich jetzt aber vollkommen,. Konkret habe ich mehrere Batterie betriebene Sensoren etc. die auch sch√∂n ihren Status melden, z.B.
    MAX mit battery ok bzw 95 % im Log
    Fibaro mit battery 100 %
    nur in den jetzt erzeugten Eintrag sehe ich keinerlei Systeme, schon allein die Auslistung der erkannten Elemente fehlt komplett, die h√§tte ich zumindestens erwarte. Irgendeine Art Ferndiagnose m√∂glich ? Server reboot habe ich hinter mir , keinerlei Fehlereintrag in fhem Log, irgendeine M√∂glichkeit die Ausf√ľhrung zu loggen ?

  29. Hallo Jörg,
    bei mir erscheint immer folgende Meldung im Log:
    2016.02.11 19:00:00 3: BatteryLowPushover: Unrecognized character \xC2; marked by <– HERE after <– HERE near column 1 at (eval 24166) line 3.

    meine definition sieht so aus:
    define BatteryLowPushover at *19:00:00 { if ( $mday == 1 )\
    {if (ReadingsVal("SZ.Deckenbeleuchtung_Wechselschalter", "battery", "-1") eq "low")\
      {fhem ("set PushoverDominikFHEM msg 'Wechselschalter Schlafzimmer' 'Bitte Batterie tauschen' '' 0 ''")}\
    };;\
    {if (ReadingsVal("HG.Dachterrassentuer", "battery", "-1") eq "low")\
    ¬†{fhem ("set PushoverDominikFHEM msg 'Dachterrassent√ľr' 'Bitte Batterie tauschen' '' 0 ''")}\
    };;\
    {if (ReadingsVal("WZ.Heizung", "battery", "-1") eq "low")\
     {fhem ("set PushoverDominikFHEM msg 'Heizung Wohnzimmer' 'Bitte Batterie tauschen' '' 0 ''")}\
    };;\
    {if (ReadingsVal("SZ.Heizung", "battery", "-1") eq "low")\
     {fhem ("set PushoverDominikFHEM msg 'Heizung Schlafzimmer' 'Bitte Batterie tauschen' '' 0 ''")}\
    };;\
    }

    eine Idee was nicht stimmt?

    Gruß
    Dominik

    1. Puh,
      spontan tippe ich mal auf ein Formatierungsproblem. Am besten nochmal mit einem anderen Browser/Editor versuchen.

      Gr√ľ√üe und viel Erfolg
      Jörg

  30. Im Blog steht: Dabei werden automatisch alle Ger√§te einbezogen, die ein Reading des Typs „Battery“ bzw. „battery“ besitzen.

    Ich finde die Stelle auf meinem fhem Server nicht! Hast Du vielleicht ein Screenshot, wo man darauf sehen kann, wie man es zuweisen kann?

  31. Hallo,
    kann es sein, dass die Batterie Anzeige f√ľr Fhem 5.7 nicht mehr aktuell ist.
    Habe da so meine Probleme wenn ich das $Value (def) in Value (def) ändere.

  32. ReadingsVal(„AZ.Fenster.Geschlossen“, „battery“, „-1“)

    Was ist mit „-1“ gemeint?

    Wenn ich nur die Variable $wday verwende, bedeutet, dass ich einmal die Woche den Wert abfrage. Ist das richtig?

    Danke.

    1. Hi Manfred,
      „-1“ ist in diesem Kontext der zu nutzende Fallbackwert, wenn kein (sinnvoller) Wert aus dem Reading „battery“ ausgelesen werden kann.

      Die Variable $wday gibt einen Wert zwischen 0 (Sonntag) und 6 (Samstag) aus – je nachdem, welcher Tag gerade ist. Wenn du also bspw. die Bedingung

      if ( $wday == 0 )

      nutzt, kannst du die Werte nur einmal pro Woche (jeden Sonntag) abfragen.

      Gr√ľ√üe und viel Erfolg bei der Umsetzung
      Jörg

  33. Hi!

    Ich habe den Code f√ľr den Aktivit√§tsstatus verwendet, aber der Aktivit√§tsstatus wird bei mir nicht angezeigt! Was fehlt da noch? Ich m√∂chte gerne den Aktivit√§tsstatus von allen TX 29 DTH – IT anzeigen lassen.

    Vielen Dank f√ľr die Hilfe.

  34. Hallo Jörg,

    zuerst vielen Dank f√ľr die Antworten. :)

    Ich habe den Code f√ľr das Activity-Reading √ľbernommen, aber es wird leider nichts auf dem Fhemsever angezeigt. Nur der Code f√ľr den Batteriestatus hat auf Anhieb funktioniert.

    Viele Gr√ľ√üe
    Manfred

    1. Ja,
      die DTH-Sensoren scheinen im Standard einfach kein Activity-Reading zu besitzen, entsprechend kann der Code auch keine Information f√ľr die DTHs anzeigen.
      Hier m√ľsste man wohl erst manuell daf√ľr sorgen, dass ein solches Reading f√ľr jedes DHT-Device ermittelt und zus√§tzlich ausgegeben wird. Wie man das am geschicktesten macht, weiss ich leider aktuell auch nicht 100%ig.

      Am besten fragst du direkt mal im FHEM-Forum nach, da hier auch die Entwickler des Moduls aktiv sind. Vielleicht k√∂nnen sie die Funktion ja auch per Update des FHEM-Moduls f√ľr LaCrosse nachreichen.

      Gr√ľ√üe
      Jörg

  35. Hallo Jörg,

    ich habe den Activity Check und die Battery Check im Einsatz. Erstes l√§uft auch einwandfrei. Beim Battery Check habe ich 2 Probleme. Das eine ist hier schon beschrieben. Homematic gibt wohl bei einigen Battery und Batterylevel aus und deshalb werden die Komponenten 2 mal angezeigt. Das zweite ist eine Fehlermeldung die wohl dadurch ausgegeben wird, dass ein zwave Sensor 100% ausgibt: PERL WARNING: Argument „100 %“ isn’t numeric in numeric lt (<) at (eval 582) line 1. Dadurch ergibt sich diese Meldung. Leider bin ich absoluter Neuling und wei√ü nicht, wie ich das Problem l√∂sen sollte. Hast du vielleicht eine Idee.

    Danke

    Udo

  36. @Udo vom 20.3.16:

    Falls deine Frage noch aktuell ist, dann kann dir evtl. geholfen werden. Ich habe 2 WS2300-Sensoren eingebunden, welche als Batteriezustand z.B. „ok 100%“ melden, was zu √§hnlichen Fehlermeldungen wie bei dir f√ľhrte. Abgeholfen habe ich dem Missstand, indem ich folgendes valueFormat gesetzt habe:

    {return „0“ if( $VALUE eq „low“ ); return „100“ if( $VALUE eq „ok“ ); return „100“ if( $VALUE eq „ok 100%“ ); return „25“ if( $VALUE < 2.1 ); return "50" if( $VALUE < 2.3 ); return "75" if( $VALUE < 2.5 ); return "100"}

    Man beachte das 3.: return "100" if( $VALUE eq "ok 100%" );

    Wenn du das bei dir auf:

    return "100" if( $VALUE eq "100%" );

    setzt, dann sollte es auch mit den %-Zeichen klappen. Wie das ganze dann bei nicht 100%-Werten aussieht, kann ich aber noch nicht sagen, weil ich diese anderen Zustände noch nicht hatte.

  37. @Thomas
    Ich danke dir recht herzlich. Habe es jetzt eingef√ľgt und bis jetzt ist alles ruhig. Vermutlich muss ich, wenn irgendwann eine andere Meldung kommt wie z. B. 75%, einen weiteren Eintrag verfassen, nicht wahr?

  38. @Udo
    Ich vermute ja, aber jetzt heißt es erst mal abwarten, denn ich weiß nicht, welche Abstufungen bei deinen Batteriemeldungen existieren.

  39. Vielleicht kann mir hier jemand helfen. Das Notify + Pushover bringt mich seit Tagen zum Verzweifeln. Eingentlich soll die Pushover-Nachricht nach 6 Minuten daran erinngern, z.B. das Badfenster wieder zu schließen.

    Folgende Zeile aus meiner fhem.cfg:

    define FensterOffen notify HM_382DF3:open.*|HM_382DF8:open.* sleep 360;; { fhem „set pushmsg msg ‚Fenster offen'“ }

    Stattdessen bekomme ich zwischen 13 und 17 Pushover-Nachrichten 6 Minuten nach √Ėffnen des Fensters, selbst wenn dies bereits wieder zu ist. Ich nehme an Pushover verweigert danach die Annahme weiterer gleichlautender Meldungen.

    1. Hi Robert,
      ein notify mit sleep zu verzögern ist in deinem Fall wohl unbrauchbar. Dadurch kommt immer nach 360 Sekunden eine Pushnachricht, sobald ein Fenster geöffnet wird Рunabhängig davon, ob es zuvor wieder geschlossen wurde.
      Versuch es mal mit einem einem watchdog – so auf die Art:

      define FensterOpenAlarm watchdog BA.Fenster:open 00:03:00 BA.Fenster:closed set pushmsg msg ‚Fenster offen‘;; setstate FensterOpenAlarm defined
      attr FensterOpenAlarm regexp1WontReactivate 1

      Mehr Infos dazu gibts im Blogpost FHEM: Watchdog zur Automatisierung einsetzen.

      Gr√ľ√üe und viel Erfolg
      Jörg

  40. Hallo,
    ich wende mich mal an Dich, denn im Forum gibts nur seltsame Antworten:
    Ich habe diese Emailwarnung umgesetzt.

    Wenn ich z.B. trigger BAD_DG battery:low eingebe, kriege ich ne mail. Ist aber der Batteriestand tatsächlich low, kommt keine Mail und ich kann auch mit dem Trigger keine Mail mehr auslösen. Das habe ich nun auch mit einem anderen Regler versucht, also die Batterien in den Heizungsregler vom Arbeitszimmer eingebaut Рgenau das Selbe:

    Das Device zeigt Battery „low“ – keine automatische Email, kein Trigger m√∂glich

    Weiterhin ist mir unklar, warum z.B. bei einer Spannung von 2,3V der eine Regler „low“ ausgibt, ein anderer aber „ok“… aber das ist ein anderes Thema.

    Kannst Du mir einen Tipp geben, wo mein Fehler liegt? DANKE

  41. Guten Abend,

    erstmal vielen Dank f√ľr den sch√∂nen Code :)

    Lese schon einige Zeit mit und habe das eine oder andere auch umsetzen können.

    Ich habe gestern einen Fibaro T√ľr Sensor eingebunden. Fibaro meldet in % Schritten den Battery Status, was zu einer Fehlermeldung im Log f√ľhrt.

    Wie „√ľbersetze“ ich das % Zeichen?

    [code]
    PERL WARNING: Argument „89 %“ isn’t numeric in numeric lt (<) at (eval 945) line 1.
    [/code]

    1. das selbe problem habe ich auch.
      mein fibaro motionsensor meldet ebenfalls „100 %“ als batteriewert.
      es scheint aber trotzdem zu funktionieren.

      leider geht bei meinen zwave geräten das activity tracking mangels des activity wertes nicht. schade.

  42. Nabend,

    @Andre + disorganizer:

    Evtl. hilft euch die Commandref von Fhem weiter und zwar insbesondere „stateCmd“ und „stateFormat“. Ich hatte k√ľrzlich irgendwo gelesen, dass man damit die Inhalte von „State“ direkt beeinflussen kann, insbesondere das %-Zeichen abzuschneiden. Leider habe ich kein Lesezeichen gesetzt, so dass ich keinen direkten Link habe. Ich selbst nutze das (noch) nicht.

    Hth

  43. Ich √ľberpr√ľfe die battery readings von homematic und zwave ger√§te in einem reading. Um das %-Zeichen bei den zwave Ger√§ten zu filtern, verwende ich daf√ľr:

    {return $NUM if($VALUE =~ m/%/); return „0“ if( $VALUE eq „low“ ); …}

    Im Prinzip wird hier als erstes √ľberpr√ľft, ob Value ein % Zeichen enth√§lt, wenn ja wird nur der numerische Wert verwendet. Funktioniert dann also auch mit allen %-Werten, die geliefert werden.

  44. Hier eine Alternative, die um 12:00 alle Geräte durch geht:
    define a_Battery at *12:00:10 {\
    my @monitored=devspec2array(„[Bb]attery=low“);;\
    my $cnt_devs=@monitored;;\
    my $i = 0;;\
    my $msgtext = „“;;\
    foreach(@monitored) {\
    $msgtext .= AttrVal($_,“alias“,$_);;\
    if ($i 0) {\
    #fhem („set Pushover msg ‚FHEM-WARNUNG‘ ‚$msgtext Batterie low'“);;\
    #fhem („set Telegram msg $msgtext Batterie low“);;\
    prowl(„$msgtext“,“Batterie leer“,“1″,“T“);;\
    } else {\
    #fhem („set Pushover msg ‚FHEM‘ ‚Alle Batterien okay'“);;\
    #fhem („set Telegram msg Alle Batterien okay“);;\
    #prowl(„$msgtext“,“alle Batterieen OK“,“1″,“T“);;\
    }\
    }

  45. Zwie Fragen zu der reading group:
    Bekommt man das hin daß das alphabetisch sortiert ist?
    Und kann man das „battery“ bzw. „batterylevel“ abschneiden lassen?

  46. Hallo Jungs,

    habe das originale Push von oben eingebaut, funktioniert allerdings nicht so wie es soll. Irgendetwas stimmt mit den IF’s nicht, bei mir wird die push immer f√ľr alle Ger√§te verschickt > also jeden Tag. Nur beim ersten Ger√§t greift die Angabe das Datums.

    Runter gebrochen: zum test ein check auf „ok*, heute Mittwoch, auf Pusbullet angepasst

    define PushBatteryLow at *13:00:00 {if ( $wday == 3 ) \
    {if (ReadingsVal(„Bad“, „battery“, „-1“) eq „ok“)\
    {fhem („set Push message WZ Battery ok!“)}\
    };;\
    {if (ReadingsVal(„WZ“, „battery“, „-1“) eq „ok“)\
    {fhem („set Push message WZ Battery ok!“)}\
    }
    }

    -> Schickt mir heute Bad und WZ als Push
    -> Schickt mir morgen WZ also Push -> schickt quasi jeden Tag WZ status

    Hat hier jemand eine Idee?

    Danke euch

  47. Weil Deine Klammern falsch sitzen. Ich habe das mit Einr√ľckungen mal lesbarer gemacht:

    define PushBatteryLow at *13:00:00 {
    if ( $wday == 3 )
    {if (ReadingsVal(„Bad“, „battery“, „-1“) eq „ok“)
    {fhem („set Push message WZ Battery ok!“)}
    };;
    {if (ReadingsVal(„WZ“, „battery“, „-1“) eq „ok“)
    {fhem („set Push message WZ Battery ok!“)}
    }
    }

    Die WZ-Abfrage ist nicht im Mittwochs-if enthalten sondern wird auch abgearbeitet, wenn Donnerstag ist.

  48. Die Forumssoftware verschluckt vorgestellte Leerzeichen. Hier nochmal mit Unterstrichen statt Leerzeichen

    define PushBatteryLow at *13:00:00 {
    __if ( $wday == 3 )
    ____{if (ReadingsVal(„Bad“, „battery“, „-1“) eq „ok“)
    ______{fhem („set Push message WZ Battery ok!“)}
    ____};;
    __{if (ReadingsVal(„WZ“, „battery“, „-1“) eq „ok“)
    ____{fhem („set Push message WZ Battery ok!“)}
    __}
    }

  49. danke dir :)
    verschicken tut er damit, aber der Tag spielt keine Rolle – egal ob 3 oder 4 – er verschickt immer. daf√ľr aber f√ľr beide ger√§te.

    bekomme beim Speichern der cgf auch einen: ERROR:
    Unknown command if, try help. Unknown command if, try help. Unknown command {if, try help. Unknown command };, try help. Unknown command {if, try help. Unknown command }, try help. Unknown command }, try help.

    werd nicht so recht schlau daraus

  50. Meine Version oben war nur dazu da um dir zu verdeutlichen warum Deine Klammern falsch sind. Es ist keine korrigierte Version.
    Probier doch mal
    define PushBatteryLow at *13:00:00 { if ( $wday == 3 ) { fhem („set Push message WZ Battery ok!“) } }
    ohne Zeilenumbr√ľche. Wenn das funktioniert f√ľgst Du das n√§chste if hinzu …
    define PushBatteryLow at *13:00:00 { if ( $wday == 3 ) { if (Reading… usw.
    Wenn Du ins FHEM Wiki schaust fällt Dir dann sicher schonmal auf, daß dort vor und hinter { immer Leerzeichen stehen. Ohne daß ich jetzt die Perl-Klammerreglen gelesen hätte.
    ;; gibt es nur innerhalb des fhem() Kommandos

  51. Guten Abend, der Blog-Eintrag ist zwar schon etwas √§lter, jedoch m√ľsste bei der if-Abfrage nach dem „ersten Sonntag im Monat“ ( if ( $mday <= 6 && $wday == 0 ) ), wegen immer genau dann versagen, wenn ein Sonntag auf einen 7. des Monats f√§llt, unter der Voraussetzung, dass Perl f√ľr $mday immer von 1 beginnt, korrekt?
    Gr√ľ√üe, H.

  52. Guten Abend,

    warum werden bei mir nur die Thermostate bei der Batterieanzeige angezeigt und die Fensterkontakte nicht.
    Muss ich hier noch etwas aktivieren ?
    R-cyclicInfoMsg ist auf on

  53. Hallo,
    ich habe meine Definition wie folgt:

    *18:00:00 { if ( $wday == 6 )
    {if (ReadingsVal(„Fensterkontakt_Sch“, „battery“, „-1“) eq „low“)
    {fhem („set PushoverJay msg ‚Fesnterkontakt‘ ‚Bitte Batterie tauschen‘ “ 0 ““)}
    };
    {if (ReadingsVal(„Tuerschloss“, „battery“, „-1“) eq „low“)
    {fhem („set PushoverJay msg ‚T√ľrschloss‘ ‚Bitte Batterie tauschen‘ “ 0 ““)}
    };
    }

    Aber irgendwo ist da ein Fehler, ich bekomme die Push Nachricht n√§mlich jeden Tag….?!

    Vielen dank f√ľr die Hilfe

    Gruß

    T.Meißner

    1. Klar, da das „if“ nach
      {if (ReadingsVal(„Fensterkontakt_Sch“, „battery“, „-1“) eq „low“)
      {fhem („set PushoverJay msg ‚Fesnterkontakt‘ ‚Bitte Batterie tauschen‘ “ 0 ““)}
      };
      endet! T√ľrschloss ist nicht drinn. Anders formattiert:

      *18:00
      {
      if ()
      {Fenster};

      {T√ľr};
      }

      Vom Anfang an, ist der Quellcode dieses Notify falsch.

    2. Und wenn wir dabei sind:
      if ( $mday <= 6 && $wday == 0 )

      funktioniert nicht wenn der erste Sonntag des Monats der 7. ist. Wie in Mai dieses Jahr.

  54. Hi,

    danke f√ľr den Artikel.

    Kann man die Devices, die sich in der readingsGroup befinde, via Perl auslesen? Dann k√∂nnte man diese Liste f√ľr die Pushover-Benachrichtigungen verwenden.

    Danke und Gr√ľ√üe
    tom

  55. Bekomme immer den Fehler:

    Unrecognized character \xC2; marked by <– HERE after q "low")\ <– HERE near column 123 at (eval 31639) line 1.

    Selbst beim 1:1 kopieren vom Beitrag. (Unterschiedliche Browser schon benutzt)

    1. Hallo,
      K√∂nnte evtl an den Anf√ľhrungszeichen bei „low“ liegen. Oder eine Klammer zu viel oder zu wenig….
      Wie ist denn der komplette Code?

      Gruß

      Thorsten

  56. Guten Morgen, danke f√ľr den Beitrag
    Ich habe das Problem da√ü wenn er ausl√∂st er mir 100 Nachrichten sendet. Ich habe den Code 1zu1 √ľbernommen. Habe ich er vergessen?
    LG Andre

  57. Hallo,
    wegen den doppelten Einträgen usw. macht kein Leerzeichen und auch kein \ rein sondern nur ein Komma als so:
    define ZE.Batterie readingsGroup .*:[Bb]attery,.*:[Bb]atteryLevel
    Dann sollte es klappen
    MfG Uwe

  58. Hallo Jörg, ich habe jetzt im Userreading zahlen von 0 -100 die den Batteriestatus darstellen. Was muss ich verändern damit diese Werte auch richtig angezeigt werden, sowie bei Low und ok. Denn das funktioniert wunderbar. Danke
    MfG. Sven

  59. Hallo,
    ist zwar schon etwas her aber was mache ich denn wenn ich solche Readings habe:
    battery 100
    batteryPercent 100
    batteryState ok

    Die sind alle von einem Device (Aqara Wassersensor)… Ich m√ľsste also auch irgendwie den Wert 100 in dem Script aufnehmen.

    Jemand eine Idee?

    Gr√ľ√üe Dave

  60. Guten Tag

    Ich habe Eurotronic 700018 Comet DECT
    Termostate die battery in Zb. 20% Anzeigen und batteryState ok
    batterylow 0
    In der Zentral wird aber bei 20% Status gr√ľn Angezeigt obwohl die Batterie ūüĒč bei 20% steht im Fhem des Termostates?

  61. Hallo ich habe entsprechend noch Anpassungen f√ľr battery <25%, <50% und ‚measure_battery_0@red‘,’battery.25′ => ‚measure_battery_25@orange‘,’battery.50′ => ‚measure_battery_50@orange‘,’battery.75′ => ‚measure_battery_75@green‘,’battery.100′ => ‚measure_battery_100@green‘,’Battery.0′ => ‚measure_battery_0@red‘,’Battery.100′ => ‚measure_battery_100@green‘,’batteryLevel.0′ => ‚measure_battery_0@red‘,’batteryLevel.25′ => ‚measure_battery_25@red‘,’batteryLevel.50′ => ‚measure_battery_50@orange‘,’batteryLevel.75′ => ‚measure_battery_75@green‘,’batteryLevel.100′ => ‚measure_battery_100@green‘}

    Gruß
    sTaN

  62. Hallo, was muss ich denn ändern, wenn ich mich nicht bei 0% benachrichtigen lassen will, sondern wenn battary unter 40% fällt?

    *19:00 {if ($mday == 1)
    {if (ReadingsVal(„BD_Badezimmer_Sensor_Xiaomi“, „battery“, „-1“) eq „0“)
    {fhem („set MartinPush msg ‚TempSensor Bad‘ ‚Bitte Batterie tauschen‘ “ 0 ““)}

    Danke!

    1. Hallo, was muss ich denn ändern, wenn ich mich nicht bei 0% benachrichtigen lassen will, sondern wenn battary unter 40% fällt?

      *19:00 {if ($mday == 1)
      {if (ReadingsVal(„BD_Badezimmer_Sensor_Xiaomi“, „battery“, „-1“) < 40) {fhem ("set MartinPush msg 'TempSensor Bad' 'Bitte Batterie tauschen' '' 0 ''")}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert