FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: willybauss am 13 Februar 2016, 10:18:34

Titel: userReadings: Kombination von differential und round() rundet nicht
Beitrag von: willybauss am 13 Februar 2016, 10:18:34
Hi,
ich lese mit dem OBIS-Modul die Strom-Zählerstände aus und rechne sie per userReadings im differential Modus in Leistungswerte um. Die dabei entstehenden unsinnigen 13 Nachkommastellen möchte ich mit round() abschneiden:


P_Bezug_Watt:energy_total differential { round( (ReadingsVal("Hausstrom_Zaehler","energy_total",0)*3600000), 2) }


Aber das klappt nicht. Das round() wird ignoriert; es bleiben Ergebnisse in dieser Form:


2016-02-13 10:02:25 OBIS Hausstrom_Zaehler P_Bezug_Watt: 29.2511499806347


Ich vermute, dass das durch die differential-Bildung nach dem runden kommt.

Ein Ersatz des round() durch sprintf("%.2f",ReadingsVal...  wird aus demselben Grund nicht funktionieren.

==> muss ich das Ergebnis mit einem zweiten userReading aufbereiten, oder geht das einfacher?
Titel: Antw:userReadings: Kombination von differential und round() rundet nicht
Beitrag von: stromer-12 am 13 Februar 2016, 12:41:01
Ich tippe mal auf differential welches die nachkommastellen produziert
Titel: Antw:userReadings: Kombination von differential und round() rundet nicht
Beitrag von: willybauss am 13 Februar 2016, 19:38:56
Ich habs jetzt in einem zweiten userReading gerundet:


P_Bezug_temp:energy_total differential { ReadingsVal("Hausstrom_Zaehler","energy_total",0)*3600000 }, P_Einsp_temp:feed_total differential { ReadingsVal("Hausstrom_Zaehler","feed_total",0)*3600000 },  P_Bezug_Watt { sprintf("%.0f",ReadingsVal("Hausstrom_Zaehler","P_Bezug_temp",0)) },  P_Einsp_Watt { sprintf("%.0f",ReadingsVal("Hausstrom_Zaehler","P_Einsp_temp",0)) }