MQTT 真空

mqtt 真空 integration集成将 Home Assistant 与您的设备、服务等连接和集成。 [Learn more] 允许您控制您的 MQTT 兼容真空。 MQTT 真空的初始状态 entity实体表示 Home Assistant 中的传感器、执行器或功能。实体用于监控物理属性或控制其他实体。实体通常是设备或服务的一部分。 [Learn more] 将设置为 unknown,可以通过设备发送 null 负载作为状态来重置。

配置

MQTT 真空配置部分。

Configuration Variables

availability list (Optional)

一系列订阅以接收可用性(在线/离线)更新的 MQTT 主题。不得与 availability_topic 一起使用。

payload_available string (Optional, default: online)

表示可用状态的负载。

payload_not_available string (Optional, default: offline)

表示不可用状态的负载。

topic string Required

订阅以接收可用性(在线/离线)更新的 MQTT 主题。

value_template template (Optional)

Defines a template to extract device’s availability from the topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.

availability_mode string (Optional, default: latest)

当配置了 availability 时,这控制设置实体为 available 所需的条件。有效条目为 allanylatest。如果设置为 all,则必须在所有配置的可用性主题上接收到 payload_available,才能标记该实体为在线。如果设置为 any,则必须在至少一个配置的可用性主题上接收到 payload_available,才能标记该实体为在线。如果设置为 latest,则在任何配置的可用性主题上接收到的最后一个 payload_availablepayload_not_available 控制可用性。

availability_template template (Optional)

Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.

availability_topic string (Optional)

订阅以接收可用性(在线/离线)更新的 MQTT 主题。不得与 availability 一起使用。

command_topic string (Optional)

发送控制真空的命令的 MQTT 主题。

device map (Optional)

关于此开关所属于的设备的信息,以将其绑定到 设备注册表。仅在设置了 unique_id 时有效。必须至少提供一个标识符或连接以识别设备。

configuration_url string (Optional)

可以管理此设备配置的网页链接。可以是 http://https:// 或内部 homeassistant:// URL。

connections list (Optional)

设备与外部世界的连接列表,作为元组 [connection_type, connection_identifier] 的列表。例如,网络接口的 MAC 地址:“connections”: [[“mac”, “02:5b:26:a8:dc:12”]]。

hw_version string (Optional)

设备的硬件版本。

identifiers string | list (Optional)

唯一标识设备的 ID 列表。例如序列号。

manufacturer string (Optional)

设备的制造商。

model string (Optional)

设备的型号。

model_id string (Optional)

设备的型号标识符。

name string (Optional)

设备的名称。

serial_number string (Optional)

设备的序列号。

suggested_area string (Optional)

如果设备尚未在某个区域内,建议一个区域。

sw_version string (Optional)

设备的固件版本。

via_device string (Optional)

设备的标识符,路由设备与 Home Assistant 之间的消息。此类设备的示例包括集线器或子设备的父设备。这用于在 Home Assistant 中显示设备拓扑。

encoding string (Optional, default: utf-8)

接收和发布消息的负载编码。设置为 "" 以禁用对传入负载的解码。

fan_speed_list string | list (Optional)

真空的可能风扇速度列表。

json_attributes_template template (Optional)

Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic. Usage example can be found in MQTT sensor documentation.

json_attributes_topic string (Optional)

订阅以接收 JSON 字典负载的 MQTT 主题,然后将其作为传感器属性设置。用法示例可以在 MQTT sensor 文档中找到。

name string (Optional, default: MQTT Vacuum)

真空的名称。如果只关注设备名称,则可以设置为 null

object_id string (Optional)

用于自动生成 entity_id 的替代项。

payload_available string (Optional, default: online)

表示可用状态的负载。

payload_clean_spot string (Optional, default: clean_spot)

发送到 command_topic 开始一个局部清洁周期的负载。

payload_locate string (Optional, default: locate)

发送到 command_topic 以定位真空(通常播放一首歌曲)的负载。

payload_not_available string (Optional, default: offline)

表示不可用状态的负载。

payload_pause string (Optional, default: pause)

发送到 command_topic 以暂停真空的负载。

payload_return_to_base string (Optional, default: return_to_base)

发送到 command_topic 以指示真空返回基座的负载。

payload_start string (Optional, default: start)

发送到 command_topic 开始清洁周期的负载。

payload_stop string (Optional, default: stop)

发送到 command_topic 以停止清洁的负载。

platform string Required

必须为 vacuum。仅在 MQTT 自动发现设备消息 中允许和必需。

qos integer (Optional, default: 0)

在接收和发布消息时要使用的最大 QoS 等级。

retain boolean (Optional, default: false)

发布的消息是否应具有保留标志。

send_command_topic string (Optional)

发布自定义命令到真空的 MQTT 主题。

set_fan_speed_topic string (Optional)

发布命令以控制真空风扇速度的 MQTT 主题。

state_topic string (Optional)

订阅以接收来自真空的状态消息的 MQTT 主题。在 state_topic 上接收的消息必须是一个有效的 JSON 字典,包含一个必需的 state 键和可选的 battery_levelfan_speed 键,如 示例 中所示。

supported_features string | list (Optional)

真空支持的功能列表(可能的值为 startstoppausereturn_homebatterystatuslocateclean_spotfan_speedsend_command)。

Default:

startstopreturn_homestatusbatteryclean_spot

unique_id string (Optional)

唯一标识此真空的 ID。如果两个真空具有相同的唯一 ID,Home Assistant 将引发异常。在基于设备的发现中使用时必需。

配置示例

# 示例 configuration.yaml 条目
mqtt:
  - vacuum:
      name: "MQTT Vacuum"
      supported_features:
        - start
        - pause
        - stop
        - return_home
        - battery
        - status
        - locate
        - clean_spot
        - fan_speed
        - send_command
      command_topic: "vacuum/command"
      set_fan_speed_topic: "vacuum/set_fan_speed"
      fan_speed_list:
        - min
        - medium
        - high
        - max
      send_command_topic: "vacuum/send_command"

MQTT 协议

该集成的配置期望类似以下的 MQTT 协议。

基本命令

MQTT 主题: vacuum/command

可能的 MQTT 负载:

  • start - 开始清洁
  • pause - 暂停清洁
  • return_to_base - 返回基座/码头
  • stop - 停止真空。
  • clean_spot - 初始化局部清洁周期
  • locate - 定位真空(通常通过播放一首歌曲)

发送自定义命令

真空的 send_command 允许三个参数:

  • entity_id
  • command
  • params - 可选

如果未提供 params,则作为负载发送命令到 MQTT send_command 主题。 如果提供了 params,服务会以如下结构发送 JSON 作为负载:

{
  'command': 'command',
  'param1-key': 'param1-value'
}

动作触发示例:

- alias: "基于传感器推送命令"
    triggers:
      - trigger: state
        entity_id: sensor.sensor
    actions:
      - action: vacuum.send_command
        target:
          entity_id: vacuum.vacuum_entity
        data:
          command: "custom_command"
          params:
            - key: value

MQTT 主题: vacuum/send_command

状态/传感器更新

MQTT 主题: vacuum/state

MQTT 负载:

{
    "battery_level": 61,
    "state": "docked",
    "fan_speed": "off"
}

状态必须是 Home Assistant 支持的真空状态之一:

  • 清洁中,
  • 停靠,
  • 暂停,
  • 空闲,
  • 返回,
  • 错误。

设置风扇速度

MQTT 主题: vacuum/set_fan_speed

可能的 MQTT 负载:

  • min - 最低风扇速度
  • medium - 中等风扇速度
  • high - 高风扇速度
  • max - 最大风扇速度

使用示例

无云小米真空的使用

此集成由无云的小米真空 Web 界面 Valetudo 支持。

复古改装非 Wi-Fi 真空

  • 使用 ESP8266 复古改装您的旧 Roomba。此代码库 提供 MQTT 客户端固件。
  • 如果您拥有非 Wi-Fi Neato,可以参考 此代码库,使用 Raspberry Pi 对旧 Neato 进行复古改装。