fix: support OTA updates for devices with multiple image types - #31529
AlexisPolegato wants to merge 5 commits into
Conversation
Use composite key ieeeAddr+imageType for #inProgress and #lastChecked to allow concurrent OTA updates for devices with multiple MCUs. Also reset #lastChecked after a successful update so sibling MCUs are rechecked on their next queryNextImageRequest.
|
Quick first glance:
|
|
This pull request is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days |
|
@AlexisPolegato Are you able to take care of the review points by @Nerivec ? |
|
I tested this fix on all NodOn SIN products (SIN-4-XX-2X), all having two chips (antenna board and power board, one imageType per board). All scenarios worked correctly. Addressing @Nerivec's review points: 1. No mixed keys in same set — 2. 3. No spread on Maps/Sets — I've prepared a PR with all these changes. |
|
PR with all these changes: #32405 |
|
This pull request is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days |
Problem
Some Zigbee devices embed multiple MCUs, each with its own firmware and imageType. Z2M is unable to handle them
correctly because #inProgress and #lastChecked were keyed by ieeeAddr alone — the second imageType was either blocked
or silently ignored for 24h after the first update.
Open issues : #29293 #30022
Solution
without waiting 24h.
a cached queryNextImageRequest recorded during the last auto-check.