Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.4.8 WiFi loss connection and weird serial connection with ESP #52

Closed
DanielR92 opened this issue May 23, 2022 · 15 comments
Closed

v0.4.8 WiFi loss connection and weird serial connection with ESP #52

DanielR92 opened this issue May 23, 2022 · 15 comments
Labels
bug Something isn't working fixed dev fixed

Comments

@DanielR92
Copy link
Collaborator

DanielR92 commented May 23, 2022

Besitze ein HM-1500 (4 Kanal). Wie bei µController geschrieben.

Die Built-In LED blinkt am Anfang kurz auf und ist danach aus.
Mir ist aufgefallen das wenn ich Ping Anfragen raus sende zum ESP, dann reagiert kurzzeitig das ganze. Jedoch nicht immer!

Ping wird ausgeführt für 192.168.10.149 mit 32 Bytes Daten:
Antwort von 192.168.10.149: Bytes=32 Zeit=46ms TTL=255
Antwort von 192.168.10.149: Bytes=32 Zeit=85ms TTL=255
Antwort von 192.168.10.149: Bytes=32 Zeit=99ms TTL=255
Antwort von 192.168.10.149: Bytes=32 Zeit=2ms TTL=255

Firefox (v100.0.2) lädt sich ins Nimmerleinstag. =(
ESP Serial Verbindung bleibt leer, irgendwann schmeist er mir paar logs
entgegen.

Logs kann ich nicht posten, da auch die seriele Kommunikation abgeschmiert ist.
Wenn ESP "erreichbar" ist, wird HTTP und Seriel Daten ausgegeben.

Hoffe das reicht als Info, kann gerne nochmal auf 4.8 Flashen.

@lumapu
Copy link
Owner

lumapu commented May 23, 2022

gerne nochmal flashen und dann mal im Setup auf "Erase Settings (not Wifi)" drücken, evtl. ist es 'einfach' nur eine Einstellung z.B. MQTT

@lumapu
Copy link
Owner

lumapu commented May 23, 2022

Ich denke ich habe den Fehler gefunden, wenn man für die MQTT Adresse was nicht vorhandenes eingibt, dann hängt bei mir der ESP auch, praktisch nicht mehr bedienbar.

@DanielR92
Copy link
Collaborator Author

DanielR92 commented May 23, 2022

Richtig, ich nutze aktuell kein MQTT

Edit: Mir ist aufgefallen, solange der WR aus ist. Geht alles bei mir, sobald sich der WR meldet fängt auch dann das Problem an.

@lumapu lumapu closed this as completed in 01f1fab May 23, 2022
@lumapu
Copy link
Owner

lumapu commented May 23, 2022

hab jetzt mal eine 0.4.9 gepuht, bitte mal prüfen ob die besser geht, je nach Licht auch erst morgen ;-)

Edit: mein WR ist jetzt auch aus, hier in München ist es schlagartig Nacht geworden. Trotzdem konnte ich mit der 0.4.8 den Fehler nachvollziehen.

@lumapu lumapu reopened this May 23, 2022
@lumapu lumapu changed the title v4.8 WiFi loss connection and weird serial connection with ESP v0.4.8 WiFi loss connection and weird serial connection with ESP May 23, 2022
@DanielR92
Copy link
Collaborator Author

DanielR92 commented May 23, 2022

Also ich habe das ganze am Labornetzteil dran. Meine PV werden noch geliefert.
Aktuell geht weiterhin nichts, habe noch alle Konfigs neu gemacht. Keine Besserung.

Wenn der ESP startet (ohne WR signal) läuft alles stabil. Aktuell habe ich 00:02:08 hinter mir.
Der WR sobald eine Kommunikation stattfindet, bricht es auch fast direkt zusammen (ESP).

