From db1cfb0d890978724cdbeeed33987098512bd7c8 Mon Sep 17 00:00:00 2001 From: iranl Date: Tue, 3 Dec 2024 11:55:38 +0100 Subject: [PATCH] Fix version math --- resources/config_version.py | 4 +++- resources/ota_manifest.py | 6 ++++-- src/Config.h | 3 ++- src/PreferencesKeys.h | 15 ++++++++------- src/WebCfgServer.cpp | 2 +- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/resources/config_version.py b/resources/config_version.py index 744f50a..6c2d4e0 100644 --- a/resources/config_version.py +++ b/resources/config_version.py @@ -29,12 +29,14 @@ elif (data[args.ota_type]['version'] == version): number = data[args.ota_type]['number'] + 1 else: number = 1 - + +version_int = version*100 content_new = "" with open ('src/Config.h', 'r' ) as readfile: file_content = readfile.read() content_new = re.sub(regex, "#define NUKI_HUB_VERSION \"" + str(version) + "-" + args.ota_type + str(number) + "\"", file_content, flags = re.M) + content_new = re.sub(regex, "#define NUKI_HUB_VERSION_INT \"" + str(version_int) + "-" + args.ota_type + str(number) + "\"", content_new, flags = re.M) with open('src/Config.h', 'w') as writefile: writefile.write(content_new) \ No newline at end of file diff --git a/resources/ota_manifest.py b/resources/ota_manifest.py index 73eb0db..5c1f780 100644 --- a/resources/ota_manifest.py +++ b/resources/ota_manifest.py @@ -24,6 +24,7 @@ with open('ota/manifest.json', 'r+') as json_file: if (args.build == 'none'): data[args.ota_type]['time'] = "0000-00-00" data[args.ota_type]['version'] = "No beta available" + data[args.ota_type]['version_int'] = "No beta available" data[args.ota_type]['fullversion'] = "No beta available" data[args.ota_type]['build'] = "" data[args.ota_type]['number'] = "0" @@ -37,12 +38,13 @@ with open('ota/manifest.json', 'r+') as json_file: data[args.ota_type]['time'] = datetime.now(timezone.utc).strftime("%Y-%m-%d") data[args.ota_type]['version'] = str(version) - + data[args.ota_type]['version_int'] = str(version*100) + if (args.ota_type == "release"): data[args.ota_type]['fullversion'] = str(version) else: data[args.ota_type]['fullversion'] = str(version) + "-" + args.ota_type + str(data[args.ota_type]['number']) - + data[args.ota_type]['build'] = args.build json_file.seek(0) json.dump(data, json_file, indent=4) diff --git a/src/Config.h b/src/Config.h index 30d77e7..2ef63e6 100644 --- a/src/Config.h +++ b/src/Config.h @@ -3,8 +3,9 @@ #include "sdkconfig.h" #define NUKI_HUB_VERSION "9.03" +#define NUKI_HUB_VERSION_INT (uint32_t)"903" #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2024-12-01" +#define NUKI_HUB_DATE "2024-12-03" #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/PreferencesKeys.h b/src/PreferencesKeys.h index 023cf17..446ef84 100644 --- a/src/PreferencesKeys.h +++ b/src/PreferencesKeys.h @@ -212,18 +212,16 @@ inline void initPreferences(Preferences* preferences) else { int lastConfigVer = preferences->getInt(preference_config_version); - int currentConfigVer = atof(NUKI_HUB_VERSION) * 100; Log->print("Last config version: "); Log->println(lastConfigVer); Log->print("Current config version: "); - Log->println(currentConfigVer); - if(lastConfigVer >= currentConfigVer) return; + if(lastConfigVer >= NUKI_HUB_VERSION_INT) return; if (lastConfigVer < 834) { - Log->println("Migration 834"); + Log->println("Migration 8.34"); if(preferences->getInt(preference_keypad_control_enabled)) { @@ -315,7 +313,7 @@ inline void initPreferences(Preferences* preferences) } if (lastConfigVer < 901) { - Log->println("Migration 901"); + Log->println("Migration 9.01"); #if defined(CONFIG_IDF_TARGET_ESP32S3) if (preferences->getInt(preference_network_hardware) == 3) @@ -328,10 +326,13 @@ inline void initPreferences(Preferences* preferences) preferences->putInt(preference_network_hardware, 3); } + } + if (lastConfigVer < 902) + { + Log->println("Migration 9.02"); preferences->putBool(preference_reset_mqtt_topics, true); } - - preferences->putInt(preference_config_version, currentConfigVer); + preferences->putInt(preference_config_version, NUKI_HUB_VERSION_INT); } #endif } diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index 4bf2f25..9b5e7f6 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -875,7 +875,7 @@ esp_err_t WebCfgServer::buildOtaHtml(PsychicRequest *request, bool debug) String currentVersion = NUKI_HUB_VERSION; const char* latestVersion; - if(atof(doc["release"]["version"]) >= atof(currentVersion.c_str())) + if(atof(doc["release"]["version_int"]) >= NUKI_HUB_VERSION_INT) { latestVersion = doc["release"]["fullversion"]; }