Problem statement
Based on the functionality delivered in #102 this opportunity is about adding RF receiving capabilities in Home Assistant, e.g. to receive RF updates.
Previous related architectural discussions happened here:
Community signals
Additionally
Scope & Boundaries
In scope
- Receiving of RF signals
- Having at least 1 reference integration for RF available for receiving commands
- Have updated developer documentation
Foreseen solution
As mentioned in home-assistant/architecture#1365
- RadioFrequencyEntity will gain receive capabilities (likely via a supported feature flag or separate entity class).
- Received signals will be exposed as events containing raw timings, carrier frequency, and optionally hardware metadata such as RSSI and LQI (for hardware that supports it).
- Consumer integrations will be able to subscribe to received RF data for protocol decoding, state tracking, and device discovery.
Potential additional information to keep in mind:
Risks & open questions
Open questions
- Handling of protocol decoding on receiving side
Appetite
Small - 2 weeks
Execution issues
No response
Decision log
Problem statement
Based on the functionality delivered in #102 this opportunity is about adding RF receiving capabilities in Home Assistant, e.g. to receive RF updates.
Previous related architectural discussions happened here:
Community signals
Additionally
RFLink integration (https://www.home-assistant.io/integrations/rflink/) — an existing, older HA integration doing exactly this via a separate Arduino gateway. Good proof there's long-standing appetite for a native equivalent, and a useful reference for real-world protocol handling (rolling codes, device ignore-lists, noise filtering).
DIY RF433 → HA mapper with a learning UI: https://community.home-assistant.io/t/rf433-remote-home-assistant-mapper-mqtt-learning-ui/975223 — community member built exactly the "learn RF codes live" workflow that native RF receive would replace.
"Reading 433mhz RF signals?" forum thread: https://community.home-assistant.io/t/reading-433mhz-rf-signals/716901 — someone with a CC1101 asking how to capture/decode signals, hitting noise and rolling-code problems head-on.
"Decoding 433 MHz remote": https://community.home-assistant.io/t/decoding-433-mhz-remote/423688 — same pattern, older thread, shows this is a recurring pain point, not a one-off.
ESPHome + rtl_433 crossover thread: https://community.home-assistant.io/t/esphome-rf-transceiver-and-rtl-433/753355 — people currently bridging via external SDR tooling (rtl_433) to learn codes because HA/ESPHome can't natively decode.
Cross-reference to the architecture side (useful to link here too since Infrared (IR) is becoming a first-class citizen of Home Assistant and can send and receive IR commands #101 did the same for IR): Radio Frequency Entity Platform home-assistant/architecture#1365 (explicit "Future: Receiver Support" section) and Add sweep_frequency service to RemoteEntity home-assistant/architecture#1076 (old sweep_frequency/learning proposal).
Scope & Boundaries
In scope
Foreseen solution
As mentioned in home-assistant/architecture#1365
Potential additional information to keep in mind:
Radio Frequency Entity Platform home-assistant/architecture#1365 — the accepted RF Entity Platform proposal explicitly scopes receivers out of the initial (send-only) version but reserves the extension points for it (
RadioFrequencyEntitygaining receive capabilities via a feature flag or separate entity class, received signals exposed as events with raw timings, carrier frequency, and optional RSSI/LQI).Add Infrared Receiver Entity home-assistant/architecture#1372 — Infrared Receiver Entity proposal; since RF receive is expected to mirror the IR receive model architecturally, this is the closest existing precedent to follow.
Protocol decoding is expected to build on the external
rf-protocolslibrary, same as the transmit side (see Decoding home-assistant-libs/rf-protocols#9 for the open decoding discussion).Risks & open questions
Open questions
Appetite
Small - 2 weeks
Execution issues
No response
Decision log