Ecovacs

ecovacs integration集成将 Home Assistant 与您的设备、服务等连接和集成。 [Learn more] 是将 Ecovacs(Deebot)吸尘器和割草机集成的主要集成。您需要您的 Ecovacs 帐户信息(用户名、密码)以便发现和控制您帐户中的吸尘器和割草机。

配置

要将 Ecovacs integration 添加到您的 Home Assistant 实例中,请使用此 My 按钮:

手动配置步骤

如果上述 My 按钮不起作用,您也可以手动执行以下步骤:

附加说明:在密码编码过程中存在一些问题。在密码中使用某些特殊字符(例如,-)无法正常工作。

启用 advanced_mode 后,用户可以通过云服务器使用自托管实例。自托管有一些要求和限制。请参阅 自托管配置 以获取更多详细信息。

提供的实体

Ecovacs 集成为与您的 Ecovacs 帐户连接的每个设备提供一个吸尘器 entity实体表示 Home Assistant 中的传感器、执行器或功能。实体用于监控物理属性或控制其他实体。实体通常是设备或服务的一部分。 [Learn more]

使用吸尘器实体,您可以监控和控制您的 Ecovacs Deebot 吸尘器。

此外,根据您的型号,集成提供以下实体:

  • 二进制传感器
    • 拖把已连接:如果拖把连接则为开启状态。注意:如果在 Home Assistant 中未看到状态更改为 拖把已连接,则您可能需要唤醒机器人以推送状态更改。某些型号仅在吸尘器的整体状态发生变化时报告实体状态更改。例如,如果整体状态从 停靠 更改为 清洁
  • 按钮
    • 重置寿命:对于每个支持的组件,将创建一个按钮实体以重置寿命。默认情况下全部禁用。
    • 重新定位:触发手动重新定位的按钮实体。
    • 站点操作:对于每个支持的站点操作,将创建一个按钮实体。
  • 事件
    • 最后任务:提供作为 event_type 的停止原因
  • 图像
    • 地图:以 SVG 格式的图纸/地图图像。
  • 数字
    • 清洁次数:设置清洁区域的次数。
    • 切割方向:设置割草机切割方向(从 0 到 180 度)。
    • 音量:设置音量。
  • 选择
    • 水量:指定清洁时使用的水量。
    • 工作模式:指定机器人应如何清洁的模式。
  • 传感器
    • 错误:错误代码和错误描述。0 表示无错误。默认情况下禁用。
    • 寿命:对于每个支持的组件,将创建一个具有剩余寿命的实体。
    • 网络:将创建以下网络相关实体。默认情况下全部禁用。
      • IP 地址
      • Wi-Fi RSSI
      • Wi-Fi SSID
    • 清洁周期
      • 区域:已清洁区域
      • 时间:已清洁时间
    • 站点状态:站点状态枚举传感器。查看选项以查看所有可能的状态。
    • 总统计:在每个清洁周期后更新:
      • 区域:总清洁区域
      • 清洁次数:清洁的次数
      • 时间:总清洁时间
  • 开关
    • 高级模式:启用高级模式。默认情况下禁用。
    • 边界开关:启用边界开关。默认情况下禁用。
    • 地毯自动风扇速度提升:如果检测到地毯,则启用最大风扇速度。默认情况下禁用。
    • 儿童锁:启用儿童锁。默认情况下禁用。
    • 移动上升警告:启用设备移动上升警告。默认情况下禁用。
    • 跨越地图边界警告:启用跨越地图边界的警告。默认情况下禁用。
    • 持续清洁:启用持续清洁,这意味着如果机器人需要在中间充电,则恢复清洁工作。默认情况下禁用。
    • 安全保护:启用“安全保护”功能。默认情况下禁用。
    • 真实检测:启用“真实检测”功能。默认情况下禁用。

吸尘器

ecovacs 吸尘器平台允许您监控和控制您的 Ecovacs Deebot 吸尘器。

