Integration with Roborock robot

Hello everybody!

I have a Roborock S7 vacuum cleaner at home and I would like to be able to associate it with Smartthings.

Now with the new platform, has anyone managed to make the connection?
I don’t understand programming, I don’t know if it’s impossible and I apologize if the question is stupid!

Hug to everyone

it’s possible but quite complicated and time-consuming. Also, ST is very limited in terms of vacuum features, don’t expect the integration to be very advanced. For example, the driver doesn’t have an access to room list, so no maps or room cleaning.

@blueyetisoftware were the LUA (network?) issues solved?

HI

ok, I figured it wouldn’t be easy, I’m certainly not the first to think about it! :sweat_smile:

Looks like the next hub release should address those. I still haven’t built a roborock driver but would love to see one. One option is to use Amazon Alexa to connect the two. It does work, but I don’t want Amazon in my ecosystem. Another option it to use IFTTT to connect to ST and then expose IFTTT to Amazon. That way Amazon only get data from Roborock and not ST.

If I ever get clear documentation on how to get the Roborock token and an API, I will take a swing at an Edge driver.

let’s have a chat, the Xiaomi token is 10 min task.
the Lua Aes protocols and discoverability is a way bigger challenge, at least for me

1 Like

Did you use the miio CLI to get the token? Getting started — python-miio documentation

no,
do you have an android phone ?

I can set it up on an Android, but will I be able to extract the unencrypted token?

Found this post. Does this sound like what you used? http://www.albertopasca.it/whiletrue/xiaomi-roborock-control-via-socket-api/

I have made it dozens of times. I have a written JS implementation of the driver on the Google Home with nearly hundred of clients.

I have probably all the existing Mi libraries installed on my PC and read most of the articles. I even have a step-by-step Python notebook for debugging. So you can run every step interactively.

If nothing has been changed the easy way is to install the Android App and 15 min.

you need to login into your account, check that the app can control the device, and save the backup. Then there is an easy algorithm how to decode the backup to extract tokens.
You can just send the backup file to me, I will send the token back.

I would like to find a more secure and simple way for users to get this token when they use the driver. I’ll have to look around for something like a web client that allows you enter credentials and spit out the token. I think that link I included above may have something similar in python form.

1 Like

if you think it’s more secure or easier I can make a simple python webservice for this

I’m leaning toward something in Node.js that I can run in a serverless setup

just tried to host this library, but the Xiaomi cloud is not really happy with the serverless setup.

It works perfectly on my machine but when I try to run it on the internet Xiaomi detects region change and locks the attempt.

@blueyetisoftware please see the previous message

1 Like

@veonua Have you looked at a SmartApp for this? With a username and password, maybe we could integrate this at the cloud level. A vacuum doesn’t really need to be local. Just curious. I am building a different driver with an AES encrypted TCP protocol. It is a ridiculous amount of code and the user has to extract a token from another app much like this. Nobody but hardcore power users will even attempt it.

1 Like

I am assuming Roborock might come from Alexa as Matter device

as far as I remember there are no vacuum cleaners in Matter 1. so no for the next year.

1 Like

Honestly, the momentum is lost. I don’t see Smartthings supporting my use cases well.
Most of my interactions with the robot are “Hey Google start cleaning” and “Ok Google clean the kitchen and living room”.
The local Google Home API I created and published 3 years ago, works really well for me and dozens of users.

The reasons why I wanted to start this project are to share knowledge, collaborate, and integrate other devices from Xiaomi. (eg. AC controller and air purifier.)

I don’t see much interest from the community in collaboration and interest in Xiaomi’s wifi enabled devices.

The issue with the AC was solved for me recently as I put the microcontroller with MQTT support. The ST interface is not great but in the end, I got it integrated with voice assistants.

2 Likes