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

OpenDTU does not connect to local Wifi anymore #618

Closed
dersch81 opened this issue Feb 22, 2023 · 119 comments
Closed

OpenDTU does not connect to local Wifi anymore #618

dersch81 opened this issue Feb 22, 2023 · 119 comments
Labels
bug Something isn't working

Comments

@dersch81
Copy link
Contributor

dersch81 commented Feb 22, 2023

What happened?

During an FW upload the OpenDTU did not respond anymore. Then after a powercycle it just opened up the OpenDTU AP but did not connect to the local anymore.

Then i performed the FW update again but it still does not connect to the Wifi anymore. Then went back to the previous FW but same issue. Did a config restore = fail, then factory default and config restore = fail. Changing the wifi settings and back to the local one = fail.

Nothing helps. The unit is not connecting to the wifi anymore. It don't even try to connect.

Screenshot_20230222_180705_Chrome

I can't see any connect attempts in my Unifi network. There is also no DHCP request in my DHCP Server for that MAC.

But the local OpenDTU AP is working every time. So i'm really out of idea what coud be the reason.

The OpenDTU HW is at the same place since several months and is working great there. Powered up via 5v 2A Adapter. An outdoor AP is in front of it just a few meter away. The wifi coverage is very good.

To Reproduce Bug

no idea

Expected Behavior

Just connect to the fu**ing wifi.

Install Method

Self-Compiled

What git-hash/version of OpenDTU?

97bc964

Relevant log/trace output

No response

Anything else?

No response

@dersch81 dersch81 added the bug Something isn't working label Feb 22, 2023
@ntfrnd
Copy link

ntfrnd commented Feb 22, 2023

Kann ich bestätigen. Habe vorhin auch auf die 97bc964 geupdated. Davor lief alles prima, nach dem Update und einem Spannung aus/Spannung an - selbes Verhalten. Schließlich habe ich die vorherige Version wieder aufgespielt und alles neu eingerichtet.

@dersch81
Copy link
Contributor Author

Ich habe es nun nur durch einen vollständigen Tausch des ESP32 hinbekommen. Läuft soweit mit 97bc964. Ich denke ein erasen und neues flashen des ESP hätte es auch getan. Aber ich hatte noch einen und es war einfacher die HW direkt zu tauschen.

Bei dem betroffenen ESP32 habe ich nun ein erasing gemacht und neu geflasht. Denke damit läuft der wieder. Der kommt dann beim Schwiegervater zum Einsatz :)

@ntfrnd
Copy link

ntfrnd commented Feb 22, 2023

Hatte ich zwischenzeitlich auch probiert und direkt die 97bc964 geflasht. Ging aber auch nicht stabil. Nach ein paar Neustarts war es wieder nicht erreichbar.

@dersch81
Copy link
Contributor Author

dersch81 commented Feb 22, 2023

Eine Vermutung meinerseits ist dieser change hier: 07f4473

Allerdings läuft auf einem neuen ESP32 die 97bc964 inkl dieses changes bisher einwandfrei.

@tbnobody
Copy link
Owner

Als ich es gelesen habe hatte ich auch zuerst diesen commit im verdacht. das ist der einzige der was am Wifi krams geändert hat. Aber andererseits hab ich hier 2 ESPs ohne Probleme damit am laufen (und ich flashe das ja auch regelmäßig und bei jeder Änderung) und bei dir läufts jetzt auch... Ich verstehe es ehrlich gesagt noch nicht.

@dersch81
Copy link
Contributor Author

Ja mal beobachten. Ist wirklich eigenartig. Ich hatte aber schon seit ein paar Tagen das Problem, das ich bei WebGUI Zugriff keinen respond mehr bekam und power cyceln musste. Allerdings wurden stets die MQTT topics geschrieben und auch via REST bekam ich meine Werte. Daher ist das immer nur dann aufgefallen wenn ich mal auf die GUI bin.

Eventuell hat es bei mir doch auch was mit dem ESP zu tun gehabt. Evtl ist das Issue bei @ntfrnd zufällig das Gleiche aber nicht das Selbe. Mal schauen ob sich noch mehr melden.

@b-a-9-0
Copy link

b-a-9-0 commented Feb 22, 2023

Ich hatte heute auch das Problem, dass keine Verbindung mehr zu Stande kam (fixe IP). Konsolenoutput war: Lost connection, trying to connect... oder so ähnlich alle paar Sekunden. Nach ein paar Mal rebooten ging es wieder.

@helgeerbe
Copy link
Contributor

Der commit 07f4473 kommt von mir.

Im default Modus macht der esp einen fast scan und verbindet sich mit dem ersten gültigen Access Point. Bei meinem Mesh (Fritz Box) führte es dazu, dass er nach einem Reboot zuerst der Fritz Box hing, statt am Repeater im Gartenhaus. Irgendwann schubst ihn dann die Fritz!Box auf den Repeater, aber das dauert seine Zeit. Dabei war der ESP nicht immer ansprechbar.

