datenschuft / SMA-EM

SMA Energymeter measurement
GNU General Public License v2.0
92 stars 38 forks source link

Bug in sma-daemon.py => doppelter Aufruf von config() #85

Open Berlenz opened 5 months ago

Berlenz commented 5 months ago

[Problem] Die "featurelist" Variable enthält jedes Feature doppelt. D.h. jedes Feature, das in der "config" Datei unter [SMA-EM] "features=pvdata mqtt ....." eingetragen ist, ist doppelt in der "featurelist" Variable enthalten. Dadurch wird die run() Funktion jedes Features, z.B. /opt/smaemd/features/pvdata.py => run(), zweimal kurz hintereinander ausgeführt. Siehe /opt/smaemd/sma-daemon.py => run() ... for featurenr in featurelist: featurelist[featurenr]['feature'].run(emparts,featurelist[featurenr]['config']) ...

[Ursache] Das Problem wird verursacht, weil die Funktion MyDaemon => config() doppelt aufgerufen wird. Erster Aufruf: daemon3x => start() => self.config() Zweiter Aufruf: MyDaemon => run() => self.config() Das Problem fällt in der Praxis nicht auf, weil in der Datei "/etc/smaemd/config" der Parameter "min_update" der eintsprechenden Features auf mehrere Sekunden gesetzt sein dürfte. Deshalb wir ein zweiter Aufruf der Feature run() Funktion aufgrund der nicht erreichten Updatezeit abgebrochen.

[Lösung] /opt/smaemd/sma-daemon.py => run() => Zeile "self.config()" löschen