Skip to content

Add include and exclude devices to device selector#165599

Open
andrew-codechimp wants to merge 2 commits intohome-assistant:devfrom
andrew-codechimp:device-include-exclude
Open

Add include and exclude devices to device selector#165599
andrew-codechimp wants to merge 2 commits intohome-assistant:devfrom
andrew-codechimp:device-include-exclude

Conversation

@andrew-codechimp
Copy link
Copy Markdown
Contributor

@andrew-codechimp andrew-codechimp commented Mar 15, 2026

Proposed change

Add optional include and exclude device id lists to the device selector.
This will be useful for future helper style integrations where it is not applicable to add a second helper to a device.

Type of change

  • 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

Checklist

  • I understand the code I am submitting and can explain how it works.
  • 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
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file 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 diff between library versions and ideally a link to the changelog/release notes is added to the PR description.

To help with the load of incoming pull requests:

@andrew-codechimp andrew-codechimp marked this pull request as ready for review March 15, 2026 13:08
@andrew-codechimp andrew-codechimp requested a review from a team as a code owner March 15, 2026 13:08
Copilot AI review requested due to automatic review settings March 15, 2026 13:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds optional include_devices / exclude_devices filtering support to the backend device selector, enabling callers (e.g., future “helper-style” flows) to constrain which device IDs are valid selections.

Changes:

  • Extend DeviceSelector config schema/types to accept include_devices and exclude_devices.
  • Enforce include/exclude validation when a device selector value is submitted (single and multiple modes).
  • Add unit tests covering include/exclude behavior for device selectors.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
homeassistant/helpers/selector.py Adds include/exclude lists to device selector config and validates selections against them.
tests/helpers/test_selector.py Adds test cases verifying include/exclude validation for single and multi device selection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants