Infrared Codes

I’m really excited about the recent update expanding IR support. My home entertainment setup across multiple rooms relies heavily on Harmony, and I feel like it’s only a matter of time before Logitech completely discontinues it.

I’d like to contribute to improving IR support—specifically by helping build integrations for different device brands—but I’m not sure where to start.

Right now, I have an immediate need to create IR codes for a Panasonic DP-UB900 Blu-ray player. I’m using XIAO Smart IR Mate devices—one with the factory firmware and another running the ESPHome IR blaster firmware.

Is it possible to retrieve learned IR codes from the factory firmware on the IR Mate? I’d be happy to invest the time and effort to contribute to the infrared-protocols Python library, but I haven’t been able to figure out how to actually extract the codes.

What's your point here? You don't have remotes for those learned codes anymore?

The HA-IR integration might be able to give you what you need. You can attach a trigger to the sniffed codes and it creates an event entity that stores the pronto hex as an attribute.

huh?

My point is to extract those codes and share them with the community via projects like the Infrared-Protocols python library and ultimately create some custom integrations similar to LG-Infrared.

Great, I'm taking a look at it now. I appreciate the suggestion.

So add a line to your code to print them on your logs.

That’s a great idea! We need infrared-protocols populated (codes and protocols). :clap:t2:

You can get PRONTO codes with HAIR, but there is always jitter. I’m building a snapping/editing tool in the next version of HAIR that should mitigate jitter.

Otherwise, there are many code databases out there you can use to test and port over to internet-protocols. :clap:t2:

AC controls might be a good place to focus as their IR is more complex and could benefit from being in the /commands. :blush:

~ DAB

I've looked at a few databases but some of the devices I'm looking for are not in most. An example would be Anthem AV. I have a couple of their receivers, and I need more of control over them (Dim, bass treble) then the current integration provides (also the current integration is limited to just one receiver).

When do you expect the next version of HAIR to be released?

If you have a Harmony already, why not download that device from their db & capture the individual IR codes?
Their PC software was still working & downloading device files when I checked late last year.

You can't control AC with "list of possible codes". You need to decode the protocol.
The list would be about 10,000-1,000,000 different signals to cover all combinations of the remote.

I do have harmony's and that was the plan. I just wasn't sure how to capture the codes. HAIR works, I can capture the Pronto code, I just need to figure out how to convert it into what I'm seeing the infrared-protocols library.

Good catch, I meant commands/, not codes/ (edited op).

AC support belongs in the protocol-implementation layer, not the codebook layer, for exactly the combinatorial reason you laid out...

I see a lot of requests for AC control.

~ DAB

Those are nec format codes. Any esp board with an IR receiver will show them if you add dump: nec in the IR section of the code.

Alternatively use dump: all & it'll give you all possible formats for each button press.

Wanted to jump in here and update everybody that HAIR 7.0 is out and includes a closet for you to hang imported existing codes from files like SmartIR JSON, a Flipper Zero .ir , a LIRC lircd.conf , or a Girr export from IrScrutinizer.

My initial plan was to build upon Home Assistant’s core protocols and codes, but I’m finding those are slow and users have immediate needs. So, a few releases prior to this, I bit the bullet and built a bunch of protocols to handle native capture and re-encoding transmissions. Sony 12, 15, and 20 bit, Sharp, Kaseikyo, Samsung32, RC-5, Symphony, Nokia32 (via contributor), Dyson (beta), PRONTO and NEC are in HAIR now.

I am working on a pathway for stateful IR commands for air conditioners and the like, which are still not supported yet. My first plan is to import SmartIR AC formats, which I hope covers most use cases initially. If you guys have any other ideas, let me know.

~ DAB

Stateful infrared commands are now supported in HAIR. :barber_pole:

Air conditioning code files can now be dropped into HAIR and you’ll get a full-fledged climate entity.

You can also add a power monitoring entity to determine the actual state of the air conditioner rather than inferring based upon past commands. :clap:

Supports external temperature and humidity sensors in the climate entity.

~ DAB

Hi!

I’m here on same page, currently fighting with my Delonghi PAC EX130 to make ir work with XIAO IR Mate. The AC doesn’t react to any of the known options.
Tried midea_ir/delonghi/coolix and non work.

I’ll continue debugging later today, but anyone here has this AC working with Home assistant?

# 1. Define the IR Transmitter Hardware Pin
remote_transmitter:
  pin: GPIO3
  carrier_duty_percent: 50%
  rmt_symbols: 48
  non_blocking: false

# 2. Inject the De'Longhi Climate Control Engine
climate:
  - platform: midea_ir
    name: "Pinguino PAC EX130"
    id: pinguino_ac
    supports_cool: true
    supports_heat: false 
    
    # Restrict to the real limits of the PAC EX130
    visual:
      min_temperature: 18 °C
      max_temperature: 32 °C
      temperature_step: 1.0


Is rmt_symbols: 48 enough for your signal?

Hi!

I don’t know, this was actually the last attempt, but without it didn’t work.
Before was just:

remote_transmitter:
  pin: GPIO3
  carrier_duty_percent: 50%