ESPHome + IR remote + climate + Midea


I am tying to control my Midea MSR-09HRDN1-QRC8GW air conditioner using WeMos D1 Mini as IR remote.
I configure HW for IR transmitter and receiver and connect it to D1 Mini.
For the firmware part I started with ESP Home.

I try following approach as I noticed some examples on the internet:

  - platform: homeassistant
    name: "Current temperature"
    entity_id: sensor.living_room_temperature
    id: living_room_temperature
    internal: true

  pin: GPIO5
  carrier_duty_percent: 50%
  id: ir_receiver
    number: GPIO4
    inverted: true
  dump: all  

  - platform: heatpumpir
    protocol: midea
    max_temperature: 28.0
    min_temperature: 19.0
    horizontal_default: auto
    vertical_default: auto
    name: "Air Condition Controller"
    receiver_id: ir_receiver
    sensor: living_room_temperature

However, this doesn’t work quite well.

The D1 Mini IR device is able to turn on (i.e. set cooling mode) Midea air conditioner and it is able to turn it off as well.
But it sets temperature to 28 Celsius and this can’t be controlled at all.
If I change temperature in Home Assistant the device still transfers same block of data towards AC and it is not able to change temperature.
Here is example to clarify what exactly I mean.

Here are the traces once I use my custom D1 Mini IR transmitter:

COOL MODE && Target Temperature: 24.00°C

[23:05:21][D][climate:009]: 'Air Condition Controller' - Setting
[23:05:21][D][climate:013]:   Mode: COOL
[23:05:21][D][remote_transmitter:074]: Sending remote code...
[23:05:21][D][climate:381]: 'Air Condition Controller' - Sending state:
[23:05:21][D][climate:384]:   Mode: COOL
[23:05:21][D][climate:389]:   Fan Mode: AUTO
[23:05:21][D][climate:401]:   Swing Mode: OFF
[23:05:21][D][climate:404]:   Current Temperature: 23.40°C
[23:05:21][D][climate:410]:   Target Temperature: 24.00°C
[23:05:21][D][]: Received Samsung: data=0xB24DBF40807F, nbits=48

Transferred data (data=0xB24DBF40807F) actually represents COOL mode with temperature set to 28 Celsius, not 24 as it should.

I know that because I check transferred data from original IR controller for AC:

IR controller set to COOL && Target Temperature: 28.00°C
[23:25:04][D][]: Received Samsung: data=0xB24DBF40807F, nbits=48

So I concluded that my D1 mini IR remote controller always uses 0xB24DBF40807F no matter which temperature I set as a target temperature in Home Assistant.

I would appreciate help very much.

Should I continue this way (using ESP Home)? Is it possible to configure this properly, did I miss something?


1 Like

Anyone that could help me with this?

Hi, discovered the same issue as you trying to set up the heatpumpir with Midea protocol. What I saw was that when setting maximum temperature from HA, the temperature set on the AC would be the lowest, so I tried switching max_temperature and min_temperature in ESPHome config, so min temp is the highest and vice versa, and voila, it works! Haven’t digged deeper to find the source where this bug happens.

  - platform: heatpumpir
    name: "Qlima trapp"
    protocol: midea
    horizontal_default: auto
    vertical_default: down
    max_temperature: 17
    min_temperature: 29
      min_temperature: 17 °C
      max_temperature: 29 °C
      temperature_step: 1.0 °C
1 Like

Question for either of you - does your AC LCD display in F or C?

I see in all my logs for IR it’s in C but physically on the AC panel it shows in F for some reason?

Mine display is in C, I am living in EU.