UserReading wird doppelt ausgeführt

Begonnen von cruser1800, 18 Januar 2016, 22:05:16

Vorheriges Thema - Nächstes Thema

cruser1800

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.


rudolfkoenig

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.

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

cruser1800

Danke,  das mit der Reihenfolge habe ich nicht gewußt!