Executing this code fails to clear credentials even though it indicates they were cleared:
if(WiFi.clearCredentials()){
Serial.println("ALL Wifi credentials have been removed!");
}else{
Serial.println("Could not clear credentials!");
}
WiFiAccessPoint ap[5];
int found = WiFi.getCredentials(ap, 5);
Serial.println("Credentials stored for:");
for (int i = 0; i < found; i++) {
Serial.println(ap[i].ssid);
}
The getCredentials for loop lists all the credentials that were there prior to the clearCredentials command. Is there something I’m missing?
Just to check, this code up here did not clear the credentials when I tried…
I fix it by turning the wifi off and stops the execution for 5seconds …that works while the issue is fixed, but is there a “cleaner” way?
WiFi.off();
delay(5000);
WiFi.clearCredentials(); // Clear previously stored credentials to proper work
WiFi.on();
Thanks for your answer. Actually it works with the code I typed up here and did not work before, when I turned the wifi ON before clearing the credentials…
I have just checked again. This works:
WiFi.off();
delay(5000);
WiFi.on();
ok = WiFi.clearCredentials(); // clear credentials
This code, also works:
WiFi.off();
delay(5000);
ok = WiFi.clearCredentials(); // clear credentials
But this does not:
WiFi.off();
WiFi.on();
ok = WiFi.clearCredentials(); // clear credentials
Neither this:
WiFi.on();
//some other instructions...
WiFi.disconnect();
ok = WiFi.clearCredentials(); // clear credentials
So it seems to be related to the delay when turning on or off and not that much with the wifi on…is that possible?
Is there a way to make it work without the delay?
Are you using SYSTEM_THREAD(ENABLED)? If so, WiFi.on() and WiFi.off() are asynchronous, so I’d guess the version without the delay fails because the disconnect from WiFi.off() has not completed yet.
Yes, the problem might be around there because the cyan LED does not stop breathing after wifi off… but I am not using SYSTEM_THREAD.
However I am using SEMI_AUTOMATIC mode. then i connect to the wifi in the setup and this clear credentials is inside loop. and then connect to a different wifi ssid.