[OTA] Resolve the offered version per build environment (#2350)
checkForUpdates() reads an optional "envs" map from the update manifest and, when it holds an entry for this build's ENV_NAME, offers that version instead of the global latest_version. Boards with no entry are unaffected. This lets the OTA server hold a specific product at an older release while the rest of the fleet advances, with no per-board build flags. The resolved value is republished as latest_version so the Home Assistant update entity compares against it, and the map itself is dropped from the retained state topic to keep it small. Backward compatible both ways: old firmware ignores "envs", and a manifest without "envs" behaves exactly as before. OTA_JSON_URL is also guarded with #ifndef so a build environment can point the update check at another OTA server. It was defined unconditionally, so a -D build flag could not retarget it (the header definition always won). This is needed to exercise the check against a test manifest, and is useful for self-hosted OTA servers. No behaviour change without an override. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b9e8821b17
commit
65d0998278
2 files changed
+25
-6
No files matched your search
+6
-4
@@ -251,10 +251,12 @@
|
||||
# ifndef MQTT_HTTPS_FW_UPDATE_USE_PASSWORD
|
||||
# define MQTT_HTTPS_FW_UPDATE_USE_PASSWORD 1 // Set this to 0 if not using TLS connection to MQTT broker to prevent clear text passwords being sent.
|
||||
# endif
|
||||
# if DEVELOPMENTOTA
|
||||
# define OTA_JSON_URL "https://ota.openmqttgateway.com/binaries/dev/latest_version_dev.json" //OTA url used to discover new versions of the firmware from development nightly builds
|
||||
# else
|
||||
# define OTA_JSON_URL "https://ota.openmqttgateway.com/binaries/latest_version.json" //OTA url used to discover new versions of the firmware
|
||||
# ifndef OTA_JSON_URL // may be overridden by a build flag to use another OTA server
|
||||
# if DEVELOPMENTOTA
|
||||
# define OTA_JSON_URL "https://ota.openmqttgateway.com/binaries/dev/latest_version_dev.json" //OTA url used to discover new versions of the firmware from development nightly builds
|
||||
# else
|
||||
# define OTA_JSON_URL "https://ota.openmqttgateway.com/binaries/latest_version.json" //OTA url used to discover new versions of the firmware
|
||||
# endif
|
||||
# endif
|
||||
# define ENTITY_PICTURE "https://github.com/1technophile/OpenMQTTGateway/raw/development/docs/img/Openmqttgateway_logo_mini_margins.png"
|
||||
# define RELEASE_LINK_DEV "https://ota.openmqttgateway.com/binaries/dev/"
|
||||
|
||||
Reference in new issue
Block a user