[erledigt] Zwei Werte in readingsHistory nebeneinander anzeigen?

Begonnen von juemuc, 17 Februar 2024, 13:56:47

Vorheriges Thema - Nächstes Thema

juemuc

Hallo,

ich möchte den Verbrauch der Waschmaschine in readingsHistory darstellen. Dazu schreibe ich den letzten Verbrauchwert und den dazugehörigen Timestamp in einen Dummy "Verbrauchshistorie". In state steht dann der letzte Wert in Watt und im userReading "timeStamp" steht das Datum/Uhrzeit dieses Verbrauchs. Zusätzlich habe ich ein Readingshistory für diesen Dummy mit den beiden readings "state" und "timeStamp" definiert:
defmod Verbrauchs_Historie readingsHistory Verbrauch_pro_Waesche_History:state,timeStamp
attr Verbrauchs_Historie notime 1
attr Verbrauchs_Historie room Bad
attr Verbrauchs_Historie rows 10
attr Verbrauchs_Historie valueFormat { state => "%.0f Watt" }
Ergebnis:
13:54:43  Verbrauch pro Wäsche (Historie) timeStamp: 2024-02-16 13:32:55
13:54:43  Verbrauch pro Wäsche (Historie) 414 Watt

Nun werden aber beide Werte in jeweils einer neuen Zeile ausgegeben. Ich würde dies gerne in einer Zeile darstellen.

13:54:43  Verbrauch pro Wäsche (Historie) 414 Watt am 2024-02-16 13:32:55
Ist dies möglich?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Hallo zusammen,

ich habe es nun wie folgt selbst gelöst:

defmod Verbrauchs_Historie readingsHistory Verbrauch_pro_Waesche_History:state
attr Verbrauchs_Historie notime 1
attr Verbrauchs_Historie room Bad
attr Verbrauchs_Historie rows 10
attr Verbrauchs_Historie valueFormat { state => "%.0f Watt am " . ReadingsVal("Verbrauch_pro_Waesche_History","timeStamp","")}

liefert:

14:16:11  Verbrauch pro Wäsche 414 Watt am 2024-02-16 13:32:55
Jetzt muss ich "nur" noch das Datum formatieren  ;D

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Kann mir noch jemand einen Tipp geben, wie ich das Datum/Uhrzeit nach "DD.MM.YYYY HH:MM" umwandeln kann?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

mi.ke

ich habs bei mir mit "userReadings" gemacht:

lastActionDATUM {join("." => reverse split('-', (split(' ',ReadingsTimestamp($name,"Occupancy",0)))))},
lastActionZEIT {(split(' ',ReadingsTimestamp($name,"Occupancy",0)))[1]},

cheers 
MI/KE
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

juemuc

#4
Hallo mi.ke,

der "Originalwert" ist bei mir auch ein userreading, welches ich wie folgt erzeuge:

timeStamp {sprintf(ReadingsTimestamp("Verbrauch_pro_Waesche","state",""),)}bzw.
timeStamp {ReadingsTimestamp("Verbrauch_pro_Waesche","state","")}
Im ersten Teil versuche ich das Reading per sprintf zu formatieren, weiß aber nicht wie.

Wenn ich deine Definition übernehme, habe ich in "lastActionZeit" weiterhin HH:MM:SS stehen und nicht HH:MM und in "lastActionDatum" steht nur eine 2. In FTUI3 kann ich einfach format(DD.MM.YYYY HH:MM) sagen. Das funktioniert hier aber leider nicht.

Mit
TestDatum {join("." => reverse split('-', (split(' ',ReadingsTimestamp("Verbrauch_pro_Waesche","state",0)))[0]))." ".(split(' ',ReadingsTimestamp("Verbrauch_pro_Waesche","state",0)))[1]}erhalte ich das Datum im gewünschten Format. Nur die Zeit hat noch die Sekunden.

Viele Grüße
Jürgen.



3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Nach vielen kleinen Tests und der Suche im Forum habe ich diese Lösung für das userreading implementiert:

timeStamp {my $date = join("." => reverse split('-', (split(' ',ReadingsTimestamp("Verbrauch_pro_Waesche","state",0)))[0]))." ";my @timehhmmss = split( " ", ReadingsTimestamp("Verbrauch_pro_Waesche","state","")); my @time = split(/:/,$timehhmmss[1]); return $date." um ".$time[0].":".$time[1]." Uhr"}
Somit steht in diesem Reading:
16.02.2024 um 13:32 Uhr
Viele Grüße
Jürgen

3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).