Hallo,
ich hab eine readingsGroup für den Batteriezustand, die ich aus dem Wiki kopiert habe. Mit der Definition kommt auch ein sekundengenauer Timestamp mit, der mir aber zu lang ist, da er auf dem Handy ohne Scrollen nicht ganz angezeigt wird.
Ich hätte gerne den Timestamp minutengenau dargestellt - ich weiß nur nicht wie. Bei anderen Fällen könnte ich mir meist selbst behelfen und mit Hilfe der commandref eine Lösung finden.
define Battery.State readingsGroup (Garagentor.Kontakt|HandsenderGarage|TH.Haushaltsraum|TH.Kuhlmannweg8|Wassermelder):([Bb]attery|[Bb]attery[Ss].*)
attr Battery.State alias Battery state
attr Battery.State room Home HM
attr Battery.State valueFormat {return "0" if( $VALUE eq "low" );;\
return "100" if( $VALUE eq "ok" );;}
attr Battery.State valueIcon {'battery.0' => 'measure_battery_0@red', \
'battery.100' => 'measure_battery_100@green', \
'batteryState.0' => 'measure_battery_0@red', \
'batteryState.100' => 'measure_battery_100@green', \
'Battery.0' => 'measure_battery_0@red', \
'Battery.100' => 'measure_battery_100@green', \
'batteryLevel.0' => 'measure_battery_0@red', \
'batteryLevel.100' => 'measure_battery_100@green',}
# CFGFN ./FHEM/HomematicAktorenSensoren.cfg
# DEF (Garagentor.Kontakt|HandsenderGarage|TH.Haushaltsraum|TH.Kuhlmannweg8|Wassermelder):([Bb]attery|[Bb]attery[Ss].*)
# FUUID 5c430dca-f33f-b139-eb1f-20fed27be2220e10
# NAME Battery.State
# NR 873
# NTFY_ORDER 50-Battery.State
# STATE Initialized
# TYPE readingsGroup
# changed 0
# mayBeVisible 1
# CONTENT:
# Garagentor.Kontakt 1
# HandsenderGarage 1
# TH.Haushaltsraum 1
# TH.Kuhlmannweg8 1
# Wassermelder 1
# CONTENT2:
# DEVICES:
# ARRAY(0x5564c21b2bc0)
# ARRAY(0x5564c31e39c8)
# ARRAY(0x5564bda1ea50)
# ARRAY(0x5564c1594d48)
# ARRAY(0x5564c2f26f18)
# fhem:
# lastDefChange 29
# last_update 1739695007.79656
# helper:
# DEF
# valueFormat {return "0" if( $VALUE eq "low" );
#return "100" if( $VALUE eq "ok" );}
# bm:
# readingsGroup_Attr:
# cnt 2
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 16.02. 09:25:23
# max 0.00100612640380859
# tot 0.00186419486999512
# mAr:
# set
# Battery.State
# valueFormat
# {return "0" if( $VALUE eq "low" );
#return "100" if( $VALUE eq "ok" );
#"%.10f";}
# readingsGroup_Define:
# cnt 5
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 16.02. 09:11:42
# max 0.0119278430938721
# tot 0.0471556186676025
# mAr:
# HASH(0x5564b30954e0)
# Battery.State readingsGroup (Garagentor.Kontakt|HandsenderGarage|TH.Haushaltsraum|TH.Kuhlmannweg8|Wassermelder):([Bb]attery|[Bb]attery[Ss]:r10)
# readingsGroup_Get:
# cnt 23
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 16.02. 09:37:04
# max 7.29560852050781e-05
# tot 0.000779151916503906
# mAr:
# HASH(0x5564b30954e0)
# Battery.State
# ?
# readingsGroup_Notify:
# cnt 286199
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 15.02. 15:57:03
# max 0.0145878791809082
# tot 21.2112565040588
# mAr:
# HASH(0x5564b30954e0)
# HASH(0x5564b4274c48)
# readingsGroup_Set:
# cnt 23
# dmx -1000
# dtot 0
# dtotcnt 0
# mTS 16.02. 09:13:44
# max 8.10623168945312e-05
# tot 0.000891447067260742
# mAr:
# HASH(0x5564b30954e0)
# Battery.State
# ?
# positions:
# Garagentor.Kontakt.battery 1:1
# HandsenderGarage.battery 2:1
# TH.Haushaltsraum.battery 3:1
# TH.Kuhlmannweg8.battery 4:1
# Wassermelder.battery 5:1
# 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.100 measure_battery_100@green
# batteryState.0 measure_battery_0@red
# batteryState.100 measure_battery_100@green
# values:
# formated:
# undef
# ARRAY(0x5564b892fd78)
# orig:
# undef
# ARRAY(0x5564b7bc3bb0)
# prefixsuffix:
# undef
# ARRAY(0x5564c2ff38c0)
#
Viele Grüße Gisbert
Screenshot beigefügt (im 1. Beitrag), rechts fehlt minimal etwas Platz. Bei Beschränkung auf minutengenaue Angabe wäre genug Platz da.
Hallo,
wenn man nur einen Wert "einliest", wird der Zeitstempel automatisch dargestellt, wenn man die Spalte mit dem Attribut notime nicht deaktiviert. Liest man mehr Werte aus gibts die Spalte gar nicht.
Es lesen sich Beiträge aus 2013 so, das Gedanken mal da waren sowas wie ein timestampFormat-Attribut einzubauen, ist aber wohl nie passiert.
Mit dem Attribut valueFormat bekommst den Zeitstempel meinem Verständnis nach nicht formatiert. Umständlich in jedem Device ein userReadings definieren mit dem Zeitstempel als Inhalt und das dann in der rG einlesen und mit ValueFormat anpassen ginge.
Hinten sollte doch mehr Platz gewonnen werden für die Sekunden, wenn Du vorne nur den Devicenamen anzeigst, oder?
attr Battery.State mapping %DEVICE
Gruß Thomas
Hallo Thomas,
vielen Dank für deine Erklärung und die vorgeschlagene Lösung - es hat funktioniert.
Viele Grüße Gisbert