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

Autoreconnect doesn't work due to _arduino_event_cb(): STA Got Same IP #1646

Open
Dario-Ciceri opened this issue Aug 19, 2023 · 9 comments
Open
Labels
bug Validated BUG

Comments

@Dario-Ciceri
Copy link

[ 57622][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got Same IP:192.168.173.158
11:35:48.219 -> Got time adjustment from NTP!
11:35:49.962 -> *wm:AutoConnect: FAILED

Hi, I noticed that even if ESP32 connects to WiFi, switching from ethernet module, wifi manager will say *wm:AutoConnect: FAILED
but ESP32 is successfully connected...

@tablatronix
Copy link
Collaborator

Interesting

@tablatronix tablatronix added the bug Validated BUG label Aug 19, 2023
@Dario-Ciceri
Copy link
Author

Dario-Ciceri commented Aug 19, 2023

I don't know if there's a way to "reset" WiFi and avoid STA Got Same IP by erasing the previous one... I tried many esp API calls but nothing works, even deinit and init again doesn't work...
If I reset esp32 it connects without problem and I think it's because it doesn't have "a previous ip"

P.S. with WiFi.reconnect it works even with same IP so it must be WiFiManager library (?)
I know there's a flag "connected" which is set true only by if (WiFi.status() == WL_CONNECTED) { connected = true; #ifdef WM_DEBUG_LEVEL DEBUG_WM(F("AutoConnect: ESP Already Connected")); #endif setSTAConfig(); // @todo not sure if this is safe, causes dup setSTAConfig in connectwifi, // and we have no idea WHAT we are connected to }

maybe this piece of code if (connected || connectWifi(_defaultssid, _defaultpass) == WL_CONNECTED) { //connected #ifdef WM_DEBUG_LEVEL DEBUG_WM(F("AutoConnect: SUCCESS")); DEBUG_WM(DEBUG_VERBOSE, F("Connected in"), (String)((millis() - _startconn)) + " ms"); DEBUG_WM(F("STA IP Address:"), WiFi.localIP()); #endif doesn't detect same ip event? but shouldn't WL_CONNECTED works just fine? Maybe if we could set WL_CONNECTED on STA Got Same IP it could works fine

@tablatronix
Copy link
Collaborator

tablatronix commented Aug 19, 2023

Sounds like it might be an ESP lib issue, either way I will see if we can workaround it

is [ 57622][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got Same IP:192.168.173.158
the only event you see?

I wonder if switching ap to ap would also do this?

@Dario-Ciceri
Copy link
Author

Dario-Ciceri commented Aug 19, 2023

Sounds like it might be an ESP lib issue, either way I will see if we can workaround it

is [ 57622][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got Same IP:192.168.173.158 the only event you see?

I wonder if switching ap to ap would also do this?

Yes and routine stuff like STA disconnected, start etc due to wifimanager behaviour

Switching from ap to ap? Idk, honestly it would be weird if different AP same IP no?

@Dario-Ciceri
Copy link
Author

Sounds like it might be an ESP lib issue, either way I will see if we can workaround it
is [ 57622][V][WiFiGeneric.cpp:367] _arduino_event_cb(): STA Got Same IP:192.168.173.158 the only event you see?
I wonder if switching ap to ap would also do this?

Yes and routine stuff like STA disconnected, start etc due to wifimanager behaviour

Switching from ap to ap? Idk, honestly it would be weird if different AP same IP no?

oh and also, sometimes a weird error which seems related to // if retry without delay (via begin()), the IDF is still busy even after returning status // E (5130) wifi:sta is connecting, return error // [E][WiFiSTA.cpp:221] begin(): connect failed! but even with if (_aggresiveReconn) delay(1000); sometimes I get // E (5130) wifi:sta is connecting, return error // [E][WiFiSTA.cpp:221] begin(): connect failed!

@Dario-Ciceri
Copy link
Author

Dario-Ciceri commented Aug 19, 2023

could you also tell me what's causing hostByName(): DNS Failed for www.google.com ?

I'll follow this: espressif/arduino-esp32#1595 (comment)

It seems to work, well I was using a task on core 0 with priority 10... but I never heard of this problem before... maybe it's causing problem with wifimanager too, like not letting events to be detected?

@tablatronix
Copy link
Collaborator

What esp version are you using ?

@Dario-Ciceri
Copy link
Author

Dario-Ciceri commented Aug 21, 2023

What esp version are you using ?

Dev Module, 2.0.4

@Dario-Ciceri
Copy link
Author

Dario-Ciceri commented Aug 30, 2023

ehy @tablatronix I think I found the problem, look here please: espressif/arduino-esp32#653 (comment)

and here: espressif/arduino-esp32#1100 (comment)

currently I've upgraded to 2.0.11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Validated BUG
Projects
None yet
Development

No branches or pull requests

2 participants