Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

Batteriestatus und Speicherung des letzten Wechsel

Begonnen von Amenophis86, 12 Januar 2018, 19:23:20

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#345
Zitat von: DonJuan am 04 Dezember 2021, 00:24:08
So, ein "kleiner" Fehler war noch drin. Jedenfalls hatte ich eine "}" zuviel. Daher funktionierte die Benachrichtigung per Telegram nicht. Ansonsten funktioniert es nun.

Ich kopiere hier mal den ganzen Code rein. So für den Fall der Fälle.
Danke nochmal.


Ich hab meinen Code noch mal kontrolliert: der stimmt!! Vermutlich hast du falsch ANgefügt! Weil ich hatte ja geschrieben: einfach einen weiteren Block AN das letzte MAX! dran.
Also NACH dem MAX! Block aber VOR die letzte schließende Klammer der Sub (so war MEINE Idee).
Ich bin fast sicher, dass dein komplett geposteter Code einen Fehler hat?
(ich werde dann in Ruhe die Klammern noch mal checken aber auf den ersten schnellen Blick meldet mein Editor einen "Klammer-Mismatch")

EDIT: in deinem Gesamt-Post ist definitiv ein Fehler drin!! Bei dir ist die Readingsgroup-Sub IN der Batterie-Sub "mit drin"! Das muss eigentlich einen Fehler geben?

EDIT: in dem was im ersten Post verlinkt ist nach git (und da habe ich meine Erweiterungsgrundlage her) sind ZWEI subs drin! Korrigiere: DREI subs. D.h. der Block von mir muss einfach ans Ende der ersten Sub, bevor diese die schließende Klammer hat...


Zitat von: DonJuan am 04 Dezember 2021, 00:24:08
Eine letzte Frage: Zum Senden mit Telegram steht in dem Code "\@\@User". Aber wenn ich da "\@\@<msgChat>" eintrage, dann bekomme ich im Log einen Fehler. Schreibe ich aber "\@<msgChatID>" dann funktioniert es. Ist das so richtig? Oder was versteht ihr unter

Hmm, wie gesagt der Code ist nicht ganz von mir aber ich würde denken, dass dort die PEER-ID oder der PEER-User-Name hin muss...

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)

MadMax-FHEM

Zitat von: Amenophis86 am 03 Dezember 2021, 23:24:58
Danke Joachim fürs übernehmen.

Gerne :)

Zitat von: Amenophis86 am 03 Dezember 2021, 23:24:58
Da ich bei mir mit dem neuen Haus auf KNX umgestellt habe, habe ich hier sehr wenig gemacht und aktuell andere Prios. Sollte sich jemand anbieten können wir den Thread gerne schließen und auf eine neue Version verweisen, die weiter gepflegt wird.

Hmmm, pflegen, neuer Thread.
Da müsste man wohl erst mal zusammensammeln was bislang alles erweitert wurde.
Hab den Thread ja nur so nebenbei verfolgt...

Ich würde das hier einfach mal weiterlaufen lassen...

Klappt doch ganz gut?

Weil in ein Modul gießen wird wohl (von deiner Seite) nicht mehr passieren...
...und ich habe ehrlich gesagt auch nicht die Zeit für ein Modul und auch nicht wirklich die Fähigkeit für ein gutes Modul.

Wenn ich mir das doch überlegen sollte, dann kann man immer noch neu machen...

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)

Amenophis86

Können wir auch so machen. Ich schaue hier ja auch regelmäßig rein und versuche zu helfen. Vielleicht findet sich ja irgendwann jemand, der es angehen möchte :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

DonJuan

Zitat von: MadMax-FHEM am 04 Dezember 2021, 09:25:35
Ich hab meinen Code noch mal kontrolliert: der stimmt!! Vermutlich hast du falsch ANgefügt! Weil ich hatte ja geschrieben: einfach einen weiteren Block AN das letzte MAX! dran.
Also NACH dem MAX! Block aber VOR die letzte schließende Klammer der Sub (so war MEINE Idee).
Ich bin fast sicher, dass dein komplett geposteter Code einen Fehler hat?
(ich werde dann in Ruhe die Klammern noch mal checken aber auf den ersten schnellen Blick meldet mein Editor einen "Klammer-Mismatch")

