fhem.pl: readingsEndUpdate setzt zu viele Readings

Begonnen von vbs, 11 Juli 2015, 00:21:34

Vorheriges Thema - Nächstes Thema

vbs

Ich bin mittlerweile drauf gekommen, warum das statistic-Modul bei mir regelmäßig Readings updatet, mit denen es gar nichts zu tun haben sollte. Das Modul ruft readinsBeginUpdate und readingEndUpdate auf. Bei readingsEndUpdate werden dann jedoch nicht nur die Readings gesetzt, die nach readingsBeginUpdate gesetzt wurden, sondern noch einige weitere mehr.
Und zwar scheinen noch einige alte Readings in $hash->{CHANGED} (in fhem.pl) zu stehen. Ich kenne die Hintergründe nicht, aber ich hätte erwartet, dass $hash->{CHANGED} immer gelöscht wird wenn readingsEndUpdate bzw. readingsBeginUpdate aufgerufen werden. Scheinbar steckt da jedoch etwas Logik dahinter (die ich jetzt nicht spontan durchblicke).
Mein Problem ist momentan, dass dadurch userreadings in meinem Fall immer zweimal berechnet werden, was dann zu Problemen führt.

Weiß jemand, ob das so beabsichtigt ist bzw. was man dagegen machen kann?

rudolfkoenig

Das statistik Modul moechte readings/Events hinzufuegen, und nicht, wie normalerweise ueblich, erzeugen, der Aufruf von readings*Update fuer diesen Zweck nicht "zugelassen", bzw. falsch, da man damit die Trigger-Kette / Notify-Schleife nochmal aufruft.

Ich empfehle genauso wie in avarage oder dewpoint Modul die CHANGED Liste direkt zu bearbeiten.
Der Nachteil ist, dass damit die von Statistik-Modul erzeugeten Readings/Events nicht in den von readingsEndUpdate angebotenen Funktionen (userReadings, event-on-*) verwendet werden koennen.

Ich hatte deswegen schonmal eine Diskussion mit dem Autor, er hat sich gegen meinem Vorschlag entschieden.