[GH-ISSUE #1454] Connect to known SSID after a power failure? dont start a new access point. #1243

Open
opened 2026-02-28 01:29:12 +03:00 by kerem · 27 comments
Owner

Originally created by @jackkitley on GitHub (Jul 16, 2022).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1454

Basic Infos

Hardware

WiFimanager Branch/Release: Master

Esp8266/Esp32:

Hardware: D1 mini

Description

Im trying to reconnect to my known SSID that was successful but i cannot reconnect to it after a power outage. All the device does is boot up another AP which i dont want. I have tried multiple ways to keep restarting the device, wifi begin etc etc but i always starts a new AP on SSID not found boot up.

What i want to achieve:
After a power outage for the ESP device to keep retrying the known SSID from the config file.
I will handle a reset for AP manually if i wish to but all i want is on boot for the device to keep trying to connect to the known SSID as the routers take a while to boot.

Settings in IDE

Module: Wemos D1

Additional libraries:

Sketch

#BEGIN
#include <Arduino.h>

void setup() {
  Serial.begin(9600);

  bool spiffsSetup = loadConfigFile();
  if (!spiffsSetup)
  {
    Serial.println(F("Forcing config mode as there is no saved config"));
    forceConfig = true;
  }

  setupWifiManager();
}

void loop() {
   //Continue to connect to MQTT and reconnect if dropped. Connect to known SSID on boot and dont start a new AP.
  //Listen for button press to start AP if i wish to.
}

void setupWifiManager()
{
  WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 20);
  WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 10);
  WiFiManagerParameter custom_mqtt_user("user", "mqtt user", mqtt_user, 50);
  WiFiManagerParameter custom_mqtt_pass("pass", "mqtt pass", mqtt_pass, 50);

  // WiFiManager
  // Local intialization. Once its business is done, there is no need to keep it around
  WiFiManager wifiManager;

  //set config save notify callback
  wifiManager.setSaveConfigCallback(saveConfigCallback);

  //add all your parameters here
  wifiManager.addParameter(&custom_mqtt_server);
  wifiManager.addParameter(&custom_mqtt_port);
  wifiManager.addParameter(&custom_mqtt_user);
  wifiManager.addParameter(&custom_mqtt_pass);

  //sets timeout until configuration portal gets turned off
  //useful to make it all retry or go to sleep
  //in seconds
  wifiManager.setConfigPortalTimeout(180);
  if(forceConfig) {
    wifiManager.autoConnect("AP");  
  }
}
#END

Debug Messages

messages here
Originally created by @jackkitley on GitHub (Jul 16, 2022). Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1454 ### Basic Infos #### Hardware WiFimanager Branch/Release: Master Esp8266/Esp32: Hardware: D1 mini ### Description Im trying to reconnect to my known SSID that was successful but i cannot reconnect to it after a power outage. All the device does is boot up another AP which i dont want. I have tried multiple ways to keep restarting the device, wifi begin etc etc but i always starts a new AP on SSID not found boot up. What i want to achieve: After a power outage for the ESP device to keep retrying the known SSID from the config file. I will handle a reset for AP manually if i wish to but all i want is on boot for the device to keep trying to connect to the known SSID as the routers take a while to boot. ### Settings in IDE Module: Wemos D1 Additional libraries: ### Sketch ```cpp #BEGIN #include <Arduino.h> void setup() { Serial.begin(9600); bool spiffsSetup = loadConfigFile(); if (!spiffsSetup) { Serial.println(F("Forcing config mode as there is no saved config")); forceConfig = true; } setupWifiManager(); } void loop() { //Continue to connect to MQTT and reconnect if dropped. Connect to known SSID on boot and dont start a new AP. //Listen for button press to start AP if i wish to. } void setupWifiManager() { WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 20); WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 10); WiFiManagerParameter custom_mqtt_user("user", "mqtt user", mqtt_user, 50); WiFiManagerParameter custom_mqtt_pass("pass", "mqtt pass", mqtt_pass, 50); // WiFiManager // Local intialization. Once its business is done, there is no need to keep it around WiFiManager wifiManager; //set config save notify callback wifiManager.setSaveConfigCallback(saveConfigCallback); //add all your parameters here wifiManager.addParameter(&custom_mqtt_server); wifiManager.addParameter(&custom_mqtt_port); wifiManager.addParameter(&custom_mqtt_user); wifiManager.addParameter(&custom_mqtt_pass); //sets timeout until configuration portal gets turned off //useful to make it all retry or go to sleep //in seconds wifiManager.setConfigPortalTimeout(180); if(forceConfig) { wifiManager.autoConnect("AP"); } } #END ``` ### Debug Messages ``` messages here ```
Author
Owner

@tablatronix commented on GitHub (Jul 16, 2022):

You will have to wait longer to reconnect since your ap is not up yet.. or add your own counter to retry.

wm does have a connectiontimeout and a retry count setting you can try increasing those.

esp is supposed to auto-reconnect in background, but it seems to be not working lately.

ideally you can just add your own check to keep reconnecting, and do not use autoconnect() or disable setEnableConfigPortal

<!-- gh-comment-id:1186224965 --> @tablatronix commented on GitHub (Jul 16, 2022): You will have to wait longer to reconnect since your ap is not up yet.. or add your own counter to retry. wm does have a connectiontimeout and a retry count setting you can try increasing those. esp is supposed to auto-reconnect in background, but it seems to be not working lately. ideally you can just add your own check to keep reconnecting, and do not use autoconnect() or disable setEnableConfigPortal
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix Thank you. Do you possibly have an example?

If i pull the power from wifi i can see serial trying to connect but if i pull power from device and then power up again it will go straight to AP and not try reconnect which is annoying. I want to avoid the AP at all costs.

<!-- gh-comment-id:1186225676 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix Thank you. Do you possibly have an example? If i pull the power from wifi i can see serial trying to connect but if i pull power from device and then power up again it will go straight to AP and not try reconnect which is annoying. I want to avoid the AP at all costs.
Author
Owner

@tablatronix commented on GitHub (Jul 16, 2022):


    //sets timeout for which to attempt connecting, useful if you get a lot of failed connects
    void          setConnectTimeout(unsigned long seconds);

    // sets number of retries for autoconnect, force retry after wait failure exit
    void          setConnectRetries(uint8_t numRetries); // default 1
