Xiaomi Robot Vacuum Binding

Hey,
I’m trying t get my Xiaomi Robot Vacuum X10+ working with the binding. It is discovered with token but it is permanently offline. Thing type shows "unsupported Xiaomi Mi Device.
Any chance to get it implemented/working?
Thanks

Tim

See the readme. Override the model with a supported model. Most likely it will work.
Report back your results and we can include it.

If above does not work use the create experimental miot support switch of the unsupported device.

Hi Guys,

i want to define a rule set where the dust container is the trigger ( has been removed and deployed). Could you please help me to read out the status of the container? Is it even possible to get this information?

Thing:

UID: miio:generic:18D11F6A
label: Roborock S5 Max
thingTypeUID: miio:vacuum
configuration:
  cloudServer: de
  refreshInterval: 30
  host: 192.168.101.217
  model: roborock.vacuum.s5e
  communication: direct
  deviceId: "xxxx"
  timeout: 15000
  token: xxxx

Thanks in Advance
Simon

I have a new Roborock S7 MaxV Ultra and connot get a zoned area to run from OpenHAB 3.4.3

I have the Miio Binding installed and online. I see the log updating when I manually run the vacuum. I can send the commands to ‘vacuum’ and ‘dock’ and they seem to work fine.

I have used the Xiaomi Robot Radar Map to find the zone coordinates, but my log will just show below where it accepts the coordinates and then quickly goes back to ‘dock’:

2023-04-30 14:43:30.646 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Carson_Vacuum_Control_Vacuum' received command app_zoned_clean[[28850,32500,31750,33400,1]]
2023-04-30 14:43:30.648 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Carson_Vacuum_Control_Vacuum' predicted to become app_zoned_clean[[28850,32500,31750,33400,1]]
2023-04-30 14:43:30.658 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Carson_Vacuum_Control_Vacuum' changed from dock to app_zoned_clean[[28850,32500,31750,33400,1]]
2023-04-30 14:43:33.773 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Carson_Vacuum_Control_Vacuum' changed from app_zoned_clean[[28850,32500,31750,33400,1]] to dock

Items:

String CarsonActionsCommands 	"Execute Command"   (gVac)    {channel="miio:generic:1FF3DF84:actions#control" }

Rule:

rule "Testing"
when
	Item vTesting changed to ON

then
	logInfo("Testing", "Testing set to ON")	
	CarsonActionsCommands.sendCommand('app_zoned_clean[[28850,32500,31750,33400,1]]')
end

Any ideas on why the zone is not working or is there a better way to have it just vacuum a specific zone?

Thanks in advance!

Hi all,
Hope it’s the right place to report the issue. Recently I found map function stops working in both Mi Home app as well as via MIIO binding. I contacted Xiaomi and they said I should disable MIIO binding without giving me a explanation. So looks to me that Xiaomi/Roborock starts to block map functionality without their app. My question is: how can I make sure MIIO doesn’t talk to Xiaomi Cloud? Is it enough just not to configure the map item? Many thanks in advance!

I’m not sure what weight you need to give to that advice… sounds like horse sh*t to get easy rid of your question.

that beside: You can remove the cloud userId/password.
After that it will communicate only via the local interface to the robot, so no cloud involved.
You may have some issues when you need to refresh the secret tokens, but you could in that case shortly enable the cloud again to pull the latest ones and disable it again.

I’m not 100% certain, but you could also try simply to remove the country from the vacuum thing configuration… that may do the trick as well.

1 Like

Thank you for the reply!
I contacted support and didn’t mention I have OpenHAB or similar. They asked me if I were using MIIO via HomeAssistant, and they suggest me to turn off the map function. What I did yesterday was to remove the image map item, so far the map works reliably in Xiaomi Home app.
Does the map function requires cloud connection or how do they know I’m using MIIO? I ask because I already have local mode turned on.

Yes, the map data is only stored in the cloud and can’t be pulled from the vacuum locally.
So yes, the map feature requires the cloud connection. The robot gives the relevant mapId via the local connection and the binding than retreives the map data for that mapId from the cloud.

The way it request it is copied from the way the phone apps pulls the data, so I don’t think Xiaomi can directly see a difference in communication between the binding and the regular phone app.
(maybe it also struggles if 2 phones pull the map at the same time, who knows)

1 Like

Ok that sounds strange - does it poll image from the cloud periodically? I’m not using the map very often but indeed after I removed the image item it works better in Mi Home app. I use iOS btw not sure if it makes a difference

It is requesting the map when it is not docked.
When docked it does not poll for the map anymore.
If I recall right it checks every 30 sec. The regular app every 5 or 10sec

