Any Support for Midea A/C?

I can try control in a few hours, when I will be at home, near the air conditioners.

Hey, just prepared the same 15 min dropout images :slight_smile:
Good that I didnā€™t post doubleā€¦
Just add one more picture about the other glitch:


when it is set to 18 degrees- adds 13 degrees to real settings/readings.
Best, JR

Yes, I can control both of my conditioners with your repositories. Turning the Cooling mode ON and OFF works correctly.

Only dropout of devices occurs with a frequency of 15 minutes.

When the air conditioners are ON, the outdoor temperature value is displayed correctly. When the air conditioners are OFF, the outdoor temperature value is displayed 102.5.

I really wish the local control worked for me, but I just get a timeout from any request. I integrated it locally with the cloud module, which can provide the device ID, but had no success, so I didnā€™t commit even to a branch.
Also had to go through the somewhat regular routine of deleting and re-adding the device in the Midea app just now, because of the ā€˜no replyā€™ error, when the app and device works fine. Ugh. Wish they would just detail the APIs properly.

Was there any luck with the Zigbee stick @rpress?

1 Like

Does your Midea have a way to go to the internet? If so, can you disable the access in your router?

Itā€™s just a guess, because I canā€™t understand, why it is working for me that well. I donā€™t even have a Midea device, itā€™s an OlimpiaSplendid.

I couldnā€™t get it to work for over a year with the app. Last December was an update for the app, and since then, I can control my A/C via app. A few days ago mac_zhou posted the link to his repository and I installed it and it worked.

I do have a few of both mentioned errors (timeout and nonetype), but neither has any influence on controlling my device. I have a timeout in the log, and I can directly change to lovelace and can control the A/C.

Maybe we should start to compare what is different in every installationā€¦

Finally I decided to use HA to integrate my household devices

One of them is a Midea Liva Wi-Fi Split AC

It worked fine in the long gone ā€œMSmartā€ app. After some issues I was able to add it to the newer ā€œMidea Smartā€ app. But it seems to be incompatible with the ā€œMidea Airā€ app

