The best way to support this project is the next time you are buying a Roborock device come back here and use one of my affiliate links where I will receive a commission.
You can also support via BMAC or paypal:
Roborock Local Server is a private Roborock HTTPS and MQTT stack you run on your own system.
This service is meant to stay private. Point your own DNS at your server's LAN IP. If you want this to work away from your home network, the server does handle auth and lets you disable new devices from connecting. BUT there is ALWAYS a risk when you make a self-hosted service publicly accessible, so please only do it if you know what you are doing. If your workflow is fine with local-only access, that will always be better. If you find any vulnerabilities, please let me know.
If you would like to contribute there are a few ways that would be great!
- Code is always welcome that you have fully tested.
- Video walkthroughs of how to actually set this up would be great.
- Documentation. I hate documentation and it's something I find myself often pushing off to AI so that I can focus more on the harder problems. But I find that human written documentation always 'feels' better.
- a domain you control
- a place to run the stack on your LAN
- either Docker Compose or a Home Assistant installation that supports add-ons
- a second machine for onboarding later
- a Cloudflare API token with DNS edit access for the zone if you want automatic certificate renewal
Start here if this is your first time setting up the stack:
- Installation for the shared requirements, network setup, and Docker Compose install path.
- Home Assistant if you want to install the stack as a Home Assistant add-on instead of Docker Compose.
- Cloudflare setup if you want Cloudflare DNS-01 auto-renew for certificates.
- Onboarding to pair a vacuum from a second machine after the server is running.
Before choosing a certificate path, check Tested vacuums. Different models do not all accept the same certificate chains. For most users, start with ZeroSSL. Use Actalis mainly for older vacuums or models that are already known to trust that chain more reliably.
Additional docs:
- Docs index
- Known limitations
- Tested vacuums
- Home Assistant for the add-on install path and Home Assistant integration rewiring
- Using the Roborock App
- Custom MQTT
- Custom certificate management
- Dennis Giese (@dgiese) whose research and papers inspired much of the work on reverse-engineering Roborock vacuums
- Sören Beye (@Hypfer) creator of Valetudo, whose work on cloud-free vacuum control has been foundational for this whole space.
- @rovo89 who has been VERY helpful through this process, giving lots of tips and advice.
- python-miio - Their repo was the basis for a lot of python-roborock's logic.
- @humbertogontijo who first created the python-roborock repo.
- @allenporter who has taken up a significant role in the maintenance of the python-roborock library as well as the Roborock integration. The improvements Allen has made to the repository cannot be overstated.
- @rccoleman who was the first beta tester and helped work out some kinks!
This software is provided "as is", without warranty of any kind. Running this stack involves modifying how your Roborock vacuum communicates with the network. You are solely responsible for any damage to your hardware, data loss, network exposure, or other consequences. Use at your own risk. This project is not affiliated with, endorsed by, or sponsored by Roborock.
This project is licensed under the MIT License — see LICENSE for details.