Datenformatierungs-Nachhilfe erbeten

Begonnen von Ralph, 08 Mai 2021, 08:47:54

Vorheriges Thema - Nächstes Thema

Ralph

Moin,
ich erbitte etwas Nachhilfeunterricht.

In dem folgenden List ist im Reading "STATE" der Inhalt, den ich im Reading "state" haben möchte.

Ich dachte, dass das mit dem Userreadings 2ter Teil ganz unten geht, tut es aber nicht, da kommt nix.

Wer weiß, wie das geht und was ich falsch denke ?

Erbitte eine Lösung.


Internals:
   DEF        ups 192.168.188.7
   DeviceName 192.168.188.7:3493
   FD         114
   FUUID      60959034-f33f-a76b-7984-6cebf4f8dfac8acc
   NAME       USV
   NR         764
   PARTIAL   
   STATE      Power 232.0 V~ , Charge 100 % , U-Batt. 13.7 V , You have 9.6 Minutes to go.
   TYPE       NUT
   UpsName    ups
   buffer     
   lastStatus OL
   pollValState 0
   READINGS:
     2021-05-08 08:12:07   battery.charge  100
     2021-05-08 08:12:07   battery.runtime 577
     2021-05-08 08:12:07   battery.voltage 13.7
     2021-05-08 08:12:07   input.voltage   232.0
     2021-05-08 08:12:57   runtime-minutes 9.6
     2021-05-08 08:12:57   state           
     2021-05-08 08:12:07   ups.load        51
   helper:
     battery.charge 100
     battery.charge.low 10
     battery.charge.warning 50
     battery.date not set
     battery.mfr.date 2016/05/01
     battery.runtime 577
     battery.runtime.low 120
     battery.type PbAc
     battery.voltage 13.7
     battery.voltage.nominal 12.0
     device.mfr APC
     device.model Back-UPS ES 700G
     device.serial 5B1617T47962 
     device.type ups
     driver.name usbhid-ups
     driver.parameter.pollfreq 30
     driver.parameter.pollinterval 15
     driver.parameter.port auto
     driver.parameter.synchronous no
     driver.version 2.7.4
     driver.version.data APC HID 0.96
     driver.version.internal 0.41
     input.sensitivity high
     input.transfer.high 266
     input.transfer.low 180
     input.voltage 232.0
     input.voltage.nominal 230
     ups.beeper.status enabled
     ups.delay.shutdown 20
     ups.firmware 871.O4 .I
     ups.firmware.aux O4
     ups.load   51
     ups.mfr    APC
     ups.mfr.date 2016/05/01
     ups.model  Back-UPS ES 700G
     ups.productid 0002
     ups.serial 5B1617T47962 
     ups.status OL
     ups.timer.reboot 0
     ups.timer.shutdown -1
     ups.vendorid 051d
Attributes:
   asReadings battery.charge,battery.voltage,battery.runtime,input.voltage,ups.load
   disable    0
   event-on-change-reading .*
   icon       power
   pollState  10
   pollVal    60
   room       U_USV_PC_FB
   stateFormat Power input.voltage V~ , Charge battery.charge % , U-Batt. battery.voltage V , You have runtime-minutes Minutes to go.
   userReadings runtime-minutes {sprintf("%.1f",ReadingsNum($NAME, "battery.runtime", 0) / 60)}, state {ReadingsVal($NAME, "STATE","")}
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

Otto123

Hi,

irgendwie verwirrt mich Deine Frage, aber:
2021-05-08 08:12:57   runtime-minutes 9.6
Ist doch das Ergebnis vom
userReadings runtime-minutes {sprintf("%.1f",ReadingsNum($NAME, "battery.runtime", 0) / 60)}, state {ReadingsVal($NAME, "STATE","")}

Ich würde mir keine Gedanken machen um state irgendwie zu bügeln, normal schreibt da das Device seine Zustände rein. Was nutzt Dir state anders als das jetzige Reading - oder Dein STATE was in der Webansicht prominent dasteht?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

STATE ist ausserdem ein internal, das natürlich mit InternalVal() auszulesen ist.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

Jetzt habe ich es kapiert  ::)
stand zu weit hinten, habe ich am Morgen übersehen
{ReadingsVal($NAME, "STATE","")} -> {InternalVal($NAME, "STATE","")}

Aber das ist doch Daten im Kreis schubsen? denn der Ursprung von STATE ist ja das hier:
stateFormat Power input.voltage V~ , Charge battery.charge % , U-Batt. battery.voltage V , You have runtime-minutes Minutes to go.

Warum jetzt diese Daten wieder aus STATE lesen und nach state schieben? das versteh ich nicht ... und ich würde das nicht tun, nicht nach state...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz