Add support for dynamic nest devices and remove stale devices#159060
Merged
joostlek merged 2 commits intohome-assistant:devfrom Dec 15, 2025
Merged
Add support for dynamic nest devices and remove stale devices#159060joostlek merged 2 commits intohome-assistant:devfrom
joostlek merged 2 commits intohome-assistant:devfrom
Conversation
Update the nest integration to dynamically add and remove devices. Nest publishes a pubsub event when the devices change and the list of devices is refreshed. Update the quality scale to match the new functionality. This includes marking existing device support as complete.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds dynamic device management to the Nest integration, enabling automatic addition of newly discovered devices and removal of stale devices that no longer exist. The integration now listens for device changes from the Nest API and updates the Home Assistant device registry accordingly.
Key changes:
- Implemented a callback-based listener pattern for device additions across all platforms (sensor, climate, camera)
- Added automatic stale device cleanup when devices are no longer returned by the Nest API
- Updated quality scale to mark
devices,stale-devices, anddynamic-devicesas complete
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
homeassistant/components/nest/__init__.py |
Implements device listener registration and callback system; handles dynamic device addition and stale device removal |
homeassistant/components/nest/types.py |
Adds type definitions for device listener callbacks |
homeassistant/components/nest/sensor.py |
Migrates from direct device iteration to listener-based pattern |
homeassistant/components/nest/climate.py |
Migrates from direct device iteration to listener-based pattern |
homeassistant/components/nest/camera.py |
Migrates from direct device iteration to listener-based pattern |
homeassistant/components/nest/quality_scale.yaml |
Updates quality scale rules to mark device-related features as complete |
tests/components/nest/test_init.py |
Adds comprehensive tests for dynamic device addition and stale device cleanup |
tests/components/nest/test_events.py |
Updates comment to reflect new automatic entity registration behavior |
Merged
8 tasks
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
joostlek
approved these changes
Dec 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed change
Update the nest integration to dynamically add and remove devices. Nest publishes a pubsub event when the devices change and the list of devices is refreshed.
Update the quality scale to match the new functionality. This includes marking existing device support as complete.
Type of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: