Home-Assistant-RFLink-UI is a modern, fully UI-driven custom Home Assistant integration for Arduino RFLink gateways. Unlike the legacy YAML-based RFLink integration, this component is configured entirely through the Home Assistant UI and supports dynamic discovery of devices.
This integration uses the serial_asyncio library for fast, non-blocking communication and is designed to bring RFLink into the modern era of Home Assistant.
- 📡 Connects to any standard Arduino RFLink gateway via USB/Serial
- 🔍 Auto-Discovery Mode: Discovers recently received signals and lets you add them directly from a dropdown in the UI!
- ✍️ Manual Addition: Add your switches and sensors manually if you already know their protocol and IDs
- 🔄 Async Serial Polling: Non-blocking connection with automatic background reconnects and keep-alive pings
- 📻 Custom Commands: Send any raw RF command using the
radio_frequency.send_commandservice - 🟢 Connection Sensor: Includes a binary sensor to monitor the gateway's connection status in real-time
- The entity unique ID is generated using the hardware's protocol and ID (e.g.,
rflink_switch_Unitec_1a4a_4). - If you remove a device from the integration's Options, the associated entity will be dynamically removed from Home Assistant.
- This integration is built as a complete replacement for the legacy
rflinkcomponent. Do not run both simultaneously on the same serial port !!!
- Go to HACS > Integrations > Custom repositories
- Add this repo URL:
https://github.com/guanaco0403/Home-Assistant-Rflink-UI - Select category: Integration
- Click Add
- Install the
RFLink UIintegration - Restart Home Assistant
- Download the latest release from GitHub
- Extract and copy the
rflink_uifolder into:/config/custom_components/ - Restart Home Assistant
- Go to Settings > Devices & Services > Add Integration
- Search for RFLink UI
- Select your serial port from the dropdown (e.g.,
/dev/ttyUSB0orCOM3) - Submit to connect!
Once configured, click Configure on the integration card to:
- Add recently detected device: View signals picked up in the last few minutes and quickly map them to an entity.
- Add device manually: Manually type in the Protocol and ID.
- Remove device: Delete an existing device from the integration.
You can manually send any raw RF command through the gateway.
service: radio_frequency.send_command
target:
entity_id: radio_frequency.transmitter
data:
protocol: "Unitec"
command: "1a4a;4;ON"- Home Assistant 2026.5.4 or newer
- Python 3.12+
- pyserial-asyncio-fast>=0.11 (automatically installed)
sensor– For temperature, humidity, and other read-only RF signalsswitch– For writable on/off RF plugs and lightsbinary_sensor– For monitoring the gateway connection statusradio_frequency– For the main gateway entity that transmits custom commands
custom_components/
└── rflink_ui/
├── __init__.py
├── manifest.json
├── sensor.py
├── switch.py
├── binary_sensor.py
├── radio_frequency.py
├── config_flow.py
└── translations/
- Integration Type: hub
- Quality Scale: bronze
- IoT Class: local_push
- @guanaco0403
This project is licensed under the MIT License.
Pull requests are welcome! If you want to improve signal parsing, add support for more sensor types (like wind/rain), or enhance the config flow — contributions are greatly appreciated.