集成寿命

Deebot 吸尘器上组件的剩余寿命将在吸尘器实体的属性中报告。值为表示剩余寿命百分比的整数。

以下是如何使用 模板传感器 提取过滤器寿命到其自己传感器的示例:

# 配置文件示例 entry
template:
  - sensor:
    - name: "吸尘器过滤器剩余寿命"
      unit_of_measurement: "%"
      state: "{{ state_attr('vacuum.my_vacuum_id', 'component_filter') }}"

或者,如果您想要一个简单的二进制传感器,当过滤器需要更换时(5%或更少)变为 开启

# 配置文件示例 entry
template:
  - binary_sensor:
    - name: "吸尘器过滤器"
      device_class: problem
      state: "{{ state_attr('vacuum.my_vacuum_id', 'component_filter') <= 5 }}"

处理错误

吸尘器实体具有一个 error 属性,将包含来自吸尘器的 最新 错误消息。没有全面的错误消息列表,因此您可能需要进行一些实验以确定您的吸尘器可以发送的错误消息。

如果吸尘器触发了“无错误”事件,error 属性将更改为 None。但是,请注意,所有类型的错误并不总是如此。

或者,您可以使用 ecovacs_error 事件来监控错误。此事件将包含一个数据负载,格式如下:

{
  "entity_id": "vacuum.deebot_m80",
  "error": "an_error_name"
}

最后,如果吸尘器变得不可用(通常是由于闲置且从充电器上长时间关闭以致完全断电),则吸尘器的 status 属性将更改为 offline,直到重新开机。

获取设备和充电器坐标

该集成有一个 raw_get_positions 操作,用于检索设备和充电器的坐标。

示例:

action: ecovacs.raw_get_positions
target:
  entity_id: vacuum.deebot_n8_plus
操作响应示例
该操作返回原始响应,其中包含 `resp -> body -> data` 中的坐标列表,如下所示:
vacuum.deebot_n8_plus:
  ret: ok
  resp:
    header:
      pri: 1
      tzm: 480
      ts: "1717748487712"
      ver: 0.0.1
      fwVer: 1.2.0
      hwVer: 0.1.1
    body:
      code: 0
      msg: ok
      data:
        deebotPos:
          x: 1
          y: 5
          a: 85
          invalid: 0
        chargePos:
          - x: 5
            y: 9
            a: 85
            t: 1
            invalid: 0
        mid: "200465850"
  id: 5o81
  payloadType: j

自托管配置

根据您自托管实例的设置,您可以使用以下设置连接到服务器:

  • 用户名:输入您实例中配置的电子邮件地址。如果禁用身份验证,您可以输入任何有效的电子邮件地址。
  • 密码:输入您实例中配置的密码。如果禁用身份验证,您可以输入任何字符串(字符序列)。
  • REST URL:http://SELF_HOSTED_INSTANCE:8007
  • MQTT URL:mqtts://SELF_HOSTED_INSTANCE:8883
  • 验证 MQTT SSL 证书:禁用

SELF_HOSTED_INSTANCE 替换为您的实例的 IP 地址或主机名。

上述配置基于 Bumper 的文档 中的信息。

故障排除

在任何情况下,当报告问题时,请启用 调试日志,重新启动集成,并在问题再次发生时立即停止调试日志 (下载调试日志文件将自动开始)。进一步 如果可能,请下载 诊断 数据。如果您已收集调试日志和诊断数据,请在问题报告中提供它们。

您的设备不受支持?

由于 Ecovacs 不提供有关其 API 的公共文档,因此对设备的支持基于对设备通信的逆向工程。这种逆向工程只能由拥有该设备并知道如何进行逆向工程的人进行。因此,设备的支持在很大程度上依赖于社区的贡献。 如果您的设备不受支持,请请求帮助或直接为您的设备的支持贡献到 deebot_client 库。