Midea branded AC’s with ESPhome (no cloud)

Display toggle over uart? Nice! External sensor? Nicer!

not supported by all models, but can also be accomplished by adding Remote Transmitter — ESPHome

would you like to share your yaml?

Hi everybody! First of all thanks to Mac-Zhou, Rene Klootwijk, Sergey Dudanov, @aceindy and all others for contributing to this topic. - I was able to build and flash ESP8266 ESP01 for my three mini splits and it was working just fine! much better than cloud Tuya IR i was using before. Until I updated to 2021.9.2 version. Not sure, though if anybody would be able to help me here with the issue I’m having - I have two Pioneer WYS 19 seers AC’s and one WYS 21 SEER AC, the dongle connects via WiFi card with USB jack with ‘cuts’ as on some photos in this topic. (https://community-assets.home-assistant.io/original/3X/0/0/00692dcfff4c39b5842f1d14447e8c8363e8a771.jpeg) After the update 19 seers mini splits work just fine, but I cant change fan speed on 21 seer anymore, tried re-flashing with different options, changed dongles - no go. The 21 seer AC has the same board but I think it has a bit different functionality then 19 ones. When I check 21 seer AC logs I see a warning saying that it cant automatically get capabilities, but not sure if its related to the issue with changing FAN speed. I’m wondering if anybody had similar issues after update. Thank you!

[midea:113]: Failed to get 0xB5 capabilities report. Suggest to disable it in config and manually set your appliance options
(I tried turning off autoconf - didnt help)

When changing fan speed on 19 seer ACs I see in the log SET_STATUS request being sent but I dont see it for 21 seer AC:

[12:43:44][D][climate:009]: ‘Bedoom AC’ - Setting
[12:43:44][D][climate:022]: Fan: HIGH
[12:43:44][D][AirConditioner:105]: Enqueuing a priority SET_STATUS(0x40) request…

When I change fan speed on 21 seer AC it seems its not sending this command:

[13:50:58][D][climate:009]: ‘Living Room AC’ - Setting
[13:50:58][D][climate:022]: Fan: HIGH
[13:50:58][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request…
[13:50:58][D][ApplianceBase:173]: Enqueuing the request…
[13:50:58][D][ApplianceBase:075]: Getting and sending a request from the queue…

Hi all, could someone assist with the following? I’ve finally got some time to figure out how to attach a the dongle purchased from @sergge to my MrCool unit. In researching options, I’ve come up with the following:

I was going to try and attach the dongle directly to the 5 pin header on the PCB

Here is the dongle

I was therefore going to try and attach the dongle using something like the following:

So my questions:

  1. Is this possible?
  2. If so, which pins on the 5 pin header connector attach to which pins on the dongle?
  3. The 5 pins header connector above is called an XH connector, is this correct? It looks like the connector in the picture above, so I think yes?

Any other concerns with this approach?

1 Like

Based on your pictures I assume your AC has a separate PCB with an USB port, this board also contains the ACs UART bus. Therefore your approach wont work and might even fry your AC unit.

Yes it does, so my only option is to source and thanks for point that out!

Would this be the next best (i.e. easiest without and soldering or other hacks) to get it working?

I see that the documentation linked still has the automations starting with “midea_ac.”
Is that correct, or when “platform: midea_ac” changed to “platform: midea”, should all of the automations also changed to “midea.”?

@swoozle The name used in HA is just the name you used in ESPHome:

So in my esphome i used:

esphome:
  name: mideahvac

so in HA it turns ups as
climate.mideahvac

Oh ya, that part I get. But in that documentation link I included it shows built-in automation names such as “midea_ac.power_on”.
Since the platform name changed, did all of the automation names change as well?

I’m getting close to answering my own question by experimentation. I’ve just about got an esp32 programmed and can try it out, but I figured someone already knew the answer.

EDIT: They haven’t changed (still midea_ac). The esphome dashboard editor throws an error if you use anything but midea_ac

Anyone tried to implement with a Midea monoblock heatpump yet?
mSmartLife is so flaky I’ve got to find a better solution, as I have wasted hours having to keep reconnecting it as a device only to get bad gateway or timeout error trying to log into the app at a later date.

I’ve tried the base hacs integration for midea ac with the id but, as expected none of the ac controls have any influence on my unit.

Then I saw the ESPHome support for midea ac via USB and got exited that there might be a more reliable way to integrate it into HA. My unit has a remote controller inside the house with WiFi (that has no open ip ports according to fing) that I have connected to my home network but appears to be useless without mSmartHome and a USB port on the main PCB in the outside unit.

I would love to try and reverse engineer the commands and control via ESP home but don’t really know where to start. My understanding is that it is Modbus controlled but, any advice on extracting commands or knowledge of existing solutions would be greatly received. Thanks.

3 Likes

Why you dont just use the USB port?

Yes, I will. Just wanted to see if there was anyone with previous experience before I start trial and erroring as it was a £5000 unit and the main heat source for my house.
I’ve ordered a Sergey USB A dongle to support but, any reason I can’t get started with one of these?
image
Or a ESP32-WROOM and a normal usb lead, as I have them to hand already.

Because MrCool decided to use a weird USB connector per this post

Anybody have problems with latest ESPHome revision? I updated to 2021.10.2 and I got them now unavailable plus ESPHome UI shows them as OFFLINE. I have a lot of ESPHome devices and midea ones are the only which stopped working.

EDIT: It works when I pulled out ESP01 from the uart board and connected to the usb programmer - maybe boot pins are changed? That would be bad.

Yes, I had some problems. I had JUST got an esp32 working and controlling the AC. Then I accepted the ESPHome update, reprogrammed the esp32 with a minor change and it stopped working. Even reversing the change did not help.
In the process of troubleshooting I managed to damage the esp board and I am waiting on an esp01 board to try again.

So you got yours working again?

Nope, fortunately I have weather which does not require AC, and have other means to heat the house…
I am not able to donwgrade ESPHome, even backup made during the update did not helped. I will start stacking up bin files every time from now on…

Interesting. I had a FULL backup not three days before that did not successfully rollback ESPHome also. The previous ESPHome version would not run (gave an error that it could not save settings and refused to run).

I see you opened an issue:
https://github.com/esphome/issues/issues/2613
Thanks
Don’t know if it helps, but the board appears to be starting up, querying the capabilities and then promptly crashing/restarting. If you catch the log timing right you can see that initial activity. It appears completely nonresponsive because it’s barely up long enough to connect to wifi before it’s gone again.

Yes Sir, I opened it. How to catch it? Log will not start, I would need to have super powers to catch it over Wifi. Is there a way to connect into uart and read it there? I would need to borrow logic analyzer and hook up somewhat to AC.