Mit der Änderung führt der esp erst einen vollen Netzwerk-Scan durch und verbindet sich mit dem stärksten, geeigneten Access-Point. Bei mir läuft das mit 2 ESPs einwandfrei.

Man kann das auch wieder rausnehmen, wenn es Probleme macht. Dauert dann eben nur eine Weile, bis man die volle Bandbreite, bzw. eine stabile WiFi Verbindung hat.

@dersch81
Copy link
Contributor Author

dersch81 commented Feb 23, 2023

Ich bin mir auch nicht sicher ob es was damit zu tun hat. Jedenfalls war nach über einer Stunde der ESP immer noch nicht verbunden. Ich habe eine Unifi Umgebung. Der ESP sieht an seiner Position potentiell 4-5 meiner AP's wobei aber einer klar der Stärkste ist da nur 5 Meter Freifläche gegenüber. Beides ist Außen im Garten positioniert. Natürlich sind da aber auch sämtliche Nachbar AP's sichtbar die da in der Gegend rumfunken.

Könnte man den Commit nicht so abändern, dass diese Funktion abschaltbar ist? Dann könnte man prüfen ob in der eigenen Umgebungssituation der Scan evtl ein Problem ist.

@helgeerbe
Copy link
Contributor

helgeerbe commented Feb 23, 2023

@dersch81 kompilierst du selber? Dann brauchst du in src/NetworkSettings.cpp nur die beiden Zeilen (124-125) rauszunehmen.

            WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN);
            WiFi.setSortMethod(WIFI_CONNECT_AP_BY_SIGNAL);

@dersch81
Copy link
Contributor Author

Jo ich kompiliere selber. Nachdem ich den ESP32 getauscht habe läuft es einwandfrei. Daher bezweifele ich in deinem Commit die Ursache. Aber die Funktion im Webif abschaltbar zu machen könnte evtl anderen helfen.

@tbnobody
Copy link
Owner

Könnte man den Commit nicht so abändern, dass diese Funktion abschaltbar ist?
Aber die Funktion im Webif abschaltbar zu machen könnte evtl anderen helfen.

Das würde ich so nicht machen. Sonst kann man bald für alles und jeden Separate Settings einführen. Speicher ist limitiert. Wenn das wirklich Probleme macht, dann kommts komplett raus und es dauert bei manchen Leute ggf. etwas länger bis nach einem Restart die WiFi Verbindung da ist. Aber aktuell ist ja noch nichtmal sicher ob es daran liegt.

@LorenzFi
Copy link

LorenzFi commented Feb 25, 2023

Ich hatte dasselbe Problem bei mir im "Gästewlan". Bin dann auf das Hauptwlan umgestiegen dort verbindet sich das Device ohne Probleme nach einem Neustart wieder mit dem WLAN. Vielleicht hilft die Information zur Fehlersuche.

@klamasi
Copy link

klamasi commented Feb 26, 2023

Das Problem ist bei mir heute auch aufgetreten (Version 8b158a0). Die DTU lief 2 Monate ohne Probleme. Sie hat heute keinen Zugang mehr zum WLAN. Nachdem ich den Comment von LorenzFi oben gelesen habe, habe ich es mit dem GästeWLAN probiert - und siehe da die Verbindung klappte.

Leider klappt es weiterhin nicht mit dem normalen WLAN. Liegt der Fehler gar nicht an der DTU? Macht die Fritzbox aus irgend einem Grund dicht und liefert keine IP-Adresse?
2 Stunden später______________
Jetzt habe ich den WPA Modus der FritzBox von WPA2 + WPA3 auf den gleichen Modus wie beim Gastzugang, also auf WPA (CCMP) gesetzt und siehe da die DT verbindet sich!

@klamasi
Copy link

klamasi commented Feb 26, 2023

Schade, heute morgen war die DTU wieder offline - es liegt wohl doch nicht wie vermutet am WPA Modus.
Ich habe dann ein Update auf Version 97bc964 eingespielt - erfolglos!

Erfolg:
Es hatten alle WLAN Accesspoints (hinter einer FritzBox 7490) die gleiche SSID. Seit ich dem Repeater in der Nähe der DTU eine individuelle SSID gegeben und die DTU damit verbunden habe, steht die Verbindung der DTU jetzt schon seit 10 Stunden.

@ntfrnd
Copy link

ntfrnd commented Feb 26, 2023

Erfolg: Es hatten alle WLAN Accesspoints (hinter einer FritzBox 7490) die gleiche SSID. Seit ich dem Repeater in der Nähe der DTU eine individuelle SSID gegeben und die DTU damit verbunden habe, steht die Verbindung der DTU jetzt schon seit 10 Stunden.

