tzapu / WiFiManager

ESP8266 WiFi Connection manager with web captive portal
http://tzapu.com/esp8266-wifi-connection-manager-library-arduino-ide/
MIT License
6.52k stars 1.96k forks source link

Reset Setting including Spiffs.fomart -> ESP8266 #949

Open bgersmann opened 4 years ago

bgersmann commented 4 years ago

Basic Infos

Hardware

WiFimanager Branch/Release:

Esp8266/Esp32:

Hardware: ESP-12e, esp01, esp25

ESP Core Version: 2.4.0, staging

Description

Hi,

I'm using a local copy of the library, because I added a "Spiffs.format()" to the reset function. Is there any easy way to do this without the local copy? Could you maybe add it as an optional parameter to the reset function?

Thanks in advance.

tablatronix commented 4 years ago

hmm, WM does not use Spiffs, so it would make no sense to add this.

Maybe use a callout to user code?

Joennuh commented 4 years ago

Some examples DO use SPIFFS to save extra parameters. Like this one: https://github.com/tzapu/WiFiManager/blob/master/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino An SPIFFS reset function would be nice but I believe it is not absolutely necessary for the core functionality of WiFiManager.

tablatronix commented 4 years ago

yeah examples. I am going to try to add a define or auto detect spiffs and do it like that

tablatronix commented 4 years ago

Ok so WiFiManager::erase(bool opt) already exists and has an optional flag

in esp32 this can erase NVS

In esp8266 I can make it erase spiffs ( if spiffs was compiled and is incuded etc ) I just have to figure out error handling and stuff

tablatronix commented 4 years ago

I think I will just leave it seperate, so you have to call it twice for now

tablatronix commented 4 years ago

Will have to test of course, as of now they are seperate, I can work on combining them later if they work and I can figure out error handling.

as of now

on esp8266 erase() will erase wificonfig via "ESP.eraseConfig()" or sector wipe if WM_FIXERASECONFIG erase(true) will erase spiffs ONLY

on esp32 erase() will erase wifi config via disconnect erase(true) will erase NVS if WM_ERASE_NVS and nvs_flash_h

All will return bool result

tablatronix commented 4 years ago

you can test with this

  if (!SPIFFS.begin()) {
    Serial.println("Failed to mount file system");
    return;
  }
    FSInfo info;
    SPIFFS.info(info);
    Serial.printf("Total: %u\nUsed: %u\nBlock: %u\nPage: %u\nMax open files: %u\nMax path len: %u\n",
                  info.totalBytes,
                  info.usedBytes,
                  info.blockSize,
                  info.pageSize,
                  info.maxOpenFiles,
                  info.maxPathLength
                 );
tablatronix commented 4 years ago

hmm not working, let me fix it

tablatronix commented 4 years ago

of course it wont work, doh, I cannot detect spiffs defined in sketch.. ugh C++ linker is so anoying sometimes

Ruandv commented 4 years ago

@tablatronix is this something that I can have a look at for you? Can i maybe put it as part of an exampe?

tablatronix commented 4 years ago

Well I was hoping to have it automatic but I do not see any way to do it ill have to add some flags or params to let users do it instead

Ruandv commented 4 years ago

Suggestion: Why don't you rename thebool WiFiManager::erase(bool opt) to bool WiFiManager::format() ? then bool WiFiManager::erase() will still only do WiFi_eraseConfig and bool WiFiManager::format() will then go and do spiffs.format() and call WiFi_eraseConfig

Ruandv commented 4 years ago

Is there any objections to my suggestion above? If not then I'm willing to try and implement it.

tablatronix commented 4 years ago

Yeah but that's not really the problem, the problem is this only works with spiffs enabled. And I cannot see how we can determine that since user can do it themselves in their code or other librarys

Ruandv commented 4 years ago

Ok thanks now I understand the bigger problem.

On Sat, 22 Feb 2020, 08:20 Shawn A, notifications@github.com wrote:

Yeah but that's not really the problem, the problem is this only works with spiffs enabled.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/tzapu/WiFiManager/issues/949?email_source=notifications&email_token=AAR4TXDHPTLW7T5BDRVIDE3REC74DA5CNFSM4I2VQOU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMUYMVI#issuecomment-589923925, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAR4TXCV43QENAE4IFZY32TREC74DANCNFSM4I2VQOUQ .