EDIT: in deinem Gesamt-Post ist definitiv ein Fehler drin!! Bei dir ist die Readingsgroup-Sub IN der Batterie-Sub "mit drin"! Das muss eigentlich einen Fehler geben?

EDIT: in dem was im ersten Post verlinkt ist nach git (und da habe ich meine Erweiterungsgrundlage her) sind ZWEI subs drin! Korrigiere: DREI subs. D.h. der Block von mir muss einfach ans Ende der ersten Sub, bevor diese die schließende Klammer hat...


Hmm, wie gesagt der Code ist nicht ganz von mir aber ich würde denken, dass dort die PEER-ID oder der PEER-User-Name hin muss...

Gruß, Joachim

Na guck mal einer an. Grade nochmal in den Editor geguckt und tatsächlich eine Klammer zu wenig. Selbige wurde mir gestern als zuviel angezeigt. Ok. Nun sollten wir es haben.

Gruss Dennis

Fredi69

Zitat von: MadMax-FHEM am 03 Dezember 2021, 16:30:53
Ok, habe LaCrosse auch mal integriert (so ich denek)...
...also obigen Code angepasst/erweitert.

Bin gespannt, ob es tut...
Wo kann ich den aktuellen Code inkl. LaCrosse finden?

Vielen Dank
Fredi
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

Zitat von: Fredi69 am 24 Januar 2022, 12:32:14
Wo kann ich den aktuellen Code inkl. LaCrosse finden?

Vielen Dank
Fredi

Also entweder aus git die aktuelle laden (da ist aber verm. LaCrosse noch nicht drin?) und dann das hier ergänzen: https://forum.fhem.de/index.php/topic,82637.msg1190831.html#msg1190831
(also einen weiteren Block ähnlich der anderen Device-Typen "an-/einfügen")

Oder den Code von hier nehmen: https://forum.fhem.de/index.php/topic,82637.msg1191026.html#msg1191026

Habe aber nicht mehr drüber geschaut, ob da der Klammerfehler noch drin oder schon raus ist...

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

Vielen Dank für die, wie so oft, schnelle Unterstützung.

Folgende Fragen habe ich noch.
1. Die Hue Devices werden aktuell noch nicht unterstützt, oder?
Hier ein List:
Internals:
   DEF        sensor 12  IODev=HUEBridge01
   FUUID      61edfd0e-f33f-0af0-cfb6-305e5233c5215efe
   FVERSION   31_HUEDevice.pm:0.255380/2022-01-21
   ID         S12
   INTERVAL   
   IODev      HUEBridge01
   NAME       HUESensor12
   NR         625
   STATE      4002
   TYPE       HUEDevice
   has_v2_api 1
   inputs     4
   manufacturername Signify Netherlands B.V.
   modelid    RWL021
   name       Hue dimmer switch Terrasse
   on         1
   productname Hue dimmer switch
   reachable  1
   swversion  6.1.1.28573
   type       ZLLSwitch
   uniqueid   00:17:88:01:08:05:c8:89-02-fc00
   v2_id      33f017a9-6a7a-4e90-8c9e-1c4afc05337b
   Helper:
     DBLOG:
       battery:
         MyDBlog:
           TIME       1643035325.80401
           VALUE      95
       batteryPercent:
         MyDBlog:
           TIME       1643035325.80401
           VALUE      95
       batteryState:
         MyDBlog:
           TIME       1643035325.80401
           VALUE      normal
   READINGS:
     2022-01-24 13:46:46   IODev           HUEBridge01
     2022-01-24 15:42:05   battery         95
     2022-01-24 15:42:05   batteryPercent  95
     2022-01-24 15:42:05   batteryState    normal
     2022-01-18 21:46:22   reachable       1
     2022-01-18 21:46:22   state           4002
   helper:
     devtype    S
     update_timeout 1
     capabilities:
       inputs:
         HASH(0x69bb938)
         HASH(0x69bbb60)
         HASH(0x69bbd88)
         HASH(0x69bbfb0)
     configList:
     events:
       HASH(0x6a0b1e0)
       HASH(0x6a0b2a0)
       HASH(0x6a0b3d8)
       HASH(0x6a0b468)
     json:
       diversityid 73bbabea-3420-499a-9856-46bf437e119b
       manufacturername Signify Netherlands B.V.
       modelid    RWL021
       name       Hue dimmer switch Terrasse
       productname Hue dimmer switch
       swversion  6.1.1.28573
       type       ZLLSwitch
       uniqueid   00:17:88:01:08:05:c8:89-02-fc00
       capabilities:
         inputs:
           HASH(0x6d62310)
           HASH(0x6f78558)
           HASH(0x6ee6070)
           HASH(0x6eda898)
       config:
         battery    95
         pending:
       state:
         buttonevent 4002
         lastupdated 2022-01-18T20:46:22
       swupdate:
         lastinstall 2020-05-26T22:16:53
         state      noupdates
     setList:
Attributes:
   IODev      HUEBridge01
   alias      Hue dimmer switch Terrasse
   group      HUESensor
   icon       hue_filled_hds
   model      RWL021
   room       HUEDevice


2. Wie kann man bei der Pushmsg und der ReadingsGroup den Alias anstatt den Namen ausgeben?

3. Bei zwei Homematic Geräten (HM-SEN-MDIR-SM) habe ich ein rotes Ausrufezeichen in der Readingsgroup, obwohl battery ok ist.

Vielen Dank
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

#352
HUEDevice ist wohl noch nicht drin...
...also in dem was auf GitHub liegt.

Ob es irgendwo im Thread-Verlauf schon (mal) ergänzt wurde: keine Ahnung :-\

Du könntest folgendes versuchen:


  ##############################################
  # ZWave Devices
  ##############################################
elsif($BatteryType[0] eq "battery"  && InternalVal($Device, "TYPE", "undef") eq "ZWave")
{
   if(ReadingsVal($Device, "battery", "na") eq "low")
{
     $ActBatLevel = 0;
}
else
{
    $ActBatLevel = ReadingsNum($Device, "battery", "0");
}


durch das hier zu ersetzen/ergänzen:


  ##############################################
  # ZWave Devices
  ##############################################
elsif($BatteryType[0] eq "battery"  && (InternalVal($Device, "TYPE", "undef") eq "ZWave" || InternalVal($Device, "TYPE", "undef") eq "HUEDevice"))


Der Rest sollte ja ähnlich der ZWave sein, so ich das dem list richtig entnommen habe.

Es kann halt höchstens sein, dass die für ZWave angenommenen "Low-Level" (und damit Nachrichtenversand) halt nicht für die ZigBee Geräte passen.
Dann müsste man den ganzen Zweig kopieren und eben als neuen Typ anfügen...

Aber das mit dem Level bei Geräten, die Prozent o.ä. melden (und kein low etc.) ist eh schwierig festzulegen.

Für ZWave habe ich das nur "empirisch" mit meinen Rauchmeldern/"Augen" ermittelt...

Poste doch mal ein list der Homematic-Devices.

EDIT: bzgl. Alias statt Name. Evtl. hier

###############################
# Here you can change the variables to fit your installation.
#
  my $text_now = "Die Batterien von $Device müssen JETZT gewechselt werden!"; #Text for changing battery now
  my $text_soon = "Die Batterien von $Device sollten bald gewechselt werden!"; #Text for changing battery soon


mal das einbauen:


###############################
# Here you can change the variables to fit your installation.
#
my $SendName = $Device;
if(AttrVal($Device, "alias", "n.a.") ne "n.a.")
{
  $SendName  = AttrVal($Device, "alias", "n.a.");
}

  my $text_now = "Die Batterien von $SendName müssen JETZT gewechselt werden!"; #Text for changing battery now
  my $text_soon = "Die Batterien von $SendName sollten bald gewechselt werden!"; #Text for changing battery soon


Bei ReadingsGroup gibt es das Mapping-Attribut, vielleicht hilft das. Evtl. brauchst du aber da auch eine Sub, die eben schaut, ob es einen alias gibt und dann den "setzt" und ansonsten Name (oder was eben aktuell in der RG steht) zurück gibt...

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

Erstmal herzlichen Dank, ich muss mich mal damit auseinandersetzten und melde mich wieder.
Zitat von: MadMax-FHEM am 24 Januar 2022, 16:48:10...
Poste doch mal ein list der Homematic-Devices.
...


Internals:
   CUL_0_MSGCNT 11
   CUL_0_RAWMSG A0DD2A6416AABA42CD994019A0060::-66:CUL_0
   CUL_0_RSSI -66
   CUL_0_TIME 2022-01-24 19:20:19
   DEF        6AABA4
   FUUID      5e70d1ab-f33f-0af0-8758-af129eb92a7578b2
   HMLAN1_MSGCNT 11
   HMLAN1_RAWMSG E6AABA4,0000,00B24B5F,FF,FFB9,D2A6416AABA42CD994019A0060
   HMLAN1_RSSI -71
   HMLAN1_TIME 2022-01-24 19:20:19
   HMLAN2_MSGCNT 11
   HMLAN2_RAWMSG E6AABA4,0000,4DA922E9,FF,FFC2,D2A6416AABA42CD994019A0060
   HMLAN2_RSSI -62
   HMLAN2_TIME 2022-01-24 19:20:19
   HMLAN3_MSGCNT 10
   HMLAN3_RAWMSG E6AABA4,0000,75A77186,FF,FFBB,D2A6416AABA42CD994019A0060
   HMLAN3_RSSI -69
   HMLAN3_TIME 2022-01-24 19:20:19
   IODev      CUL_0
   LASTInputDev HMLAN2
   MSGCNT     43
   NAME       Aussen_Garten_Bewegungmelder_Haustuer
   NR         553
   NTFY_ORDER 48-Aussen_Garten_Bewegungmelder_Haustuer
   STATE      noMotion
   TYPE       CUL_HM
   chanNo     01
   disableNotifyFn 1
   lastMsg    No:D2 - t:41 s:6AABA4 d:2CD994 019A0060
   protLastRcv 2022-01-24 19:20:19
   protRcv    9 last_at:2022-01-24 19:20:19
   protSnd    9 last_at:2022-01-24 19:20:19
   protState  CMDs_done
   rssi_at_CUL_0 cnt:11 min:-66 max:-59.5 avg:-61.68 lst:-66
   rssi_at_HMLAN1 cnt:11 min:-71 max:-66 avg:-68.18 lst:-71
   rssi_at_HMLAN2 cnt:11 min:-79 max:-58 avg:-70.81 lst:-62
   rssi_at_HMLAN3 cnt:10 min:-76 max:-69 avg:-73.2 lst:-69
   Helper:
     DBLOG:
       battery:
         MyDBlog:
           TIME       1643048419.46738
           VALUE      ok
       brightness:
         MyDBlog:
           TIME       1643048419.46738
           VALUE      0
       motion:
         MyDBlog:
           TIME       1643048481.28878
           VALUE      off
       motionCount:
         MyDBlog:
           TIME       1643048419.46738
           VALUE      154_next:60s
       motionDuration:
         MyDBlog:
           TIME       1643048481.28878
           VALUE      62
   READINGS:
     2022-01-24 19:23:03   Activity        alive
     2020-03-18 12:33:32   CommandAccepted yes
     2020-03-17 14:36:01   D-firmware      1.6
     2020-03-17 14:36:01   D-serialNr      PEQ0659029
     2022-01-24 19:20:19   IODev           CUL_0
     2020-03-18 12:43:35   PairedTo        0x2CD994
     2020-03-18 12:33:29   R-brightFilter  7
     2020-03-18 12:33:29   R-captInInterval off
     2020-03-18 12:33:29   R-evtFltrNum    1
     2020-03-18 12:33:29   R-evtFltrPeriod 1 s
     2020-03-18 12:43:36   R-minInterval   60
     2020-03-17 14:36:02   R-pairCentral   0x2CD994
     2020-03-18 12:33:29   R-sign          off
     2020-03-18 12:43:35   RegL_00.        00:00 02:01 0A:2C 0B:D9 0C:94
     2020-03-18 12:43:36   RegL_01.        00:00 01:12 02:72 08:00 22:00
     2022-01-24 19:20:19   battery         ok
     2022-01-24 19:20:19   brightness      0
     2021-08-09 22:51:26   cfgState        ok
     2022-01-24 19:20:19   commState       CMDs_done
     2022-01-24 19:21:21   motion          off
     2022-01-24 19:20:19   motionCount     154_next:60s
     2022-01-24 19:21:21   motionDuration  62
     2022-01-24 19:21:21   state           noMotion
     2022-01-24 19:20:19   trigger_cnt     154
   helper:
     HM_CMDNR   210
     lastMsgTm  1643048419.27872
     mId        005D
     peerFriend peerAct,peerVirt
     peerIDsState complete
     peerOpt    4:motionDetector
     regLst     0,1,4p
     rxType     28
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1643037182.58033
       TmplTs     1643037182.58033
       cmdKey     1:1:0::Aussen_Garten_Bewegungmelder_Haustuer:005D:01:
       cmdLst:
         assignHmKey noArg
         clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerChan   -btnNumber- -actChn- [({single})] [({set}|unset)] [actor|remote|both]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sign       [(on|{off})]
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         trgEventL  -peer- -condition-
         trgEventS  -peer- -condition-
         trgPressL  [(-peer-|{all})]
         trgPressS  [(-peer-|{all})]
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       flgs       0
       newChn     +6AABA4,00,00,00
       nextSend   1643048419.43768
       rxt        2
       vccu       VCCU
       p:
         6AABA4
         00
         00
         00
       prefIO:
         CUL_0
     mRssi:
       mNo        D2
       io:
         CUL_0:
           -62
           -62
         HMLAN1:
           -71
           -71
         HMLAN2:
           -62
           -62
         HMLAN3:
           -69
           -69
     peerIDsH:
       00000000   broadcast
     prt:
       bErr       0
       sProc      0
       sleeping   1
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rpt:
       IO         CUL_0
       flg        A
       ts         1643048419.27872
       ack:
         HASH(0x6223cb8)
         D280022CD9946AABA401010000
     rssi:
       at_CUL_0:
         avg        -61.6818181818182
         cnt        11
         lst        -66
         max        -59.5
         min        -66
       at_HMLAN1:
         avg        -68.1818181818182
         cnt        11
         lst        -71
         max        -66
         min        -71
       at_HMLAN2:
         avg        -70.8181818181818
         cnt        11
         lst        -62
         max        -58
         min        -79
       at_HMLAN3:
         avg        -73.2
         cnt        10
         lst        -69
         max        -69
         min        -76
     tmpl:
Attributes:
   DbLogInclude brightness
   IOgrp      VCCU:CUL_0
   actCycle   000:10
   actStatus  alive
   alias      Bewegungsmelder Haustür
   autoReadReg 4_reqStatus
   comment    Inbetriebnahme: 17.03.2020
   expert     defReg,rawReg
   firmware   1.6
   group      Bewegungsmelder
   icon       people_sensor
   model      HM-SEN-MDIR-SM
   peerIDs    00000000
   room       Aussen,Übersicht
   serialNr   PEQ0659029
   showtime   1
   subType    motionDetector
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

Hm das mit den Homematic kann eigentlich nur durch den ActionDetector kommen...

Es steht zwar im list "alive" aber evtl. ist irgendwas "falsch" beim ActionDetector...

Eine andere Erklärung habe ich aktuell nicht.

Wie zu Beginn des Posts geschrieben steht stammt der Code von mir und ist halt an manchen Stellen (sehr) speziell an meine "Umgebung"...

Du kannst auch den ActionDetector-Teil rauslassen, also:


##################################################
# Helper for readingsGroup BatteryStatus:
# sets the icon and icon color depending on "calculated" percentage value
sub SetBatterieIcon($$)
{
  my ($Device, $Value)  = @_;
  my $Icon = "measure_battery_" . "$Value"; # here the matching icon is "set"
  my $ActionDetectorDevice = "status_" . $Device;
  my $Name = ""; # name for signal state
  my $State = ReadingsVal("ActionDetector", $ActionDetectorDevice, "alive");

#  Log3(undef, 1, "my_SetBatteryIcon      Device: $Device       Value: $Value");

  if($State ne "alive")
  {
    $Icon = "message_attention\@red";
  }
  else
  {
    if($Value > 75)
    {
      $Icon = $Icon . "\@green"; # between 75% and 100%
    }
    elsif($Value > 25)
    {
      $Icon = $Icon . "\@orange"; # between 25% and 75%
    }
    else
    {
      $Icon = $Icon . "\@red"; # below 25%
    }
  }

  return $Icon;
}


dann einfach so:


##################################################
# Helper for readingsGroup BatteryStatus:
# sets the icon and icon color depending on "calculated" percentage value
sub SetBatterieIcon($$)
{
  my ($Device, $Value)  = @_;
  my $Icon = "measure_battery_" . "$Value"; # here the matching icon is "set"

#  Log3(undef, 1, "my_SetBatteryIcon      Device: $Device       Value: $Value");

    if($Value > 75)
    {
      $Icon = $Icon . "\@green"; # between 75% and 100%
    }
    elsif($Value > 25)
    {
      $Icon = $Icon . "\@orange"; # between 25% and 75%
    }
    else
    {
      $Icon = $Icon . "\@red"; # below 25%
    }

  return $Icon;
}


Wenn ich mich nicht "vertippt" hab...

Das mit dem ActionDetector hilft halt, falls ein Device/Gerät es nicht mehr geschafft hat eine leere Batterie zu melden, dann merkt das ja irgendwann der ActionDetector und dann ist da eben das Ausrufezeichen :)

