HA IR controls for 23-year old Russound Keypads

In case someone else might find this helpful, I wanted to share a working approach for controlling very old Russound IR keypads using Home Assistant and the new IR functionality introduced in 2026.4. These old keypads are embedded around my house and are used for controlling sound in each room. Each room keypad has controls for:
• Power On / Off
• All Off (all keypads)
• Sources 1–4
• Volume Up / Down
I ordered the Seeed Studio XIAO IR Mate devices as soon as a read the 2026.4 release notes and am using ESPHome 2026.4.0

I took control of each IR Mate locally in ESPHome using the base code at infrared-proxies/xiao-ir-mate/xiao-ir-mate.yaml at e1af5390197523585cd98d1768bc34c2ea8c9e43 · esphome/infrared-proxies · GitHub

What Didn’t Work:
The IR Mate logs received Infrared Pronto codes when I pressed remote buttons. And while the Pronto codes were captured correctly and the transmission worked, the Russound keypads ignored the codes. My takeaway is that Pronto decoding may not be reliable for very old devices.

What DID Work:
I changed the receiver to capture raw IR codes using dump: raw and then transmitted the raw codes with: remote_transmitter.transmit_raw. This worked.

Example ESPHome Button:


  - platform: template
    name: Russound Source 1
    on_press:
      - repeat:
          count: 4
          then:
            - remote_transmitter.transmit_raw:
                code: [5574, -2948, 1869, -1973, 1789, -5763, 1843]
                carrier_frequency: 38kHz
            - delay: 40ms

The new HA IR framework is a dependable approach for very old devices, but you may need to use Raw IR codes instead of Pronto codes

1 Like

Nice job! However, please format your code correctly so that others will be able to use it without issues.