Home Assistant Community

Add Map to Xiaomi vacuum cleaner


thanks for the great work!
I’m successfully using your code, just have one question:

the maps dosen’t seem to update “live” or (1-2s) like you mentioned above, but seems to update only when it’s moving and every minute maybe…?

should it be more like a live-feed similar to the one the official app gives? any idea of where i could look for a solution?


Hello guys!

Just a quick question: have any of you updated the FW of the vacuum using the Flole app?

One the Xiaomi app shows no update is available but on the Flole app I get this:



Hi everyone,
first of all I want to say thank you for your great work asphalter!

Now I only have one issue by setting up the “live map”

When I run the script on the vacuum I always get an error that it is not able to connect to homeassistant and I have to enter the password. I set up the acess with the ssh key files and I also can manually login on the homeassistant user from the vacuum with the keyfiles, but I always get a login error when I start the script.

Can anyone help me?


I fixed it. I had to rename the public key in id_rsa.

I am running it on a raspberry pi and the image is only refrashing every 5Minutes. The home assistant goes out of synch. On hich device does your home assistant ran?


I’m looking for someone who can help me with a particular problem regarding the maps. I’d like to clean my home and my business with my vacuum cleaner, so the idea is to use the wifi for the robot to identify where it is and load the correct map. Also is it possible to store zones on the map permanently, so if I take it to work and run it after hours it will only clean the zones I mapped out for it, not the whole map, basically prevent it from going into places where it gets stuck, without having to map out the zones every time.
If someone can solve this I’m willing to pay because it’s really annoying problem.


There’s no solution for this for the moment


Known problem.

You can find more info here:

and here:


Feel like I’m being thick. Tried for the past 45 minutes to root my Xiaomi Vacuum Gen2… Getting multiple error messages. Is there any easier way to do this? Am using Terminal on OSX.

Am stuck on step 10) of dustcloud.
Error returned is:

sudo /Users/x/dc/dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh 0051518
Running on a Mac, adjusting commands accordingly
readlink from coreutils package not found! Please install it first (e.g. by brew install coreutils)

I’ve reinstalled coreutils several time, but no solution!

Help, please/


There is a warning on Dustcloud about Macs

These instructions used to work with Mac OS High Sierra. However, it seems as if the images created aren’t compatible anymore and cause the robot to revert to the currently installed image. See issue #83. The instructions are left as is at it may be working with older Mac OS

Do you have access to a standard Linux install or a Raspberry PI?
I rooted mine using a PI was easy to do.

1 Like

Thanks for that. I had totally missed out on this info!
I have access to a Win 10 machine. Can set up a Pi, but that sounds like a pain. I’ll try on a PC first by running a docker Linux image! My Home Assistant server is hosted via Docker on a Synology.


I’m using your solution, with a few changes to accommodate to my system.
Since I’m running Hass.io I had troubles installing what I needed to get the script to run. Instead I run it in a Docker-container on a server which has the script modified to copy the resulting image to the RPi running Hass.io via samba, which in turn presents it as a camera-image.
It’s a bit of a messy solution, but it certainly gets the job done!

Have you thought about making this into a Hass.io-addon?

Thanks for your work on this!


If I’m not totally wrong …but I think custom firmware is not needed to get this map thing working right ?


The vacuum has to be rooted in order to extract the map, at least for this solution to work.


I’m a bit scared to root this device …are there any issues to root it ?


I had no issues using the instructions from post 39.

Did it from a virtual Ubuntu machine.


Hi. What di u change?




You shouldn’t touch anything below




I have to change it inot




You shouldn’t touch anything below



SSHCTL="/root/.ssh/ctl-ha-rockrobo" <----- What’s this? as it is not on my robot nor on my hass

I don’T get any map… nothing is created… COuld you make a short write up. I followed the guid from asphalter and also found mistakes like: choan iso chmos… but that’s not that bad… But i think there’s more to change especially the SSHCTL path. But i dunno how :frowning: and what it means. HELP appreciated :slight_smile:


I got it working but had to start the script on the robot manually


Is there a way to do this if homeassistant is running in docker?

Thanks in advance

1 Like

Everything is possible with docker …there’s no difference .just follow the instructions…that’s all
But strangely I had to start the script in the robot manually… dunno why it didn’t start …I might have restarted the robot …I dunno.maybe the dev could give a hint here ?


Did you check ou the thread of @wills106 ?

If your vacuum is rooted, its really simple to set up Valetudo and import the map in HA.