lumapu / ahoy

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

[Bug] 0.7.7 MQTT sendet 0 bei YieldDay und YieldTotal ähnlich #927 #1016

Closed MiniOh closed 1 year ago

MiniOh commented 1 year ago

Hardware

5x HM-1500 + 2x HMS-2000 NRF + CMT

In Bezug auf #927:

Bei der 0.6.10 war es bei mir (5xHM + 2xHMS) so, dass Tagsüber immer alles richtig übermittelt wurde, sowohl in der GUI, als auch per MQTT. Lediglich abends gab es das "Problem", dass beim Offline gehen der HMS, die YieldDay kleiner wurde, also um die Werte des einen oder beider HMS. Allerdings nicht jeden Abend. Bewölkung kann ich eigentlich ausschließen.

Bei der 0.7.7 sehen bei mir die Werte tagsüber aber deutlich schlechter aus. Hier werden hin und wieder Zeros per MQTT übertragen. Gestern sehr viele, heute bisher nur einer. Dennoch kam das bei der 0.6.10 nie vor.

Anbei die AC Total Werte mit der 0.7.7:

Gestern: grafik

Heute: grafik

MiniOh commented 1 year ago

ich denke den Yield Fehler endlich entdeckt zu zugleich auch behoben zu haben:

6e901a6

Da war noch was aus Urzeiten drin, durch diese Bedingung wurde ein Flag nicht gesetzt was verhindert, dass partielle Totalwerte rausgeschickt werden - wieder knapp 24h warten ob sich das bestätigt.

@knickohr: wegen der WebUI: kannst du dafür einen gesonderten Issue aufmachen? Fragen die ich habe: von welcher Seite zu welcher, oder immer gleich, Inverter aktiv oder inaktiv, Intervalle und Free-Heap. Danke

Klingt erfolgsverprechend. Ich bin gespannt ;)

knickohr commented 1 year ago

„ Wir brauchen also hier noch eine Bedingung, die uns verhindert, das bei einem Inverterneustart (am Abend) ein YieldDay von 0 überträgt.“

Siehe Issue #848

„ eine Stunde war jetzt einfach mal so gedacht - wir können es gerne reduzieren, was schlägst du vor? 15min?“

Ja, 15min sind gut, aber max. solange bis die „night communication disabled“ zuschlägt. Also der Zeitpunkt, nicht die Dauer.

„ kein Inverter verfügbar, mindestens einer verfügbar (entspricht Status 2 unserer neuen State-Machine) oder alle verfügbar“

available oder available and producing ? Also genau 2 (SM) oder auch schon 1 bis 4) ?

„ versuche doch bitte mal nach dem Update nochmal einen Neustart zu machen.“

Mache ich immer 😅 Das Problrm ist mir bekannt.

„ Der ESP32 zeigt ja leider keine Heap-Fragmentation an“

Ja leider, hat mich auch schon gewurmt 😞

„ Evtl. meinst du auch sonst, dass die älteren Versionen stabiler waren, da man doch ab und zu ohne Update neu gestartet hat“

Beim 8266 definitiv ! Beim 32er schlecht zu sagen, der läuft ja, bis auf ein paar frühe Anfangsprobleme, sehr stabil. Ja, ich denke ab der 0.7.x leidet die „Schwuppdizität“ und Stabilität, besonders halt jetzt aktuell auch an der .18, wieder. .19 probiere ich gleich.

„ Hier sieht man genau, dass der Übergang in Status 3 der Übeltäter ist“

Ähhh, was ist mit Übergang von 2 nach 4 (Kommunikationsproblem) ? Da macht er es auch, durchläuft wohl intern die 3 ?

WebGUI Issue nachdem wir hier das Problem gefixt haben. Dann wäre wieder mal eine Release fällig, hat sich viel geändert zur 0.6.9 😉

Nachtrag : .19 OTA Update war eine harte Nuß ! Funktioniert nicht 😲 Erst nachdem ich im AP-Modus den Update gemacht habe ging es sehr zäh und nur mit mehreren Reboots. Irgendwas blockiert da wieder. Ich schätze MQTT spuckt wieder mal böse dazwischen 😞 Kann man den MQTT nicht während des Aufsatzes einfach deaktivieren ?

lumapu commented 1 year ago

heute lief alles normal durch, kein Falsches YieldDay. Einzig am Abend wurde mal wieder eine 0 durch einen kurzzeitig abgeschalteten Inverter eine 0 gesendet - das ist jetzt hoffentlich durch 0.7.20 behoben.

MiniOh commented 1 year ago

Guten Morgen,

ja, hier auch alles richtig gestern Abend. Schwere Geburt aber vielen vielen Dank für deine Mühen!

Wow, das mit den einzelnen Invertern die "nochmal" online kommen und ne 0 senden, hast du auch schon gefixt :)

lumapu commented 1 year ago

wollen wir es hoffen, jetzt gilt erst mal wieder abwarten

MiniOh commented 1 year ago

wollen wir es hoffen, jetzt gilt erst mal wieder abwarten

Hey, die Änderungen in 0.7.20 haben etwas an der YieldDay kaputt gemacht. GUI Stimmt noch. MQTT fängt gefühlt ständig an neu zu "zählen", auch wenn alle Inverter da sind.