Was weiß bzw. stört einen Teilnehmer im WLAN, ob die SSID einmal oder mehrmals vorhanden ist? Solange SSID und Passwort passen, sollte es doch funktionieren, oder?
Außerdem empfiehlt AVM in einem Mesh-System hinter einer FritzBox immer dieselbe SSID zu nutzen. Von daher ist es bei mir auch so und ich hatte ja auch so meine Probleme mit der Version 97bc964 aber an meinem WLAN-Aufbau oder dem Gastnetz habe ich nicht rumgespielt, das bleibt so wie es ist.

@LorenzFi
Copy link

Ich muss auch leider berichten, dass die vermeidliche Lösung mit dem WLAN-Netzwechsel keinen Erfolg gebracht hat. Gesten mehrmals neu gestartet ohne Probleme, heute eine Katastrophe. Also auch bei mir noch kein Erfolg in Sicht.

@tbnobody
Copy link
Owner

Dann nehmt doch einfach mal 07f4473 raus und versucht es erneut.

@dare83
Copy link

dare83 commented Feb 27, 2023

Hallo, habe auch Probleme mit einem meiner WLANS. Habe das Gefühl, dass die DTU nicht mit WLAN Passwörtern zurecht kommt, wenn diese nur aus Zahlen bestehen. Also 12345678 geht nicht abcdefgh geht, bei gleichem AP und SSID. Habe keinen Vergleich mit früher, da ich neu bei dem Projekt bin. Habe aber mit ahoyDTU das gleiche Problem gehabt.

@grisu642
Copy link

ich klink mich mal eben hier ein, weiß nur nicht obs passt:
Bin Neustarter, also heute 1. mal ESP und 1. mal Odtu, hat direkt funktioniert, nur seit ein paar Neustarts, weil andere Steckdose genutzt etc, findet er meinen WR nicht mehr, online müsste er sein weil über handy z.b. aufrufbar, passt das hier rein? Verbindet sich der WR direkt mit der Antenne des ESP bzw nrf? Weil meine PV aufm Balkon kein Wlan signal abbekommt

@klamasi
Copy link

klamasi commented Feb 28, 2023 via email

@grisu642
Copy link

Danke für den schnellen Hinweis, werd ich später mal ausprobieren.

@helgeerbe
Copy link
Contributor

Today, this happened to my OpenDTU. I rebootet intentional and got no wifi connection to my home network. But I could access OpenDTU as AccessPoint.

10:11:45.726 > Starting OpenDTU

10:11:45.726 > Initialize FS... done

10:11:45.728 > Reading configuration... done

10:11:45.837 > Reading PinMapping... [   144][E][vfs_api.cpp:105] open(): /littlefs/pin_mapping.json does not exist, no permits for creation

10:11:45.847 > using default config done

10:11:45.849 > Initialize Network... done

10:11:45.978 > Setting Hostname... Configuring WiFi STA using new credentials... done

10:11:45.990 > Initialize NTP... done

10:11:45.992 > Initialize SunPosition... done

10:11:45.995 > Initialize MqTT... done

10:11:45.997 > Initialize WebApi... done

10:11:46.902 > Initialize Display... done

10:11:46.904 > Check for default DTU serial... done

10:11:46.907 > Initialize Hoymiles interface... Connection error!!

10:11:46.912 >   Setting radio PA level... 

10:11:46.916 >   Setting DTU serial... 

10:11:46.918 >   Setting poll interval... 

10:11:46.921 >   Adding inverter: 114181019607 - Solar done

10:11:46.925 >   Adding inverter: 112182857016 - Luna done

10:11:46.929 > done

10:11:46.929 > Initialize ve.direct interface... 

10:11:46.931 > ve.direct rx = 22, tx = 21

10:11:46.934 > done

10:11:46.934 > Switch to WiFi mode

10:11:46.937 > Setting Hostname... done

10:11:46.955 > Configuring WiFi STA using existing credentials... E (2946) wifi:sta is connecting, return error

10:11:46.967 > [  1271][E][WiFiSTA.cpp:317] begin(): connect failed! 0x3007

10:11:46.973 > done

10:11:46.973 > Configuring WiFi STA DHCP IP... done

10:11:48.106 > WiFi connected

10:11:50.695 > MODULE: VE.Frame

10:11:50.697 > ERROR: [CHECKSUM] Invalid frame

10:11:50.701 > Fetch inverter: 114181019607

10:11:50.721 > Request SystemConfigPara

10:11:55.702 > MODULE: VE.Frame

10:11:55.705 > ERROR: [CHECKSUM] Invalid frame

10:11:55.707 > MODULE: VE.Frame

