案例
Roborock Local Server:自托管替代 Roborock 扫地机云端
运行一套本地 HTTPS 与 MQTT 服务来替代 Roborock 云端,使受支持的扫地机在隔离网络中无需 root 或改装硬件即可保留实时地图与控制。维护者的技术说明回顾了早期的应用与流量分析,以及后来借助 Claude Code 和 Codex、在模拟固件环境中开展的调查。兼容性由项目及其用户按型号报告。
使用条件与局限
- 审阅版本为 1.2.1(提交 c3b3284),面向大多数采用 v2 协议的 Roborock 扫地机;README 排除了入门级 Q 系列,已测型号页面列出了确认可用的型号、尚未解决的失败案例及证书链说明。文档所列限制包括固件更新和定时任务;摄像头直播仅在两款型号上验证过,中国大陆版设备在境外会拒绝执行命令。
- 部署需要用户自有并可在本地改写 DNS 的域名、有效的 TLS 证书、局域网内运行 Docker Compose 或 Home Assistant 加载项的主机,以及一台用于一次性配网的带 Wi-Fi 的电脑。官方 Roborock 应用需先完成一次拦截登录步骤,安卓端还需打补丁的 APK;也可改用 Home Assistant 或开源的 LocalRock 应用。
- 需要 Python 3.11–3.13,依赖 FastAPI、aiohttp、cryptography 和 python-roborock 4.20.0;项目发布了容器镜像,CI 在构建前运行 pytest 测试。测试覆盖配网、协议认证、MQTT 代理、证书与场景;本次审阅未运行测试,也未连接扫地机。
- 技术说明称,在早期人工尝试受阻后,长时间运行的 Claude Code(Opus 4.6)与 Codex 会话借助维护者自己已 root 的 S7、其固件、python-roborock 及反编译后的应用,帮助找到了配网中剩余的关键一步。说明致谢了 Dennis Giese 的固件研究、Valetudo 及其他社区工作;未提及使用 REA。
- 采用 MIT 许可并附“按现状提供”的免责声明;项目与 Roborock 无关联。这是兼容的服务器实现,并非恢复的 Roborock 服务端代码,厂商固件或应用的变化可能使其失效。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 协议
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- docs/technical_writeup.md GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- README.md GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- docs/known_limitations.md GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- docs/tested_vacuums.md GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- docs/roborock_app.md GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- pyproject.toml GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- .github/workflows/docker-release.yml GitHub · Python-roborock/local_roborock_server · 修订 c3b3284
- LICENSE GitHub · Python-roborock/local_roborock_server · 修订 c3b3284