
I thought about buying a vacuum cleaner for a long time, but at first the apartment wasn’t suitable and then I didn’t know which one. Of course, I didn’t want a data monster either. I was all the more curious when a robot vacuum cleaner talk was scheduled for the 34c3 and that with my favorite at the time, the Xiaomi Mi vacuum cleaner robot. I found the talk quite interesting, especially since the security didn’t go completely wrong, as it seems, and it should still be possible to root the Robo and play around with it a little. But how do you pronounce Xiaomi at all?
I became curious when the first tests for the Roborock Sweep One S50 surfaced. To confuse the name: Roborock was the contract manufacturer for Xiaomi for the first generation of the vacuum robot. Now they have apparently decided to appear under their own flag. But both use the same app, Mi Home. The Roborock S50 is thus the successor to the Xiaomi Mi and also has a wiping function, which should at least not be completely free. In addition, according to the specification, the Robo should create door sills of 2 cm, which can be seen as an additional purchase argument in the apartment. Otherwise, the sensors should have been improved, but otherwise not too much changed. The decision was made for the sake of laziness and because of the door sills on the Roborock Sweep One S50. There are now much newer models, but I am still satisfied with the vacuum cleaner robot I bought myself (in case someone should come by because of surreptitious advertising). Even now I can recommend paying attention to offers. I also saved around 100-150 euros. The only thing that should be annoying is repairs, if any should appear. So far I’ve been lucky.
First Impression
At the highest point, the Robo measures 9.5 cm and the part weighs about 3.5 kilos. Various sensors ensure that the Robo navigates through the apartment reasonably safely. Most noticeable is the 360 ° sensor that looks upwards. Other sensors include ultrasound and infrared sensors, a gyroscope, acceleration sensor and an electronic compass. The Roborock first moves along the edges of the room and then moves around the inside in a meandering manner. He does this for each room, except when the room is larger, then he divides the room into rectangles. It recognizes obstacles surprisingly well and rarely hits furniture. He creates 2 cm thresholds, sometimes not right away, but he looks for a place that suits him. If too much hair is caught in the brush, the Roborock may also be on strike. Otherwise he still loves cables.
The Robo uses SLAM (Simultaneous Localization and Mapping) technology for navigation, i.e. it creates its own map of the surroundings and recognizes its current position in this. If he notices he’s running out of power, he drives back to the charging station. The battery is enough for a medium-sized apartment at once. In the factory state, the vacuum cleaner runs in balanced mode, the second quietest mode, which I think sucks a lot away. Below are the different modes with the volume in dB that can be selected via the app:
- Quiet: 66 dB
- Balanced: 68 dB
- Turbo: 69,5 dB
- Max: bis zu 75 dB
The wiping result is not as good as if you wipe yourself because it cannot build up enough pressure. But it is enough to wipe away lighter stains and no streaks appear. So practical for basic cleanliness, edges and stubborn stains still have to be wiped away by hand.
App
The basic functions are available directly on the Robo. For example, to set suction times, to see the room maps or to define no-go areas, the Mi Home app from Xiaomi is required. For this you have to create a Xiaomi account and add it to a wifi. Another reason to connect it to the WiFi is that it emits an open WiFi (at least you can’t do too much with it, but you don’t want someone else to operate the Robo and get more information about the apartment via the app can). The guest WiFi was set up with a firewall for this purpose. In addition to the official Xiaomi app, you can also use an alternative app from Flole. We take a quick look at each other.
In the Xiaomi app, which incidentally wants a lot of permissions and speaks a nice mix of English and Chinese, you have to decide on a location for the server. Changing the location means that you have to reconnect the Robo to the WiFi, since of course all data is on the selected server. After the Robo is recognized and the WiFi is set up, you can access the full range of functions, e.g .:
- Show room maps and several setting options: Go mode, Zoned cleanup mode, frequency of cleaning in an area, no go zones, etc.
- Create timers for scheduled cleaning
- Adjusting the suction power (Quiet, Balanced, Turbo and Max)
- Remote control (joystick or classic)
- Display of the operating hours and maintenance intervals
- Ability to buy spare parts (at some point)
Data
Server? A lot of data? Can data migrate? So a company can have a wealth of data? Well, then the possibilities of the app are not always the golden of the egg. After the Robo has been paired and the WiFi has been set up, most of the permissions of the app on Android can be withdrawn without causing any problems.
These are also reasons why I at least had a look at the App by Flole. After several problems, the setup worked. The functionalities have also been expanded. At the time, the app was unfortunately unable to read out apartment cards, but the basic functions worked. Since then I haven’t used an app and the Robo doesn’t hang on the internet.
Links and Further Reading Material
Of course, I didn’t just want to use an app, I also wanted to root the vacuum cleaner. I am fascinated by the community that has built up around vacuum cleaning robots. I have a few links for you that are still interesting with the current versions.
- Forum
- 34c3 Talk
- Page of the talk
- GitHub
- Telegram Channel on dustcloud
- IRC-Channel #dustcloudproject
- Summary
- python-miio
- Mi Toolkit with German app and other stuff
- Instructions to root
Root
Follow the instructions and that’s it? Unfortunately, it’s not that easy now. Xiaomi always seems to set the hurdles a little higher. My problem with my version was the token. A token is required to install firmware on the vacuum cleaner robot. The token is kindly renewed after every WiFi reset. According to the instructions at the time, you should get the token with Python-miio, but for whatever reason it didn’t work. Python-miio is a nerdy way to set cleaning times and other settings via the API – without an app, but on the console. When you have the token.
After trying all the different ways to get the token, I’m almost desperate. Either louder f’s came out – i.e. tokens already assigned, but not displayed – or it was not displayed at all. The solution was an older Mi Home app for Android. Version 5.0.19 installed, added the vacuum cleaner robot and then pulled a backup of com.xiaomi.smarthome with adb. Unpack this and lo and behold, I have a token in the database!
I find com.xiaomi.smarthome interesting in itself. This is how you can see what is being saved. Depending on the app version, you have slightly different folders. In the newer versions these are a, db, ef, f, r and sp. a is not included in other app versions.
- db: Databases, with geofencing.db, logdb.db, miio.db, miio2.db, mistat.db, phone_num3.db, roborock_rubys.db, ua.db miio2.db contains, among other things, the ID, firmware version, IP, model name , Coordinates, name of the robot (self-selected), MAC address, SSID and token.
- f: Settings for communication with .io.mi.com, certificates, signatures for your own verification, authtoken for the Passportapi etc.
- sp: some XMLs, like future connection with Facebook, statistics that will probably go to Xiaomi (like app version) and configs for the app
However, I have not yet installed Linux on the vacuum cleaner robot. Somehow other projects always got in the way.