Roborock
Roborock 集成允许您将 Roborock 扫地机器人接入 Home Assistant。Roborock 吸尘器是智能家居清洁机器人,具体功能会因设备不同而异,可能包括拖地能力、激光导航,以及调整清洁性能或家庭内清扫位置等选项。此集成让您可以直接在 Home Assistant 中控制并监控 Roborock 吸尘器。
该集成还支持自动化,并可与其他智能家居设备联动。例如,您可以在吸尘器卡住时发送通知,或在媒体播放器开始播放音乐时暂停吸尘器。
兼容性说明
新发布的 Q-Series 设备尚未获得完整支持。Roborock 已更改这类设备的交互协议。目前尚不清楚 Q 系列之外的新设备会继续使用现有协议还是新协议。大多数 Q-Series 设备应可通过 Matter 集成获得部分支持。
先决条件
- 下载 iOS 或 Android 版 Roborock App。
- 创建账户并登录。
- 将您的 Roborock 设备添加到 Roborock App 中(例如通过扫描二维码)。
此集成可通过 UI 配置。前往 设置 > 设备与服务 添加。
Options
To define options for Roborock, follow these steps:
-
In Home Assistant, go to Settings > Devices & services.
-
If multiple instances of Roborock are configured, choose the instance you want to configure.
-
On the card, select the cogwheel
. - If the card does not have a cogwheel, the integration does not support options for this device.

