Any Support for Midea A/C?

Can anyone confirm this plugin is broken in Home Assistant 0.107.7 ?
I keep getting Update for climate.midea_17123456789737 fails…RecursionError

2 Likes

I get the same error

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 279, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 474, in async_device_update
    await self.async_update()
  File "/config/custom_components/midea/climate.py", line 111, in async_update
    await self.hass.async_add_executor_job(self._device.refresh)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/site-packages/midea/device.py", line 146, in refresh
    data = self._cloud_service.appliance_transparent_send(self.id, data)
  File "/usr/local/lib/python3.7/site-packages/midea/cloud.py", line 173, in appliance_transparent_send
    'applianceId': id
  File "/usr/local/lib/python3.7/site-packages/midea/cloud.py", line 93, in api_request
    return self.api_request(endpoint, args)
  File "/usr/local/lib/python3.7/site-packages/midea/cloud.py", line 95, in api_request
    raise RecursionError()
RecursionError
2 Likes

I also get the same error

i had this problem also, removed and added the airco again. It worked for 30 minutes, than broke again with above error message.

BUT this did not came with 107.7, because my older home assistant 105 has the same problem.
Probably there is more wrong at the side of midea, (btw, checking status in the carrier/midea app gives me also an error message)

this plugin also works for my Qlima SC5225 A/C, with the

use_fan_only_workaround: true

option. its a bit slow though(3-4 sec response time).

1 Like

I have the same problem. Can’t control my AC from HA. Android apps (NetHome Plus and Midea Air) works locally only if I am connected to home WiFi

Same error here.

how do I get the api key? is it generic? reading is fundamental

1 Like

I got tired of their server going down so I replaced the WiFi dongle with a Zigbee CC2531 dongle from China.

It’s pretty hacky but if there is interest I could try to get it up on GitHub.

4 Likes

Yes, yes please! :slight_smile:

I have an OlympiaSplendid system from Italy that is basically a Media A/C. Apps are the same and IIRC correctly, somewhere inside I saw a sign from Media.

Long story short, I don’t like it to need the Internet to control my a/c, so I want to do that local. I haven’t investigated myself, because my idea was to simulate something like the Midea server.

But if it works with a CC2531, that would be AWESOME! :smiley:

hello everyone, you can try my project.
This is a library to allow communicating to a Midea AC via the Local area network.


and This is a custom component for Home Assistant to integrate the Midea Air Conditioners via the Local area network.
4 Likes

YOU @mac_zhou , are my official hero of the month! :slight_smile: Thank you so much, this is exactly what I needed! :slight_smile: I installed it, works great, not one hickup during installation or first tries!

Thanks a lot, really, you made my day (and my wifes and dogs)! I just made a small donation via PayPal, I’m sorry it’s not more, I hope situation gets more comforting over the year, than I’ll def. make another one! :slight_smile:

Thank you! :slight_smile:

1 Like

Yes :slight_smile: At last I can control my devices with HA- automations, scripts, conditions etc!
Timing is always awful for me it seems (Murphys Law I guess) - just a week ago finished a clean install of workaround (both hardware with WAF and software) - and a super one-works also like a treat:
Midea IR MQTT
So now I have 2 working instances and my little home is a little more smarter!
Keep on going…
BTW as with cloud do not change settings too frequently- may temporarily get out of sync- max 5 seconds…
And another- get Your device ID in decimal not HEX…
Best, JR

Hi paddy 0174, i am not sure how to got the deviceID can you plase provide some info aboute it?

Sure, no problem. :slight_smile: In my case, I’m on android, so these are the steps:

  1. Install the OlimpiaSplendid or Midea app on your android phone.
  2. Get your account with Midea or OlimpiaSplendid.
  3. Setup the app, so it works with your A/C. Check if you can control your A/C with the app. That’s important, as sometimes the app won’t work with your A/C and you have to try another app (there are a few out there :wink: ) Leave the app open on your phone.
  4. Get adbLink for your computer. Every AndroidDebugBridge will do. You can use the full package from Google (adb is included in the full SDK package). or other tools. As I said, for me the small and easy package adbLink does the trick.
  5. Open adbLink on your computer.
  6. Open the settings on your phone and search, where your system info is stored. There you look for “Build-number”. This will likely take you a while, as every manufacturer has it’s own idea, where to put that build number. Nevertheless every android phone (tablet/tv) has this, so if you don’t find it on the first run, look again, it is somewhere. Push the build number seven times, it will tell you something “only 3 times and you are a developer”, “only 2 times and you are a developer”… In the end it will tell you, you are a developer now and you can use the developer settings.
  7. Go into the new “developer settings”, this as well is somewhere in your settings, but where depends on the manufacturer. You will find it. Enable “USB-Debugging”.
  8. Connect your phone with an usb cable to your computer. If it is the first time you connect it, there will be a popup on your phone right away. Check the box in this popup and allow it.
  9. In adbLink there is a button “ADB Shell”. Click it.
  10. A new terminal window should open, there you paste in logcat | grep -i deviceid and press enter. The log should show instantly and there you can find the deviceid.
  11. Copy the deviceid and close adbLink, the app on your phone, the settings, you get the idea. :slight_smile:

Hope this is detailed enough, if not, let me know. :slight_smile:

1 Like

@paddy0174, excellent and very detailed procedure, thanks alot for your effort.

Will it be available in HACS too??
And how to get the device ID in iOS??
Is it the same as the terminal barcode?

If I may jump in. :slight_smile: The first steps for HACS are already visible in the repository, I’m sure, it will happen in the near future. :slight_smile:

I don’t know iOS, as I don’t own an apple device. My recommendation in these cases is normally: get an android phone from a friend, and get the necessary data that way. In most cases you’re done with the whole setup in less than ten minutes, so not a big deal. :slight_smile: Android seems way easier with all that stuff. Or you can get an android phone on Aliexpress for less than $20. :slight_smile:

I know, it’s not the ideal help, sorry… :wink:

On the other hand, the instructions don’t sound to complicated? Do you have a mac?

Did it work for you? :slight_smile:

Hmm, Im I the only one unable to see any deviceid when using adb?
I did however run a wireshark session and captured “SessionId” but that just result in an error in HA

File "/usr/local/lib/python3.7/site-packages/msmart/command.py", line 129, in power_state return (self.data[0x01] & 0x1) > 0 IndexError: bytearray index out of range 2020-05-23 09:38:28 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.midea_4c1e00000010 fails