From 9e36fe0857618a32e05e5ac5c699820912ebc65d Mon Sep 17 00:00:00 2001 From: iranl Date: Wed, 8 Jan 2025 20:48:57 +0100 Subject: [PATCH] Fix endless reboot on webserver disable --- src/Config.h | 2 +- src/NukiNetwork.cpp | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/Config.h b/src/Config.h index 77c8192..d4a4a9d 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.07" #define NUKI_HUB_VERSION_INT (uint32_t)907 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-01-07" +#define NUKI_HUB_DATE "2025-01-08" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/src/NukiNetwork.cpp b/src/NukiNetwork.cpp index 317aff8..8ffa17a 100644 --- a/src/NukiNetwork.cpp +++ b/src/NukiNetwork.cpp @@ -404,10 +404,6 @@ bool NukiNetwork::update() _device->mqttDisconnect(true); } - if(!_webEnabled) - { - forceEnableWebServer = true; - } if(_restartOnDisconnect && espMillis() > 60000) { restartEsp(RestartReason::RestartOnDisconnectWatchdog); @@ -926,7 +922,7 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns delay(200); restartEsp(RestartReason::RequestedViaMqtt); } - else if(comparePrefixedPath(topic, mqtt_topic_update) && strcmp(data, "1") == 0 && _preferences->getBool(preference_update_from_mqtt, false)) + else if(comparePrefixedPath(topic, mqtt_topic_update) && strcmp(data, "1") == 0 && _preferences->getBool(preference_update_from_mqtt, false) && !mqttRecentlyConnected()) { Log->println(("Update requested via MQTT.")); @@ -1031,7 +1027,7 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns Log->println(("Failed to retrieve OTA manifest, OTA update aborted.")); } } - else if(comparePrefixedPath(topic, mqtt_topic_webserver_action)) + else if(comparePrefixedPath(topic, mqtt_topic_webserver_action) && !mqttRecentlyConnected()) { if(strcmp(data, "") == 0 || strcmp(data, "--") == 0) @@ -1046,8 +1042,7 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns return; } Log->println(("Webserver enabled, restarting.")); - _preferences->putBool(preference_webserver_enabled, true); - + _preferences->putBool(preference_webserver_enabled, true); } else if (strcmp(data, "0") == 0) { @@ -1058,7 +1053,6 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns Log->println(("Webserver disabled, restarting.")); _preferences->putBool(preference_webserver_enabled, false); } - clearWifiFallback(); delay(200); restartEsp(RestartReason::ReconfigureWebServer);