Stammt noch vom Beginn, also ich (fast) nur Homematic hatte...
...mittlerweile habe ich das stellenweise anders/zusätzliche Dinge.
Evtl. müsste man das (wie den gesamten Code) mal "verbessern"...

Aber dafür fehlt dann doch leider die Zeit.
Mal sehen...

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)

Kohle77

Hallo,
aus https://forum.fhem.de/index.php/topic,129736.msg1240072.html#msg1240072 kam die Idee das ich ein List meiner devices hier poste damit diese vielleicht integriert werden.
Für den Shelly Fensterkontakt:
Internals:
   CFGFN      /opt/fhem/FHEM/CFG/13_mqtt.cfg
   FUUID      617a2729-f33f-d2f4-5e7e-67421914707b79af
   IODev      Mosquitto
   NAME       BueroChris
   NR         288
   STATE      close
   TYPE       MQTT_DEVICE
   eventCount 2
   READINGS:
     2022-10-19 08:18:46   IODev           Mosquitto
     2022-10-19 05:47:23   announce        {"id":"mibueoben","model":"SHDW-2","mac":"E8DB84D3BA82","ip":"192.168.178.32","new_fw":false,"fw_ver":"xxxxxxxx-yyyyyyy/va.bb.c-eeeeee12"}
     2022-10-19 05:47:23   batteryPercent  97
     2022-10-19 08:18:50   batteryState    ok
     2022-10-19 05:47:23   error           0
     2022-10-19 05:47:23   fw_ver          xxxxxxxx-yyyyyyy/va.bb.c-eeeeee12
     2022-10-19 05:47:23   id              mibueoben
     2022-10-19 05:47:23   ip              190.132.150.32
     2022-10-19 05:47:23   mac             E7DA84B3BC92
     2022-10-19 05:47:23   model           SHDW-2
     2022-10-19 05:47:23   new_fw          0
     2022-10-19 05:48:54   online          false
     2022-10-17 10:01:35   state           close
     2022-10-19 08:18:50   transmission-state subscription acknowledged
   message_ids:
   sets:
   subscribe:
     shellies/mibueoben/announce
     shellies/mibueoben/sensor/battery
     shellies/mibueoben/sensor/error
     shellies/mibueoben/online
     shellies/mibueoben/sensor/state
   subscribeExpr:
     ^shellies\/mibueoben\/announce$
     ^shellies\/mibueoben\/sensor\/battery$
     ^shellies\/mibueoben\/sensor\/error$
     ^shellies\/mibueoben\/online$
     ^shellies\/mibueoben\/sensor\/state$
   subscribeQos:
     shellies/mibueoben/announce 0
     shellies/mibueoben/online 0
     shellies/mibueoben/sensor/battery 0
     shellies/mibueoben/sensor/error 0
     shellies/mibueoben/sensor/state 0
   subscribeReadings:
     shellies/mibueoben/announce:
       cmd       
       name       announce
     shellies/mibueoben/online:
       cmd       
       name       online
     shellies/mibueoben/sensor/battery:
       cmd       
       name       batteryPercent
     shellies/mibueoben/sensor/error:
       cmd       
       name       error
     shellies/mibueoben/sensor/state:
       cmd       
       name       state
