From 63d35e5739aa04fafe76a11b0b475e79fc41f022 Mon Sep 17 00:00:00 2001 From: iranl Date: Sun, 3 Mar 2024 23:01:52 +0100 Subject: [PATCH] Fix WebCfg ota link --- Network.cpp | 16 +++++++++------- Network.h | 1 - PreferencesKeys.h | 3 ++- WebCfgServer.cpp | 4 +--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Network.cpp b/Network.cpp index 5375868..f7e71d9 100644 --- a/Network.cpp +++ b/Network.cpp @@ -369,13 +369,20 @@ bool Network::update() int httpResponseCode = https.GET(); - if (httpResponseCode == HTTP_CODE_OK || httpResponseCode == HTTP_CODE_MOVED_PERMANENTLY) { + if (httpResponseCode == HTTP_CODE_OK || httpResponseCode == HTTP_CODE_MOVED_PERMANENTLY) + { DynamicJsonDocument doc(6144); DeserializationError jsonError = deserializeJson(doc, https.getStream()); - if (!jsonError) { + if (!jsonError) + { _latestVersion = doc["tag_name"]; publishString(_maintenancePathPrefix, mqtt_topic_info_nuki_hub_latest, _latestVersion); + + if (_latestVersion != _preferences->getString(preference_latest_version).c_str()) + { + _preferences->setString(_latestVersion); + } } } @@ -669,11 +676,6 @@ int Network::mqttConnectionState() return _mqttConnectionState; } -const char* Network::latestHubVersion() -{ - return _latestVersion; -} - bool Network::encryptionSupported() { return _device->supportsEncryption(); diff --git a/Network.h b/Network.h index 21c4133..8161bbb 100644 --- a/Network.h +++ b/Network.h @@ -65,7 +65,6 @@ public: void publishPresenceDetection(char* csv); int mqttConnectionState(); // 0 = not connected; 1 = connected; 2 = connected and mqtt processed - const char* latestHubVersion(); bool encryptionSupported(); const String networkDeviceName() const; diff --git a/PreferencesKeys.h b/PreferencesKeys.h index b8356d5..891bf13 100644 --- a/PreferencesKeys.h +++ b/PreferencesKeys.h @@ -58,6 +58,7 @@ #define preference_has_mac_byte_0 "macb0" #define preference_has_mac_byte_1 "macb1" #define preference_has_mac_byte_2 "macb2" +#define preference_latest_version "latest" class DebugPreferences { @@ -78,7 +79,7 @@ private: preference_register_as_app, preference_command_nr_of_retries, preference_command_retry_delay, preference_cred_user, preference_cred_password, preference_publish_authdata, preference_publish_debug_info, preference_presence_detection_timeout, - preference_has_mac_saved, preference_has_mac_byte_0, preference_has_mac_byte_1, preference_has_mac_byte_2, + preference_has_mac_saved, preference_has_mac_byte_0, preference_has_mac_byte_1, preference_has_mac_byte_2, preference_latest_version, }; std::vector _redact = { diff --git a/WebCfgServer.cpp b/WebCfgServer.cpp index ef6f564..10eb7bd 100644 --- a/WebCfgServer.cpp +++ b/WebCfgServer.cpp @@ -636,12 +636,10 @@ void WebCfgServer::buildHtml(String& response) } printParameter(response, "Firmware", version.c_str(), "/info"); - const char* _latestVersion = _network->latestHubVersion(); - if(_preferences->getBool(preference_check_updates)) { //if(atof(_latestVersion) > atof(NUKI_HUB_VERSION) || (atof(_latestVersion) == atof(NUKI_HUB_VERSION) && _latestVersion != NUKI_HUB_VERSION)) { - printParameter(response, "Latest Firmware", _latestVersion, "/ota"); + printParameter(response, "Latest Firmware", _preferences->getString(preference_latest_version).c_str(), "/ota"); //} }