So after configuring HACS IĀ“ve installed the integrator (https://github.com/mac-zhou/midea-ac-py)

Just to be safe I tried both methods (mac-zhou python script and adb logcat) to get the deviceid with no success.
In the python script I get the following (even with the correct IP address reacheable:

Traceback (most recent call last):
  File "bla.py", line 11, in <module>
    device.refresh()
  File "/usr/local/lib/python3.7/site-packages/msmart/device.py", line 173, in refresh
    data = self._lan_service.appliance_transparent_send(data)
  File "/usr/local/lib/python3.7/site-packages/msmart/lan.py", line 69, in appliance_transparent_send
    response = bytearray(self.request(data))[40:88]
  File "/usr/local/lib/python3.7/site-packages/msmart/lan.py", line 33, in request
    sock.connect(device_address)
socket.timeout: timed out

In the adb logs no ā€œdeviceidā€ line in the output. The closest I get are getBoxDevId, tempBoxId and currBox attributes that are the same value and a valid Hex number. But even with it converted to decimal I get the same error in the HA logs:

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 470, in async_device_update


    await self.async_update()


  File "/config/custom_components/midea_ac/climate.py", line 108, 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/msmart/device.py", line 173, in refresh


    data = self._lan_service.appliance_transparent_send(data)


  File "/usr/local/lib/python3.7/site-packages/msmart/lan.py", line 69, in appliance_transparent_send


    response = bytearray(self.request(data))[40:88]


  File "/usr/local/lib/python3.7/site-packages/msmart/lan.py", line 33, in request


    sock.connect(device_address)


socket.timeout: timed out

Any help?
Full adb logs avaiable if needed

Att,
Will

After changing the port from 6444 to 20088 (following the adb logs) I was able to get this:

Traceback (most recent call last):
  File "bla.py", line 11, in <module>
    device.refresh()
  File "/usr/local/lib/python3.7/site-packages/msmart/device.py", line 173, in refresh
    data = self._lan_service.appliance_transparent_send(data)
  File "/usr/local/lib/python3.7/site-packages/msmart/lan.py", line 69, in appliance_transparent_send
    response = bytearray(self.request(data))[40:88]
TypeError: 'NoneType' object is not iterable

Guess it means my device isnā€™t supported right?

Anything I can do to help for it to be?

Thanks again
Will

hello, erveryone
lib msmart is update to 0.1.14
changelog:

add timeout logging info
fix request return Null

and please update your midea-ac-py from HACS or Install manually

yes. if you turn off the AC, your model AC not reply the outdoor temperature 102.5 is just the default reply from AC.

maybe just timeout
i hope the new version can fix this problem. :joy:

Iā€™ve used fiddler as remote proxy for smartphone. You need to install fiddler CA certificate to intercept HTTPS traffic. Then you just run the app and will get required ID from one of api calls app does (either from one of initial responses or further request body).
On the other hand, the python script to get id requires fake id to be exactly 14 characters, otherwise it was timeout.

the new version is 0.1.15 now. maybe fix some problem, you can try it
@aleksey_z @INTEL @Dinges28

Hello. I update midea-ac-py manually to 0.1.14. The same dropout.

In this moment, in the log:

In log
2020-05-28 11:50:53 DEBUG (SyncWorker_14) [msmart.lan] Sending to 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:50:53 DEBUG (SyncWorker_3) [msmart.lan] Sending to 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:50:54 DEBUG (SyncWorker_14) [msmart.lan] Received from 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:50:54 DEBUG (SyncWorker_14) [msmart.device] refresh - Recieved from 192.168.1.208, fe3b01000011: aa23ac00000000000303c00048667f7f000000000064ff0c00010000000000000000004f
2020-05-28 11:50:54 DEBUG (SyncWorker_14) [msmart.command] Appliance response data: c00048667f7f000000000064ff0c00010000000000000000004f
2020-05-28 11:50:55 DEBUG (SyncWorker_3) [msmart.lan] Received from 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:50:55 DEBUG (SyncWorker_3) [msmart.device] refresh - Recieved from 192.168.1.207, 240b0100000f: aa23ac00000000000303c00057667f7f000000000062ff0b0004000000000000000055eb
2020-05-28 11:50:55 DEBUG (SyncWorker_3) [msmart.command] Appliance response data: c00057667f7f000000000062ff0b0004000000000000000055eb
2020-05-28 11:51:09 DEBUG (SyncWorker_17) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:09 DEBUG (SyncWorker_19) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:09 DEBUG (SyncWorker_19) [msmart.lan] Sending to 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:09 DEBUG (SyncWorker_17) [msmart.lan] Sending to 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:10 DEBUG (SyncWorker_17) [msmart.lan] Received from 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:10 DEBUG (SyncWorker_17) [msmart.device] refresh - Recieved from 192.168.1.207, 240b0100000f: aa20ac00000000000305a05640667f7f000000000000000000000000000000fe94
2020-05-28 11:51:10 DEBUG (SyncWorker_17) [msmart.command] Appliance response data: a05640667f7f000000000000000000000000000000fe94
2020-05-28 11:51:10 DEBUG (SyncWorker_19) [msmart.lan] Received from 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:10 DEBUG (SyncWorker_19) [msmart.device] refresh - Recieved from 192.168.1.208, fe3b01000011: aa23ac00000000000303c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:10 DEBUG (SyncWorker_19) [msmart.command] Appliance response data: c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:25 DEBUG (SyncWorker_12) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:25 DEBUG (SyncWorker_1) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:25 DEBUG (SyncWorker_1) [msmart.lan] Sending to 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:25 DEBUG (SyncWorker_12) [msmart.lan] Sending to 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:26 DEBUG (SyncWorker_12) [msmart.lan] Received from 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:26 DEBUG (SyncWorker_12) [msmart.device] refresh - Recieved from 192.168.1.207, 240b0100000f: aa2bac00000000000304a200000000000000000000000000000000000000000000000000000000000000a4dc
2020-05-28 11:51:26 DEBUG (SyncWorker_12) [msmart.command] Appliance response data: a200000000000000000000000000000000000000000000000000000000000000a4dc
2020-05-28 11:51:26 DEBUG (SyncWorker_12) [msmart.device] Unknown Operational Mode: 0
2020-05-28 11:51:26 DEBUG (SyncWorker_12) [msmart.device] Unknown Fan Speed: 0
2020-05-28 11:51:26 DEBUG (SyncWorker_1) [msmart.lan] Received from 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:26 DEBUG (SyncWorker_1) [msmart.device] refresh - Recieved from 192.168.1.208, fe3b01000011: aa23ac00000000000303c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:26 DEBUG (SyncWorker_1) [msmart.command] Appliance response data: c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:41 DEBUG (SyncWorker_17) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:41 DEBUG (SyncWorker_19) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:41 DEBUG (SyncWorker_19) [msmart.lan] Sending to 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:41 DEBUG (SyncWorker_17) [msmart.lan] Sending to 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:43 DEBUG (SyncWorker_17) [msmart.lan] Received from 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:43 DEBUG (SyncWorker_17) [msmart.device] refresh - Recieved from 192.168.1.207, 240b0100000f: aa23ac00000000000303c00057667f7f000000000062ff0b0004000000000000000055eb
2020-05-28 11:51:43 DEBUG (SyncWorker_17) [msmart.command] Appliance response data: c00057667f7f000000000062ff0b0004000000000000000055eb
2020-05-28 11:51:43 DEBUG (SyncWorker_19) [msmart.lan] Received from 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:43 DEBUG (SyncWorker_19) [msmart.device] refresh - Recieved from 192.168.1.208, fe3b01000011: aa23ac00000000000303c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:43 DEBUG (SyncWorker_19) [msmart.command] Appliance response data: c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:57 DEBUG (SyncWorker_4) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:57 DEBUG (SyncWorker_17) [msmart.packet_builder] Finalize request data: aa20ac00000000000003410000ff03ff00020000000000000000000000000004e9
2020-05-28 11:51:57 DEBUG (SyncWorker_17) [msmart.lan] Sending to 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:57 DEBUG (SyncWorker_4) [msmart.lan] Sending to 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:58 DEBUG (SyncWorker_17) [msmart.lan] Received from 192.168.1.208:6444 5a5a011168002000000000000000000000000000fe3b010000110000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bfcf8821124edf84c68e63d4ca8a4d82f.
2020-05-28 11:51:58 DEBUG (SyncWorker_17) [msmart.device] refresh - Recieved from 192.168.1.208, fe3b01000011: aa23ac00000000000303c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:58 DEBUG (SyncWorker_17) [msmart.command] Appliance response data: c00048667f7f000000000064ff0c00000000000000000000a4ac
2020-05-28 11:51:58 DEBUG (SyncWorker_4) [msmart.lan] Received from 192.168.1.207:6444 5a5a011168002000000000000000000000000000240b0100000f0000000000000000000000000000c7ec8e4276f8accc266a4648044169534ef900b4addf8808145b702d1c28520aec9d938eeaae3d871b99ce4b7e20a37bdc8f8778e778e5034e8f1f35e3b2cb7a.
2020-05-28 11:51:58 DEBUG (SyncWorker_4) [msmart.device] refresh - Recieved from 192.168.1.207, 240b0100000f: aa23ac00000000000303c00057667f7f000000000062ff0b0004000000000000000055eb
2020-05-28 11:51:58 DEBUG (SyncWorker_4) [msmart.command] Appliance response data: c00057667f7f000000000062ff0b0004000000000000000055eb

update to 0.1.15 man

I do not see version 0.1.15

change msmart == 0.1.15 in custom_components/midea_ac/manifest.json file and restart HASS
after try to control

Working now here! Thank you for all the help! Even connecting with TeamViewer to try and resolve the issue! Some major support there! Coffee coming ur way for sleeples nightā€™s parsing messages, processing packets. :wink:

I am update to 0.1.15. I can try control in a few hours, when I will be at home, near the air conditioners. I am currently testing remotely. I will watch how it will be with dropout.

I tried like that too. Opened midea app, and controlled it with hass, I get replay in Midea app when switching with hass, so it probobly works fine :wink:

such WARNING in the log:

Logger: homeassistant.components.climate
Source: components/climate/__init__.py:547
Integration: Climate (documentation, issues)
First occurred: 12:16:38 (1 occurrences)
Last logged: 12:16:38

ClimateDevice is deprecated, modify MideaClimateACDevice to extend ClimateEntity

and

Logger: homeassistant.helpers.entity
Source: __main__.py:356
First occurred: 12:26:30 (4 occurrences)
Last logged: 13:39:20

Update of climate.midea_ac_fe3b01000011 is taking over 10 seconds
Update of climate.midea_ac_240b0100000f is taking over 10 seconds

it is important?