What this is
Dirigo controls equipment that only has an infrared remote through your own Home Assistant server. Home Assistant sends the infrared codes; Dirigo gives you the remote. Dirigo works with any infrared sender that Home Assistant shows as one button per code.
This page describes the one setup we run ourselves and know works: a Seeed Studio XIAO IR Mate with ESPHome's infrared proxy firmware and the HAIR integration. You are not limited to it.
Why change the firmware
As shipped, the XIAO IR Mate learns up to ten infrared commands and stores them on the device. A receiver's remote alone has more keys than that. The infrared proxy firmware stores no codes on the device: Home Assistant keeps them and tells the device what to send, so the ten-command limit no longer applies. Our own receiver has 34 codes on one XIAO IR Mate.
What you need
- A Seeed Studio XIAO IR Mate. Buy it from Seeed Studio.
- A USB-C cable that carries data, and a computer with Chrome or Edge. The installer runs in the browser and needs one of those two.
- Home Assistant 2026.4 or later. 2026.6 or later is recommended, so the device's own receiver can be used to learn codes.
- HACS, the Home Assistant Community Store, to install HAIR.
- The original remote for each appliance you want to control.
1. Install the infrared proxy firmware
- Open ESPHome Ready-Made Projects and choose the infrared proxy.
- Pick XIAO IR Mate as the device.
- Connect the XIAO IR Mate to the computer with the USB-C cable and start the installation. The browser asks which serial port to use; choose the one that appeared when you plugged it in.
- When the installer finishes, give it your Wi-Fi network. The device joins the network and restarts.
This replaces the factory firmware.
2. Add the device to Home Assistant
Home Assistant finds the device on your network through its ESPHome integration. Accept it under Settings › Devices & services. It appears with an infrared emitter and an infrared receiver.
Place it within line of sight of the equipment. Infrared does not pass through walls or cabinet doors.
3. Install HAIR
HAIR is a community integration for Home Assistant that learns infrared codes and turns each one into a button. It is not ours and not part of Home Assistant itself.
- Open HACS in the Home Assistant sidebar, search for HAIR, open it and choose Download.
- Restart Home Assistant.
- Go to Settings › Devices & services, choose Add Integration and search for HAIR. It detects the XIAO IR Mate's emitter and receiver.
- HAIR now has its own entry in the sidebar.
4. Learn the codes
- Open HAIR and go to its Sniffer, which listens through the XIAO IR Mate's receiver.
- Point the appliance's remote at the XIAO IR Mate and press keys. A remote HAIR has not seen before needs at least three presses before it appears.
- Create a device for the appliance and assign each signal to it, giving each command a name.
Each command becomes a button in Home Assistant, named after the device and the command. There is no ten-command limit.
Two things make the next step easier:
- Use plain names: Power, Mute, Volume Up, Volume Down, Up, Down, Left, Right, Select, Back, Play, Pause, and the name of each input. Dirigo matches common names to its own keys.
- Leave the buttons' names as HAIR made them. Dirigo groups an appliance's buttons by the device name at the front; a button renamed in Home Assistant can fall out of the group.
5. Use it in Dirigo
- In Dirigo, connect Home Assistant if you have not already (Home Assistant, in the sidebar).
- Tap the + beside Remotes and choose New Custom Remote. Give it a name, choose the type Receiver, and pick the appliance.
- Dirigo fills in a full remote from the appliance's buttons and shows you the matches, so you can correct any it got wrong and fill in any it could not match.
- Turn on Show on the Home screen to use the appliance like a receiver: its inputs, volume and power on Dirigo's Home screen.
The same buttons can also be placed on a Fully Custom remote, or behind the arrows of a D-pad.
What infrared cannot do
Infrared only sends. Nothing comes back, so Dirigo cannot read the appliance's current input, volume or power. The Home screen shows the last input you chose in Dirigo, and it will be wrong if someone used the original remote in between.
Not affiliated
Dirigo is an independent app. We are not affiliated with Seeed Studio, ESPHome, the Open Home Foundation or the HAIR project, and their software and hardware are covered by their own terms. Steps on their sites can change; their own instructions take precedence over this page.
Last updated: 2026-10-06
© 2026 bit 0100 bit Software LLC