Hauptmenü

userReadings - sprintf

Begonnen von Eisix, 20 April 2020, 17:12:49

Vorheriges Thema - Nächstes Thema

Eisix

Hallo,

kann mir mal einer einen Tip geben warum userreadings mit differential sich nicht mit sprintf  auf z.B. 2 Nachkommastellen beschränken lassen?


Count_Licht {sprintf("%.2f",ReadingsNum("Stromzaehler","COUNTER_C2","")/150)},
PowerUSED_LS:COUNTER_C2.* differential {sprintf("%.2f",ReadingsNum("Stromzaehler","COUNTER_C2","")*24000)}


Count_Licht
1750.01

PowerUSED_LS
1039.89085243164

Gruß
Eisix

KernSani

Ich vermute mal, dass differential auf der auf zwei Nachkommastellen gerundeten Zahl gerechnet wird... und das gibt wieder einen schiefen Wert... 
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Otto123

so isses
Zitatdifferential: das Reading wird auf die Differenz zw. dem aktuellen und dem vorherigen Wert, geteilt durch die Sekunden zw. der aktuellen Zeit und der letzten Auswertung, sekundengenau. Kein Wert wird berechnet, falls der Unterschied unter eine Sekunde liegt.
sprintf macht an der Stelle keinen Sinn. Du musst wohl ein weiteres userReadings machen und den Wert mit sprintf machen - oder sprinf ganz am Ende bei der Ausgabe machen :)
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

Eisix

OK denke ich habe es verstanden, das differential wird aus dem Inhalt der {} gerechnet. Ist einfacher als ich gedacht habe, dachte es wäre nur ein Aufruf einer anderen Funktion die den Inhalt des ReadingsNum anders berechnet.

Danke und Gruß
Eisix