Vor geraumer Zeit hatte ich mal mit einem ESP8266 (NodeMCU mit ESP-12E) erfolgreich getestet.
Nun hab ich das Teil wieder aus der Schublade geholt und wollte was neues probieren .... Es zeigte gestern sehr eigenartiges Verhalten:
Als AP funktioniert alles tadellos. Kann mich anmelden, Daten empfangen und senden.
Als STA (also Client) weigert sich das Teil vehemennt, sich mit meinem Router (FB 7490) zu verbinden !
Das hat aber definitiv schon mal funktioniert.
Ich habe dazu dutzende von Standard-Sketchen (sind ja alle irgendwie gleich) getestet.
Logo auch im Netz rumgesucht und etliche "Issues" mit dem gleichem Prob dazu gefunden. Vermeintlich gab es Lösungen und Tricks - die hab ich alle probiert, auch EraseFlash .... nix hilft hier.
Anstatt der aktullen ESP-Core 2.5.0 auch mal 2.2 und 2.3 getestet - NO GO.
An SSID und PW liegt es sicher nicht, hab ich mehrfach aus der FB kopiert. Auch hab ich einen Gast-Zugang mit und ohne PW sowie einen Hotspot (ist immer ohne PW) auf der FB probiert - kein connect.
WiFi.scanNetworks() funzt einwandfrei und listet alles auf.
Der Status nach WiFi.begin() ist immer 6/WL_DISCONNECTED.
das Problem hatte ich so noch nicht. Es gab mal einen Bug von dem ich nicht weiß, ob er behoben wurde:
der ESP-Core hat nur entweder leere Passworte oder Passwaorte mit mindestens 8 Zeichen richtig verabrbeitet, mit ein paar Sonderzeichen gab es auch mal Probleme. Das kann aber alles schon behoben sein...
Ansonsten: nimm den Core 2.4.2, der 2.5.0 hat noch einige Probleme.
Das mit den min. 8 Zeichen kannte ich. Ich hab's ja auch mit dem FB-Gastzugang als Hotspot probiert.
WiFi.begin("Hotspot", "") kommt auch immer mit ner 6 zurück.
Dito als Gast-Zugang mit WiFi.begin("GAST", "12345678").
Schaue ich in der FB dann unter 'WLAN/Funlnetz-> Erfolglose Anmeldeversuche zeigen' sehe nach jedem Versuch immer die MAC des ESP - egal ob als Gast, Hotspot oder der normalen SSID.
Ich kapier das Problem einfach nicht - zumal ich 100%ig sicher bin, das vor ca, 1 1/2 Jahren schon ausführlich als Client mit TCP und UDP probiert habe.
Der ESP kann ja wohl nicht kaputt sein, denn er tut's ja als AP - sendet und empfängt.
Liegt's an der Fritz-Box ? Mir fehlt der Glaube ...
EDIT:
Auch mit 2.4.2 das geiche Drama.
Hier mal die Ausgabe meines Test-Codes mit Debug-Info:
TERWI:
Der ESP kann ja wohl nicht kaputt sein, denn er tut's ja als AP - sendet und empfängt.
Liegt's an der Fritz-Box ? Mir fehlt der Glaube ...
Fritzbox habe ich hier keine. Mit Deinen Testausgaben ist ohne den zugehörigen Sketch ja nicht viel anzufangen...
Stell mal den Sketch hier rein, dann flashe ich das mal auf einen ESP.
Nachdem ich dann mal im Keller war zum weinen, kam mir eine Idee .... JETZT FUNZT ES (WIEDER) !
Hier mal der Rest vom letzten LOG:
...
WiFi already connected ?: NO
... try connecting to: Hotspot
WiFi begin: 6
Wait for connection: ...WiFi now connected ?: YES
MAC Addr: BC:DD:C2:FE:2F:CC
IP Addr: 192.168.179.21
Subnet: 255.255.255.0
Gateway: 192.168.179.1
DNS Addr: 192.168.179.1
Channel: 10
Hostname: ESP_FE2FCC
Status: 3
WIFI-DIAG 2:
Mode: STA
PHY mode: N
Channel: 10
AP id: 0
Status: 5
Auto connect: 1
SSID (7): Hotspot
Passphrase (0):
BSSID set: 0
Na .... wer rät was es war ? Im Vergleich zum LOG vom vorherigen Post kann man es sehen.
Ich geh jetzt erst mal in den Garten ne Runde ablachen.
Erklärung kommt danach. Denke mal, das wird bei denen, die ähnliche Probs hatten auch zur Lösung führen und nicht diese "Tricky's" aus den allerlei Posting im WWW.
... superschlaue Antwort - in diesem Fall definitiv nicht.
Die Ursache (nicht ein wirkliches Problem) liegt m.E.n. hier in diesem Fall bei der Fa. AVM. Unbeabsichtigterweise ...
Schon jemand auf die Lösung gekommen ?
Der Zauberbefehl lautet: WiFi.setPhyMode(WIFI_PHY_MODE_11N); (oder _11G)
Wie im ersten LOG zu sehen ist, hatte sich der ESP auf "PHY: B" also 802.11b eingestellt.
Warum & Woher ? keine Ahnung ...
Normalerweise sollte das eine 7490 aber können - hat sie ja auch mal. Warum nun nicht mehr ?
Ich denke, es lag an dem OS-Versions-Update von 6.x auf 7.x (August 2018 ?) mit geänderten Voreinstellungen.
Bei WLAN/Funkkanal -> Weiter Einstellungen ist/war hier für "WLAN-Standard 2,4-GHz: 802.11n+g" eingestellt.
Man kann auch auf 802.11n+g+b umstellen - das war denke ich früher mal Vorgabe.
Hier also kein Progger-Fehler, sondern eher etwas nach "never change a running system" wegen OS-Update der Box..
Der Einfachheit halber aber nun eben den ESP umgestellt. "b" ist eh der langsame Modus.
Er scheint sich das aber auf jeden Fall irgendwo zu merken - prüft man das wie hier im Sketch vor dem WiFi.setPhyMode() + WiFi.begin(), dann steht da immer die letzte Einstellung. Auch wenn der ESP stromlos war.
Habe gerade bei mir auf der FritzBox 7490 nachgeschaut. Genau das gleiche. Gemein ist vor allem das bei mir die Einstellung auf "Funkkanal-Einstellungen automatisch setzen (empfohlen)" steht und somit die Einstellungen für WLAN-Standard nicht angezeigt werden.
Jetzt weiß ich auch warum mein alter Sketch nicht mehr funktioniert hat. Dachte schon da hätte sich was in der IDE geändert, weil ein neuer Beispielsketch dann durch Zufall funktioniert hat...
Der Zauberbefehl lautet: WiFi.setPhyMode(WIFI_PHY_MODE_11N); (oder _11G)
Wie im ersten LOG zu sehen ist, hatte sich der ESP auf "PHY: B" also 802.11b eingestellt.
Warum & Woher ? keine Ahnung ...
...
Der Einfachheit halber aber nun eben den ESP umgestellt. "b" ist eh der langsame Modus.
Er scheint sich das aber auf jeden Fall irgendwo zu merken - prüft man das wie hier im Sketch vor dem WiFi.setPhyMode() + WiFi.begin(), dann steht da immer die letzte Einstellung. Auch wenn der ESP stromlos war.
Danke für die Hinweise. Ja, der ESP merkt sich die WLAN-Sachen, kann man ihm abgewöhnen, müßte ich jetzt nachkramen...
Gerade mal nachgeschaut: mein D-Link steht auf b/g/n, dem kann ich aber auch nur n sagen, dann hätte ich das Problem vielleicht auch, also gut zu wissen.
Jau, Danke Tommy - mit
WiFi.persistent(false);
scheint der ESP sich das nicht mehr zu merken und löscht auch wohl bestehende Werte.
Mit Flash löschen waren u.a. SSID und PW (tstststsssss.....) noch vorhanden.
Zur Sicherheit hab ich noch
WiFi.setAutoConnect(false);
gesetzt.
Ich bastel jetzt noch ein wenig an meiner kleinen STA_connect-Routine und poste die hier - vielleicht kann das ja sonst noch jemnd brauchen.
PS - noch ein Prob taucht auf:
.... es gibt immer noch ein Connect-Prob - das hatte ich aber derzeit auch schon.
Wahrscheinlicher Grund:
Ich habe auf meiner Fritz neben 2.4 auch 5 GHz eingeschaltet.
Zum einfachen verbinden für Handy's und Schleppi's haben beide Funknetze die gleiche SSID.
(Dito am Repeater in der anderen Hausecke)
Schalte ich die 5GHz aus, klappt es i.d.R. immer mit dem Connect.
Sind 5GHz eingeschaltet, klappt es häufig, aber eben nicht immer.
Wenn ich mir das Ergebnis von WiFi.scanNetworks() steht ja auch 2x meine SSID drin.
Ich vermute mal, der ESP nimmt sich das erste passende Resultat aus der Liste und versuchts dann mal.
Nur welche SSID ist von welchem Netz ? Unterscheiden klnnte man das anhand der verschedenen MAC's von der Box - tut der ESP das auch ???