Error while retrieving data: last frame missing: Request Retransmit
Transmit 27 | 15 74 40 33 29 78 56 34 12 80 0B 00 62 8B F3 84 00 00 00 05 00 00 00 00 A1 3E BC
Free heap: 0x9300
Inverter #0 no Payload received!
Requesting Inverter SN 116174403329
Transmit 27 | 15 74 40 33 29 78 56 34 12 80 0B 00 62 8B F3 89 00 00 00 05 00 00 00 00 31 66 79
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 02 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 BB
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 02 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 BB
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 03 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 9F
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D
Payload (62): 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B
Free heap: 0x92e0
Requesting Inverter SN 116174403329
Transmit 27 | 15 74 40 33 29 78 56 34 12 80 0B 00 62 8B F3 8E 00 00 00 05 00 00 00 00 01 40 68
Received 27 bytes channel 3: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 3: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 3: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 02 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 BB
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 02 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 BB
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 03 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 9F
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 03 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 9F
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D
Payload (62): 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B
Solarkraftwerk/ch1/U_DC: 0.200 V
Solarkraftwerk/ch1/I_DC: 0.010 A
Solarkraftwerk/ch2/U_DC: 0.200 V
Solarkraftwerk/ch2/I_DC: 0.010 A
Solarkraftwerk/ch3/U_DC: 30.100 V
Solarkraftwerk/ch3/I_DC: 0.010 A
Solarkraftwerk/ch3/P_DC: 0.200 W
Solarkraftwerk/ch3/Irradiatio: 0.051 %
Solarkraftwerk/ch4/U_DC: 30.100 V
Solarkraftwerk/ch4/I_DC: 0.030 A
Solarkraftwerk/ch4/P_DC: 0.800 W
Solarkraftwerk/ch4/YieldTotal: 0.001 kWh
Solarkraftwerk/ch4/Irradiatio: 0.203 %
Solarkraftwerk/ch0/Temp: 24.900 °
Solarkraftwerk/ch0/YieldTotal: 0.001 kWh
Solarkraftwerk/ch0/P_DC: 1.000 W
Free heap: 0x9200
Requesting Inverter SN 116174403329
Transmit 27 | 15 74 40 33 29 78 56 34 12 80 0B 00 62 8B F3 93 00 00 00 05 00 00 00 00 51 D5 B0
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 01 00 01 00 02 00 01 00 01 00 00 00 00 00 00 00 00 97
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 02 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 BB
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 02 00 00 00 00 00 00 00 00 01 2D 00 01 00 03 00 02 BB
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 03 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 9F
Received 27 bytes channel 75: 95 74 40 33 29 74 40 33 29 03 00 08 00 00 00 00 00 00 00 01 00 00 00 00 00 00 9F
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D
Received 27 bytes channel 61: 95 74 40 33 29 74 40 33 29 84 00 00 00 00 00 00 00 00 00 00 00 F9 00 0B 23 5D 9D

.... danach kommt nichts mehr.

@homeautomation2022
Copy link

Ich kann auch sagen, dass ich ebenfalls kein MQTT nutze und frisch kompiliert und geflasht hatte(mit Erase All Einstellung), danach sind viele Felder mit FFs gefüllt, daher hatte ich als nächstes auch Erase Settings gemacht(aber kein Factory Reset). Zu dem Thema würde ich denken, dass bei der 4.8 keine IP drin war(Feld leer) und bei der 4.4 ist 0.0.0.0 drin.

Zumindest wie im Forum geschrieben, schmiert die Verbindung kurz nach dem der Wechselrichter erkannt wurde ab, muss also etwas damit zu tun haben. Das mit MQTT könnte aber natürlich eine zusätzliche Fehlerquelle gewesen sein.

@HFarryranz
Copy link

HFarryranz commented May 24, 2022

Gerade getestet: MQTT mit fehlerhaften Login-Daten getestet. (Leerzeichen hinten angefügt)
Der ESP versucht sich ca. alle 15-20 Sekunde am MQTT (IoBroker) anzumelden und wird abgelehnt.
WebIF so gut wie nicht nicht mehr erreichbar bzw. nach ca 50 Sekunden wird das WebIF auch nicht mehr aktualisiert.

Nach x Fehlversuchen beim Connect sollte die Nutzung zu MQTT deaktiviert werden.
iM ist auch kein OTA Update mehr möglich.

Kann man die seriellen Daten auf das WebIF umleiten?

@rosch99
Copy link

rosch99 commented May 24, 2022

0.4.9 läuft bei mir seit heute früh. Aus meiner Sicht deutlich stabiler als ALLE vorherigen Versionen. Stürzt zwar immer noch regelmässig einige Minuten nach der vollen Stunde(!) ab, aber zumindest restartet der ESP nach kurzer Zeit selbsttätig und published wieder per MQTT. Bei den früheren Versionen musste ich ihn dann oft mehrfach stromlos machen (WLAN-Steckdose) um ihn dann wieder zum Leben zu erwecken.

Danke für eure unermüdlichen Bemühungen zur Optimierung!!!
rosch

@lumapu
Copy link
Owner

lumapu commented May 24, 2022

@HFarryranz Ja die Umleitung der Seriellen Daten steht noch auf der Wunschliste

@rosch99 schön, dass ich nicht der einzige bin, bei dem es läuft. @stefan123t hat schon Ideen wie wir das System stabiler machen können - ich hoffe in Zukunft mehr Schritte nach vorne zu machen als zurück

@lumapu lumapu added the bug Something isn't working label May 24, 2022
@stefan123t
Copy link
Collaborator

stefan123t commented May 24, 2022

Hallo @lumapu,
den Punkt von Daniel R. dass die Software sehr oft requests anfordert habe ich auch gesehen. Im Firefox/Chrome F12 Developer Tools > Network lädt er ca. jede Sekunde die Daten von /uptime. /time, /cmdstat, etc. und anderen endpoint URLs neu.
So schnell kann mein ESP meist nicht antworten und die Requests werden m.E. vom ESP8266WebServer gequeued.

Ich habe mal die index.html ein wenig angepaßt:

            window.setInterval("getAjax('/uptime', 'uptime')", 15000);
            window.setInterval("getAjax('/time', 'time')", 15000);
            window.setInterval("getAjax('/cmdstat', 'cmds')", 30000);

Kann man das Verhalten im JavaScript der Seiten nicht nur hinauszögern (15/30 Sekunden statt den Original 1000/2000ms) und dabei irgendwie so gestalten dass die Seite nicht so viele Aufrufe parallel startet ?

Nichtsdestotrotz habe ich auch mit der 0.4.5 Version viele Abstürze ca. 52 in 24 Stunden laut meinem Log. Die Stack Traces sehen alle sehr ähnlich aus, das meiste steckt in umm_assumulate_up.

Ich habe die relevanten Stack Traces aus meinem Log extrahiert und mit dem ESP Exception Decoder decodiert:

grep -B32 -A332 '>>>stack>>>' logfile_ahoy_0.4.4.log | csplit -f stacktrace_ahoy_0.4.9.xx - '/^--$/' {*}
for i in ls stacktrace_ahoy_0.4.4.xx*; do touch ${i/stacktrace/exception}; done
# Paste in Tools > ESP Exception Decoder und Copy/Paste in das entsprechende exception file

Hier ein Beispiel aus den Exceptions, also im Prinzip das meiste so ähnlich wie im Stack Trace in #24 nur relativ häufig:

head -n4 exception_ahoy_0.4.4.xx*
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
PC: 0x401007ed: umm_assimilate_up(umm_heap_context_t*, uint16_t) at /home/user/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/umm_malloc/umm_malloc.cpp line 336
EXCVADDR: 0x40032d61
...

@turbolift
Copy link

Anbei meine Protokollierung der Uptime des ESP gegen einen HM600. Scheinbar hat die Stabilität mit der Version 0.4.5 abgenommen. Vielleicht hilft es das Problem einzugrenzen.

2022-05-24 22_01_34-

12.5.2022/14:20/v0.3.7
18.5.2022/08:30/v0.4.3
23.5.2022/11:00/v0.4.5

@stefan123t
Copy link
Collaborator

@lumapu eventuell liegt es ja an der "neuen" Payload Decodierung. Die sammelt ja alle einzelnen Pakete zusammen und versucht auch ggf. noch einen Retransmit, bevor sie die Payload überprüfen kann.
Kannst Du dort einige yield()'s an für den Funkverkehr unkritischen Stellen einbauen, damit ggf. das WiFi Interface bedient werden kann ?

@lumapu
Copy link
Owner

lumapu commented May 25, 2022

@turbolift sehr interessante Grafik. Da lohnt sich nochmal einen Diff der Versionen zu machen um evtl. das Problem einzugrenzen. Leider hatten wir noch nie eine stabile Version.

Ich habe noch andere ESPs am laufen mit anderer Firmware, aber auf der gleichen Basis als RGB LED Controller und in 3x Sonoff POW R2. Alle haben Laufzeiten von Wochen und nicht Stunden.

@stefan123t Der Retransmit läuft asynchron ab, ein yield kann ich einbauen, nur ist das für mich keine produktiv Lösung. Ein Delay in Code löst zwar manchmal das Problem, fällt einem später wieder auf die Füße.
Schon wäre es ohne solche Funktionen auszukommen.

@stefan123t
Copy link
Collaborator

stefan123t commented May 25, 2022

Habe bei mir mal folgendes in Main:loop() eingebaut um die Laufzeiten besser zu monitoren:

main.h:

class Main {
...
    protected:
...
        uint32_t mLastLoop;

main.cpp

Main::Main(void) {
...
    mLastLoop = 0;
...
void Main::loop(void) {
    //if(millis() - mLastLoop > 1000) {
        DPRINTLN("Main::loop: " + String( millis()));
        mLastLoop = millis();
    //}
...

Zusätzlich habe ich noch unter Tools > Debug Level > HTTP_SERVER aktiviert. Dabei scheint mir die Generierung der drei o.g. Seiten manchmal sehr lange zu brauchen, dabei wird die Serial Monitor Ausgabe auch relativ lange blockiert (?). Im Anschluß an einen Request wartet der ESP8266WebServer besonders lange (bevor das ACK Paket per TCP kommt) im Status wait-close:

06:32:05.384 -> http-server loop: conn=1 avail=0 status=wait-close

@DanielR92
Copy link
Collaborator Author

Hallo zusammen,

die neuste Version 4.13 läuft nun ohne probleme bei mir. Danke. :) 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working fixed dev fixed
Projects
None yet
Development

No branches or pull requests

7 participants