MQTT 场景

mqtt 场景平台让你控制你的 MQTT 使能场景。

配置

要在你的安装中启用 MQTT 场景,请将以下内容添加到你的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中:

# 示例 configuration.yaml 条目
mqtt:
  - scene:
      command_topic: zigbee2mqtt/living_room_group/set

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)

发布 payload_on 到的 MQTT 主题以激活场景。

device map (Optional)

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

configuration_url string (Optional)

可以管理此设备配置的网页链接。可以是 HTTP 或 HTTPS 链接。

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 中的设备拓扑。

enabled_by_default boolean (Optional, default: true)

定义实体首次添加时是否应启用的标志。

entity_category string (Optional)

实体的 类别

entity_picture string (Optional)

实体的图片 URL。

encoding string (Optional, default: utf-8)

发布消息的编码。

icon icon (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 传感器 文档中找到。

name string (Optional, default: MQTT 场景)

显示此场景时使用的名称。

object_id string (Optional)

替代 name 用于自动生成 entity_id

payload_available string (Optional, default: online)

表示可用状态的有效负载。

payload_not_available string (Optional, default: offline)

表示不可用状态的有效负载。

payload_on string (Optional, default: ON)

激活 MQTT 场景时将发送到 command_topic 的有效负载。

platform string Required

必须是 scene。仅在 MQTT 自动发现设备消息 中允许和必要。

qos integer (Optional, default: 0)

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

retain boolean (Optional, default: false)

发布的消息是否应开启保留标志。

unique_id string (Optional)

唯一标识此场景实体的 ID。如果两个场景具有相同的唯一 ID,Home Assistant 将引发异常。在使用基于设备的发现时必填。

Important

确保你的主题完全匹配。some-topic/some-topic 是不同的主题。

示例

在这一部分中,您将找到一些关于如何使用 MQTT 场景的真实例子。

完整配置

下面的示例显示了场景的完整配置。

# 示例 configuration.yaml 条目
mqtt:
  - scene:
      unique_id: living_room_party_scene
      name: "聚会场景"
      command_topic: "home/living_room/party_scene/set"
      availability:
        - topic: "home/living_room/party_scene/available"
      payload_on: "ON"
      qos: 0
      retain: true
      device:
        name: "客厅"
        identifiers: "livingroom_lights" 

使用 JSON 有效负载

下面的示例显示了使用 JSON 有效负载的配置。

# 示例 configuration.yaml 条目
mqtt:
  - scene:
      name: 客厅蓝色场景
      unique_id: living_room_blue_scene
      command_topic: "home/living_room/set"
      payload_on: '{"activate_scene": "蓝色场景"}'