Custom Home Assistant integration that creates button, media_player, fan, and light entities to control IR and RF devices through the Home Assistant 2026.5 infrared and radio_frequency platforms.
This is a consumer integration for the HA infrared and radio_frequency platforms. It sends commands through any compatible emitter (like Broadlink IR/RF Emitter or ESPHome).
Set it up, pick your device type, pick the matching emitter (the integration filters automatically based on whether the device uses IR or RF), and you get appropriate HA-native entities:
- A media_player entity for TVs and AV receivers (power, volume, mute)
- A fan entity for ceiling fans (speed, preset modes, direction)
- A light entity for lamps (on/off)
- Button entities for everything else
- Option to attach to an existing device (like Battery Notes does) instead of creating a separate one
- Reconfigure support — change emitter, type, or name after setup
| Device Type | Protocol | Entities |
|---|---|---|
| LG TV | IR — NEC (addr 0x04) | media_player + 18 buttons |
| Samsung TV | IR — NEC (addr 0x07) | media_player + 15 buttons |
| Sharp TV (Aquos) | IR — Sharp (addr 0x01) | media_player + 20 buttons |
| Denon AVR Receiver | IR — Denon (addr 0x02) | media_player + 16 buttons |
| Philips RGBIC Lamp | IR — NEC (addr 0x00) | 11 buttons |
| Amino Kamai 7X STB | IR — RC6 (raw learned) | 8 buttons |
| Raw Test | IR — raw burst | 1 button |
| Airwit Plafondventilator | RF 433 MHz — raw learned | fan + light + 3 buttons |
- Home Assistant 2026.5 or later
- An IR or RF emitter integration (e.g., Broadlink IR/RF Emitter, ESPHome IR/RF proxy)
Or manually:
- Open HACS in Home Assistant
- Click the three dots in the top right and select Custom repositories
- Add this repository URL and select Integration as category
- Click Download
- Restart Home Assistant
- Download the
custom_components/remote_devicesfolder - Place it in your Home Assistant
config/custom_components/directory - Restart Home Assistant
Or manually:
- Go to Settings > Devices & Services > Add Integration
- Search for Remote Devices
- Choose setup mode (new device or attach to existing)
- Pick the device type (e.g., "Airwit Plafondventilator (RF 433 MHz)")
- Pick the matching emitter (only emitters compatible with your device type's protocol are shown)
- Optionally give it a name (e.g., "Slaapkamer ventilator")
- Done — your fan/TV/lamp now shows up as proper HA entities
The Airwit ceiling fan is exposed as three entities under one device, so you get HA-native control:
fan.airwit_plafondventilator— speeds 1-6 (mapped to 17%/33%/50%/67%/83%/100%),natural_windpreset, forward/reverse directionlight.airwit_plafondventilator_lamp— on/off (lamp is a single toggle code; state is optimistic)- 3 buttons:
brightness_up,brightness_down,all_off
This means voice assistants ("Alexa, set ceiling fan to medium"), Lovelace fan/light cards, scenes, and standard automations all work without scripts.
- Raw test first (IR): Set up with "Raw Test Signal". Press the button. If your IR blaster blinks, the chain works.
- TV / receiver / fan: Set up with the matching device type and emitter.
- Dashboard: Add the appropriate fan/light/media_player card.
Built-in protocol encoders: NEC, Sharp, and Denon for IR. RF (Airwit) uses raw Broadlink-learned packets. For unsupported protocols, learned codes can be stored as raw timings — see rf_commands.py and nec.py for the pattern. PRs welcome!
Version 0.8.0 renames the integration from infrared_remote to remote_devices to reflect that it now handles both IR and RF. To upgrade:
- Remove the old "Infrared Remote" config entries from Settings > Devices & Services
- Update via HACS (or replace the
custom_components/infrared_remotefolder withcustom_components/remote_devices) - Restart Home Assistant
- Add the new "Remote Devices" integration and re-create your devices