Xiaomi Robot Vacuum Binding

Yes, it is normal… in the sense that it is not a bug… however, come to think about it it does not really need to be that verbose.

The 2nd ‘issue’ you mention is I expect because your vacuum is missing the country configuration. The binding than tries all servers defined in the binding config (Paper UI > Configuration > Binding) .
The preferred way is that the vacuum has its own country defined.

Note: It is developed this way to allow devices defined in multiple country servers to be controlled with a single logon. However, these kind of ‘special’ cloud features like the map are typically tied to one or more country servers hence the seemingly duplicate definition on the thing level.

I compiled a version without the text line, hence no font usage at all. Hope this eliminates the error.
Please find it here: org.openhab.binding.miio-2.5.7-SNAPSHOT-nofont.jar

Hello Marcel,

this version works like a charm! Thanks! WAF has increased even more :wink:

my bad …sorry no bother

Since the update of my Roborock S5Max to firmware version 3.5.8_0862 the addon does not work anymore. It worked fine before.

The IP address has not changed either. I have already checked that.

My Roborock returns the following information:
Model : roborock.vacuum.s5e
MI ID : 6272502303
Firmware version : 3.5.8_0862
Plug-in version : MI_MDX_550
Wi-Fi name : Pretty
IP address : 192.168.86.111
MAC address : 50:EC:50:17:E2:66

In Openhab the log file looks like this:

2020-07-16 20:14:36.493 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 0F989D8D (192.168.86.111)

2020-07-16 20:14:36.495 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Starting Mi IO MessageSenderThread

2020-07-16 20:14:36.496 [TRACE] [nal.transport.MiIoAsyncCommunication] - Connection 192.168.86.111:38202

2020-07-16 20:14:36.508 [DEBUG] [o.internal.handler.MiIoVacuumHandler] - Vacuum miio:vacuum:RoborockS5e not online. Command REFRESH ignored

2020-07-16 20:15:06.529 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.86.111: Receive timed out

2020-07-16 20:15:06.533 [TRACE] [nal.transport.MiIoAsyncCommunication] - Reponse length <32 : 0

2020-07-16 20:15:06.536 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 0F989D8D (192.168.86.111)

2020-07-16 20:15:06.539 [TRACE] [nal.transport.MiIoAsyncCommunication] - Connection 192.168.86.111:46387

2020-07-16 20:15:36.573 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.86.111: Receive timed out

2020-07-16 20:15:36.576 [TRACE] [nal.transport.MiIoAsyncCommunication] - Reponse length <32 : 0

2020-07-16 20:15:36.579 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 0F989D8D (192.168.86.111)

2020-07-16 20:15:36.582 [TRACE] [nal.transport.MiIoAsyncCommunication] - Connection 192.168.86.111:46241

2020-07-16 20:16:06.616 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.86.111: Receive timed out

2020-07-16 20:16:06.619 [TRACE] [nal.transport.MiIoAsyncCommunication] - Reponse length <32 : 0

2020-07-16 20:16:06.622 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Ping 0F989D8D (192.168.86.111) failed

2020-07-16 20:16:06.626 [DEBUG] [internal.handler.MiIoAbstractHandler] - Ping response from device 0F989D8D at 192.168.86.111 FAILED

2020-07-16 20:16:06.627 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Finished Mi IO MessageSenderThread

2020-07-16 20:16:06.631 [DEBUG] [internal.handler.MiIoAbstractHandler] - Ping Mi device 0F989D8D at 192.168.86.111

2020-07-16 20:16:06.647 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 0F989D8D (192.168.86.111)

2020-07-16 20:16:06.651 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Starting Mi IO MessageSenderThread

2020-07-16 20:16:06.652 [TRACE] [nal.transport.MiIoAsyncCommunication] - Connection 192.168.86.111:60220

2020-07-16 20:16:17.121 [TRACE] [iio.internal.discovery.MiIoDiscovery] - Discovery sending ping to 192.168.86.255 from 0.0.0.0/0.0.0.0:58793