10:11:55.709 > ERROR: [CHECKSUM] Invalid frame

10:11:55.734 > Fetch inverter: 112182857016

10:11:55.755 > Request SystemConfigPara

10:12:00.766 > Fetch inverter: 114181019607

10:12:00.788 > Request SystemConfigPara

10:12:00.915 > MODULE: VE.Frame

10:12:00.917 > ERROR: [CHECKSUM] Invalid frame

10:12:01.994 > Disable search for AP... WiFi disconnected

10:12:02.000 > Try reconnecting

10:12:02.002 > Network lost connection

10:12:02.004 > done

After several reboots everything was fine again.

10:16:45.769 > Starting OpenDTU

10:16:45.770 > Initialize FS... done

10:16:45.772 > Reading configuration... done

10:16:45.879 > Reading PinMapping... [   144][E][vfs_api.cpp:105] open(): /littlefs/pin_mapping.json does not exist, no permits for creation

10:16:45.891 > using default config done

10:16:45.893 > Initialize Network... done

10:16:46.023 > Setting Hostname... Configuring WiFi STA using new credentials... done

10:16:46.035 > Initialize NTP... done

10:16:46.037 > Initialize SunPosition... done

10:16:46.040 > Initialize MqTT... done

10:16:46.043 > Initialize WebApi... done

10:16:46.054 > Initialize Display... done

10:16:46.057 > Check for default DTU serial... done

10:16:46.060 > Initialize Hoymiles interface... Connection error!!

10:16:46.066 >   Setting radio PA level... 

10:16:46.069 >   Setting DTU serial... 

10:16:46.072 >   Setting poll interval... 

10:16:46.075 >   Adding inverter: 114181019607 - Solar done

10:16:46.079 >   Adding inverter: 112182857016 - Luna done

10:16:46.083 > done

10:16:46.083 > Initialize ve.direct interface... 

10:16:46.086 > ve.direct rx = 22, tx = 21

10:16:46.089 > done

10:16:46.090 > Switch to WiFi mode

10:16:46.099 > WiFi connected

10:16:46.102 > Setting Hostname... done

10:16:46.123 > Configuring WiFi STA using existing credentials... done

10:16:46.139 > Configuring WiFi STA DHCP IP... done

10:16:49.214 > WiFi got ip: 192.168.178.78

10:16:49.218 > Network connected

@cthiele-mogic
Copy link

Ich klinke mich mal ein, ich habe eine neue ESP32 mit aktueller OpenDTU Version und es kann keine WLAN Client Verbindung hergestellt werden. Der AP bleibt bestehen, er kann sich aber halt nicht in mein WLAN verbinden.

In der Konsole

21:50:31.631 > Try reconnecting
21:50:31.639 > Network lost connection
21:50:32.656 > WiFi disconnected
21:50:32.656 > Try reconnecting
21:50:32.662 > Network lost connection
21:50:33.688 > WiFi disconnected
21:50:33.688 > Try reconnecting
....

Irgendwann steht die Verbindung dann auf inaktiv. Umgebung ist ebenfalls Fritzbox, Mesh und ein paar Repeater. Zeit habe ich manuell gesetzt, hat aber keine Änderung gebracht.

Eine Idee wäre noch ein "!" im Passwort !?

@tbnobody
Copy link
Owner

tbnobody commented Mar 6, 2023

Hast du den ESP mal komplett Stromlos gemacht? (Nur so als Idee, hat schon das ein oder andere Mal geholfen)

@cthiele-mogic
Copy link

cthiele-mogic commented Mar 6, 2023

Ja, mehrfach neu gestartet, Strom gezogen.

Interessanterweise habe ich gerade via Android einen Hotspot aufgemacht und die Verbindung hat innerhalb von 1-2s funktioniert.

Edit: Am Passwort mit ! liegt es nicht. Mit Android Hotspot funktioniert es wunderbar.
Edit: Fritzbox mit Gastzugang SSID geht ebenfalls nicht

@tbnobody
Copy link
Owner

tbnobody commented Mar 6, 2023

Haben $Leute bei denen es die Probleme macht ggf. alle Repeater im Einsatz? Oder haben $Leute Repeater im Einsatz und es geht?

@b-a-9-0
Copy link

b-a-9-0 commented Mar 6, 2023

Bei mir treten die Probleme mit normalem FritzBox WLAN ohne Repeater auf.

@RaverXX
Copy link

RaverXX commented Jul 31, 2023

Es funktionier etwa jede zweite mal:

Funktioniert:
Initialize LEDs... done
Check for default DTU serial... done
Initialize Hoymiles interface... NRF: Connection successful
Setting radio PA level...
Setting DTU serial...
Setting poll interval...
Adding inverter: XXXXXXXXXXXX - HM-800 done
done
Switch to WiFi mode
Setting Hostname... done
Configuring WiFi STA using new credentials... done
Configuring WiFi STA DHCP IP... done
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
WiFi connected
WiFi got ip: 192.168.1.77
Network connected
Connecting to MQTT...
Connected to MQTT.
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Admin AP remaining seconds: 10 / 180
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Admin AP remaining seconds: 20 / 180
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
TX RealTimeRunData Channel: 23 --> 15 90 16 57 32 80 10 41 72 80 0B 00 64 C7 BF D2 00 00 00 00 00 00 00 00 70 85 E5
Interrupt received
RX Channel: 23 --> 95 90 16 57 32 90 16 57 32 01 00 01 01 9C 00 98 02 73 01 A0 00 9A 02 7F 00 00 A7 | -80 dBm
Interrupt received
RX Channel: 23 --> 95 90 16 57 32 90 16 57 32 83 00 01 00 35 03 E8 01 1F 00 84 29 DB A1 | -80 dBm
RX Period End
Middle missing
Request retransmit: 2
TX RequestFrame Channel: 40 --> 15 90 16 57 32 80 10 41 72 82 D7
Interrupt received
RX Channel: 23 --> 95 90 16 57 32 90 16 57 32 02 AF A1 00 00 B7 8A 01 A9 01 B3 08 D2 13 89 04 B5 4F | -80 dBm
RX Period End
Success
...

Funktioniert nicht:
Setting Hostname... Configuring WiFi STA using new credentials... done
Initialize NTP... done
Initialize SunPosition... done
Initialize MqTT... done
Initialize WebApi... done
Initialize Display... done
Initialize LEDs... done
Check for default DTU serial... done
Initialize Hoymiles interface... NRF: Connection successful
Setting radio PA level...
Setting DTU serial...
Setting poll interval...
Adding inverter: XXXXXXXXXXXX - HM-800 done
done
Switch to WiFi mode
Setting Hostname... done
Configuring WiFi STA using new credentials... done
Configuring WiFi STA DHCP IP... done
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
E (11044) wifi:Association refused temporarily, comeback time 1024 mSec
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Disable search for AP... WiFi disconnected
Try reconnecting
Network lost connection
done
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXXXXXXX
Request SystemConfigPara

@tbnobody
Copy link
Owner

Wenn innerhalb von 15 Sekunden keine Verbindung zustanden kommt wird der Verbindungsversuch abgebrochen und 10 Minuten gewartet. Danach wird wieder für 15 Sekunden versucht eine Verbindung herzustellen.

#define WIFI_RECONNECT_TIMEOUT 15
#define WIFI_RECONNECT_REDO_TIMEOUT 600

E (11044) wifi:Association refused temporarily, comeback time 1024 mSec

Das klingt aber so als würde in dem Moment der AP die Verbindung abweisen.

@jstammi
Copy link
Contributor

jstammi commented Jul 31, 2023

Ja, abweisen schon. Aber ich denke wegen Problem bei Aushandlung eines "comebacks" (noch nie von gehört, man lernt nie aus). Mechanismus ist hier ein bischen beschrieben:
espressif/esp-idf#9428 (comment)

Der dort beschriebene Fix greift hier evtl nicht, weil die "comeback time" unterhalb der dort angegebenen Grenze von 5s liegt. KA was/ob man da was "von außen" machen kann.

jstammi added a commit to jstammi/OpenDTU that referenced this issue Jul 31, 2023
@jstammi
Copy link
Contributor

jstammi commented Jul 31, 2023

Auf das NTP hat man aber so erstmal keinen Einfluss. Man sagt ihm einen oder mehrere NTP Server und der Rest passiert durch interne Magic. Muss man mal angucken.

@tbnobody: Bin ich heute drüber "gestolpert": derzeit wird ntp initialisiert, egal ob netzwerk schon verbunden oder nicht. Aber es gibt ja die entsprechenden Events. Und ich hab mal bei mir testweise die Initialisierung dort drangehängt. Tut soweit ich das beurteilen kann (ohne serielles Log). Siehe jstammi@3935599

Wenn das in Deinen Augen passt, dann mach ich da morgen nen PR zu ... ?

Und dabei ist mir ein paar Zeilen nach dem NTP-Init die WebApp Initialisierung aufgestoßen: was passiert, wenn zum Zeitpunkt, wenn das durchlaufen wird, noch keine Netzwerkverbindung hergestellt ist? Dann dürfte der Webserver, der in WebApp.cpp Zeile 40 gestartet wird, doch eher nicht an die externe IP gebunden werden. Ich sehe da zumindest nix in AsyncServer::begin, dass darauf schließen ließe.

Plus, wird falls ich nichts übersehen habe, ein erfolgreicher Start nicht überprüft. Schlimmer noch, das scheint nicht einmal (direkt) möglich: ich sehe keine entsprechende Methode. Und AsyncServer::begin gibt auch nichts zurück.

Und falls der Start fehlgeschlagen ist, wovon man nichts weiß, dann scheitert AFAIS auch jeder weitere AsyncServer::begin Aufruf ohne vorheriges AsyncServer::end. Und damit hätte man die Situation, von der ich öfter lese, daß der Webserver nicht erreichbar ist, Display und MQTT aber Daten zeigen bzw liefern.

Indem wir den AsyncServer::begin Aufruf auch in die Event Behandlung einer erfolgreichen Netzwerkverbindung einhängen, könnte man einen erfolgreichen Server Start IMHO wahrscheinlicher machen.
Plus es sollte ein AsyncServer::end zu Beginn des Server Startes noch mit rein. Für den Fall einer "wackligen" Verbindung beim Start. Dann hätte ein nachfolgender Startversuch wegen eines erneuten "Netzwerk-Verbunden"-Events wenigstens eine Chance (derzeit nicht).
Und irgendwie wäre es denn doch noch wichtig zu erkennen, ob das erfolgreich war, um ggf einen erneuten Versuch starten zu können.

?

@tbnobody
Copy link
Owner

Bin ich heute drüber "gestolpert": derzeit wird ntp initialisiert, egal ob netzwerk schon verbunden oder nicht.

Macht ja nichts. Es wird in dem Moment ja nur ein Server und die Zeitzone gesetzt... Hat nichts mit einem pollen der Zeit zu tun. Das läuft im Hintergrund im IDF als separater Thread.

Dann dürfte der Webserver, der in WebApp.cpp Zeile 40 gestartet wird, doch eher nicht an die externe IP gebunden werden.

Der Webserver wird an einen Port gebunden und nicht an die IP. Er lauscht auf allen IP's (auch zukünftigen).

@RaverXX
Copy link

RaverXX commented Aug 1, 2023

Am Repeater bricht die WLAN-Verbindung nach paar Stunden weg. Auf dem Display wird weiterhin die Werte angezeigt. Da sollte die Verbindung zum Wechselrichter noch stehen, oder?

@jstammi
Copy link
Contributor

jstammi commented Aug 1, 2023

Der Webserver wird an einen Port gebunden und nicht an die IP. Er lauscht auf allen IP's (auch zukünftigen).

Anfängerfehler, sry, korrekt.

Mit der NTP "spiele" ich mal ein wenig rum.

@jstammi
Copy link
Contributor

jstammi commented Aug 2, 2023

Am Repeater bricht die WLAN-Verbindung nach paar Stunden weg. Auf dem Display wird weiterhin die Werte angezeigt. Da sollte die Verbindung zum Wechselrichter noch stehen, oder?

Ja, die WR Verbindung ist noch da.

Das Problem ist AFAIS der Verbindungsverlust zum AP, plus beim Wieder-Verbinden, dass da falsche "Association" Pakete untereinander ausgetauscht werden, was den Erfolg verhindert.

Wenn man mit E (11044) wifi:Association refused temporarily, comeback time mSec googelt, findet man da einiges zu.

Und was ich dazu als Lösungen gesehen haben ist

  • entweder WiFi disconnect plus nachfolgend reconnect
  • oder ein erneutes begin

Plus immer im setup ein initiales disconnect(true).

Ob über Events oder nicht ist AFAIS egal, habe beides in beiden Varianten gesehen.

(beides zB hier: https://microcontrollerslab.com/reconnect-esp32-to-wifi-after-lost-connection/)

Um das bei Dir zu testen @RaverXX , brauchst Du ein fertiges Binary (welche Variante?) oder kannst Du Dir das aus einem Branch selber erzeugen?

@RaverXX
Copy link

RaverXX commented Aug 2, 2023

selbsterzeugen müsste ich erst alles installieren. Aktuell setze ich fertiges Binary esp32 ein.

Heute ist die Verbindung zum Fritzbox (Router) ebenfalls abgebrochen nach ca. 8 Stunden.

@jstammi
Copy link
Contributor

jstammi commented Aug 2, 2023

Hier liegt eine Version basierend auf der v23.7.22, bei der ich ein explizites Disconnect vor die Verbindungsaufnahme gepackt habe (generic_esp32 Variante). Und NTP ist da etwas anders aufgesetzt, was aber mit Deinem Problem und dem Test dazu erstmal nichts zu tun hat:
https://drive.google.com/drive/folders/1X5YlM-L4-qprWt-txUMPm7LrxfbkbuRe

@RaverXX
Copy link

RaverXX commented Aug 2, 2023

Seit dem ich mit dem Repeater verbunden war, habe ich Probleme WLAN stabil zu bekommen. Entweder bekomme ich gar keine Verbindung oder es bricht nach kurzer Zeit weg. Ich werde wohl erstmal frisch installieren.

@jstammi
Copy link
Contributor

jstammi commented Aug 2, 2023

Wenn Du kannst wäre in so nem Fall ein Log über die serielle Schnittstelle hilfreich ;-)

Btw, was für ein Repeater ist das? Und ist das der, der über WLAN angebunden ist, oder der über LAN?

@RaverXX
Copy link

RaverXX commented Aug 2, 2023

AVM 6000er über LAN. Cleaninstall ist durch.

Ich habe eben mal kurz AhoyDTU getestet. Der bekommt am Repeater gar kein Verbindung.

Ich habe jetzt frisch die [v23.8.2] drauf. Werde erstmal bis morgen laufen lassen und schauen, ob es stabil läuft. Erst dann teste ich wieder. Lädst du eine 23.8.2 Version hoch?

@jstammi
Copy link
Contributor

jstammi commented Aug 2, 2023

Ja, kann ich machen. Landet dann im gleichen Ordner, Link bleibt gleich.

Noch was: wenn nur der ESP32 das Problem mit dem Repeater hat, andere Geräte, zB Dein Handy per 2,4GHz kein Problem haben, dann ... hab ich schon öfter davon gelesen, dass manche ESP32 ein Stromproblem haben, dass zu Stabilitäts-Problemen mit dem WLAN führt. Und dass da ein Kondensator hilft.

@RaverXX
Copy link

RaverXX commented Aug 3, 2023

Mit der frischen Installation ist es den ganzen Tag am Fritzbox stabil gelaufen. Vorhin wieder zum Repeater und nach zwei Stunden ist die Verbindung weg. Seit dem bekommen ich wieder keine Verbindung mehr. Auch nicht am Fritzbox.

Verschiedene Netteile habe ich ausprobiert. Kondensator schaue ich mir an.

Edit: Nach mehmaligen Stromlos geht es wieder an der Fritzbox.

@jstammi
Copy link
Contributor

jstammi commented Aug 3, 2023

War das meine Version? Oder die originale 23.8.2?

Wenn Du den Fehler das nächste mal hast, dann häng ihn bitte mal per USB an Deinen Rechner und logge die Ausgaben der openDTU seriellen Schnittstelle mit. Möglichst von Anfang an. Mit etwas Glück sehen wir da etwas.

@RaverXX
Copy link

RaverXX commented Aug 6, 2023

Ich habe aktuell oft Probleme mit der Verbindung. Ich bekomme so etwa jeder 10. Mal Verbindung. Firmware das Original. DIe Verbindung ist nur Stabil, wenn ich am Loggen bin.

Log:

Switch to WiFi mode
Setting Hostname... done
Configuring WiFi STA using new credentials... done
Configuring WiFi STA DHCP IP... done
Fetch inverter: XXXXXXX
Request SystemConfigPara
WiFi disconnected
Try reconnecting
Network lost connection

...

Ich warte erstmal bis das Elko da ist.

@RaverXX
Copy link

RaverXX commented Aug 9, 2023

Elko ist da und eingebaut. Ich kann keine Änderung sehen. Problem bleibt gleich. Zumindest eine neue Fehlermeldung:

Fetch inverter: XXXXX
Request SystemConfigPara
WiFi connected
WiFi got ip: 192.168.1.77
Network connected
Connecting to MQTT...
Connected to MQTT.
Fetch inverter: XXXXX
Request SystemConfigPara
WiFi disconnected
Try reconnecting
Network lost connection
[ 15687][E][WiFiClient.cpp:422] write(): fail on fd 49, errno: 113, "Software caused connection abort"
Disconnected from MQTT.
Disconnect reason:TCP_DISCONNECTED
Fetch inverter: XXXXXX
Request SystemConfigPara
WiFi disconnected
Try reconnecting
Network lost connection
Fetch inverter: XXXXXX
Request SystemConfigPara
WiFi disconnected
Try reconnecting
Network lost connection
Fetch inverter: XXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXX
Request SystemConfigPara
Disable search for AP... WiFi disconnected
Try reconnecting
Network lost connection
done
Fetch inverter: XXXXXX
Request SystemConfigPara
Fetch inverter: XXXXXX
Request SystemConfigPara
Fetch inverter: XXXXX
Request SystemConfigPara
Fetch inverter: XXXXXXX
Request SystemConfigPara

jstammi added a commit to jstammi/OpenDTU that referenced this issue Aug 10, 2023
to prevent from invalid association packets exchange
tbnobody#618
@RaverXX
Copy link

RaverXX commented Aug 11, 2023

Wieder frisch installiert, verhällt sich wieder halbwegs normal. Sobald ich einmal auf dem Repeater war, geht die Verbindung nur wenn ich am PC Logge.

@RaverXX
Copy link

RaverXX commented Aug 18, 2023

Ich habe mal das neue AhoyDTU installiert. Funktioniert nun meistens am Repeater. Weiß nicht, ob es am Elko liegt. Bleibt erstmal drauf.

@indie89
Copy link

indie89 commented Sep 27, 2023

I discovered a fix to make Wifi much more stable for ESP32 Wroom USB-C CH340. I described it here: hoylabs#458 it's really worth trying, it helped me a lot!

@fah
Copy link

fah commented Oct 1, 2023

Seit dem neu flashen (opendtu-generic_esp32.factory.bin und opendtu-generic_esp32.bin v23.9.18) eines vorher relativ stabilen OpenDTU-ESP32 habe ich nun die oben beschriebenen Probleme.

Ich habe mit Chrome geflashed und erased. Mehrfach komplett gebootet, power off, ... . Immer schön das captive popup mit IP 192.168.4.1 am iMac. Mein WLAN eingegeben und unmittelbar danach wird automatisch gebootet. (Finde ich nicht intuitv. Sollte auf ein manuelles Reboot warten.)

Log auf seriellem Port:

...
Reading PinMapping... [   180][E][vfs_api.cpp:105] open(): /littlefs/pin_mapping.json does not exist, no permits for creation
...
20:22:38.123 -> Switch to WiFi mode
20:22:38.123 -> Setting Hostname... done
20:22:38.160 -> Configuring WiFi STA using new credentials... done
20:22:38.160 -> Configuring WiFi STA DHCP IP... done
20:22:46.013 -> WiFi disconnected
20:22:46.013 -> Try reconnecting
20:22:46.013 -> Network lost connection
20:22:52.116 -> WiFi connected
20:22:52.569 -> WiFi got ip: 192.168.178.188
20:22:52.569 -> Network connected
20:23:01.871 -> Admin AP remaining seconds: 10 / 180
...
20:25:52.024 -> Admin AP remaining seconds: 180 / 180
20:25:53.034 -> Admin mode disabled

Danach stehts. Habe einen alten ESP32 (ESP32-D0WD-V3 (revision 3)).

Ich komme danach auch nur weiter mit Erase und Reflash.


Also nochmal von vorne (erase und program, config.json hochladen):

Ping auf die IP Adresse 178.188 funktioniert aber das Web Frontend bleibt weiß.
! Wenn ich gleichzeitig den AP anspreche werde ich nach einem Passwort gefragt !
Mir ist neu, dass der ESP32 gleichzeitig mit einem WLAN verbunden sein kann und als AP fungieren kann.


Der Source code der leeren Webseite:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" href="[/favicon.ico](view-source:http://192.168.178.188/favicon.ico)" />
    <link rel="shortcut icon" type="image/png" href="[/favicon.png](view-source:http://192.168.178.188/favicon.png)">
    <link rel="apple-touch-icon" href="[/favicon.png](view-source:http://192.168.178.188/favicon.png)">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>OpenDTU</title>
    <script type="module" crossorigin src="[/js/app.js](view-source:http://192.168.178.188/js/app.js)"></script>
    
  </head>
  <body>
    <noscript>
        <strong>We're sorry but OpenDTU doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    
  </body>
</html>

Natürlich ist in meinem Browser JS enabled.

Ich habe die config.json vorher zweimal gesichert und kann beide nicht mehr benutzen.


Update:

Ich konnte inzwischen eine stabile Version 23.8.28 installieren.

  1. python -m esptool --chip esp32 erase_flash
  2. python -m esptool -b 921600 --chip esp32 write_flash 0x0 opendtu-generic_esp32.factory-v23.8.28.bin
  3. ZUERST das Pinprofil "pinprofil_blinkyparts_esp32.json" per webinterface einspielen und das richtige in "Hardware" auswählen.
  4. DANN alles neu eingegeben, da alle backups der config.json zu Problemen führen

Der zerst fehlende Punkte 3 war der eigentliche Grund für die Probleme.

@tbnobody
Copy link
Owner

Does this issue still occour? Especially after the changes made in cbbe053

@t0rb3n
Copy link

t0rb3n commented Jan 14, 2024

Does this issue still occour? Especially after the changes made in cbbe053

Can't exactly say that this fixed it (or something else way before) but after flashing newest firmware (was on config version 71936) it immediately connects to my wifi, sets correct time and is accessible via IP. I will monitor this for a few days and give feedback whether it still works or not.

Thank you so far!

Update ~36hrs later: So far DTU is reachable everytime I checked. For me it appears this issue is solved.

@tbnobody
Copy link
Owner

I am going to close this issue. Please open a new one if this type of issue reoccurs.

Copy link

github-actions bot commented Apr 1, 2024

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests