tzapu / WiFiManager

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

Can't build the library, after migrating to ESP32 #1451

Open ambarusa opened 2 years ago

ambarusa commented 2 years ago

Hi, I can't manage to build the library, after I want to switch to ESP32. Everything worked well with ESP8266, therefore I'm not attaching any code of mine.

I'm using the library cloned, and as a submodule, and I'm up-to-date to master branch. I'm developing in PlatformIO.

I have a lot of errors, but at first sight all of them can be traced back to the first one, which is:

In file included from lib/_WiFiManager/WiFiManager.cpp:13:
lib/_WiFiManager/WiFiManager.h:436:30: error: 'WebServer' does not name a type; did you mean 'DNSServer'?

Relevant code (WiFiManager.h):

    #if defined(ESP32) && defined(WM_WEBSERVERSHIM)
        using WM_WebServer = WebServer;
    #else
        using WM_WebServer = ESP8266WebServer;
    #endif

Thank you so much for your help.

XiotSamuel commented 2 years ago

I have same issue the compiler. When build target is ESP32, the WiFiManager.h is still using ESP8266WiFi.h.

In file included from .pio/libdeps/esp-wrover-kit/WiFiManager/WiFiManager.cpp:13:
.pio/libdeps/esp-wrover-kit/WiFiManager/WiFiManager.h:16:10: fatal error: ESP8266WiFi.h: No such file or directory

*********************************************************************
* Looking for ESP8266WiFi.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ESP8266WiFi.h"
* Web  > https://registry.platformio.org/search?q=header:ESP8266WiFi.h
*
*********************************************************************

 #include <ESP8266WiFi.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
Compiling .pio/build/esp-wrover-kit/lib85e/AsyncTCP/AsyncTCP.cpp.o
Compiling .pio/build/esp-wrover-kit/lib20f/FS/FS.cpp.o
*** [.pio/build/esp-wrover-kit/lib3ac/WiFiManager/WiFiManager.cpp.o] Error 1
ambarusa commented 2 years ago

To solve this, change the header to WiFi.h.

ambarusa commented 2 years ago

@tablatronix Unfortunately, I couldn't solve the original issue, changing that header is a previous step before getting my errors.

tablatronix commented 2 years ago

are you including wifimanager.h or just using lib_deps? Someone posted a similar issue before and it was a pio issue..

could be ldf mode or not including proper deps

without any information no idea

ambarusa commented 2 years ago

I have the library cloned in my libs folder. With lib_deps, it complained for not finding ESP8266WiFi.h

Will try ldf mode, and get back, thanks!

tablatronix commented 2 years ago

I assume you clone git/master?

try ldf chain+ or deep

and add wm include to header not just in platformio.ini deps

ambarusa commented 2 years ago

Hi, unfortunately it's not working. Here's the full error message by the way:

In file included from lib/_WiFiManager/WiFiManager.cpp:13:
lib/_WiFiManager/WiFiManager.h:436:30: error: 'WebServer' does not name a type; did you mean 'DNSServer'?
         using WM_WebServer = WebServer;
                              ^~~~~~~~~
                              DNSServer
lib/_WiFiManager/WiFiManager.h:441:21: error: 'WM_WebServer' was not declared in this scope
     std::unique_ptr<WM_WebServer> server;
                     ^~~~~~~~~~~~
lib/_WiFiManager/WiFiManager.h:441:21: note: suggested alternative: 'WiFiServer'
     std::unique_ptr<WM_WebServer> server;
                     ^~~~~~~~~~~~
                     WiFiServer
lib/_WiFiManager/WiFiManager.h:441:33: error: template argument 1 is invalid
     std::unique_ptr<WM_WebServer> server;
                                 ^
lib/_WiFiManager/WiFiManager.h:441:33: error: template argument 2 is invalid
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::setupHTTPServer()':
lib/_WiFiManager/WiFiManager.cpp:608:10: error: request for member 'reset' in '((WiFiManager*)this)->WiFiManager::server', which is of non-class type 'int'
   server.reset(new WM_WebServer(_httpPort));
          ^~~~~
