From 3dc339c449194a19db507727c6c0c55b3e63e834 Mon Sep 17 00:00:00 2001 From: tobimai Date: Wed, 5 Nov 2025 22:08:42 +0100 Subject: [PATCH] fix ota upload --- .gitea/workflows/on_push.yaml | 2 +- .vscode/settings.json | 49 ++++++++++++++++++++++++++++++++++- data/logic.js | 2 +- data/update_progress.html | 32 +++++++++++------------ lib/fetchOTA/fetchOTA.cpp | 22 +++++++++------- src/global_data/defines.h | 2 +- src/networking/responses.cpp | 2 +- src/tools/tools.cpp | 4 ++- 8 files changed, 84 insertions(+), 31 deletions(-) diff --git a/.gitea/workflows/on_push.yaml b/.gitea/workflows/on_push.yaml index 87d7f2d..838d5c2 100644 --- a/.gitea/workflows/on_push.yaml +++ b/.gitea/workflows/on_push.yaml @@ -49,4 +49,4 @@ jobs: curl -X PUT \ -H "Content-Type: application/octet-stream" \ --data-binary @.pio/build/ESP32_INA233/littlefs.bin \ - https://iot.tobiasmaier.me/filesystem/waterlevel/generic/${VERSION} + https://iot.tobiasmaier.me/filesystem/waterlevel/generic/${VERSION}.0.0 diff --git a/.vscode/settings.json b/.vscode/settings.json index 2fc0cce..482f768 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,6 +22,53 @@ "text_encoding": "cpp", "thread": "cpp", "*.inc": "cpp", - "cstddef": "cpp" + "cstddef": "cpp", + "iomanip": "cpp", + "sstream": "cpp", + "atomic": "cpp", + "bit": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "charconv": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "map": "cpp", + "set": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory_resource": "cpp", + "netfwd": "cpp", + "numeric": "cpp", + "optional": "cpp", + "ratio": "cpp", + "source_location": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "iosfwd": "cpp", + "limits": "cpp", + "new": "cpp", + "numbers": "cpp", + "semaphore": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "cinttypes": "cpp", + "typeinfo": "cpp", + "variant": "cpp" } } \ No newline at end of file diff --git a/data/logic.js b/data/logic.js index 11f863a..d266ed7 100644 --- a/data/logic.js +++ b/data/logic.js @@ -49,7 +49,7 @@ function fetchWaterData(gauge) { } function fetchUpdateData(gauge) { - const apiUrl = '/ota_udpate_status'; + const apiUrl = '/ota_update_status'; // Fetching data from the API fetch(apiUrl) .then(response => response.json()) diff --git a/data/update_progress.html b/data/update_progress.html index bf5ba8a..437dce8 100644 --- a/data/update_progress.html +++ b/data/update_progress.html @@ -5,20 +5,8 @@ -
-
-
-

Update running

-
-
- Running update... -
-
-
- - - \ No newline at end of file + +
+
+
+

Update running

+
+
+ Running update... +
+
+
+ + diff --git a/lib/fetchOTA/fetchOTA.cpp b/lib/fetchOTA/fetchOTA.cpp index 5f14f99..449dc2c 100644 --- a/lib/fetchOTA/fetchOTA.cpp +++ b/lib/fetchOTA/fetchOTA.cpp @@ -90,6 +90,7 @@ Firmware OTA::createErrorResponse(const String& errorMsg) { void run_ota_update(String url, std::function callback_started, std::function callback_finished, std::function callback_progress, std::function callback_error) { Logger.log(0, ELOG_LEVEL_DEBUG, "Starting OTA upgrade"); + Logger.log(0, ELOG_LEVEL_DEBUG, "URL: %s", url); HTTPUpdate httpUpdate; httpUpdate.onStart(callback_started); httpUpdate.onEnd(callback_finished); @@ -101,13 +102,14 @@ void run_ota_update(String url, std::function callback_started, std::fu if (url.startsWith("https")) { Logger.log(0, ELOG_LEVEL_DEBUG, "HTTPS URL"); - WiFiClient client; - // client.setInsecure(); - ret = httpUpdate.update(client, url); + HTTPClient http_client; + http_client.begin(url); + ret = httpUpdate.update(http_client, url); } else if (url.startsWith("http")) { Logger.log(0, ELOG_LEVEL_DEBUG, "HTTP URL"); - WiFiClient client; - ret = httpUpdate.update(client, url); + HTTPClient http_client; + http_client.begin(url); + ret = httpUpdate.update(http_client, url); } else { Logger.log(0, ELOG_LEVEL_ERROR, "URL is not valid: \n%s", url.c_str()); } @@ -140,13 +142,15 @@ void run_ota_spiffs_update(String url, std::function callback_started, if (url.startsWith("https")) { Logger.log(0, ELOG_LEVEL_DEBUG, "HTTPS URL"); - WiFiClient client; + HTTPClient http_client; + http_client.begin(url); // client.setInsecure(); - ret = httpUpdate.updateSpiffs(client, url); + ret = httpUpdate.updateSpiffs(http_client, url); } else if (url.startsWith("http")) { Logger.log(0, ELOG_LEVEL_DEBUG, "HTTP URL"); - WiFiClient client; - ret = httpUpdate.updateSpiffs(client, url); + HTTPClient http_client; + http_client.begin(url); + ret = httpUpdate.updateSpiffs(http_client, url); } else { Logger.log(0, ELOG_LEVEL_ERROR, "URL is not valid: \n%s", url.c_str()); } diff --git a/src/global_data/defines.h b/src/global_data/defines.h index cb6eee8..dcc1903 100644 --- a/src/global_data/defines.h +++ b/src/global_data/defines.h @@ -7,7 +7,7 @@ #define water_level_min_key "water_level_min" #define water_level_max_key "water_level_max" #define water_volume_key "water_volume" -#define current_software_version Version{2, 2, 0} +#define current_software_version Version{2, 3, 0} #define REQUIRED_SPIFFS_VERSION Version{9, 0, 0} #define RESISTOR_VALUE 4 \ No newline at end of file diff --git a/src/networking/responses.cpp b/src/networking/responses.cpp index d9b0278..cf44ede 100644 --- a/src/networking/responses.cpp +++ b/src/networking/responses.cpp @@ -51,7 +51,7 @@ void setup_api_endpoints(){ request->send(200, "application/json", output); }); - server.on("/ota_udpate_status", HTTP_GET, [](AsyncWebServerRequest* request) { + server.on("/ota_update_status", HTTP_GET, [](AsyncWebServerRequest* request) { String output; serializeJson(build_ota_json(ota_status), output); request->send(200, "application/json", output); diff --git a/src/tools/tools.cpp b/src/tools/tools.cpp index 35eedd5..674bca8 100644 --- a/src/tools/tools.cpp +++ b/src/tools/tools.cpp @@ -155,7 +155,9 @@ bool check_for_internet_connection() { void run_ota_update_task(void* parameter) { TaskArgs_t *args = (TaskArgs_t *) parameter; LOG(ELOG_LEVEL_DEBUG, "Running OTA upgrade now with URL: %s", args->ota_status.update_url.c_str()); - run_ota_update(args->ota_status.update_url, update_started, update_finished, update_progress, update_error); + String ota_url = args->ota_status.update_url; + Serial.println(ota_url); + run_ota_update(ota_url, update_started, update_finished, update_progress, update_error); vTaskDelete(NULL); }