lumapu / ahoy

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

Mqtt - keine Übertragung nach Nachtabschaltung bei 0.4.15 #68

Closed TobiDD79 closed 2 years ago

TobiDD79 commented 2 years ago

Nachdem bei nachtabschaltung die Übertragung der Mqtt Nachrichten eingestellt wird, werden diese auch am nächsten Tag bei Produktionsbeginn weiterhin nicht mehr übermittelt.

Desweiteren reagiert der esp auf alle Anfragen in der weboberfläche sehr träge.

erst nach einem reboot sind die antwortzeiten auf der weboberfläche wieder normal und auch die Mqtt Übertragung funktioniert wieder.

lumapu commented 2 years ago

das klingt interessant, ich hatte den Zustand wohl noch nie, da mein ESP nicht so stabil läuft. Ich hoffe dass bald nachvollziehen zu können.

mslookup commented 2 years ago

hatte das problem mit der 0.4.15 auch, hab soeben die 0.4.17 draufgeschmissen - mal sehen ob sich was verändert hat - ich werde berichten. @lumapu: wenn du noch ein NodeMCU Lolin V3 Module ESP8266 ESP-12F + nRF24L01+ zum entwickeln / testen brauchst, kann ich dir gern eines kostenfrei zusenden. pn im mikrocontroller board an mslookup mit adresse genügt ;)

TobiDD79 commented 2 years ago

Das Problem besteht auch mit der 0.4.17 Version. Der HM produziert am Morgen wieder und Mqtt steht nach der Nachtabschaltung auf Not connectet, nach Neustart wieder io

mslookup commented 2 years ago

Hallo zusammen, ich kann vielleicht mal eine temporäre Rückmeldung geben: Bei mir hat sich nach ersten Erkenntnissen das Problem mit 0.4.17 normalisiert. Ich habe zwar noch keine Langzeitdaten, aber nach einem Tag schaut bisher die Uptime gut aus. Auch die Nachtphase hat mein ESP8266 gut überstanden, MQTT ist connected und das WebIF ist flüssig wie nach einem frischen Reboot. Er "produziert" und Werte nach MQTT werden auch geschrieben. Ich werde weiter berichten... VG und Danke an alle Beteiligten 🥇 👍

EDIT1: Nun über 24 Std. stabil bei mir - Wahnsinn! :) Wenn ich einen Tipp abgeben müsste, würd ich sagen, dass der Commit zu v0.4.16 (https://github.com/grindylow/ahoy/commit/f148c41a1fb75baa5de06dd527bea725821e387d) dem ganzen zum Durchbruch verholfen hat. @TobiDD79, hast du noch einen ESP8266, mit dem du deinen Fehler verifizieren kannst? Bei mir ist das Teil keine 4 Stunden stabil gewesen und mit 0.4.17 bin ich auf dem ersten Versuch gleich mal bei über 24h uptime... Meine Hardware ist "NodeMCU Lolin V3 Module ESP8266 ESP-12F" (ohne Mod) + "nRF24L01+" + Random USB Netzteil.

EDIT2: Leider war der Spaß nur von kurzer Dauer: Nach einem kompletten freeze ohne Antwort vom Webinterface habe ich das Teil manuell vom Strom getrennt und wieder angeschlossen. Danach lief er wenige Stunden, bis ein automatischer Restart getriggert wurde. Danach folgte wieder ein freeze... Wie sind denn die Uptime-Werte von anderen ESP8266 Nutzern?

lumapu commented 2 years ago

@mslookup danke fürs Angebot, bin gut ausgestattet :-)

Freut mich zu hören, dass die Version so stabil läuft, ich habe leider immer wieder reboots und vermute, dass die Ursache Netzwerk Probleme sind. Heute um 16 Uhr ist mein ESP komplett abgestürzt und war nicht mehr erreichbar - ein Powercycle hat's gerichtet.

TobiDD79 commented 2 years ago

Bei mir läuft die mqtt Übertragung jetzt auch nach der Nachtabschaltung mit der 0.4.17 seit 2 Tagen

mslookup commented 2 years ago

@TobiDD79: Läuft deines immernoch stabil? Bei mir komme ich einfach nicht mehr über 24 Stunden uptime, ohne dass irgendwas zu hängen anfängt.

TobiDD79 commented 2 years ago

Hab aktuell 1tag und 2h uptime, davor wie gesagt die 2 Tage uptime. Aber irgendwas bringt den esp nach wie vor immer mal zum hängen bzw. Man muss manuell neustarten

Oliver-ger commented 2 years ago

Hier ein kleiner workaround, der aber funktioniert (erspart den manuellen Neustart) Änderung der void reconnect in mqtt.h: void reconnect(void) { //DPRINTLN(F("mqtt.h:reconnect")); int count = 0; String mqttId = "ESP-DTU"; while(!mClient->connected()) { if((strlen(mUser) > 0) && (strlen(mPwd) > 0)) if (mClient->connect(mqttId.c_str(), mUser, mPwd)){ Serial.println("MQTT connected"); } else { Serial.println("MQTT failed"); delay(2000); count = count + 1; } if (count >=3){ ESP.restart(); } } }

lumapu commented 2 years ago

siehe auch PR #75 das dürfte auf den ersten Blick überstimmen

TobiDD79 commented 2 years ago

Bin aktuell bei 3 Tagen uptime mit der 0.4.17 und ohne Mqtt Ausfälle nach der Nacht, denk damit kann der bug als gelöst abgeschlossen werden

lumapu commented 2 years ago

Beneidenswert. Wie weit bist du von WR entfernt und welches NRF24 Level hat du eingestellt? Hast du ein NRF24 mit externen und internen Antenne?

TobiDD79 commented 2 years ago

Nrf Level steht auf min, esp ist nur nen Meter vom wr entfernt, muss nur durch ne Glasscheibe funken und das Nrf Modul hat eine externe Antenne

DanielR92 commented 2 years ago

Super!

@TobiDD79 könntest du dann auch dieses Issue nachträglich bitte closen? :)