diff --git a/src/app_config.cpp b/src/app_config.cpp index 12147df8..afd95af7 100644 --- a/src/app_config.cpp +++ b/src/app_config.cpp @@ -1,6 +1,7 @@ #include "emonesp.h" #include "espal.h" #include "divert.h" +#include "net_manager.h" #include "mqtt.h" #include "ocpp.h" #include "tesla_client.h" @@ -393,3 +394,6 @@ config_reset() { LittleFS.format(); config_load_settings(); } + + + diff --git a/src/net_manager.cpp b/src/net_manager.cpp index a2fe0a8b..745f68ce 100644 --- a/src/net_manager.cpp +++ b/src/net_manager.cpp @@ -4,6 +4,7 @@ #include "lcd.h" #include "espal.h" #include "time_man.h" +#include "event.h" #include "LedManagerTask.h" @@ -90,7 +91,6 @@ void NetManagerTask::wifiStartAccessPoint() WiFi.enableAP(true); WiFi.enableSTA(true); // Needed for scanning - WiFi.softAPConfig(_apIP, _apIP, _apNetMask); // Create Unique SSID e.g "emonESP_XXXXXX" @@ -156,6 +156,8 @@ void NetManagerTask::wifiClientConnect() WiFi.hostname(esp_hostname.c_str()); WiFi.setSleep(WIFI_PS_NONE); + WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN); + WiFi.setSortMethod(WIFI_CONNECT_AP_BY_SIGNAL); WiFi.begin(esid.c_str(), epass.c_str()); _clientRetryTime = millis() + WIFI_CLIENT_RETRY_TIMEOUT; @@ -164,7 +166,7 @@ void NetManagerTask::wifiClientConnect() void NetManagerTask::wifiScanNetworks(WiFiScanCompleteCallback callback) { if(WiFi.scanComplete() != WIFI_SCAN_RUNNING) { - WiFi.scanNetworks(true, false, true); + WiFi.scanNetworks(true, false, false); } _scanCompleteCallbacks.push_back(callback); } @@ -206,6 +208,12 @@ void NetManagerTask::wifiOnStationModeConnected(const WiFiEventStationModeConnec void NetManagerTask::wifiOnStationModeGotIP(const WiFiEventStationModeGotIP &event) { haveNetworkConnection(WiFi.localIP()); + StaticJsonDocument<128> doc; + doc["wifi_client_connected"] = (int)net.isWifiClientConnected(); + doc["eth_connected"] = (int)net.isWiredConnected(); + doc["net_connected"] = (int)net.isWifiClientConnected(); + doc["ipaddress"] = net.getIp(); + event_send(doc); // Clear any error state _clientDisconnects = 0; @@ -517,6 +525,7 @@ void NetManagerTask::setup() MDNS.addServiceTxt("openevse", "tcp", "type", buildenv.c_str()); MDNS.addServiceTxt("openevse", "tcp", "version", currentfirmware.c_str()); MDNS.addServiceTxt("openevse", "tcp", "id", ESPAL.getLongId()); + } } @@ -793,4 +802,4 @@ bool NetManagerTask::isWiredConnected() #else return false; #endif -} +} \ No newline at end of file diff --git a/src/net_manager.h b/src/net_manager.h index 2f653610..d1360b65 100644 --- a/src/net_manager.h +++ b/src/net_manager.h @@ -172,7 +172,7 @@ class NetManagerTask : public MicroTasks::Task NetManagerTask(LcdTask &lcd, LedManagerTask &led, TimeManager &time); void begin(); - + void wifiScan(); void wifiStart(); @@ -183,7 +183,7 @@ class NetManagerTask : public MicroTasks::Task void wifiTurnOnAp(); void wifiScanNetworks(WiFiScanCompleteCallback callback); - + bool isConnected(); bool isWifiClientConnected(); bool isWiredConnected(); diff --git a/src/web_server.cpp b/src/web_server.cpp index 76ee1b09..87bb4527 100644 --- a/src/web_server.cpp +++ b/src/web_server.cpp @@ -1033,7 +1033,7 @@ void handleNotFound(MongooseHttpServerRequest *request) DBUG("NOT_FOUND: "); dumpRequest(request); - if(net.isWifiModeApOnly()) { + if((net.isWifiModeAp()) { // Redirect to the home page in AP mode (for the captive portal) MongooseHttpServerResponseStream *response = request->beginResponseStream(); response->setContentType(CONTENT_TYPE_HTML);