Attributes:
   DbLogExclude .*
   alias      Fenster Büro Chris
   comment    IP: 190.132.150.32
   devStateIcon open:fts_window_1wbb_open@red close:fts_window_1w@black
   group      Chris Buero
   room       Buero Chris
   subscribeReading_announce shellies/mibueoben/announce
   subscribeReading_batteryPercent shellies/mibueoben/sensor/battery
   subscribeReading_error shellies/mibueoben/sensor/error
   subscribeReading_online shellies/mibueoben/online
   subscribeReading_state shellies/mibueoben/sensor/state
   userReadings batteryState { return "ok" if(ReadingsVal("BueroChris","batteryPercent","0"))>"25"; return "low"}
   userattr   subscribeReading_state subscribeReading_batteryPercent subscribeReading_error subscribeReading_announce subscribeReading_online


und für das Fritz!DECT 301 Heizkörperthermostat:
Internals:
   CFGFN      /opt/fhem/FHEM/CFG/21_heizung.cfg
   DEF        FritzSmart:09995_0702078 actuator,tempSensor
   FUUID      6006cddc-f33f-d2f4-8485-208a926f2f4ce162
   FritzSmart_MSGCNT 37
   FritzSmart_TIME 2022-10-19 11:18:49
   IODev      FritzSmart
   LASTInputDev FritzSmart
   MSGCNT     37
   NAME       HzMiChBu
   NR         400
   STATE      desired-temp: 14.0 C
   TYPE       FBDECT
   eventCount 37
   id         09995_0702078
   props      actuator,tempSensor
   webCmd     desired-temp
   READINGS:
     2022-10-19 11:18:49   AIN             09995 0702128
     2022-10-19 11:18:49   FBNAME          Büro Chris
     2022-10-19 11:18:49   FBPROP          actuator,tempSensor
     2022-10-19 11:18:49   FBTYPE          FRITZ!DECT 301
     2022-10-19 11:18:49   ID              20
     2022-10-19 08:18:46   IODev           FritzSmart
     2022-10-19 11:18:49   battery         80 %
     2022-10-19 11:18:49   batteryPercent  80
     2022-10-19 11:18:49   batteryState    ok
     2022-10-19 11:18:49   batterylow      0
     2022-10-19 11:18:49   boostactive     no
     2022-10-19 11:18:49   boostactiveendtime N/A
     2022-10-19 11:18:49   day-temp        21.0 C
     2022-10-19 11:18:49   desired-temp    14.0 C
     2022-10-19 11:18:49   devicelock      no
     2022-10-19 11:18:49   errorcode       noError (0)
     2022-10-19 11:18:49   fwversion       05.02
     2022-10-19 11:18:49   holidayactive   no
     2022-10-19 11:18:49   locked          no
     2022-10-19 11:18:49   nextPeriodStart 1970-01-01 01:00:00
     2022-10-19 11:18:49   nextPeriodTemp  21.0 C
     2022-10-19 11:18:49   night-temp      16.0 C
     2022-10-19 11:18:49   present         yes
     2022-10-19 11:18:49   state           desired-temp: 14.0 C
     2022-10-19 11:18:49   summeractive    no
     2022-10-19 11:18:49   tempadjust      0.0 C
     2022-10-19 11:18:49   temperature     22.5 C (measured)
     2022-10-19 11:18:49   windowopenactiv no
     2022-10-19 11:18:49   windowopenactiveendtime N/A
