Skip to content

Add radio_frequency entity integration#168447

Merged
balloob merged 15 commits intodevfrom
radio-frequency-entity-component
Apr 24, 2026
Merged

Add radio_frequency entity integration#168447
balloob merged 15 commits intodevfrom
radio-frequency-entity-component

Conversation

@balloob
Copy link
Copy Markdown
Member

@balloob balloob commented Apr 17, 2026

Breaking change

Proposed change

Add a new radio_frequency entity domain that acts as an abstraction layer between RF transceiver hardware and device-specific integrations, following the same pattern as the infrared entity platform.

The architecture was approved in: home-assistant/architecture#1365

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:

Add a new radio_frequency entity domain that acts as an abstraction
layer between RF transceiver hardware and device-specific integrations,
following the same pattern as the infrared entity platform.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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

Introduces a new radio_frequency entity platform (modeled after infrared) to abstract RF transmitters for use by other integrations and helpers.

Changes:

  • Adds the radio_frequency entity integration, including base entity class, helper APIs, and translations.
  • Registers the new entity platform in generated platforms and adds repository ownership/config entries.
  • Adds dependency pin (rf-protocols==0.0.1) and a new test suite for the integration.

Reviewed changes

Copilot reviewed 13 out of 15 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
homeassistant/components/radio_frequency/__init__.py Implements the RF entity component, helper APIs, and base entity class.
homeassistant/components/radio_frequency/const.py Declares the radio_frequency domain constant.
homeassistant/components/radio_frequency/manifest.json Declares the new integration and its dependency.
homeassistant/components/radio_frequency/strings.json Adds exception string keys for translated errors.
homeassistant/components/radio_frequency/translations/en.json Provides English exception messages.
homeassistant/components/radio_frequency/icons.json Defines default icon for the entity component.
homeassistant/generated/entity_platforms.py Registers RADIO_FREQUENCY as an entity platform.
tests/components/radio_frequency/__init__.py Initializes the new test package.
tests/components/radio_frequency/conftest.py Adds fixtures and mock entity/command types for tests.
tests/components/radio_frequency/test_init.py Adds tests for setup, transmitter selection, send-command behavior, and state restore.
requirements.txt Adds rf-protocols to core requirements.
requirements_all.txt Adds rf-protocols to the generated full requirements list.
requirements_test_all.txt Adds rf-protocols to the generated test requirements list.
CODEOWNERS Adds ownership entries for the new integration and tests.
.core_files.yaml Marks the new component as a base platform path.

Comment thread homeassistant/components/radio_frequency/__init__.py
Comment thread homeassistant/components/radio_frequency/__init__.py Outdated
Comment thread homeassistant/components/radio_frequency/__init__.py Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 17, 2026 19:21
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

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

Comment thread homeassistant/components/radio_frequency/__init__.py
Comment thread homeassistant/components/radio_frequency/__init__.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 17, 2026 19:26
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

Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.

Comment thread homeassistant/components/radio_frequency/__init__.py
The new major release replaces the Timing dataclass with a raw list of
signed alternating microseconds. Update the mock command fixture to
match the new get_raw_timings signature.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@balloob balloob marked this pull request as ready for review April 18, 2026 03:45
Copilot AI review requested due to automatic review settings April 18, 2026 03:45
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

Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.

Comment thread homeassistant/components/radio_frequency/__init__.py
@MartinHjelmare MartinHjelmare marked this pull request as draft April 22, 2026 15:23
@balloob balloob marked this pull request as ready for review April 22, 2026 15:50
Copilot AI review requested due to automatic review settings April 22, 2026 15:50
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

Copilot reviewed 16 out of 18 changed files in this pull request and generated 1 comment.

Comment thread homeassistant/components/kitchen_sink/radio_frequency.py
@MartinHjelmare MartinHjelmare marked this pull request as draft April 22, 2026 17:43
@balloob balloob marked this pull request as ready for review April 22, 2026 19:49
Copilot AI review requested due to automatic review settings April 22, 2026 19:49
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

Copilot reviewed 16 out of 18 changed files in this pull request and generated 1 comment.

Comment thread homeassistant/components/radio_frequency/__init__.py
Comment thread homeassistant/components/radio_frequency/__init__.py Outdated
@home-assistant home-assistant Bot marked this pull request as draft April 22, 2026 21:27
@home-assistant
Copy link
Copy Markdown
Contributor

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@balloob balloob marked this pull request as ready for review April 23, 2026 00:55
Copilot AI review requested due to automatic review settings April 23, 2026 00:55
@home-assistant home-assistant Bot requested a review from MartinHjelmare April 23, 2026 00:55
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

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

Comment thread homeassistant/components/radio_frequency/__init__.py
Comment thread homeassistant/components/radio_frequency/__init__.py
@balloob balloob merged commit dd2a90a into dev Apr 24, 2026
89 of 90 checks passed
@balloob balloob deleted the radio-frequency-entity-component branch April 24, 2026 10:37
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Radio-frequency (RF) is becoming a first-class citizen of Home Assistant and can send commands

4 participants