2020-07-16 20:16:17.125 [TRACE] [iio.internal.discovery.MiIoDiscovery] - Discovery sending ping to 224.0.0.50 from 0.0.0.0/0.0.0.0:58793

2020-07-16 20:16:17.128 [TRACE] [iio.internal.discovery.MiIoDiscovery] - Discovery sending ping to 224.0.0.1 from 0.0.0.0/0.0.0.0:58793

2020-07-16 20:16:36.688 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.86.111: Receive timed out

2020-07-16 20:16:36.691 [TRACE] [nal.transport.MiIoAsyncCommunication] - Reponse length <32 : 0

2020-07-16 20:16:36.694 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 0F989D8D (192.168.86.111)

2020-07-16 20:16:36.697 [TRACE] [nal.transport.MiIoAsyncCommunication] - Connection 192.168.86.111:56068

2020-07-16 20:17:06.718 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.86.111: Receive timed out

2020-07-16 20:17:06.720 [TRACE] [nal.transport.MiIoAsyncCommunication] - Reponse length <32 : 0

2020-07-16 20:17:06.724 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 0F989D8D (192.168.86.111)

2020-07-16 20:17:06.727 [TRACE] [nal.transport.MiIoAsyncCommunication] - Connection 192.168.86.111:54618

2020-07-16 20:17:36.761 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.168.86.111: Receive timed out

2020-07-16 20:17:36.764 [TRACE] [nal.transport.MiIoAsyncCommunication] - Reponse length <32 : 0

Does anyone have any advice on how to fix this?

Update of firmware usually leads to a new token.

However, neither of the two methods of device discovery works.

Previously, both mDNS discovery and basic discovery methods worked. So I was able to determine the token before by binding. But now the vacuum cleaner as a miio device is not found anymore.

I checked the token. It hasn’t changed.

Is it working fine in the mihome app?
Is it seen in the app as local network (in the network page)
It is really strange discovery is not working, as that is rather universal for the mihome ecosystem

In the XiaomiHome App everything works without any problems.

Which network site do you mean? Where exactly can I find it?

In the settings -> extra settings-> network

Which app are we talking about?

Not this one:

Because this one doesn’t have a setting.

euhhh… yes, that one. The screenshot comes from there.
Go in your vacuum, than in your top right corner, click the 3 dots to come in the first menu.

Looks like I’m blind. I can’t find this menu item.

It looks like this on my app:


Under “More Settings” you will only find:

yes, indeed, seems your device is not having these.
Have not seen any other reports of a novel communication method. You may give a try if the same result is there with python-miio to ensure it is related to the new firmware

I have updated my S55 a few times. Token still the same.
As far as I know, then token only changes, if you change the WiFi connection, (or reset the vacum).

Then I guess I misinterpreted this:

I have now tested it with miiocli tool from python-miio - unfortunately without success.

I checked the IP and the token from the MiHome Android app again. Both are correct and have not changed after the update.

>miiocli device --ip 192.168.86.111 --token 785xxxxxxxxxxxxxxxxxxxxxxxxxxx50 info
ERROR:miio.miioprotocol:Unable to discover a device at address 192.168.86.111
Error: Unable to discover the device 192.168.86.111

But it seems that a direct connection via WLAN is no longer possible, as the remote control in the Android app doesn’t work anymore as well. An error message says that this requires a connection in the same WLAN.

FYI: My login problem into Xiaomi account was my OpenVPN. I had to disable VPN for account.xiaomi.com to pass The Great Chinese Firewall.

I’ve following error with my ceiling lamps:

2020-07-19 10:06:33.124 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for lamp type: GET_PROPERTY, result: [“off”,“30”,“100”,“0”,“3500”], fullresponse: {“id”:6394,“result”:[“off”,“30”,“100”,“0”,“3500”]}

2020-07-19 10:06:33.127 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Error updating miio:basic:lamp property brightness with ‘“30”’ : java.lang.IllegalArgumentException: Value must be between 0 and 100

any ideas?