diff --git a/src/core/network.cpp b/src/core/network.cpp index d29978491..74534642b 100644 --- a/src/core/network.cpp +++ b/src/core/network.cpp @@ -86,7 +86,6 @@ void Network::begin() { [this](WiFiEvent_t /*event*/, WiFiEventInfo_t info) { last_disconnect_reason_ = info.wifi_sta_disconnected.reason; wifi_connect_pending_ = false; - LOG_WARNING("WiFi lost connection. Reason: %s", disconnectReason(last_disconnect_reason_)); }, ARDUINO_EVENT_WIFI_STA_DISCONNECTED); @@ -169,18 +168,18 @@ void Network::reconnect() { } // disconnect AP - if (WiFi.getMode() & WIFI_AP) { stopAP(); } #endif // reset network state - network_ip_ = 0; - network_iface_ = NetIface::NONE; - has_ipv6_ = false; - juststopped_ = true; - wifi_connect_pending_ = false; + network_ip_ = 0; + network_iface_ = NetIface::NONE; + has_ipv6_ = false; + juststopped_ = true; + wifi_connect_pending_ = false; + last_disconnect_reason_ = 0; // reload the network settings, as this could be called from the console begin(); @@ -201,8 +200,10 @@ void Network::loop() { startWIFI(); // WiFi startEthernet(); // Ethernet - if (network_ip_ != 0) { - checkConnection(); // already have a connection: verify it's still alive + // already have a connection: verify it's still alive + // or trigger if the WiFi handshaked failed on the WiFi.begin() call + if (network_ip_ != 0 || last_disconnect_reason_ != 0) { + checkConnection(); } findNetworks(); // detect new connections } diff --git a/src/core/system.cpp b/src/core/system.cpp index f3cf50908..68f4e56e9 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -928,7 +928,7 @@ void System::send_info_mqtt() { } */ - } else if (WiFi.status() == WL_CONNECTED) { + } else if (EMSESP::network_.wifi_connected()) { doc["network"] = "wifi"; doc["hostname"] = WiFi.getHostname(); doc["SSID"] = WiFi.SSID(); @@ -1647,7 +1647,7 @@ bool System::check_upgrade() { // changes going to v3.9 from an earlier version if (settings_version.major() == 3 && settings_version.minor() < 9) { - #ifndef EMSESP_STANDALONE +#ifndef EMSESP_STANDALONE EMSESP::esp32React.getAPSettingsService()->update([&](APSettings & apSettings) { if (apSettings.provisionMode == 0) { apSettings.provisionMode = AP_MODE_DISCONNECTED; // AP_MODE_ALWAYS has been removed @@ -1656,7 +1656,7 @@ bool System::check_upgrade() { } return StateUpdateResult::UNCHANGED; }); - #endif +#endif } // changes to application settings