Hi all,
I wanted to share a custom ESPHome external component I’ve been working on to properly support timer functions on YK-H/531E-based AC units (commonly found in brands like Frigidaire, Midea, etc.).
Repo:
Why this matters
While basic IR control (power, mode, temperature) works well in ESPHome, I noticed that timer functionality is usually missing .
In my case, I rely heavily on the timer from the physical remote (especially for sleep / auto shutdown), so not having it available in Home Assistant was a big limitation.
What this adds
Timer OFF (auto shutdown after X time)
Timer ON (turn AC on after X time)
Exposed as a select entity in Home Assistant
Works with standard remote_transmitter
Supports:
- 0.5h increments up to 31h
Why it’s not trivial
The timer isn’t a simple value in the IR protocol:
- It’s encoded across multiple fields
- It depends on the full AC state
- Small mistakes result in incorrect or ignored timer values
So getting this working required validating behavior against real hardware.
Example ESPHome config
remote_transmitter:
pin: D2
carrier_duty_percent: 50%
external_components:
- source: github://kriodoxis/esphome-ykh531e
components: [ykh531e]
climate:
- platform: ykh531e
name: "Main Room AC"
timer_select:
name: "AC Timer"
Credits
This builds on the original component by:
Additional protocol insights came from:
Feedback welcome
If you have a similar AC unit and can test it, I’d really appreciate feedback or additional IR captures.
This ended up being much more complex than expected for something that seems as simple as a timer ![]()