Midea branded AC’s with ESPhome (without cloud)

Yes. Piece of cake. I use node red for this, but you can use a standard Home Assistant automation. Just evaluate the current state of the sensor, and then call a service in response. I basically have built a Nest/Ecobee type of script that has a schedule and parameters for too hot/cold, and how much tolerance I have for error (1 degree F). Works really well. FAR better than the built in Auto mode.

I cut the extra plastic notches off.

Hi guys,

I put together an ESP-01s dongle for my Midea Blanc AC but unfortunately, it doesn’t seem to work. At least it does not work in full. This is what I have done so far:

  1. Programmed the ESP-01s using ESPHome. The module connects to my wifi without issues it was also added to HA without issues.
  2. ESP-01s is plugged into the voltage stabilizer (5V - 3.3V).
  3. I found + and GND in the AC connector and connected + and GND of the stabilizer accordingly.
  4. I set the RX/TX pin in the yaml file to 3 and 4. I didn’t know which one is 1 so I tried 1 and 2 then 3 and 4. It seems that only 3 and 4 gives me some positive results.
  5. I can start the AC by pressing ‘Cooling’ button in HA but that’s all. I can’t turn the AC off. The AC shows ‘Off’ status even after it was started from HA. Also, as soon as I change the temperature in HA the AC turns off.

I am not sure about RX / TX pin numbers in the yaml file. Do they refer to the pin numbers on the stabilizer plate or the ESP-01s itself (which has 8 pins, while the stabilizer just 4 as you can see on the attached images)?

What did I do wrong? Is my AC incompatible with this project?

This is the connection:

Unfortunately, as a new user I can’t upload more images.

I saw your question also on Telegram?

Not sure what the issue is, bit since it looks like you’re using the same esp01 as I do, you should be able to copy my config from my first post

Note that TX and RX depends a bit on how the manufacturer named it.
If everything is OK, you should be able to see something like this in the ESP logger; if you only see TX but no RX, it indicates that TX and RX need to be swapped :wink:

[12:58:32][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 03 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 C3 1F F6 
[12:58:33][D][ApplianceBase:063]: RX: AA 22 AC 00 00 00 00 00 03 03 C0 00 A4 3C 7F 7F 00 30 00 00 00 65 5E 00 00 00 00 00 00 00 00 00 1F A7 D5 

PS: I just updated the esphome yaml config with my lastest :wink:

They rever to the ESP01 internal pins, GPIO1 and GPIO3 end on TX and RX on converter board

1 Like

Yes, I did ask the same question yesterday on Telegram.

Silly question, where do I find ESP logger? I don’t have ESPHome in Home Assistant due to Docker version of HA. I use ESPHome from command line.

Thx! I will use yours as base version for mine.

So, definitely I have provided wrong pins in the yaml.

Thx for your input, I will change the yaml re-program and let you know if it helped.

Questions are never silly…answers can be though…

Erm…if you enable the web interface:

# Enable Web server.
  port: 80

you can check the logs on http://[ip-address-of-ac] :wink:

Does anyone know if it’s possible to send follow-me commands from a different device? I have the ESPHome Midea climate module currently running several of my a/c’s but I was planning on making some devices with temperature/humidity display and was hoping to put an IR LED in them to send current temp to the a/c units in the same room they’re located in. I just want to make sure you can use the Midea climate without actually being connected to a Midea A/C.

Thank you for letting me know about the webserver. This is very useful.

@aceindy thanks for all your help, it is working on your yaml with small modifications. In my yaml the pins were wrong so the AC could not communicate. Now, finally, I can see the AC status in HA and control the AC form HA. However, I noticed a bad wifi connection from the ESP-01s. I have a good wifi network based on the Unifi hardware and the ESP is the only device with wifi problems even though it is very close to the access point. Is this typical for these modules? I read something on the internet about the bad antenna. Anyway, I kept the ping running between my laptop and the ESP and the packet loss is around 10%. I noticed that the communication between HA and ESP timeouts sometimes because of the bad wifi connection. I did not notice anything like this with ESP32 DEV module. Any ideas?

I have several ESP01’s running, and they are quite stable…
You can also see the wifi strenght on HA’s sensor, provided it is enabled:

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: MideaHVAC WiFi Signal
    update_interval: 60s


It is enabled but I can’t see the graph in HA as again it has an ‘Unavailable’ status. I can see the wifi signal strength directly on ESP web server and it shows -70 dBm which, as far as I know, is considered as poor connection. I have also compared (on Unifi Network) with other small devices such as sonoff, ESP32 etc, and they all report better wifi quality even though they are much further from the AP. Something is not right with this module. I think I will buy another one :slight_smile: to compare.

Also, when the ESP01 goes to ‘unavailable’ state the HA log shows:

Logger: homeassistant.components.esphome
Source: components/esphome/__init__.py:284
Integration: ESPHome ([documentation](https://www.home-assistant.io/integrations/esphome), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+esphome%22))
First occurred: 09:16:51 (81 occurrences)
Last logged: 12:40:51

* Error getting initial data for Timeout waiting for response for <class 'api_pb2.ListEntitiesRequest'>
* Error getting initial data for Timeout waiting for response for <class 'api_pb2.DeviceInfoRequest'>

HA restart fixed the issue and the AC is again available. I wonder how long it will last.

This is possible, however I would add an IR LED to the dongle instead of sending IR commands from another device, way easier since you don’t have to configure all the IR codes corresponding to a current temperature.

This is a section out of one of my dongles, I use the dongle designed by Sergey Dudanov with a wire connected from the dongle to the ACs IR receiver.

  - platform: homeassistant
    entity_id: sensor.hkr_temperature
    id: zbtemp
    internal: true
      - throttle: 10s
      - heartbeat: 2min           
      - debounce: 1s
        temperature: !lambda "return x;"
        beeper: false    
1 Like

Has anybody tried the new wireless adapter from Midea? 1PCS New For Midea Air Conditioner WIFI Module Assembly M5Q10-C Network Module | eBay

Hi all,

I have a Midea A/C and bought a USB WiFi module to controle it through the MSartHome application (former MideaAir). Now I Googled about integrating it in HomeAssistant and I saw that v0.8.1 was just released with better app support (Release v0.8.1 · nbogojevic/homeassistant-midea-air-appliances-lan · GitHub)

Now I’ve succesfully got my Midea HVAC split unit into HomeAssistant, the only problem is I can’t get it turned on and off…

When added it comes with only 1 sensor and 2 entities.

  • climate.airco_devicename
  • switch.airco_devicename_beep
  • sensor.airco_devicename_outside_temprature

So, I’ve added the climate.airco_devicename into my dashboard but I can not get it to turn on or off… As the “beep” thing is a switch I’d reckon that would do the job but when I call the beep option I can hear a beep on the device but the display is not turning on nor the device is active. When I move the slider to change temprature the device beeps so it’s reacting to input from HA but it’s not turning the AC on.

When I tap the switch button I also get an error in my frontend “Can’t call sensor/turn_off Service not found”

Anybody who can help me out here?

Just came to the conclusion that when I turn on the A/C with the remote and then try to change the state in HA it turns itself off… I’m flabberguested…

This thread is about the ESPHome Midea AC component, so I don’t think someone can help you out here.

I’d open an issue on the developers GitHub page of the component you are using.

1 Like

I think this thread suits better: Mac Zhou’s cloud solution:

(have you tried that one?)

1 Like

I did not, I will try it in this thread, many thanks :slight_smile:

MacZhou is also on the Telegram channel:

  1. What? Picture please. I have this dongle. Would like to replicate what you did here.
  2. I would love to do some of those midea_ac actions but do not understand the syntax of ESP. Is this saying, when a value is found, turn on follow_me with the value just received?

I would like to use a custom stick as described, is there any one who sell it as a package so I don’t need to flash it myself?

Living in The Netherlands if that make a difference :slight_smile: