FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sebastian84 am 29 September 2025, 21:10:54

Titel: Tabelle
Beitrag von: Sebastian84 am 29 September 2025, 21:10:54
Guten Abend

Ich möchte gerne von Hand oder automatik alle Sensoren wenn ich eine Batterie wechsele das Datum und den Sensor eintragen.
Die Tabelle soll dann in Fhem dargestellt werden. Das man sehen kann wie lange die Batterien gehalten haben.
Titel: Aw: Tabelle
Beitrag von: Gisbert am 29 September 2025, 21:25:39
Hallo Sebastian,

eine fertige Lösung hab ich nicht, aber ich würde es so angehen:


Viele Grüße Gisbert
Titel: Aw: Tabelle
Beitrag von: Prof. Dr. Peter Henning am 01 Oktober 2025, 21:24:20
Zitat von: Gisbert am 29 September 2025, 21:25:39Im jeweiligen Device mit setreading ein Reading, z.B. time_batt_change setzen
Nicht doch. Das ist kein "Reading", das man vom Device lesen kann. Also sinnvollerweise stattdessen globale User-Attribute batteryType und batteryDate

Und daraus dann eine Readingsgroup, die alle REadings (das sind wirklich Readings vom Device) battery,Battery,batteryState,BatteryState sowie diese beiden Attribute darstellt. Und auch gleichzeitig anzeigt, wann das letzte Mal ein OK von der Batterie kam.
defmod rg_battery readingsGroup <Gerät>,<Zustand>,<Datum>,<Typ>,<Wechsel> .*:FILTER=battery(State)?=.*:FILTER=batteryType!=ignore:[bB]attery(State)?,[bB]attery:t,?batteryType,?batteryDate
attr rg_battery alias Batteriestatus
attr rg_battery nameStyle style="font-weight:bold"
attr rg_battery room System->Hardware
attr rg_battery valueFormat {if(defined($COLUMN) && $COLUMN eq "2"){my $age=int(time-time_str2num($VALUE));;if($age<3600){"<1h"}elsif($age<86400){"<1d"}elsif($age<1209600){"<14d"}else{">14d"}}}
attr rg_battery valueStyle {if(defined($COLUMN) && $COLUMN eq "1"){($VALUE =~ /low/)?'style="color:red"':'style="color:green"'}\
elsif(defined($COLUMN) && $COLUMN eq "2"){my $age=int(time-time_str2num($VALUE));;{if($age<86400){'style="color:green"'}elsif($age<1209600){'style="color:black"'}else{'style="color:red"'}}}\
else{'style="color:black"'}}

LG

pah

Edit: Wenn batteryType=ignore, wird dieses Device nicht in die Liste aufgenommen
Titel: Aw: Tabelle
Beitrag von: Sebastian84 am 06 Oktober 2025, 18:36:00
Guten Abend

Ich hab das jetzt nach deinen Vorschlag gemacht "Prof. Dr. Peter Henning"

Meine Frage wenn ich jetzt eine Batterie wechsle kommt dann das Datum in Wechsel eingetragen?

Kann mann diese Devices " FBDECT_FritzBox_11963_0142552  " irgendwie ausblenden?

Titel: Aw: Tabelle
Beitrag von: Sebastian84 am 06 Oktober 2025, 19:21:44
Hab das in das device "attr FBDECT_FritzBox_11963_0142552 batteryType ignore" in Raw definition eingetragen. Aber trotzdem kommt in den Gruppen reading.