<!-- gh-comment-id:1186225803 --> @tablatronix commented on GitHub (Jul 16, 2022): ```C++ //sets timeout for which to attempt connecting, useful if you get a lot of failed connects void setConnectTimeout(unsigned long seconds); // sets number of retries for autoconnect, force retry after wait failure exit void setConnectRetries(uint8_t numRetries); // default 1 ````
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

The wifi could take in excess of 5min to come up again.

<!-- gh-comment-id:1186225841 --> @jackkitley commented on GitHub (Jul 16, 2022): The wifi could take in excess of 5min to come up again.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix ah, i have not seen setConnectRetries befone. I will make that max out haha

<!-- gh-comment-id:1186225996 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix ah, i have not seen setConnectRetries befone. I will make that max out haha
Author
Owner

@tablatronix commented on GitHub (Jul 16, 2022):

depending on if you want your sketch to continue without wifi, you might want to goto sleep or add your own timer in loop to retry every minute or so if not connected.

I have to test out why the esp automatic reconnect has not been working, I have noticed this as well for the last several versions, i have yet to test it or see if wm is breaking it

<!-- gh-comment-id:1186226020 --> @tablatronix commented on GitHub (Jul 16, 2022): depending on if you want your sketch to continue without wifi, you might want to goto sleep or add your own timer in loop to retry every minute or so if not connected. I have to test out why the esp automatic reconnect has not been working, I have noticed this as well for the last several versions, i have yet to test it or see if wm is breaking it
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix ive tried my own loop but doesnt seem to work. In South africa we have power out times. The whole house will be without electricity and when it comes back i want the ESP to just connect back again so i can get data into my home automation.

Its annoying if it sets up an AP.

<!-- gh-comment-id:1186226461 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix ive tried my own loop but doesnt seem to work. In South africa we have power out times. The whole house will be without electricity and when it comes back i want the ESP to just connect back again so i can get data into my home automation. Its annoying if it sets up an AP.
Author
Owner

@tablatronix commented on GitHub (Jul 16, 2022):

and to use autoconnect but not start cp ever ( ony on demand etc ) use wm.setEnableConfigPortal(false)

<!-- gh-comment-id:1186226568 --> @tablatronix commented on GitHub (Jul 16, 2022): and to use autoconnect but not start cp ever ( ony on demand etc ) use `wm.setEnableConfigPortal(false)`
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix i need WIFI for MQTT to publish my hot water times.

<!-- gh-comment-id:1186226651 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix i need WIFI for MQTT to publish my hot water times.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

depending on if you want your sketch to continue without wifi, you might want to goto sleep or add your own timer in loop to retry every minute or so if not connected.

I have to test out why the esp automatic reconnect has not been working, I have noticed this as well for the last several versions, i have yet to test it or see if wm is breaking it

Yes, its not great that it doesnt try last connected. It just boots into creating AP.

<!-- gh-comment-id:1186227038 --> @jackkitley commented on GitHub (Jul 16, 2022): > depending on if you want your sketch to continue without wifi, you might want to goto sleep or add your own timer in loop to retry every minute or so if not connected. > > I have to test out why the esp automatic reconnect has not been working, I have noticed this as well for the last several versions, i have yet to test it or see if wm is breaking it Yes, its not great that it doesnt try last connected. It just boots into creating AP.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix

Look ok?

WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 20);
WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 10);
WiFiManagerParameter custom_mqtt_user("user", "mqtt user", mqtt_user, 50);
WiFiManagerParameter custom_mqtt_pass("pass", "mqtt pass", mqtt_pass, 50);

// WiFiManager
// Local intialization. Once its business is done, there is no need to keep it around
WiFiManager wifiManager;

//set config save notify callback
wifiManager.setSaveConfigCallback(saveConfigCallback);

//add all your parameters here
wifiManager.addParameter(&custom_mqtt_server);
wifiManager.addParameter(&custom_mqtt_port);
wifiManager.addParameter(&custom_mqtt_user);
wifiManager.addParameter(&custom_mqtt_pass);

wifiManager.setConnectTimeout(180);
wifiManager.setConnectRetries(50);
wifiManager.setEnableConfigPortal(false);
wifiManager.autoConnect("AP");
//erases the wifi settings from chip. Going to add this to mqtt command and button press.
// wifiManager.resetSettings();

<!-- gh-comment-id:1186228739 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix Look ok? > WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 20); > WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 10); > WiFiManagerParameter custom_mqtt_user("user", "mqtt user", mqtt_user, 50); > WiFiManagerParameter custom_mqtt_pass("pass", "mqtt pass", mqtt_pass, 50); > > // WiFiManager > // Local intialization. Once its business is done, there is no need to keep it around > WiFiManager wifiManager; > > //set config save notify callback > wifiManager.setSaveConfigCallback(saveConfigCallback); > > //add all your parameters here > wifiManager.addParameter(&custom_mqtt_server); > wifiManager.addParameter(&custom_mqtt_port); > wifiManager.addParameter(&custom_mqtt_user); > wifiManager.addParameter(&custom_mqtt_pass); > > wifiManager.setConnectTimeout(180); > wifiManager.setConnectRetries(50); > wifiManager.setEnableConfigPortal(false); > wifiManager.autoConnect("AP"); > //erases the wifi settings from chip. Going to add this to mqtt command and button press. > // wifiManager.resetSettings();
Author
Owner

@tablatronix commented on GitHub (Jul 16, 2022):

If you have alot of power failures I would suggest you do not use configportal at all, and provide a manual reset or ondemand cp start.. Or add a counter like tasmota does, after x restarts start ap etc.

<!-- gh-comment-id:1186229185 --> @tablatronix commented on GitHub (Jul 16, 2022): If you have alot of power failures I would suggest you do not use configportal at all, and provide a manual reset or ondemand cp start.. Or add a counter like tasmota does, after x restarts start ap etc.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix

Yes, this is what i disabled for tasmota and what i wish to do for WM.

<!-- gh-comment-id:1186229462 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix Yes, this is what i disabled for tasmota and what i wish to do for WM.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

i disabled for x retries, start AP because of power failures so it just connects to SSID when its back up

<!-- gh-comment-id:1186229649 --> @jackkitley commented on GitHub (Jul 16, 2022): i disabled for x retries, start AP because of power failures so it just connects to SSID when its back up
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix How would you recommend i tackle this? im very new to this space of manual coding. i use Tasmota but develiped my own C++ for a custom device.

<!-- gh-comment-id:1186230059 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix How would you recommend i tackle this? im very new to this space of manual coding. i use Tasmota but develiped my own C++ for a custom device.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix

wifiManager.setConnectTimeout(180);
wifiManager.setConnectRetries(50);
if(forceConfig) {
wifiManager.autoConnect("AP");
}else {
wifiManager.setEnableConfigPortal(false);
}

<!-- gh-comment-id:1186230875 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix > wifiManager.setConnectTimeout(180); wifiManager.setConnectRetries(50); if(forceConfig) { wifiManager.autoConnect("AP"); }else { wifiManager.setEnableConfigPortal(false); }
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix i flashed device. First start up it spun up an AP.

ip:192.168.88.21,mask:255.255.255.0,gw:192.168.88.1
*wm:[2] Connection result: WL_CONNECTED
*wm:[1] Connect to new AP [SUCCESS]
*wm:[1] Got IP Address:
*wm:[1] 192.168.88.21
*wm:[2] [CB] _savewificallback calling
Should save config
*wm:[2] shutdownConfigPortal
station: 76:da:ca:ea:8b:12 leave, AID = 1
rm 1
bcn 0
del if1
pm open,type:2 0
add if1
pm close 7
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
*wm:[2] restoring usermode STA
bcn 0
del if1
pm open,type:2 0
mode : sta(38:2b:78:04:51:5b)
*wm:[2] wifi status: WL_CONNECTED
*wm:[2] wifi mode: STA
*wm:[2] configportal closed
*wm:[1] config portal exiting

<!-- gh-comment-id:1186231363 --> @jackkitley commented on GitHub (Jul 16, 2022): @tablatronix i flashed device. First start up it spun up an AP. > ip:192.168.88.21,mask:255.255.255.0,gw:192.168.88.1 *wm:[2] Connection result: WL_CONNECTED *wm:[1] Connect to new AP [SUCCESS] *wm:[1] Got IP Address: *wm:[1] 192.168.88.21 *wm:[2] [CB] _savewificallback calling Should save config *wm:[2] shutdownConfigPortal station: 76:da:ca:ea:8b:12 leave, AID = 1 rm 1 bcn 0 del if1 pm open,type:2 0 add if1 pm close 7 dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1) bcn 100 *wm:[2] restoring usermode STA bcn 0 del if1 pm open,type:2 0 mode : sta(38:2b:78:04:51:5b) *wm:[2] wifi status: WL_CONNECTED *wm:[2] wifi mode: STA *wm:[2] configportal closed *wm:[1] config portal exiting
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

going to disconnect WIFI now.

<!-- gh-comment-id:1186231418 --> @jackkitley commented on GitHub (Jul 16, 2022): going to disconnect WIFI now.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

@tablatronix

wifiManager.setConnectTimeout(180);
wifiManager.setConnectRetries(50);
if(forceConfig) {
wifiManager.autoConnect("AP");
}else {
wifiManager.setEnableConfigPortal(false);
}

I powered up device but doesnt even try to connect to last SSID.

<!-- gh-comment-id:1186232174 --> @jackkitley commented on GitHub (Jul 16, 2022): > @tablatronix > > > wifiManager.setConnectTimeout(180); > > wifiManager.setConnectRetries(50); > > if(forceConfig) { > > wifiManager.autoConnect("AP"); > > }else { > > wifiManager.setEnableConfigPortal(false); > > } I powered up device but doesnt even try to connect to last SSID.
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

setEnableConfigPortal
esp is supposed to auto-reconnect in background, but it seems to be not working lately.

Yes. Its not working at all on power failure.

<!-- gh-comment-id:1186233734 --> @jackkitley commented on GitHub (Jul 16, 2022): > setEnableConfigPortal esp is supposed to auto-reconnect in background, but it seems to be not working lately. Yes. Its not working at all on power failure.
Author
Owner

@tablatronix commented on GitHub (Jul 16, 2022):

you still have to call autoconnect

if(!forceConfig) wifiManager.setEnableConfigPortal(false);
wifiManager.autoConnect("AP");

you can also use bool getWiFiIsSaved(); if you want to allow for an initial setup

<!-- gh-comment-id:1186235209 --> @tablatronix commented on GitHub (Jul 16, 2022): you still have to call autoconnect ``` if(!forceConfig) wifiManager.setEnableConfigPortal(false); wifiManager.autoConnect("AP"); ``` you can also use bool getWiFiIsSaved(); if you want to allow for an initial setup
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

hmm

I see getWiFiIsSaved in docs. Doesnt explain much. Ok, ill check on Wifi saved then and not force config. forceConfig is from my saved creds;

void setup() {
Serial.begin(9600);

bool spiffsSetup = loadConfigFile();
if (!spiffsSetup)
{
Serial.println(F("Forcing config mode as there is no saved config"));
forceConfig = true;
}

setupWifiManager();
}

<!-- gh-comment-id:1186235933 --> @jackkitley commented on GitHub (Jul 16, 2022): hmm I see getWiFiIsSaved in docs. Doesnt explain much. Ok, ill check on Wifi saved then and not force config. forceConfig is from my saved creds; > void setup() { Serial.begin(9600); bool spiffsSetup = loadConfigFile(); if (!spiffsSetup) { Serial.println(F("Forcing config mode as there is no saved config")); forceConfig = true; } setupWifiManager(); }
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

if (!wifiManager.getWiFiIsSaved()) wifiManager.setEnableConfigPortal(false);
wifiManager.autoConnect("AP");

<!-- gh-comment-id:1186236202 --> @jackkitley commented on GitHub (Jul 16, 2022): if (!wifiManager.getWiFiIsSaved()) wifiManager.setEnableConfigPortal(false); wifiManager.autoConnect("AP");
Author
Owner

@jackkitley commented on GitHub (Jul 16, 2022):

Screenshot 2022-07-16 at 18 49 53
@tablatronix on the right track! thanks bud

if (wifiManager.getWiFiIsSaved()) wifiManager.setEnableConfigPortal(false);
wifiManager.autoConnect("AP");

<!-- gh-comment-id:1186237449 --> @jackkitley commented on GitHub (Jul 16, 2022): ![Screenshot 2022-07-16 at 18 49 53](https://user-images.githubusercontent.com/3243014/179364394-47415514-0df1-483d-b399-e54ac2825e93.png) @tablatronix on the right track! thanks bud > if (wifiManager.getWiFiIsSaved()) wifiManager.setEnableConfigPortal(false); wifiManager.autoConnect("AP");
Author
Owner

@SboleWork commented on GitHub (Aug 24, 2022):

@jackkitley were you able to get this sorted for your application?

My device seems to deal with loadshedding without problems.

When the power comes back on it tries to connect to the known network.
If it fails to connect to the known network - i.e. the router isn't up yet, it reverts to AP mode and allows me to connect to it and search for networks.
If I don't connect to it, it times out after 30 seconds, restarts the ESP32 and tries to connect to the known network.
This loops until either the router comes up and it connects or I connect to a new network.

void setupNetwork() {
  //Connect to WiFi
  WiFi.mode(WIFI_STA);
  // wifiManager.resetSettings();
  wifiManager.setConfigPortalTimeout(30);
  if (!wifiManager.autoConnect(DEVICE_SSID, DEVICE_PASSWORD)){
    ESP.restart();
    delay(1000);
  };
}
<!-- gh-comment-id:1225497168 --> @SboleWork commented on GitHub (Aug 24, 2022): @jackkitley were you able to get this sorted for your application? My device seems to deal with loadshedding without problems. When the power comes back on it tries to connect to the known network. If it fails to connect to the known network - i.e. the router isn't up yet, it reverts to AP mode and allows me to connect to it and search for networks. If I don't connect to it, it times out after 30 seconds, restarts the ESP32 and tries to connect to the known network. This loops until either the router comes up and it connects or I connect to a new network. ``` void setupNetwork() { //Connect to WiFi WiFi.mode(WIFI_STA); // wifiManager.resetSettings(); wifiManager.setConfigPortalTimeout(30); if (!wifiManager.autoConnect(DEVICE_SSID, DEVICE_PASSWORD)){ ESP.restart(); delay(1000); }; } ```
Author
Owner

@jackkitley commented on GitHub (Aug 24, 2022):

@SboleWork Hi. Got it sorted.

If it fails to connect to the known network - i.e. the router isn't up yet, it reverts to AP mode and allows me to connect to it and search for networks. - this was my problem. the router didnt boot fast enough and the tries were only a handful before it reverted to AP mode which i didnt want.

Now it tries for a long time and eventually connects. I have a button which i use to revert back to AP mode.

I used the manager in my geyserwise project.

https://github.com/jackkitley/geyserwise_max_iot

<!-- gh-comment-id:1225502918 --> @jackkitley commented on GitHub (Aug 24, 2022): @SboleWork Hi. Got it sorted. `If it fails to connect to the known network - i.e. the router isn't up yet, it reverts to AP mode and allows me to connect to it and search for networks.` - this was my problem. the router didnt boot fast enough and the tries were only a handful before it reverted to AP mode which i didnt want. Now it tries for a long time and eventually connects. I have a button which i use to revert back to AP mode. I used the manager in my geyserwise project. https://github.com/jackkitley/geyserwise_max_iot
Author
Owner

@tablatronix commented on GitHub (Aug 24, 2022):

you just change the settings or add a wait loop in your code, the option is setconnecttimeout and numretries

<!-- gh-comment-id:1225716759 --> @tablatronix commented on GitHub (Aug 24, 2022): you just change the settings or add a wait loop in your code, the option is setconnecttimeout and numretries
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/WiFiManager#1243
No description provided.