Hallo zusammen, ich möchte gerne alle Batteriezustände überwachen und wenn eine Batterie leer ist eine Meldung über Telegram erhalten.
Bisher gefunden habe ich diesen Code:
DOIF ([+[6]:00] and [?#"":battery:$_ ne "ok"]) ((msg mail meine@email.de 2 |FHEM: Batteriewarnung| Hallo,\n\n [@"":battery:$_ ne "ok"] meldet niedrigen Batteriestand!\n\nGruss\nEuer HausAutomat))
attr do always
und für meine Bedürfnisse angepasst:
([+[6]:00] and [?#""HM_:battery:$_ ne "ok"]) (set teleBot message @R_H Batterie leer Warnung [@"":battery:$_ ne "ok"] ))
Ergebnis: Ich bekomme alle 6 Stunden eine Nachricht mit den Batterien die (ne ok) sind. Das klappt wunderbar.
Leider sind auch HUE Batteriestände dabei die einen tatsächlichen Wert haben, z.B. 100 (für 100 %)
Mein Kenntnisstand reich nicht aus den Code so zu verändern das die HUEs rausfallen oder noch besser nach Ladezustand bewertet werden. Zum Beispiel Meldung ab <20.
Kann jemand weiterhelfen?
Viele Grüße
z. B.
([+[6]:00] and [?#"":battery:$_ ne "ok"]) (set teleBot message @R_H Batterie leer Warnung [@""HM_RT_.*:battery:$_ eq "low" or $number < 30] )
siehe: https://fhem.de/commandref_DE.html#DOIF_aggregation
Uiiihhh, jetzt bekomme ich alle Batterien gemeldet, egal ob leer oder nicht... das sind bei mir an die 40 Stück...
Ich denke das weiter vorne was nicht richtig ist : [?#"":battery:$_ ne "ok"]
Ok, ich komme der Sache näher...
mit
([+[6]:00] and [?#"":battery:$_ ne "ok"]) (set teleBot message @R_H Batterie leer Warnung \n[@"":battery:$_ eq "low"] )
kommen die Meldungen nur noch für die Geräte die im Falle einer leeren Batterie low im Reading haben.
Jetzt gehen mir aber noch die HUEs flöten...
mit dem Zusatz :
or $number < 30]
kommen alle Batterien.
Unter Value Format habe ich folgendes eingetragen
{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 "0" if( $VALUE < 10 ); return "25" if( $VALUE < 25 ); return "50" if( $VALUE < 50 ); return "75" if( $VALUE < 75 ); return "100"}
So kannst du die unterschiedlichen Zustände in ein einheitliches Format ummappen.
Möglicherweise hilft dies weiter
Gruss Dandan