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?
Ich tippe mal auf differential welches die nachkommastellen produziert
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)) }