Attributes:
   DbLogExclude .*
   IODev      FritzSmart
   alias      Heizköper Büro
   event-min-interval power:120
   room       DG_MI->Buero Chris
   verbose    0


Danke
Christian

MadMax-FHEM

Hallo Christian,

ich schaue mir das mal an.

Muss nur sehen, wie ich das "übergebe".
Mit git habe ich noch nicht viel gearbeitet, werde es also wohl (wieder) hier posten?

Mal sehen.
Wird aber etwas dauern...
(außer es findet sich jemand anders :)  ;)  )

Der "Mechanismus" hier ist aber (ganz klar) anders!
Das Device meldet (per Telegram ob per Signal: keine Ahnung, wenn dann müsste das evtl. eingebaut werden), wenn die Batterie leer ist (oder eine Schwelle unterschritten ist)...
...es ist nicht so, dass das zu einer bestimmten Zeit erfolgt.

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)

MadMax-FHEM

#357
So, ich habe mal versucht ausgehend von der github-Version: https://github.com/Amenophis86/Batteryfunktion/blob/master/99_Batterycheck.pm
einige Dinge einzuarbeiten, eine Version hängt an.

Folgendes habe ich mal eingebaut (Historie meiner Änderungen in diesem Thread).

Eingearbeitete Änderungen:

