MQTT 热水器

mqtt 热水器平台允许您控制支持 MQTT 的热水器设备。

配置

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

# 示例 configuration.yaml 条目
mqtt:
  - water_heater:
      name: Boiler
      mode_command_topic: "basement/boiler/mode/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 时,这将控制所需的条件以将实体设置为 可用。有效条目是 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 一起使用。

current_temperature_template template (Optional)

一个模板,通过该模板将渲染在 current_temperature_topic 上接收到的值。

current_temperature_topic string (Optional)

监听当前温度的 MQTT 主题。接收到的值为 "None" 将重置当前温度。空值 (''') 将被忽略。

device map (Optional)

关于此热水器设备所组成的设备的信息,以便将其绑定到 设备注册表。仅通过 MQTT 发现 和在设置了 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 list | string (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)

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

encoding string (Optional, default: utf-8)

接收和发布消息的有效载荷编码。设置为 "" 可禁用传入有效载荷的解码。

entity_category string (Optional)

实体的 类别

entity_picture string (Optional)

实体的图片 URL。

initial integer (Optional)

设置初始目标温度。默认值取决于温度单位,将是 43.3°C 或 110°F。

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

max_temp float (Optional)

可用的最大设置点。默认值取决于温度单位,将是 60°C 或 140°F。

min_temp float (Optional)

可用的最小设置点。默认值取决于温度单位,将是 43.3°C 或 110°F。

mode_command_template template (Optional)

渲染发送到 mode_command_topic 的值的模板。

mode_command_topic string (Optional)

用于发布命令以更改热水器操作模式的 MQTT 主题。

mode_state_template template (Optional)

渲染在 mode_state_topic 上接收到的值的模板。

mode_state_topic string (Optional)

订阅以获取热水器操作模式更改的 MQTT 主题。如果未设置此项,操作模式将在乐观模式下工作(见下文)。接收到的 “None” 有效载荷将重置为 unknown 状态。空有效载荷将被忽略。

modes list (Optional)

支持的模式列表。需要是默认值的子集。

Default:

[“off”, “eco”, “electric”, “gas”, “heat_pump”, “high_demand”, “performance”]

name string (Optional, default: MQTT 热水器)

热水器的名称。如果只关注设备名称,则可以设置为 null

object_id string (Optional)

用于自动生成 entity_id 时使用的 name

optimistic boolean (Optional)

定义热水器是否在乐观模式下工作的标志。

Default:

true 如果未定义状态主题,否则为 false

payload_available string (Optional, default: online)

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

payload_not_available string (Optional, default: offline)

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

payload_off string (Optional, default: OFF)

表示禁用状态的有效载荷。

payload_on string (Optional, default: ON)

表示启用状态的有效载荷。

platform string Required

必须为 water_heater。仅在 MQTT 自动发现设备消息 中允许和要求。

power_command_template template (Optional)

渲染发送到 power_command_topic 的值的模板。value 参数是为 payload_onpayload_off 设置的有效载荷。

power_command_topic string (Optional)

用于发布命令以更改热水器电源状态的 MQTT 主题。如果通过 water_heater.turn_on 打开热水器,将发送使用 payload_on 配置的有效载荷;如果通过 water_heater.turn_off 关闭热水器,将发送使用 payload_off 配置的有效载荷。请注意,通过 water_heater.turn_onwater_heater.turn_off 操作不支持乐观模式。调用这些操作将向设备发送电源命令,但不会乐观更新热水器的状态。热水器设备应通过 mode_state_topic 报告其状态。

precision float (Optional, default: 摄氏度为 0.1,华氏度为 1.0。)

此设备的期望精度。可用于匹配实际热水器的精度。支持的值为 0.10.51.0

qos integer (Optional, default: 0)

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

retain boolean (Optional, default: false)

定义发布的消息是否应设置保留标志。

temperature_command_template template (Optional)

渲染发送到 temperature_command_topic 的值的模板。

temperature_command_topic string (Optional)

用于发布命令以更改目标温度的 MQTT 主题。

temperature_state_template template (Optional)

渲染在 temperature_state_topic 上接收到的值的模板。

temperature_state_topic string (Optional)

订阅目标温度更改的 MQTT 主题。如果未设置此项,则目标温度将在乐观模式下工作(见下文)。接收到的 "None" 值将重置目标温度。空值 (''') 将被忽略。

temperature_unit string (Optional)

定义设备的温度单位,CF。如果未设置此项,则温度单位设置为系统温度单位。

unique_id string (Optional)

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

value_template template (Optional)

默认模板,用于在 所有 *_state_topic 上渲染有效载荷。

乐观模式

如果某个属性在 乐观模式 下工作(当相应的状态主题未设置时),Home Assistant 将假设发布到命令主题的任何状态更改都能生效,并在发布到命令主题后立即更改 entity实体表示 Home Assistant 中的传感器、执行器或功能。实体用于监控物理属性或控制其他实体。实体通常是设备或服务的一部分。 [Learn more] 的内部状态。如果它不在乐观模式下工作,entity实体表示 Home Assistant 中的传感器、执行器或功能。实体用于监控物理属性或控制其他实体。实体通常是设备或服务的一部分。 [Learn more] 的内部状态仅在设备通过状态主题确认所请求的更新时更新。您可以通过将 optimistic 选项设置为 true 来强制启用乐观模式。当设置时,即使定义了状态主题,内部状态也将始终更新。

使用模板

对于所有 *_state_topic,可以指定一个模板,该模板将用于渲染这些主题上的传入有效载荷。此外,可以将适用于所有状态主题的默认模板指定为 value_template。如果您接收到的有效载荷例如是 JSON 格式,这可能会很有用。由于在 JSON 中,带引号的字符串(例如,"foo")只是字符串,因此这也可以用于去引号。

假设您通过 mode_state_topic 接收到的操作模式是 "off",但模式实际上仅称为 off,您可以这样做:

mqtt:
  - water_heater:
      name: Boiler
      modes:
        - "off"
        - "eco"
        - "performance"
      mode_command_topic: "basement/boiler/mode/set"
      mode_state_topic: "basement/boiler/mode/state"
      mode_state_template: "{{ value_json }}"

这将解析传入的 "off",结果为 off。显然,在这种情况下,您也可以只设置 value_template: "{{ value_json }}"

同样,对于 *_command_topic,可以指定一个模板来渲染这些主题上的传出有效载荷。

示例

完整的配置示例如下所示。

# 完整的 configuration.yaml 示例条目
mqtt:
  - water_heater:
      name: Boiler
      modes:
        - "off"
        - "eco"
        - "performance"
      mode_state_topic: "basement/boiler/mode"
      mode_command_topic: "basement/boiler/mode/set"
      mode_command_template: "{{ value if value=="off" else "on" }}"
      temperature_state_topic: "basement/boiler/temperature"
      temperature_command_topic: "basement/boiler/temperature/set"
      current_temperature_topic: "basement/boiler/current_temperature"
      precision: 1.0