-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
[openthread_border_router] Remove firmware flashing from the addon #4061
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[openthread_border_router] Remove firmware flashing from the addon #4061
Conversation
📝 WalkthroughWalkthroughFirmware flashing and related autoflash configuration were removed from the OpenThread Border Router add-on; responsibility for flashing supported 802.15.4 radios was moved to Home Assistant Core (minimum Core 2025.7.0). Build, service, script, docs, config and translation references to autoflash/universal-silabs-flasher were removed or updated; an early compatibility read was added to the otbr-agent runtime script. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant OTBR_Addon as "OTBR Add-on"
participant HA_Core as "Home Assistant Core"
User->>OTBR_Addon: Install/configure add-on
Note right of OTBR_Addon: Add-on no longer contains flasher service or script
OTBR_Addon--xHA_Core: (does not perform flashing)
HA_Core->>User: Detect supported radio and flash OpenThread RCP firmware
Note over HA_Core: Flashing handled by Core (min 2025.7.0)
OTBR_Addon->>OTBR_Addon: Read compatibility `autoflash_firmware` option early (if present)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro Cache: Disabled due to data retention organization setting Knowledge base: Disabled due to data retention organization setting 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
🧰 Additional context used📓 Path-based instructions (1)*/**(html|markdown|md)⚙️ CodeRabbit configuration file
Files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
openthread_border_router/DOCS.md (1)
15-18: Use the correct indefinite article before “802.15.4”-You will need a 802.15.4 capable radio supported by OpenThread +You will need an 802.15.4-capable radio supported by OpenThreadThis fixes the a/an rule flagged by LanguageTool and adds a hyphen to compound-modify “radio”.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
📒 Files selected for processing (10)
openthread_border_router/CHANGELOG.md(1 hunks)openthread_border_router/DOCS.md(1 hunks)openthread_border_router/Dockerfile(0 hunks)openthread_border_router/build.yaml(0 hunks)openthread_border_router/config.yaml(2 hunks)openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/notification-fd(0 hunks)openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/type(0 hunks)openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/up(0 hunks)openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up(0 hunks)openthread_border_router/translations/en.yaml(0 hunks)
💤 Files with no reviewable changes (7)
- openthread_border_router/translations/en.yaml
- openthread_border_router/Dockerfile
- openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/type
- openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/up
- openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/universal-silabs-flasher/notification-fd
- openthread_border_router/build.yaml
- openthread_border_router/rootfs/etc/s6-overlay/scripts/universal-silabs-flasher-up
🧰 Additional context used
📓 Path-based instructions (6)
`*/**(html|markdown|md)`: - For instructional content in documentation, use a di...
*/**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.
- Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
- In step-by-step instructions, front the location phrase in the instructional sentence.
- In step-by-step instructions, front the 'goal' in the instructional sentence.
- In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
- do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'
⚙️ Source: CodeRabbit Configuration File
List of files the instruction was applied to:
openthread_border_router/CHANGELOG.mdopenthread_border_router/config.yamlopenthread_border_router/DOCS.md
`*/**(html|markdown|md)`: - Use bold to mark UI strings. - If "" are used to mark UI strings, replace them by bold.
*/**(html|markdown|md): - Use bold to mark UI strings.
- If "" are used to mark UI strings, replace them by bold.
⚙️ Source: CodeRabbit Configuration File
List of files the instruction was applied to:
openthread_border_router/CHANGELOG.mdopenthread_border_router/config.yamlopenthread_border_router/DOCS.md
`*/**(html|markdown|md)`: - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"
*/**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"
⚙️ Source: CodeRabbit Configuration File
List of files the instruction was applied to:
openthread_border_router/CHANGELOG.mdopenthread_border_router/config.yamlopenthread_border_router/DOCS.md
`*/**(html|markdown|md)`: - Use sentence-style capitalization also in headings.
*/**(html|markdown|md): - Use sentence-style capitalization also in headings.
⚙️ Source: CodeRabbit Configuration File
List of files the instruction was applied to:
openthread_border_router/CHANGELOG.mdopenthread_border_router/config.yamlopenthread_border_router/DOCS.md
`*/**(html|markdown|md)`: do not comment on HTML used for icons
*/**(html|markdown|md): do not comment on HTML used for icons
⚙️ Source: CodeRabbit Configuration File
List of files the instruction was applied to:
openthread_border_router/CHANGELOG.mdopenthread_border_router/config.yamlopenthread_border_router/DOCS.md
`*/**(html|markdown|md)`: Avoid flagging inline HTML for embedding videos in future reviews for this repository.
*/**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.
⚙️ Source: CodeRabbit Configuration File
List of files the instruction was applied to:
openthread_border_router/CHANGELOG.mdopenthread_border_router/config.yamlopenthread_border_router/DOCS.md
🪛 LanguageTool
openthread_border_router/DOCS.md
[uncategorized] ~15-~15: Use the indefinite article “an” before nouns that start with a vowel sound.
Context: ..." button. ## How to use You will need a 802.15.4 capable radio supported by Ope...
(AI_EN_LECTOR_REPLACEMENT_DETERMINER_A_AN)
🔇 Additional comments (3)
openthread_border_router/CHANGELOG.md (1)
3-5: Changelog entry looks good and is consistent with the code changesVersion bump and summary line read well, nothing else to flag.
openthread_border_router/config.yaml (2)
2-2: Confirm version alignment across release artefacts
version: 2.13.1is correct here, but double-check that the same number is reflected inbuild.yaml, the Docker tag, and the GitHub release you will cut – mismatches silently break the supervisor’s update detection.
11-11: Raisinghomeassistantmin version to 2025.7.0 – ensure upgrade pathBlocking older cores is fine given the firmware-flash removal, but it’s a big jump (from 2023.9.0).
• Verify that users already running this add-on on ≤ 2025.6 still get a helpful supervisor warning instead of a hard failure.
• Mention this requirement prominently in the release notes (the changelog line does not state it).
|
Marking this PR as a draft, as it requires Home Assistant 2025.7, which is not available yet. Releasing this now, means nobody can install it. ../Frenck |
|
Oh no, that means that we can't release this PR at all for at least a few months 🤔. It seems like addons don't actually have any concept of releases, right? If the latest/only version is not compatible, the addon can't be installed? |
We've required add-on to use a just released Core version already in the past. Usually when folks install new add-ons they most likely work on their HA installation anyways, and it is not all that big of a deal to also update Home Assistant Core. So no, I wouldn't hold off with this PR. Just wait until 2025.7.0 is officially available.
Yes, we only ever have the latest version available. Unless you restore a backup, then you'll get whatever version that backup has. |
|
This would prevent anyone using 2025.6.x or below from setting up a ZBT-1 or Yellow as a Thread border router from Core, no? They'd click on the "Thread" option in the config flow and the addon would fail to install? |
Yeah. But at that point you are trying to setup a new communication protocol on your Home Assistant installation, which is a major operation on its own. IMHO, it is fine to require the user to update to the latest Core version. You also get the best experience with that... |
|
I just realized that with HAOS 16.0 the serial port paths changed (again), rendering the Yellow detection non-functional with the current OpenThread Border Router 🙈 The correct path now would be: However, I don't think we should bother at this point. Let's get this PR merged, and advice people to upgrade to latest Core 2025.7.x to get the new built-in firmware management experience 😎 /cc @sairon |
|
Marking this as ready for review as Core 2025.7 is out since a while, 2025.7 and 2025.8 make up 60% of the user base, and also most new users of the OTBR add-on will have most likely a new version. So very few users get forced to upgrade if they want to start using the OTBR at this point. |
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
sairon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just one comment.
…addon (home-assistant#4061)" This reverts commit 6f606ed.
Home Assistant Core 2025.7.0 will install the correct firmware before installing this addon, removing the need for
autoflash_firmware. This will allow us to release OpenThread RCP firmware updates independently from the addon.Summary by CodeRabbit
Documentation
Chores