(HMCCUDEV und) LaCrosse
https://forum.fhem.de/index.php/topic,82637.msg1190831.html#msg1190831
(wobei LaCrosse schon mal potentiell hätte integriert werden können: https://forum.fhem.de/index.php/topic,82637.msg754406.html#msg754406 / weicht aber von meiner Integration nicht ab?)
(Und ich bzgl. HMCCUDEV gar nicht sicher bin, ob das funktioniert? Denke eher nicht, wenn ich mir das hier anschaue: https://forum.fhem.de/index.php/topic,82637.msg798155.html#msg798155)


HUEDevice:
https://forum.fhem.de/index.php/topic,82637.msg1203153.html#msg1203153
(wurde aber auch schon mal vorgeschlagen: https://forum.fhem.de/index.php/topic,82637.msg909188.html#msg909188 nicht geprüft inwieweit "ich" da "abweiche")

FBDECT:
https://forum.fhem.de/index.php/topic,82637.msg1240399.html#msg1240399

Ich übernehme keine Gewähr, da ich (immer noch) "meinen Code" laufen habe... ;) :-\


EDIT: Fehler korrigiert (so hoffe ich ;)  ), siehe https://forum.fhem.de/index.php/topic,82637.msg1249538.html#msg1249538


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)

kallidalli

Erst einmal auch von mir vielen Dank an alle die bereits an dem Thema arbeiten / gearbeitet haben.
Ich teste gerade die neueste Version von dir (Joachim).
Dabei ist mir aufgefallen das in Zeile 272 sich noch ein Fehler eingeschlichen hat.
Habe die Zeile mal korrigiert, da war eine Klammer zu viel am Ende.

elsif($BatteryType[0] eq "batteryLevel" && InternalVal($Device, "TYPE", "undef") eq "XiaomiFlowerSens" || InternalVal($Device, "TYPE", "undef") eq "FBDECT")

Aktuell habe ich nur HM Geräte im Einsatz mit battery & batteryLevel... falls ich noch andere Sachen heraus finde werde ich mich wieder melden  :)

Viele Grüße

MadMax-FHEM

@kallidalli: danke!

Allerdings muss das so:


elsif($BatteryType[0] eq "batteryLevel" && (InternalVal($Device, "TYPE", "undef") eq "XiaomiFlowerSens" || InternalVal($Device, "TYPE", "undef") eq "FBDECT"))


Hab's ausgebessert...

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)