Seite 1 von 1

MQTT Werte vs. InfluxDB Werte unterschiedlich ?

Verfasst: So 14. Aug 2022, 14:59
von pusemuckel
Hallo,
vielleicht kann mir jemand auf die Sprünge helfen. Ich vermute ich habe einen Denkfehler.
Ich nutze die Solaranzeige schon seit einigen Jahren mit meiner Anlage und der InfluxDB und einem Grafana Dashbaord. Nun wollte ich die Daten zusätzlich per MQTT übertragen um sie unter ioBroker anzuzeigen.

Dabei ist mir aufgefallen, dass die Werte sich unterscheiden. Ich war der Meinung, dass die Daten jeweils alle 60 Secunden sowohl an die InfluxDB als auch über MQTT übertragen werden.Damit sollte ich doch jeweils die gleichen Werte haben, wenn ich Summen bilde ?
z.B. Folgender Code

Code: Alles auswählen

TagesEinspeisung = TagesEinspeisung + (MQTT: solaranzeige/box1/ac_einspeisung) / 60
Hat jemand einen Tipp wo mein Denkfehler ist ?
Danke und Grüße

Re: MQTT Werte vs. InfluxDB Werte unterschiedlich ?

Verfasst: So 14. Aug 2022, 15:51
von Ulrich
Kannst du mir noch verraten, um welche Regler Nummer es sich handelt? Dann könnte ich einmal nachsehen.

Re: MQTT Werte vs. InfluxDB Werte unterschiedlich ?

Verfasst: So 14. Aug 2022, 16:57
von pusemuckel
Hallo Ulrich,
ich verwende einen SolarEdge mit der Regelernummer 16.
Benötigst Du noch weitere Daten ?
VG

Re: MQTT Werte vs. InfluxDB Werte unterschiedlich ?

Verfasst: So 14. Aug 2022, 17:44
von Ulrich
Die Differenz entsteht daher, dass der Wert erst am Ende des Scripts errechnet wird und erst in der nächsten Minute in die Datenbank geschrieben wird. Du errechnest jedoch den Wert direkt, nachdem der MQTT Wert versendet wurde. Dadurch ist dein Wert immer um den Wert einer Minute höher als der in der Datenbank.

Das passiert bei allen Geräten, die den Tagesertrag nicht selber ausgeben.

Re: MQTT Werte vs. InfluxDB Werte unterschiedlich ?

Verfasst: Mo 15. Aug 2022, 17:55
von pusemuckel
Danke Ulrich für Deine schnelle Rückmeldung und Analyse.
Bei meiner Konstallation sind die Werte in der InfluxDB allerdings größer als die aus MQTT. Ich verwende für die Darstellung in Grafana die z.B. die folgenden Queries.

Code: Alles auswählen

Query für Bezug (Tag)
SELECT sum("Bezug")  / 60 FROM "AC" WHERE $timeFilter GROUP BY time(1d) fill(null)

Query für Verbrauch (Tag)
SELECT sum("Verbrauch")  / 60 FROM "AC" WHERE $timeFilter GROUP BY time(1d) fill(null)
Ich denke das passt soweit auch.