lumapu / ahoy

Various tools, examples, and documentation for communicating with Hoymiles microinverters
https://ahoydtu.de
Other
955 stars 225 forks source link

[Bug] MQTT: total-Werte kommen zu oft #1421

Open knickohr opened 9 months ago

knickohr commented 9 months ago

Ja, wieder mal ein Spam-Issue von mir 🤪

Seit geraumer Zeit werden die Topics mit den total-Werten am Ende der Datenpayloads alle hintereinander wiederholt. Als das Gap noch drin war kamen sie einzeln nach den Daten.

Da wir jetzt in sehr kurzer Zeit ohne den Gap, ich hatte schon Loop durations unter 4s bei 16 Invertern, brauchen diese total-Werte nicht mehr für jeden Inverter einzeln rausgeballert werden, zumal sie ja auch noch identische Werte enthalten. Einmal am Ende des Zyklus reicht.

image
knickohr commented 9 months ago

Ja, sie kommen wieder zu jedem Inverter 👍

Es würde aber reichen einmal am Ende pro Intervall, da das ja jetzt durch die sehr schnelle Abfrage flott geht.

knickohr commented 9 months ago

Da wir ja jetzt mal eine stabile Release haben bei der auch die Kommunikation super funktioniert, könnten wir das Thema „Verschlanken von MQTT“ mal aktiv angehen 😇

Erst mal würde ich ein bißchen aufräumen und unnötige mehrfach kurz hintereinander ausgegebene Topics eliminieren : Die Schnelle kurz hintereinander folgenden Yield-Werte wären da ein heißer Kandidat.

mqtt.txt

Man achte auf den Timestamp. In nicht mal 30s sind bei mir 16 Inverter abgefragt, oftmals noch viel schneller (ohne Display schaffe ich das auch in knapp 4s), da brauchen wir nicht wirklich diese /total/ Daten 16x, da reicht einmal.

AhoyDTU/total/P_AC 426.7
AhoyDTU/total/YieldTotal 2178.87
AhoyDTU/total/YieldDay 508.749
AhoyDTU/total/P_DC 446.9
AhoyDTU/total/MaxPower 496.9
knickohr commented 8 months ago

@lumapu Netter Versuch, es kommen weniger Total im MQTT, aber leider auch neuen Bug eingebaut 😉

IMG_1902

knickohr commented 8 months ago

Nachtrag : Der Bug tritt nur in den Zero-Version von heute auf. In der gestrigen 85er Version ohne Zero funktioniert das Total. Es kommen auch nicht mehr 16x die Werte, nur noch 5x 😅

Ich würde sagen, Teilerfolg 😉

lumapu commented 8 months ago

warum sollte sich hier die Zero Variante anders verhalten? Gäbe es die nicht wäre es dann ein voller Erfolg?

knickohr commented 8 months ago

Die Zero-Variante bringt komischerweise keinen Yield Total mehr, weder per MQTT noch bei der WebGUI. Frag mich bitte nicht warum, aber die Zero-Versionen hatten Trick und mir heute einen „interessanten“ Tag beschert 😉

Die Anzahl der ausgegebenen Total-Payloads im MQTT ist aber bei beiden von 16 auf 5 gesunken. Auch interessant, warum gerade 5 ?

Nein, voller Erfolg wäre genau 1 Payload in einer Abfragerunde.

knickohr commented 5 months ago

Problem immer noch vorhanden, fällt aber mit dem neuen JSON-Payload nicht mehr so ins Gewicht. Ich bekomme jetzt pro Abfrageintervall bei 16 Invertern 3x einen total-JSON-Payload.

stefan123t commented 2 weeks ago

@lumapu 5x statt 16x Wiederholungen klingt wie wenn er das zwar in der letzten Runde aber dafür mit fünf Retries macht ?

knickohr commented 2 weeks ago

Ohhh, das muß ich gleich nochmal,testen. Es gab einige Veränderungen an der Datenabfrage und in der Queue. Kann gut sein das es jetzt weg ist, oder sogar noch schlimmer 🫣

Edit : Es kommt jetzt zwischen 1 und 5x pro Abfragerunde. Ke8ne Ahnung was es triggert.

stefan123t commented 2 weeks ago

@knickohr ich hatte es bei mir auf der Console auch gesehen, bei (m)einem Inverter kamen die MQTT total Werte exakt alle 5 Sekunden. Je nachdem was die RF Routine für Kommandos an den WR geschickt hat, lagen da dann zwischen 1-3 total Werte zwischen den ebenfalls relativ regelmäßigen Frage/Antwort Paketen. Die Daten waren halt 1-3x die tupfengleichen Werte, da es ja keine neuen Werte vom WR in demselben Zeitraum gegeben hatte.