-
Edit the options, then select Submit to save the changes.
此集成可配置在地图上显示哪些 Roborock App 功能元素。
数据更新
此集成同时使用本地和云端轮询,并通过 MQTT 接收云端推送事件。在可能的情况下会优先使用本地通信。 地图数据和例程始终通过云端获取,而 Dyad 和 Zeo 设备仅支持云端。
集成会通过云 API 自动发现您的 Roborock 设备,并在设备支持的情况下获取与其进行本地通信所需的信息。请确保 Home Assistant 实例能够访问设备的本地 IP。我们建议为 Roborock 吸尘器设置静态 IP,以帮助避免后续问题。设备通过 58867 端口通信。 根据您的防火墙配置,可能需要允许 Home Assistant 通过该端口与吸尘器通信。
支持的功能
Roborock 设备支持的功能因型号不同而异。只有您的设备支持的实体才会被添加到集成中。
扫地机器人设备
Vacuum
vacuum 实体可控制吸尘器的大多数功能,例如开始清扫、返回充电座或设置风机速度。
Image
- Map
- Description: 显示 Roborock 吸尘器清扫区域的实时地图。
Select
-
Mop mode
- Description: 描述拖地方式。在某些固件中,它被称为
mop route。
- Description: 描述拖地方式。在某些固件中,它被称为
-
Mop intensity
- Description: 指定拖地强度。
-
Selected map
- Description: 选择吸尘器当前加载的地图。
-
Empty mode
- Description: 可设置
empty mode,包括 Max、Light、Balanced 和 Smart。 - Availability: 仅适用于配备自动集尘座的吸尘器。
- Description: 可设置
Binary sensor
-
Charging
- Description: 表示吸尘器当前是否正在充电。
-
Cleaning
- Description: 表示吸尘器当前是否正在清扫。当机器人正在移动,或因电量低返回充电座但清扫任务仍处于活动状态并会稍后继续时,该实体也会处于开启状态。
-
Mop attached
- Description: 表示拖布当前是否已安装。
-
Mop drying status
- Description: 仅适用于具备烘干能力的底座 - 表示拖布当前是否正在烘干。
-
Water box attached
- Description: 表示水箱当前是否已安装。
-
Water shortage
- Description: 表示水箱是否缺水;如果未检测到缺水,则显示
Ok。
- Description: 表示水箱是否缺水;如果未检测到缺水,则显示
-
Cleaning fluid
- Description: 仅适用于支持清洁液的底座 - 表示底座清洁液是否不足,或清洁液容器未安装。
-
Clean water box
- Description: 仅适用于内置清水箱的底座。表示底座是否缺少清水,或清水箱未安装。
-
Dirty water box
- Description: 仅适用于内置污水箱的底座。表示污水箱是否已满,或污水箱未安装。
Sensor
-
Cleaning area
- Description: 吸尘器本次清扫已清洁的面积。如果当前未在清扫,则显示上一次清扫的面积。
-
Cleaning time
- Description: 吸尘器本次清扫持续的时间。如果当前未在清扫,则显示上一次清扫耗时。
-
Cleaning progress
- Description: 仅适用于部分较新设备 - 表示当前清扫已完成的百分比。
-
Dock error
- Description: 仅适用于非基础底座 - 表示吸尘器当前错误;若无错误则显示
Ok。
- Description: 仅适用于非基础底座 - 表示吸尘器当前错误;若无错误则显示
-
Main brush time left
- Description: 距离 Roborock 建议更换主刷还剩多少时间。
-
Mop drying remaining time
- Description: 仅适用于非基础底座 - 距离拖布烘干完成并可继续清扫还剩多少时间。
-
Side brush time left
- Description: 距离 Roborock 建议更换边刷还剩多少时间。
-
Filter time left
- Description: 距离 Roborock 建议更换吸尘器滤网还剩多少时间。
-
Maintenance brush time left
- Description: 距离 Roborock 建议更换底座维护刷还剩多少时间。
-
Strainer time left
- Description: 距离 Roborock 建议更换底座滤网还剩多少时间。具体可能指水过滤器或清洁托盘,取决于您的设备。
-
Status
- Description: 吸尘器当前状态。通常表示当前正在执行的动作,例如
spot_cleaning或docking。
- Description: 吸尘器当前状态。通常表示当前正在执行的动作,例如
-
Last clean begin
- Description: 吸尘器上一次开始清扫的时间。
-
Last clean end
- Description: 吸尘器上一次完成清扫的时间。
-
Total cleaning time
- Description: 吸尘器的累计清扫时长。
-
Total cleaning area
- Description: 吸尘器的累计清扫面积。
-
Total cleaning count
- Description: 吸尘器的累计清扫次数。
-
Vacuum error
- Description: 吸尘器当前错误(如果有)。
Time
-
Do not disturb begin
- Description: 启用 Do not disturb 后,吸尘器在此时间点之后不会运行,也不会发声。
-
Do not disturb end
- Description: 启用 Do not disturb 后,吸尘器在此时间点之前不会运行,也不会发声。
Switch
-
Child lock
- Description: 禁用吸尘器上的实体按键。按下按键不会有任何反应。
-
Status indicator light
- Description: 这是吸尘器顶部的 LED。其颜色会根据吸尘器状态变化。
-
Do not disturb
- Description: 在您于 App 或 time 实体中设置的时间段内启用 Do not disturb。启用后,吸尘器不会运行,也不会发声。
Number
- Volume
- Description: 允许您控制机器人的语音音量。例如播报 “Starting cleaning” 时的音量。通过该实体可将音量设为 0%,而 App 最低仅允许设置到 20%。
Button
目前有四个按钮可用于重置吸尘器的不同维护项目。按钮一旦按下便无法撤销。因此,这些按钮默认禁用,以避免误触。
-
Reset sensor consumable
- Description: 吸尘器传感器建议每使用 30 小时后清洁一次。
-
Reset side brush consumable
- Description: 边刷建议每 200 小时更换一次。
-
Reset main brush consumable
- Description: 主刷/滚刷建议每 300 小时更换一次。
-
Reset air filter
- Description: 空气滤网建议每 150 小时更换一次。
此外,某些吸尘器支持在 App 中设置例程。每个例程都会创建一个按钮实体,允许您直接触发它。
操作
操作:设置吸尘器前往指定位置
roborock.set_vacuum_goto_position 操作用于让吸尘器前往指定坐标。
- Data attribute:
entity_id- Description: 仅作用于指定机器人。
- Optional: 否。
- Data attribute:
x- Description: X 坐标,整数值。充电座位于 x=25500。
- Optional: 否。
- Data attribute:
y- Description: Y 坐标,整数值。充电座位于 y=25500。
- Optional: 否。
操作:获取吸尘器当前位置
roborock.get_vacuum_current_position 操作用于获取吸尘器当前位置。
这是一次云端调用,应仅用于诊断,不适合在自动化中频繁使用。
频繁请求可能会触发速率限制。
- Data attribute:
entity_id- Description: 仅作用于指定机器人。
- Optional: 否。
示例:
-
Result: 您会得到类似如下的响应:
操作:获取地图
roborock.get_maps 操作会返回设备上可用的地图,以及每张地图上已命名房间的详细信息。
- Data attribute:
entity_id- Description: 获取指定设备的地图。
- Optional: 否。
该操作会返回地图名称、房间名称及其 ID。有关如何使用地图响应的更多信息,请参阅 我该如何清扫指定房间?。
Dyad 设备
Roborock 干湿两用吸尘器目前通过 MQTT 连接暴露部分实体,因此当前依赖云端。
Sensor
-
Status
- Description: 当前设备状态。通常表示当前正在执行的动作,例如
drying或charging。
- Description: 当前设备状态。通常表示当前正在执行的动作,例如
-
Battery
- Description: 当前设备电量。
-
Filter time left
- Description: 距离 Roborock 建议清洁/更换滤网还剩多少时间。
-
Brush time left
- Description: 距离 Roborock 建议清洁/更换刷头还剩多少时间。
-
Error
- Description: 当前设备错误;如果没有错误,则显示
None。
- Description: 当前设备错误;如果没有错误,则显示
-
Total cleaning time
- Description: 干湿两用吸尘器的累计清洁时长。
Zeo 实体
Roborock Zeo One 当前通过 MQTT 连接暴露部分实体,因此目前依赖云端。
Sensor
-
State
- Description: 洗衣机当前状态。例如
washing或rinsing。
- Description: 洗衣机当前状态。例如
-
Countdown
- Description: 距离机器开始运行的倒计时。
-
Washing left
- Description: 距离洗衣结束还剩多少时间。
-
Error
- Description: Zeo 当前错误(如果有)。
删除集成
此集成遵循标准删除流程,无需额外步骤。
To remove an integration instance from Home Assistant
- Go to Settings > Devices & services and select the integration card.
- From the list of devices, select the integration instance you want to remove.
- Next to the entry, select the three-dot
menu. Then, select Delete.
常见问题
我可以把 Mi Home App 与此集成一起使用吗?
不可以。此集成在设置时需要使用 Roborock App 中的信息,并通过 Roborock 协议与设备通信。您的吸尘器必须已同步到 Roborock App。
我可以阻止该设备访问互联网吗?
目前还不行。当吸尘器与互联网断开时,它会尝试断开 Wi-Fi 并不断重新连接,直到能够访问 Roborock 服务器。
支持哪些设备?
如果您的设备可以添加到 Roborock App 中,那么通常就是受支持的。不过,一些较旧的吸尘器(例如 Roborock S5)必须通过 Mi Home App 连接,并可在 Home Assistant 中通过 Xiaomi Miio 集成进行设置。
未来会支持哪些功能?
我们正在为核心集成增加更多功能。我们已经逆向分析出超过 100 条命令。目前文档仍较为基础,我们也希望用户帮助我们将其补充得更完整。以下是我们计划添加到 Home Assistant Core 的一些功能,感谢您的耐心等待。
- 按房间选择性清扫
- 底座控制
- 手动遥控吸尘器
- 错误、清扫时间、耗材等状态信息
- 查看摄像头
- 查看地图
我该如何清扫指定房间?
我们计划在未来简化这一流程,但目前仍需要多步操作。
-
先确保已在 Roborock App 中为房间命名;否则它们不会出现在调试日志中。
-
前往 Settings > Developer tools > Actions > Roborock: Get Maps。将您的吸尘器选作实体。请注意,房间 ID 和名称只会针对当前选中的地图更新。
-
Request: 您的请求应类似如下:
-
Result: 您会得到类似如下的响应:
-
-
返回 Settings > Developer tools > Actions > Vacuum: Send Command,然后将命令填为
app_segment_clean,并在segments中填入您想清扫的两位数房间 ID 列表。接着添加repeat,并填入 1 到 3 之间的数字,用来指定这些区域要清扫几次。
示例:
故障排除
我收到 invalid 或 no user agreement 错误,但 App 中什么也没显示
Roborock 服务器要求您先接受用户协议才能使用 API,这可能会在设置期间阻止 Home Assistant。此外,即便您之前已经接受过,Roborock 也可能会再次要求您重新确认用户协议。要让 Home Assistant 能使用 Roborock API,请执行以下步骤:
- 打开 Roborock App。
- 进入 Profile > About Us > User Agreement & Privacy Policy。
- 点击 Revoke authorization。
- 重新登录并接受协议。
- 重新加载 Roborock 集成!
集成提示无法连接我的吸尘器、正在使用云 API,或我遇到了网络问题
此集成既能通过云 API 控制设备,也能通过本地 API 控制设备。如果本地 API 无法访问,它就会退回到云 API。我们建议尽量只使用本地 API,以帮助避免触发速率限制。
修复此问题所需的具体步骤取决于您的网络环境。以下是一些通用排查建议:
- 确保吸尘器可以通过 8883 端口访问外网。
- 确保吸尘器可以通过 TCP 58867 和 UDP 58866 端口与 Home Assistant 实例通信。
- 如果您使用了 Pi-Hole、AdGuard 或其他会修改 DNS 的工具,请确保吸尘器被加入例外名单。
- 为吸尘器设置静态 IP。
- 检查路由器管理页面。如果设备频繁掉线,您需要优先改善 Wi-Fi 网络质量。
我的设备每天凌晨 3 点左右会变为 unavailable,该怎么解决?
每天夜里,吸尘器都会与互联网断开约一分钟,然后自动重新连接。在设备重新可达之前,集成会显示为 unavailable。这并不是集成本身的问题,而是集成对设备状态变化的正常反应。
集成提示未找到设备,但我的账户里明明有设备
某些设备由于使用了不同于其他设备的协议,因此尚未获得支持。请确保您使用的是最新版本的 Home Assistant。
日志中出现 rate limiting 相关信息,我该怎么办?
此集成所依赖的 Python 包内置了速率限制机制。这是为了避免您的实例向 Roborock 服务器发送过多请求,从而导致 IP 被封。最佳做法是先将该集成停用 24 小时。
同时,也建议尽量找出在您环境中触发该错误的根本原因。一个常见原因是:有些用户写了脚本,一旦集成变为 unavailable 就自动重载。如果设备卡住并耗尽电量,系统就会频繁重载集成,从而触发速率限制。
添加集成时提示 region 不正确
我们建议将区域设置为 Auto。如果由于您在多个区域拥有账户而导致此方法无效,请尝试以下步骤:
- 如果您曾误在错误的 Roborock 服务器区域创建过账户,请使用 Roborock App 将其删除。
- 您账户所在的 Roborock 服务器区域不一定与实际国家一致。设置集成时,您可以选择要登录的 Roborock 服务器区域,可选项有 US、EU、RU 和 CN;您可能需要尝试一个与预期不同的区域。大多数俄罗斯和中国以外的用户都位于 US 或 EU 服务器区域。
- 请注意,App 中显示的
Region实际上是您账户注册所在的国家,并不总是与集成所需的区域一致。