grafik

knickohr commented 1 year ago

Nachdem ich es endlich geschafft habe die 0.7.20 über den AP-Modus upzudaten, anders get es nicht mehr 😲, habe ich jetzt multiple Yield-Werte 😂 Welcher ist der richtige ? 🫣

IMG_1031

IMG_1034

IMG_1035

IMG_1033

Und warum bekomme ich jetzt mehrere braune Total-Boxen, hatte auch schon 3 gesehen 😱

Satz mit x, das war wohl nix, also zurück zur 19 😪

Nachtrag : Was auch auffiel, das Yield wurde ohne Nachkommastellen ausgegeben. Vielleicht ist dort das Problem ? Variablentyp ?

Und der richtige Wert war im ePaper, GUI stimmt wohl auch nicht 😲

knickohr commented 1 year ago

Auch wenn’s hier nicht wirklich hin gehört, aber es steht in direktem Zusammenhang mit diesem Issue 😞

Seit der 0.7.19 beobachte ich das sich MQTT immer wieder disconnected/connected … Ich möchte wetten das dies die Schwuppdizität zur Sau macht. Ja, die Schwuppdizität ist Nachts am schlimmsten 😲

IMG_1036

Das ist jetzt das Log von ca. 2 Minuten. Es fällt auch auf das der FreeHeap beim Disconnect um ca. 2000 sinkt. Was werkelt da Nachts so freudig vor sich hin ? 🤔

knickohr commented 1 year ago

Ja, die 21 sieht besser aus 👍

Schwuppdizität der Live-Seite ist immer noch unterirdisch und die Werte im GUI stimmen zwar auch noch nicht, aber der „Rest“ scheint jetzt zu passen. Mehr heute Abend 😉

IMG_1038

Uiiii 😲 Eben hatte ich 7 braune Total-Boxen. Es werden immer mehr 😂 Aber keine stimmt.

knickohr commented 1 year ago

Jupp, die Inverter haben heute sauber beendet und es wurden auch keine Yields mehr geklaut 😂

Nur die Schwuppdizität ist grausam, vor allem Nachts und diese MQTT-Abbrüche (auch nur Nachts).

Es ist mir aber zu regelmäßig um Zufall zu sein. Außerdem viel zu oft. WLAN-Problem und Verbindung zum Broker kann ich ausschließen, sonst würde auch die Raspi-Konsole wegfliegen auf der der Broker läuft. Muß wirklich irgendwas im Ahoy sein (Timeout ? Last Willl Trigger ? …)

IMG_1041

Ach ja, die serielle Konsole im WebGUI läßt sich jetzt auch komischerweise nicht öffnen 😲

lumapu commented 1 year ago

oh je was ist da schon wieder los, das Thema MqTT macht mich noch fertig. Es gibt eine neuere Version der MqTT Lib, aber ein Test hat bei mir sekündlich einen reconnect gemacht.

lumapu commented 1 year ago

ich habe gerade in meine seriellen Konsolen geschaut, alles normal kein reconnect. Hast du die von GitHub kompilieren Version installiert? Habe sie sowohl auf einem ESP8266 als auch ESP32 laufen

knickohr commented 1 year ago

Wenn ich MQTT deaktiviere funktioniert es auch wieder mit der Schwuppdizität. Da hat sich irgendwas eingeschlichen, ging ja bis zu 0.7.11 alles recht flüssig. Mir ist auch aufgefallen das jetzt in 2 Blöcken gesendet wird. Also pro Inverter gibt es jetzt 2 Blöcke mit den Werten. Das war vorher auch alles zusammen.

Ich denke ich mache da einen neuen Issue auf. Das Thema Yield hat sich jetzt wohl erledigt wenn @MiniOh zustimmt 😉

Jepp, die offizielle Binary.

knickohr commented 1 year ago

Ich glaube ich habe das Problem mit meinen Verbindungsabbrüchen gefunden 😲 Wie groß ist eigentlich die Keep Alive Time der LWT Message ? Ich denke das sind 60 Sekunden. Nun dauert es aber hin und wieder etwas länger bis die minütliche nächtliche Meldung (uptime, free Heap und rssi) gesendet werden, also donnert der Broker ein Not connected raus.

Oder habe ich da jetzt ein Denkfehler ?

knickohr commented 1 year ago

Hier geht’s weiter mit meinem MQTT-Problem und der Schwuppdizität : Issue #1057

Das Yield-Problem ist meiner Meinung nach behoben, bei mir werden keine Yields mehr geklaut 😉

knickohr commented 1 year ago

Hier ist noch was „unschönes“, aber nicht gravierend, sofort lösbares Problem :

Die DTU geht schon in den Status offline, noch bevor der letzte Inverter die State-Machine durchlaufen hat und auch im Status 0 ist.

knickohr commented 1 year ago

Ich hab gesagt nicht dringend 😂 Aber gut, wenn’s denn sofort sein muß.

(Das schreibe ich jetzt immer „nicht dringend“, dann isses Morgen gemacht 😇🫣)

lumapu commented 1 year ago

das war einfach lösen und inkonsistent implementiert. Daher hab ich's gleich noch mit ins Release gepackt 😉