Hallo,
ich habe zur Berechnung des Stromverbrauchs beim cubietruck folgende UserReadings definiert.
power_ac_cubie {LeistungCubie()}, power_ac_Volume:power_ac_cubie {ReadingsVal("cubie", "power_ac_cubie", 0) + ReadingsVal("cubie", "power_ac_Volume", 0)}
Gespeichert soll der Verbrauch in power_ac_Volume
Der erste Teil zur Ermittlung des momentanen Stromverbrauchs pro Sekunde funktioniert. Nur beim zweiten Teil tut es nicht das, was ich erwartet habe.
1. das UserReading wird 2 mal ausgeführt! Warum?
2. in der ersten Runde ist der Wert=0 für ReadingsVal("cubie", "power_ac_Volume", 0)
, damit wird der Wert auf den momentanen Stromverbrauch gesetzt. In der zweiten Runde funktioniert es wie erwartet und im Verbrauch wird der wird berechhet als 2 x momentaner Stromverbrauch. Damit wird aber leider der Gesamtverbrauch nicht ermittelt, sonden immer zurück gesetzt!
Warum verhält sich das UserReading so? Und warum ist in der ersten Runde der Wert für ReadingsVal("cubie", "power_ac_Volume", 0) gleich 0?
Danke für die Hilfe oder Hinweis, wo ich es nachlesen kann.
ReadingsVal liefert 0 zurueck, falls ein Reading nicht definiert ist.
userReadings wird bei jedem Eintreffen eines passenden Events ausgefuehrt.
Ich wuerde mit dem EventMonitor pruefen, weche Events eintreffen.
noch etwas: die reihenfolge in der user readings abgearbeitet werden ist undefiniert. d.h. auf einander aufbauende user readings funktionieren eigentlich nicht.
du berücksichtigst auch nicht die zeit. schau dir mal den typ differential an.
gruss
andre
Danke, das mit der Reihenfolge habe ich nicht gewußt!