Hedda
(Hedda)
June 1, 2023, 11:20am
10
Yes, see PRs, (they usually do not update Home Assistant release notes until just before the release).
This new experimental feature that puddly added now allows users of the ZHA integration to perform Zigbee channel migration directly from the UI for all supported radio types without the need to re-pair all devices or have any entities changed.
ZNP (Texas Instruments) based devices currently has the best implementation of Zigbee channel changing as it allows the Zigbee Coordinator to change Zigbee channels after having a few chances to send out the broadcast to all the devices. Other Zigbee Coordinator adapters (e.g. Silicon Labs EZSP and Dresden Elektronik’s deconz based radios) instead migrate/change the Zigbee channel almost immediately, giving Zigbee End Devices (e.i. battery-powered devices) a smaller window of receiving the channel change request broadcast, however, such devices still have a chance of finding the network again if they detect that they have been orphaned.
Modern mains-powered devices should normally all change channels without any problems. After waiting a while for all devices to change channels automatically the general recommendation is then to perform a power cycle of devices that did not automatically change channels (usually simply by removing and replacing the battery) before just re-pairing those devices in the ZHA integration.
"Currently, ZNP implements the best version of this API because it allows the coordinator to change channels after having a few chances to send out the broadcast. Other coordinators (EZSP and deCONZ) directly react to the loopback request and migrate almost immediately. This rudimentary version has been implemented in zigpy-cli for some time and has been used by a few people to migrate their networks. From what I can tell, if an end device does not react to the channel change broadcast, it definitely won't with a unicast request. But it still might find the network again after detecting that it has been orphaned. "
Before
After
dev ← puddly:puddly/20230501-zha-channel-changing-ui
opened 06:21PM - 02 May 23 UTC
## Proposed change
Redesign the ZHA network settings section and incorpo… rate a button and dialog to change the current channel:
### Before
<img width="506" alt="before" src="https://user-images.githubusercontent.com/32534428/235757898-14e6b56d-1d04-4594-b08e-c5e4aafa2aca.png">
### After
<img width="561" alt="after" style="width: 49%" src="https://user-images.githubusercontent.com/32534428/235718415-2a2bd858-8b9c-4127-bb6c-1acff7ff308e.png">
</div>
<img width="643" alt="image" src="https://user-images.githubusercontent.com/32534428/235751913-c7238046-b720-4f3d-bb8a-c14c924eee16.png">
## Type of change
- [ ] Dependency upgrade
- [ ] Bugfix (non-breaking change which fixes an issue)
- [x] New feature (thank you!)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Example configuration
```yaml
```
## Additional information
- This PR fixes or closes issue: fixes #
- This PR is related to issue or discussion:
- Link to documentation pull request:
## Checklist
- [ ] The code change is tested and works locally.
- [ ] There is no commented out code in this PR.
- [ ] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for [www.home-assistant.io][docs-repository]
[docs-repository]: https://github.com/home-assistant/home-assistant.io
dev ← puddly:puddly/zha-channel-26-missing
opened 07:21PM - 06 Jun 23 UTC
## Proposed change
https://github.com/home-assistant/frontend/pull/16381 ac… cidentally omitted channel 26 from the list even though it is a valid channel.
## Type of change
- [ ] Dependency upgrade
- [x] Bugfix (non-breaking change which fixes an issue)
- [ ] New feature (thank you!)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Example configuration
```yaml
```
## Additional information
- This PR fixes or closes issue: fixes #
- This PR is related to issue or discussion:
- Link to documentation pull request:
## Checklist
- [ ] The code change is tested and works locally.
- [ ] There is no commented out code in this PR.
- [ ] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for [www.home-assistant.io][docs-repository]
[docs-repository]: https://github.com/home-assistant/home-assistant.io
dev ← puddly:puddly/zha-channel-changing
opened 06:17PM - 26 Apr 23 UTC
## Proposed change
Exposes the ZHA channel changing API from #91969 as a webs… ocket API.
## Type of change
- [ ] Dependency upgrade
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New integration (thank you!)
- [x] New feature (which adds functionality to an existing integration)
- [ ] Deprecation (breaking change to happen in the future)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Additional information
- This PR fixes or closes issue: fixes #
- This PR is related to issue:
- Link to documentation pull request:
## Checklist
- [x] The code change is tested and works locally.
- [x] Local tests pass. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
- [ ] I have followed the [development checklist][dev-checklist]
- [ ] I have followed the [perfect PR recommendations][perfect-pr]
- [ ] The code has been formatted using Black (`black --fast homeassistant tests`)
- [ ] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for [www.home-assistant.io][docs-repository]
If the code communicates with devices, web services, or third-party tools:
- [ ] The [manifest file][manifest-docs] has all fields filled out correctly.
Updated and included derived files by running: `python3 -m script.hassfest`.
- [ ] New or updated dependencies have been added to `requirements_all.txt`.
Updated by running `python3 -m script.gen_requirements_all`.
- [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [ ] Untested files have been added to `.coveragerc`.
To help with the load of incoming pull requests:
- [ ] I have reviewed two other [open pull requests][prs] in this repository.
[prs]: https://github.com/home-assistant/core/pulls?q=is%3Aopen+is%3Apr+-author%3A%40me+-draft%3Atrue+-label%3Awaiting-for-upstream+sort%3Acreated-desc+review%3Anone+-status%3Afailure
[dev-checklist]: https://developers.home-assistant.io/docs/en/development_checklist.html
[manifest-docs]: https://developers.home-assistant.io/docs/en/creating_integration_manifest.html
[quality-scale]: https://developers.home-assistant.io/docs/en/next/integration_quality_scale_index.html
[docs-repository]: https://github.com/home-assistant/home-assistant.io
[perfect-pr]: https://developers.home-assistant.io/docs/review-process/#creating-the-perfect-pr
dev ← puddly:puddly/zha-deps-bump-20230424
opened 08:20PM - 24 Apr 23 UTC
## Proposed change
Bump ZHA dependencies:
- zigpy-deconz to [0.21.0](http… s://github.com/zigpy/zigpy-deconz/releases/tag/0.21.0)
- zigpy to [0.55.0](https://github.com/zigpy/zigpy/releases/tag/0.55.0)
- zigpy-xbee to [0.18.0](https://github.com/zigpy/zigpy-xbee/releases/tag/0.18.0)
- zigpy-zigate to [0.11.0](https://github.com/zigpy/zigpy-zigate/releases/tag/0.11.0)
- zigpy-znp to [0.11.1](https://github.com/zigpy/zigpy-znp/releases/tag/v0.11.1)
This implements channel migration for all radios and fixes a bug with energy scanning for ZiGate radios. A future PR will add this functionality to ZHA.
## Type of change
- [x] Dependency upgrade
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New integration (thank you!)
- [ ] New feature (which adds functionality to an existing integration)
- [ ] Deprecation (breaking change to happen in the future)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Additional information
- This PR fixes or closes issue: fixes #91467, #91014
- This PR is related to issue:
- Link to documentation pull request:
## Checklist
- [ ] The code change is tested and works locally.
- [ ] Local tests pass. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
- [ ] I have followed the [development checklist][dev-checklist]
- [ ] I have followed the [perfect PR recommendations][perfect-pr]
- [ ] The code has been formatted using Black (`black --fast homeassistant tests`)
- [ ] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for [www.home-assistant.io][docs-repository]
If the code communicates with devices, web services, or third-party tools:
- [ ] The [manifest file][manifest-docs] has all fields filled out correctly.
Updated and included derived files by running: `python3 -m script.hassfest`.
- [ ] New or updated dependencies have been added to `requirements_all.txt`.
Updated by running `python3 -m script.gen_requirements_all`.
- [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [ ] Untested files have been added to `.coveragerc`.
To help with the load of incoming pull requests:
- [ ] I have reviewed two other [open pull requests][prs] in this repository.
[prs]: https://github.com/home-assistant/core/pulls?q=is%3Aopen+is%3Apr+-author%3A%40me+-draft%3Atrue+-label%3Awaiting-for-upstream+sort%3Acreated-desc+review%3Anone+-status%3Afailure
[dev-checklist]: https://developers.home-assistant.io/docs/en/development_checklist.html
[manifest-docs]: https://developers.home-assistant.io/docs/en/creating_integration_manifest.html
[quality-scale]: https://developers.home-assistant.io/docs/en/next/integration_quality_scale_index.html
[docs-repository]: https://github.com/home-assistant/home-assistant.io
[perfect-pr]: https://developers.home-assistant.io/docs/review-process/#creating-the-perfect-pr
dev ← puddly:puddly/zha-api
opened 07:59PM - 21 Feb 23 UTC
## Proposed change
ZHA has a websocket API to read network settings from a ru… nning coordinator, but it does not have an API to read network settings with Python alone. This PR implements the latter and includes a way to read network settings with a fallback to reading them from `zigbee.db`.
#### This PR appears large only because I renamed `zha/api.py` to `zha/websocket_api.py`.
The main addition is `async_get_network_settings`: if there is an active network, those settings are used. Otherwise, if ZHA is inactive but there is still ZHA state in the `/config/` folder, the database is used. Otherwise, `None` is returned.
`async_get_radio_type` and `async_get_radio_path` are also added to provide a public API to read this information from the ZHA config entry.
## Type of change
- [ ] Dependency upgrade
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New integration (thank you!)
- [x] New feature (which adds functionality to an existing integration)
- [ ] Deprecation (breaking change to happen in the future)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Additional information
- This PR fixes or closes issue: fixes #
- This PR is related to issue:
- Link to documentation pull request:
## Checklist
- [ ] The code change is tested and works locally.
- [ ] Local tests pass. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
- [ ] I have followed the [development checklist][dev-checklist]
- [ ] The code has been formatted using Black (`black --fast homeassistant tests`)
- [ ] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for [www.home-assistant.io][docs-repository]
If the code communicates with devices, web services, or third-party tools:
- [ ] The [manifest file][manifest-docs] has all fields filled out correctly.
Updated and included derived files by running: `python3 -m script.hassfest`.
- [ ] New or updated dependencies have been added to `requirements_all.txt`.
Updated by running `python3 -m script.gen_requirements_all`.
- [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [ ] Untested files have been added to `.coveragerc`.
To help with the load of incoming pull requests:
- [ ] I have reviewed two other [open pull requests][prs] in this repository.
[prs]: https://github.com/home-assistant/core/pulls?q=is%3Aopen+is%3Apr+-author%3A%40me+-draft%3Atrue+-label%3Awaiting-for-upstream+sort%3Acreated-desc+review%3Anone+-status%3Afailure
[dev-checklist]: https://developers.home-assistant.io/docs/en/development_checklist.html
[manifest-docs]: https://developers.home-assistant.io/docs/en/creating_integration_manifest.html
[quality-scale]: https://developers.home-assistant.io/docs/en/next/integration_quality_scale_index.html
[docs-repository]: https://github.com/home-assistant/home-assistant.io
dev ← puddly:puddly/channel-changing
opened 05:31PM - 06 Apr 23 UTC
See #1185 (@dumpfheimer).
Currently, ZNP implements the best version of this … API because it allows the coordinator to change channels after having a few chances to send out the broadcast. Other coordinators (EZSP and deCONZ) directly react to the loopback request and migrate almost immediately.
This rudimentary version has been implemented in zigpy-cli for some time and has been used by a few people to migrate their networks. From what I can tell, if an end device does not react to the channel change broadcast, it definitely won't with a unicast request. But it still might find the network again after detecting that it has been orphaned.
Thoughts?
PS: You should however note that changing the Zigbee channel is not a magic bullet for reception/transceiving-related issues, so users probably want to refer to ZHA integration documentation’s new troubleshooting section on interference and range/coverage optimization tips as well as this related discussion → Guide for Zigbee interference avoidance and network range/coverage optimization