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.
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.
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.
That’s a great idea! We need infrared-protocols populated (codes and protocols).
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.
AC controls might be a good place to focus as their IR is more complex and could benefit from being in the /commands.
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.
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.
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