Hello,
I’m using Roborock S8 ultra and using stable openhab version 3.4.2, and in the logs, I see those errors:

2023-05-28 10:39:11.761 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 30 (pls report to author)
2023-05-28 10:39:11.762 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 29 (pls report to author)
2023-05-28 10:39:41.643 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 31 (pls report to author)
2023-05-28 10:39:41.643 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 33 (pls report to author)
2023-05-28 10:39:41.644 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 32 (pls report to author)
2023-05-28 10:39:41.644 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 28 (pls report to author)
2023-05-28 10:39:41.645 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 30 (pls report to author)
2023-05-28 10:39:41.645 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 29 (pls report to author)
2023-05-28 10:40:11.691 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 31 (pls report to author)
2023-05-28 10:40:11.691 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 33 (pls report to author)
2023-05-28 10:40:11.692 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 32 (pls report to author)
2023-05-28 10:40:11.692 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 28 (pls report to author)
2023-05-28 10:40:11.692 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 30 (pls report to author)
2023-05-28 10:40:11.693 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 29 (pls report to author)
2023-05-28 10:40:41.621 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 31 (pls report to author)
2023-05-28 10:40:41.621 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 33 (pls report to author)
2023-05-28 10:40:41.621 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 32 (pls report to author)
2023-05-28 10:40:41.622 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 28 (pls report to author)
2023-05-28 10:40:41.622 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 30 (pls report to author)
2023-05-28 10:40:41.623 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 29 (pls report to author)
2023-05-28 10:41:11.662 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 31 (pls report to author)
2023-05-28 10:41:11.662 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 33 (pls report to author)
2023-05-28 10:41:11.663 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 32 (pls report to author)
2023-05-28 10:41:11.663 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 28 (pls report to author)
2023-05-28 10:41:11.664 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 30 (pls report to author)
2023-05-28 10:41:11.664 [INFO ] [.miio.internal.robot.RRMapFileParser] - Unknown blocktype 29 (pls report to author)

Any idea what should we do with it?

Xiaomi / Roborock seems to extended the maps again with new features.
Would you mind making a github issue for it.

I’ll try to address them. If you have an example rrmap file that would be nice as I can see if I can extend the map decoding for these bew blocktypes

In the mean time, to avoid flooding your log, you can do the following:
log:set warn org.openhab.binding.miio.internal.robot.RRMapFileParser
or
log:set warn org.openhab.binding.miio.internal.robot

1 Like

I have the same problem.
When i changed to cloud and map, the map stoped working in app.
Now i have changed back to direct to see if the map starts working in app.

And is there a clear relation between showing the map in openhab and showing the map in the mihome app?

You can also try to not link the map channel, as then it does not try to pull the map from the server.
If there is indeed the relation, would be interesting to see if the same occurs when 2 phones simultaneously try to show the map

Hey,

didi you find a solution?
I’m at a similar situation. I used to have two S5 over years. One of them is going to be replaced by a q revo.
It looks like the new one is using a ne protocol, and app_zoned_clean is not working anymore.

My guess is, that cleaning a zome can by done with “in” and “out” on e.g. “vacuum-start-sweep-mop”. But as far as I can figure out these params just for room, not for segments!?

yes, those use indeed different protocol (miot). Most likely also the map will not work for those.
Finding the exact format for your zone cleaning will be tricky indeed. You need to examine the source code of the device and try to understand how the coordinates are determined.

So, okay.
Is that the first one with the new protocol?
What about the s7 max? Or the s8?

Thx

Hello. I installed the biding and my Q7Max and most of the items are working fine. Except following:

history#total_clean_area, history#total_clean_time oder history#total_clean_count 
cleaning#last_clean_start_time, cleaning#last_clean_end_time, cleaning#last_clean_area, cleaning#last_clean_duration, cleaning#last_clean_error und cleaning#last_clean_finish

Does anybody has an idea what I am doing wrong?

Thanks in advance

Any idea? I assume I am not the only one having this issue?

Added support for Q Revo and some new channels:

I have added support for Q Revo and also added some additional features channels:

actions#collectdust → collect dust at the station
actions#cleanmopstart → start mop cleaning at the station
actions#cleanmopstop → stop mop cleaning at the station
status#is_mop_drying → Is the mop just dried?
status#mop_drying_time → Time remaining until the mop is dry.

It would be great if owners of other Xiaomi/Roborock vacuum cleaners that have the above features could check if they work on their device.

I have made my changes in 3.4, just rename the filename to jar and upload them to your addons folder, as usual.
I appricate any feedback.
org.openhab.binding.miio-3.4.6-SNAPSHOT .jar.rename.txt (509.1 KB)

1 Like