lib/_WiFiManager/WiFiManager.cpp:608:20: error: expected type-specifier before 'WM_WebServer'
   server.reset(new WM_WebServer(_httpPort));
                    ^~~~~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:622:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_root),       std::bind(&WiFiManager::handleRoot, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:623:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_wifi),       std::bind(&WiFiManager::handleWifi, this, true));
         ^~
Compiling .pio\build\d1_mini_32\lib48d\LittleFS\LittleFS.cpp.o
lib/_WiFiManager/WiFiManager.cpp:624:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_wifinoscan), std::bind(&WiFiManager::handleWifi, this, false));
         ^~
lib/_WiFiManager/WiFiManager.cpp:625:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_wifisave),   std::bind(&WiFiManager::handleWifiSave, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:626:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_info),       std::bind(&WiFiManager::handleInfo, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:627:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_param),      std::bind(&WiFiManager::handleParam, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:628:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_paramsave),  std::bind(&WiFiManager::handleParamSave, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:629:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_restart),    std::bind(&WiFiManager::handleReset, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:630:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_exit),       std::bind(&WiFiManager::handleExit, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:631:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_close),      std::bind(&WiFiManager::handleClose, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:632:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_erase),      std::bind(&WiFiManager::handleErase, this, false));
         ^~
lib/_WiFiManager/WiFiManager.cpp:633:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_status),     std::bind(&WiFiManager::handleWiFiStatus, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:634:9: error: base operand of '->' is not a pointer
   server->onNotFound (std::bind(&WiFiManager::handleNotFound, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:636:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_update), std::bind(&WiFiManager::handleUpdate, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:637:9: error: base operand of '->' is not a pointer
   server->on(WM_G(R_updatedone), HTTP_POST, std::bind(&WiFiManager::handleUpdateDone, this), std::bind(&WiFiManager::handleUpdating, this));
         ^~
lib/_WiFiManager/WiFiManager.cpp:637:34: error: 'HTTP_POST' was not declared in this scope
   server->on(WM_G(R_updatedone), HTTP_POST, std::bind(&WiFiManager::handleUpdateDone, this), std::bind(&WiFiManager::handleUpdating, this));
                                  ^~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:637:34: note: suggested alternative: 'S_POST'
   server->on(WM_G(R_updatedone), HTTP_POST, std::bind(&WiFiManager::handleUpdateDone, this), std::bind(&WiFiManager::handleUpdating, this));
                                  ^~~~~~~~~
                                  S_POST
lib/_WiFiManager/WiFiManager.cpp:639:9: error: base operand of '->' is not a pointer
   server->begin(); // Web server start
         ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'uint8_t WiFiManager::processConfigPortal()':
lib/_WiFiManager/WiFiManager.cpp:828:11: error: base operand of '->' is not a pointer
     server->handleClient();
           ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'bool WiFiManager::shutdownConfigPortal()':
lib/_WiFiManager/WiFiManager.cpp:926:9: error: base operand of '->' is not a pointer
   server->handleClient();
         ^~
lib/_WiFiManager/WiFiManager.cpp:930:9: error: base operand of '->' is not a pointer
   server->stop();
         ^~
lib/_WiFiManager/WiFiManager.cpp:931:10: error: request for member 'reset' in '((WiFiManager*)this)->WiFiManager::server', which is of non-class type 'int'    
   server.reset();
          ^~~~~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::HTTPSend(String)':
lib/_WiFiManager/WiFiManager.cpp:1251:9: error: base operand of '->' is not a pointer
   server->send(200, FPSTR(HTTP_HEAD_CT), content);
         ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleRequest()':
lib/_WiFiManager/WiFiManager.cpp:1272:20: error: base operand of '->' is not a pointer
   bool res = server->authenticate("admin","12345");
                    ^~
lib/_WiFiManager/WiFiManager.cpp:1275:11: error: base operand of '->' is not a pointer
     server->requestAuthentication(HTTPAuthMethod::BASIC_AUTH); // DIGEST_AUTH
           ^~
lib/_WiFiManager/WiFiManager.cpp:1275:35: error: 'HTTPAuthMethod' has not been declared
     server->requestAuthentication(HTTPAuthMethod::BASIC_AUTH); // DIGEST_AUTH
                                   ^~~~~~~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleWifi(boolean)':
lib/_WiFiManager/WiFiManager.cpp:1320:29: error: base operand of '->' is not a pointer
     WiFi_scanNetworks(server->hasArg(F("refresh")),false); //wifiscan, force if arg refresh
                             ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleWifiSave()':
lib/_WiFiManager/WiFiManager.cpp:1755:41: error: base operand of '->' is not a pointer
   DEBUG_WM(DEBUG_DEV,F("Method:"),server->method() == HTTP_GET  ? (String)FPSTR(S_GET) : (String)FPSTR(S_POST));
                                         ^~
lib/_WiFiManager/WiFiManager.cpp:1755:55: error: 'HTTP_GET' was not declared in this scope
   DEBUG_WM(DEBUG_DEV,F("Method:"),server->method() == HTTP_GET  ? (String)FPSTR(S_GET) : (String)FPSTR(S_POST));
                                                       ^~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:1755:55: note: suggested alternative: 'HTTP_HELP'
   DEBUG_WM(DEBUG_DEV,F("Method:"),server->method() == HTTP_GET  ? (String)FPSTR(S_GET) : (String)FPSTR(S_POST));
                                                       ^~~~~~~~
                                                       HTTP_HELP
lib/_WiFiManager/WiFiManager.cpp:1760:17: error: base operand of '->' is not a pointer
   _ssid = server->arg(F("s")).c_str();
                 ^~
lib/_WiFiManager/WiFiManager.cpp:1761:17: error: base operand of '->' is not a pointer
   _pass = server->arg(F("p")).c_str();
                 ^~
lib/_WiFiManager/WiFiManager.cpp:1764:13: error: base operand of '->' is not a pointer
   if (server->arg(FPSTR(S_ip)) != "") {
             ^~
lib/_WiFiManager/WiFiManager.cpp:1766:23: error: base operand of '->' is not a pointer
     String ip = server->arg(FPSTR(S_ip));
                       ^~
lib/_WiFiManager/WiFiManager.cpp:1772:13: error: base operand of '->' is not a pointer
   if (server->arg(FPSTR(S_gw)) != "") {
             ^~
lib/_WiFiManager/WiFiManager.cpp:1773:23: error: base operand of '->' is not a pointer
     String gw = server->arg(FPSTR(S_gw));
                       ^~
lib/_WiFiManager/WiFiManager.cpp:1779:13: error: base operand of '->' is not a pointer
   if (server->arg(FPSTR(S_sn)) != "") {
             ^~
lib/_WiFiManager/WiFiManager.cpp:1780:23: error: base operand of '->' is not a pointer
     String sn = server->arg(FPSTR(S_sn));
                       ^~
lib/_WiFiManager/WiFiManager.cpp:1786:13: error: base operand of '->' is not a pointer
   if (server->arg(FPSTR(S_dns)) != "") {
             ^~
lib/_WiFiManager/WiFiManager.cpp:1787:24: error: base operand of '->' is not a pointer
     String dns = server->arg(FPSTR(S_dns));
                        ^~
lib/_WiFiManager/WiFiManager.cpp:1812:9: error: base operand of '->' is not a pointer
   server->sendHeader(FPSTR(HTTP_HEAD_CORS), FPSTR(HTTP_HEAD_CORS_ALLOW_ALL)); // @HTTPHEAD send cors
         ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleParamSave()':
lib/_WiFiManager/WiFiManager.cpp:1828:41: error: base operand of '->' is not a pointer
   DEBUG_WM(DEBUG_DEV,F("Method:"),server->method() == HTTP_GET  ? (String)FPSTR(S_GET) : (String)FPSTR(S_POST));
                                         ^~
lib/_WiFiManager/WiFiManager.cpp:1828:55: error: 'HTTP_GET' was not declared in this scope
   DEBUG_WM(DEBUG_DEV,F("Method:"),server->method() == HTTP_GET  ? (String)FPSTR(S_GET) : (String)FPSTR(S_POST));
                                                       ^~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:1828:55: note: suggested alternative: 'HTTP_HELP'
   DEBUG_WM(DEBUG_DEV,F("Method:"),server->method() == HTTP_GET  ? (String)FPSTR(S_GET) : (String)FPSTR(S_POST));
                                                       ^~~~~~~~
                                                       HTTP_HELP
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::doParamSave()':
lib/_WiFiManager/WiFiManager.cpp:1868:16: error: base operand of '->' is not a pointer
       if(server->hasArg(name)) {
                ^~
lib/_WiFiManager/WiFiManager.cpp:1869:23: error: base operand of '->' is not a pointer
         value = server->arg(name);
                       ^~
lib/_WiFiManager/WiFiManager.cpp:1871:23: error: base operand of '->' is not a pointer
         value = server->arg(_params[i]->getID());
                       ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleExit()':
lib/_WiFiManager/WiFiManager.cpp:2237:9: error: base operand of '->' is not a pointer
   server->sendHeader(F("Cache-Control"), F("no-cache, no-store, must-revalidate")); // @HTTPHEAD send cache
         ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleNotFound()':
lib/_WiFiManager/WiFiManager.cpp:2308:20: error: base operand of '->' is not a pointer
   message += server->uri();
                    ^~
lib/_WiFiManager/WiFiManager.cpp:2310:22: error: base operand of '->' is not a pointer
   message += ( server->method() == HTTP_GET ) ? FPSTR(S_GET) : FPSTR(S_POST);
                      ^~
lib/_WiFiManager/WiFiManager.cpp:2310:36: error: 'HTTP_GET' was not declared in this scope
   message += ( server->method() == HTTP_GET ) ? FPSTR(S_GET) : FPSTR(S_POST);
                                    ^~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:2310:36: note: suggested alternative: 'HTTP_HELP'
   message += ( server->method() == HTTP_GET ) ? FPSTR(S_GET) : FPSTR(S_POST);
                                    ^~~~~~~~
                                    HTTP_HELP
lib/_WiFiManager/WiFiManager.cpp:2312:20: error: base operand of '->' is not a pointer
   message += server->args();
                    ^~
lib/_WiFiManager/WiFiManager.cpp:2315:34: error: base operand of '->' is not a pointer
   for ( uint8_t i = 0; i < server->args(); i++ ) {
                                  ^~
lib/_WiFiManager/WiFiManager.cpp:2316:28: error: base operand of '->' is not a pointer
     message += " " + server->argName ( i ) + ": " + server->arg ( i ) + "\n";
                            ^~
lib/_WiFiManager/WiFiManager.cpp:2316:59: error: base operand of '->' is not a pointer
     message += " " + server->argName ( i ) + ": " + server->arg ( i ) + "\n";
                                                           ^~
lib/_WiFiManager/WiFiManager.cpp:2318:9: error: base operand of '->' is not a pointer
   server->sendHeader(F("Cache-Control"), F("no-cache, no-store, must-revalidate")); // @HTTPHEAD send cache
         ^~
lib/_WiFiManager/WiFiManager.cpp:2319:9: error: base operand of '->' is not a pointer
   server->sendHeader(F("Pragma"), F("no-cache"));
         ^~
lib/_WiFiManager/WiFiManager.cpp:2320:9: error: base operand of '->' is not a pointer
   server->sendHeader(F("Expires"), F("-1"));
         ^~
lib/_WiFiManager/WiFiManager.cpp:2321:9: error: base operand of '->' is not a pointer
   server->send ( 404, FPSTR(HTTP_HEAD_CT2), message );
         ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'boolean WiFiManager::captivePortal()':
lib/_WiFiManager/WiFiManager.cpp:2331:36: error: base operand of '->' is not a pointer
   DEBUG_WM(DEBUG_DEV,"-> " + server->hostHeader());
                                    ^~
lib/_WiFiManager/WiFiManager.cpp:2336:40: error: base operand of '->' is not a pointer
   String serverLoc =  toStringIp(server->client().localIP());
                                        ^~
lib/_WiFiManager/WiFiManager.cpp:2338:40: error: base operand of '->' is not a pointer
   bool doredirect = serverLoc != server->hostHeader(); // redirect if hostheader not server ip, prevent redirect loops
                                        ^~
lib/_WiFiManager/WiFiManager.cpp:2345:11: error: base operand of '->' is not a pointer
     server->sendHeader(F("Location"), (String)F("http://") + serverLoc, true); // @HTTPHEAD send redirect
           ^~
lib/_WiFiManager/WiFiManager.cpp:2346:11: error: base operand of '->' is not a pointer
     server->send ( 302, FPSTR(HTTP_HEAD_CT2), ""); // Empty content inhibits Content-length header so we have to close the socket ourselves.
           ^~
lib/_WiFiManager/WiFiManager.cpp:2347:11: error: base operand of '->' is not a pointer
     server->client().stop(); // Stop is needed because we sent no content length
           ^~
lib/_WiFiManager/WiFiManager.cpp: In member function 'void WiFiManager::handleUpdating()':
lib/_WiFiManager/WiFiManager.cpp:3768:2: error: 'HTTPUpload' was not declared in this scope
  HTTPUpload& upload = server->upload();
  ^~~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:3768:2: note: suggested alternative: 'HTTPSend'
  HTTPUpload& upload = server->upload();
  ^~~~~~~~~~
  HTTPSend
lib/_WiFiManager/WiFiManager.cpp:3768:14: error: 'upload' was not declared in this scope
  HTTPUpload& upload = server->upload();
              ^~~~~~
lib/_WiFiManager/WiFiManager.cpp:3768:14: note: suggested alternative: 'ultoa'
  HTTPUpload& upload = server->upload();
              ^~~~~~
              ultoa
lib/_WiFiManager/WiFiManager.cpp:3768:29: error: base operand of '->' is not a pointer
  HTTPUpload& upload = server->upload();
                             ^~
lib/_WiFiManager/WiFiManager.cpp:3771:23: error: 'UPLOAD_FILE_START' was not declared in this scope
  if (upload.status == UPLOAD_FILE_START) {
                       ^~~~~~~~~~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:3771:23: note: suggested alternative: 'GPIO_CALI_START'
  if (upload.status == UPLOAD_FILE_START) {
                       ^~~~~~~~~~~~~~~~~
                       GPIO_CALI_START
lib/_WiFiManager/WiFiManager.cpp:3807:29: error: 'UPLOAD_FILE_WRITE' was not declared in this scope
   else if (upload.status == UPLOAD_FILE_WRITE) {
                             ^~~~~~~~~~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:3807:29: note: suggested alternative: 'GPIO_REG_WRITE'
   else if (upload.status == UPLOAD_FILE_WRITE) {
                             ^~~~~~~~~~~~~~~~~
                             GPIO_REG_WRITE
lib/_WiFiManager/WiFiManager.cpp:3818:29: error: 'UPLOAD_FILE_END' was not declared in this scope
   else if (upload.status == UPLOAD_FILE_END) {
                             ^~~~~~~~~~~~~~~
lib/_WiFiManager/WiFiManager.cpp:3831:29: error: 'UPLOAD_FILE_ABORTED' was not declared in this scope
   else if (upload.status == UPLOAD_FILE_ABORTED) {
                             ^~~~~~~~~~~~~~~~~~~
Compiling .pio\build\d1_mini_32\libe06\AsyncTCP\AsyncTCP.cpp.o
*** [.pio\build\d1_mini_32\lib480\_WiFiManager\WiFiManager.cpp.o] Error 1
tablatronix commented 2 years ago

What is your enviroment? Are you using idf? Post your ini

ambarusa commented 2 years ago

I'm sorry for my late reply. It's the simplest:

[env:d1_mini]
platform = espressif8266
board = d1_mini
board_build.f_flash = 80000000L
board_build.flash_mode = qio
upload_speed = 921600
board_build.filesystem = littlefs
monitor_speed = 115200
framework = arduino

[env:d1_mini_32]
platform = espressif32
board = wemos_d1_mini32
board_build.filesystem = littlefs
monitor_speed = 115200
framework = arduino
tablatronix commented 2 years ago

Try clean and also platform = https://github.com/platformio/platform-espressif32.git

and see what happens, what does your pio compile log look like

ambarusa commented 2 years ago

Interesting. The Output is:

Error: Traceback (most recent call last):
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\__main__.py", line 102, in main
    cli()  # pylint: disable=no-value-for-parameter
  File "C:\Users\adama\.platformio\penv\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\cli.py", line 71, in invoke
    return super().invoke(ctx)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Users\adama\.platformio\penv\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\click\decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\run\cli.py", line 144, in cli
    process_env(
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\run\cli.py", line 201, in process_env
    result = {"env": name, "duration": time(), "succeeded": ep.process()}
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\run\processor.py", line 83, in process
    install_project_env_dependencies(
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\package\commands\install.py", line 131, in install_project_env_dependencies
    _install_project_env_platform(project_env, options),
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\package\commands\install.py", line 148, in _install_project_env_platform
    PlatformPackageManager().install(
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\package\manager\platform.py", line 52, in install
    p = PlatformFactory.new(pkg)
  File "C:\Users\adama\.platformio\penv\lib\site-packages\platformio\platform\factory.py", line 77, in new
    platform_cls = getattr(
AttributeError: module 'platformio.platform.platform' has no attribute 'PlatformPlatform'

============================================================

An unexpected error occurred. Further steps:

* Verify that you have the latest version of PlatformIO using
  `pip install -U platformio` command

* Try to find answer in FAQ Troubleshooting section
  https://docs.platformio.org/page/faq/index.html

* Report this problem to the developers
  https://github.com/platformio/platformio-core/issues

============================================================
tablatronix commented 2 years ago

it really looks like your pio enviroment is all messed up, never seen any issue like this

ambarusa commented 2 years ago

I will try a clean install.

ambarusa commented 2 years ago

Now your method went through, but it threw the original error. I haven't seen any difference in the downloaded playtform. I checked, Espressif 32 platform is on version 5.0.0, and WiFiManager is on the latest commit, [7d498ed] from July the 15th. Can you confirm if this combination works?

tablatronix commented 2 years ago

I am on pio PlatformIO Core, version 6.0.2

Processing esp32doit-devkit-v1 (platform: https://github.com/platformio/platform-espressif32.git; board: esp32doit-devkit-v1; framework: arduino; lib_ldf_mode: chain+; lib_extra_dirs: /Users/username/projects/microcontrollers/dev/libraries)
--------------------------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32doit-devkit-v1.html
PLATFORM: Espressif 32 (4.2.0+sha.6f5b79f) (git+https://github.com/platformio/platform-espressif32.git) > DOIT ESP32 DEVKIT V1
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-prog, esp_usb_jtag, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 @ 3.20003.0 (2.0.3) 
 - tool-esptoolpy @ 1.30300.0 (3.3.0) 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
xtensa-esp32-elf-g++ -o "/Users/username/projects/microcontrollers/dev/libraries/WiFiManager/examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino.cpp" -x c++ -fpreprocessed -dD -E "/var/folders/6g/ljwft31n7r5g593rqjywgvmh0000gn/T/tmpggp79xu_"
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain+, Compatibility ~ soft
Found 162 compatible libraries
Scanning dependencies...
Dependency Graph
|-- WiFiManager @ 2.0.11-beta (License: Unknown, Path: /Users/username/projects/microcontrollers/dev/libraries/WiFiManager)
|   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|   |-- Update @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/Update)
|   |-- WebServer @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WebServer)
|   |   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|   |   |-- FS @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/FS)
|   |-- DNSServer @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer)
|   |   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|-- Update @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/Update)
|-- WebServer @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WebServer)
|   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|   |-- FS @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/FS)
|-- DNSServer @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer)
|   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|-- ArduinoOTA @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA)
|   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
|   |-- Update @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/Update)
|   |-- ESPmDNS @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS)
|   |   |-- WiFi @ 2.0.0 (License: Unknown, Path: /Users/username/.platformio/packages/framework-arduinoespressif32/libraries/WiFi)
Building in release mode