[gelöst]Batterieüberwachung - Prozent-Angaben im Reading ausklammern

Begonnen von Cobra, 23 Januar 2022, 15:56:52

Vorheriges Thema - Nächstes Thema

Fredi69

Zitat von: MadMax-FHEM am 25 Januar 2022, 09:46:21
Aber du hast doch eine ganz andere Lösung im Einsatz oder planst diese in Betrieb zu nehmen?

An 2 Stellen mit 2 unterschiedlichen "Mechanismen" nachfragen ist auch nicht zielführend!

Wo willst du nun geholfen haben?

Dieses "simple" notify erweitert auf HUE-Devices oder in dem anderen Thread zusätzlich HUE-Devices (Vorschlag habe ich ja gepostet, geht der nicht?)...

Doppelt mache ich mir die Arbeit nicht 8)

Gruß, Joachim

Vielen herzlichen Dank für Deine Unterstützung.
Ich habe seit vielen Jahren die hier beschriebene Lösung erfolgreich im Einsatz.
Da leider die HUE Devices, die seit dieser Woche ein Battery Reading haben, mit dieser Lösung auch nicht funktionieren, habe ich gestern mal nach einer Lösung gesucht und bin dann auf Deine Lösung unter den Codeschnipseln gestossen.
Diese Lösung ist zwar auch ein toller Ansatz,  hat aber wieder andere Probleme mit sich gebracht.
Daher habe ich nun versucht die ursprüngliche Lösung, basierend auf einem einzigen Notify, an die HUE Devices anzupassen.

Vielen Dank und Grüße
Fredi69
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

MadMax-FHEM

Und was soll nun gelöst werden bzw. wo willst du geholfen haben?

Hier oder dort? ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Fredi69

Zitat von: MadMax-FHEM am 25 Januar 2022, 10:58:59
Und was soll nun gelöst werden bzw. wo willst du geholfen haben?

Hier oder dort? ;)

Gruß, Joachim
Gerne hier.
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

MadMax-FHEM

#18
Dann würde ich halt mal z.B. so umbauen:


{ if($EVENT =~ m/low/)
  {                                                                                                                                       
    fhem ("msg push FHEM Batteriewarnung, $NAME: $EVENT:\nBatterien sollten demnächst gewechselt werden!");                                                                           
    Log 3, "$NAME: Batteriewarnung $EVENT";                                                                                                                                                             
  }
  if(InternalVal($DEVICE, "TYPE", "n.a.") eq "HUEDevice" && $EVENT < 15)
  {
    fhem ("msg push FHEM Batteriewarnung, $NAME: $EVENT:\nBatterien sollten demnächst gewechselt werden!");                                                                           
    Log 3, "$NAME: Batteriewarnung $EVENT";                                                                                                                                                             
  }
}


EDIT: ich bin jetzt nicht sicher ob/wie man das in den DEF-Editor eingeben kann, also mit Zeilenumbrüchen etc. Weil ich sowas eben immer in Subs auslagere, da ist das kein Problem... Bei Eingabe in RawDef musst du die Zeilenumbrüche noch jeweils mit \ abschließen (denke ich) und evtl./verm. auch die Strichpunkte "doppeln"...

EDIT: u.U. gibt das auch (ab und an) eine Warning im Log wegen "isn't numeric". Dann könnte man auf "Stringvergleich" ausweichen oder eben die Abfrage <15 in eine weitere "Verschachtelung", also ein if innerhalb des if(HUE). Hatte ich schon aber so ist es eben "kürzer"...

Bzgl. $EVENT < 15 bin ich halt nicht sicher, weil es könnte auch $EVTPART1 etc. sein...
Du kannst ja auch das $EVENT < 15 erst mal weglassen und schauen was die Logausgabe bzgl. $EVENT ins Log schreibt und dann anpassen (lassen).

Setzt halt jetzt voraus, dass die Homematic (oder alle anderen Geräte/Devices) eben low liefern und die HUE immer Prozentzahlen...

Wenn das nicht so ist bzw. weitere Typen kommen, dann bist du über kurz oder lang eben bei der anderen Lösung (so habe ich ja auch angefangen ;)  ).
Ebenso: manchmal schwanken die Sensoren zwischen ok/low bevor sie dann endgültig leer sind. Das würde die andere Lösung ebenfalls abfangen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Damian

   .*:[Bb]attery:|.*:[Bb]atteryS { if($EVENT !~ m/ok/ && ReadingsVal($NAME,"IODev","OK") ne "HUEBridge") ...

Solche Definitionen sind reine Performancefresser und das für eine relativ zeitunkritische Abfrage.

Hier wird jedes Event im System ausgewertet, nur um festzustellen, dass einmal pro Jahr eine Batterie alle ist.

Wenn man alle seine Probleme so löst, dann wird sich das System irgendwann mit sich selbst beschäftigen.



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

Fredi69

Zitat von: Damian am 25 Januar 2022, 12:02:11
   .*:[Bb]attery:|.*:[Bb]atteryS { if($EVENT !~ m/ok/ && ReadingsVal($NAME,"IODev","OK") ne "HUEBridge") ...

Solche Definitionen sind reine Performancefresser und das für eine relativ zeitunkritische Abfrage.

Hier wird jedes Event im System ausgewertet, nur um festzustellen, dass einmal pro Jahr eine Batterie alle ist.

Wenn man alle seine Probleme so löst, dann wird sich das System irgendwann mit sich selbst beschäftigen.
Danke für die Info, das war mir so nicht bewußt.
Hast Du einen anderen Vorschlag?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Damian

Es gibt da schon gefühlt tausend verschiedene Lösungsansätze zu dem Thema, hier zwei davon - beide resourcenschonend:

hier, wie man einen Ausfall eines beliebigen Readings anhand des Zeitstempels feststellen kann: https://forum.fhem.de/index.php/topic,104569.msg985397.html#msg985397

hier, mit Typ und Readingauswertung: https://forum.fhem.de/index.php/topic,103977.msg1201984.html#msg1201984

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