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
Ich vermute mal, dass differential auf der auf zwei Nachkommastellen gerundeten Zahl gerechnet wird... und das gibt wieder einen schiefen Wert...
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 :)
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