Hi all! I’m one of the maintainers of the Roborock integration. For a long time one of the biggest asks from users was that they wanted to be able to use their vacuums completely offline. In the Roborock integration, we connect to the vacuum using local protocol, but there are two limitations that block you from being able to block the vacuum from hitting the internet.
- Roborock forces all map related messages to go to the cloud. This is the only cloud-required feature.
- If the roborock vacuum cannot access Roborock’s cloud, it will not allow ANY messaging. The vacuum will constantly restart its internet trying to reconnect to Roborock’s cloud.
Cloud problems have been the number one source of issues for Roborock in HA. They change their login flow, they more aggressively kick clients off of mqtt topics, etc. Every time that happens, things break, I have no warning and I play catch up and some users end up getting stuck with a temporarily broken product.
It’s taken a long time and a lot of reverse engineering, but I made a solution that I am pretty happy with and that has been working well for me and a number of other users.
I released this in beta about 6 months ago and have ironed out a lot of the previous issues and added a Home Assistant Add-on. You set up a server and you go through the onboarding process with your vacuum 2-3 times, in doing so, we are able to reverse engineer a public key and inject a new URL for the vacuum to use. You can then connect Home Assistant to the server, your official Roborock app (involves patching a file for the apk on Android and just using mitm for iPhone), or a custom LocalRock App created by another user.
Compatibility note: Most Roborock vacuums (including newer ‘v2’ protocol models) are supported. The Q Series (not to be confused with the QRevo series) is not currently supported, though I’m actively working on it. Theoretically some other than the Q7 might be supported and I have not tried, but my gut feeling is that they are also not uspported.
If you’d like to get started with the project, you can check out the docs or the Github Readme. My docs are not the best and I am open to anyone who wants to make them a bit better! Installation changes slightly based on your domain, certificate provider, network, and where you are hosting the server. Many users have had luck having AI get them through problems, but I hope I can get the docs good enough at one point that it is easier to follow and that is not needed.
If you’re interested in learning more about how it works, you can also check out the technical writeup