Add OTA firmware update via GitHub Releases API

New "Check for update" entry in Menu > System checks the latest
GitHub release's tag against the running version and, if newer,
downloads and flashes its firmware.bin asset directly over WiFi -
no cable or web flasher needed. Requires switching the partition
scheme to min_spiffs (two OTA-capable app partitions instead of a
single non-OTA one), which needs a full reflash.

confirmWarningScreen() now takes title/body as strings instead of
StringIds so it can show a dynamically composed message (the target
version number) for the update confirmation, with an accent color
parameter so the OTA confirmation can use green instead of the
red used for the existing destructive-action confirmations.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Eiswolf-BG
2026-08-12 22:57:12 +02:00
parent e4a29a090f
commit d7454d9784
12 changed files with 327 additions and 24 deletions

View File

@@ -316,6 +316,19 @@ enum class StringId : uint8_t {
// noetig.
WEBUI_QR_HINT,
// OTA-Firmware-Update ueber WLAN (Menue > System > "Nach Update
// suchen", siehe menu_screen.cpp::runOtaUpdateScreen() und
// ota_update.h/.cpp).
MENU_CHECK_UPDATE,
OTA_CHECKING,
OTA_CHECK_FAILED,
OTA_UP_TO_DATE_PREFIX,
OTA_UPDATE_AVAILABLE_PREFIX,
OTA_CONFIRM_BODY,
OTA_INSTALLING_PREFIX,
OTA_UPDATE_FAILED,
OTA_UPDATE_SUCCESS,
COUNT
};