Home Assistant中使用MQTT窗帘/卷帘的示例配置

Home Assistant中使用MQTT窗帘/卷帘的示例配置缩略图

Home Assistant允许您控制 MQTT 窗帘/卷帘(如百叶窗、卷帘或车库门)。

Home Assistant中使用MQTT窗帘/卷帘的示例配置概述

在理想情况下,MQTT 设备将有一个状态主题,用于发布状态更改。如果这些消息以设置标志进行发布,遮盖将在订阅后立即接收到状态更新,并且在 Home Assistant 启动时会显示正确的状态。否则,在 Home Assistant 中显示的初始状态将是未知(unknown)。

窗帘/卷帘的相对位置存储在一个属性中,其中 0 表示设备关闭,所有其他中间位置表示设备处于打开状态。

如果没有定义状态主题,遮阳将在即时更新模式下工作。在此模式下,窗帘/卷帘将在 Home Assistant 发送的每个命令后立即更改状态(打开或关闭)。如果定义了状态主题,窗帘/卷帘将等待匹配或者之前的消息,然后在 Home Assistant 中更改状态。

即使定义了状态主题,也可以强制使用即时更新模式。如果您遇到窗帘/卷帘操作不正确的情况,请尝试启用它。

还可选择支持 MQTT 窗帘/卷帘设备的在线和离线消息(birth 和 LWT 消息)。在正常操作期间,如果 MQTT 窗帘/卷帘设备脱机(即发布到某个主题),Home Assistant 将显示窗帘/卷帘为“不可用”。如果使用设置标志发布这些消息,窗帘/卷帘将在订阅后立即更新,并且 Home Assistant 启动时将显示窗帘/卷帘的正确可用性状态。如果不设置标志,Home Assistant 启动时将显示窗帘/卷帘为“不可用”。

要在您的安装中使用 MQTT 窗帘/卷帘,请将以下内容添加到您的 configuration.yaml 文件中:

要在您的安装中使用MQTT窗帘

# 示例 configuration.yaml 条目
cover:
  - platform: mqtt
    name: "MQTT 窗帘"
    command_topic: "home-assistant/cover/set"

配置变量:

  • name(可选):窗帘的名称。默认为 "MQTT 窗帘"。
  • command_topic(可选):用于发布命令以控制窗帘/卷帘状态的 MQTT 主题。
  • payload_open(可选):打开窗帘/卷帘的有效载荷。默认为 "OPEN"。
  • payload_close(可选):关闭窗帘/卷帘的有效载荷。默认为 "CLOSE"。
  • payload_stop(可选):停止窗帘/卷帘的有效载荷。默认为 "STOP"。
  • state_topic(可选):订阅以接收窗帘/卷帘状态消息的 MQTT 主题。
  • state_open(可选):表示打开状态的有效载荷。默认为 "open"。
  • state_closed(可选):表示关闭状态的有效载荷。默认为 "closed"。
  • availability_topic(可选):订阅以接收来自 MQTT 窗帘/卷帘设备的出生和 LWT 消息的 MQTT 主题。如果未定义,窗帘/卷帘的可用性状态将始终为 "available"。如果已定义,窗帘/卷帘的可用性状态将默认为 "unavailable"。
  • payload_available(可选):表示在线状态的有效载荷。默认为 "online"。
  • payload_not_available(可选):表示离线状态的有效载荷。默认为 "offline"。
  • optimistic(可选):定义窗帘/卷帘是否以即时更新模式工作的标志。默认情况下,如果未定义状态主题,则为 true;否则为 false。
  • qos(可选):在接收和发布消息时使用的最大 QoS 级别。默认为 0。
  • retain(可选):定义发布的消息是否应设置保留标志。默认为 false。
  • value_template(可选):定义从有效载荷中提取值的模板。
  • set_position_topic(可选):发布位置命令的 MQTT 主题。
  • set_position_template(可选):定义要发送到主题的位置的模板。传入的位置值可以在模板中使用 {{ value }}。如果未定义模板,则将数字位置(0-100)直接写入主题。
  • tilt_command_topic(可选):发布命令以控制窗帘/卷帘倾斜的 MQTT 主题。
  • tilt_status_topic(可选):订阅以接收倾斜状态更新值的 MQTT 主题。
  • tilt_min(可选):最小倾斜值。默认

为 0。

  • tilt_max(可选):最大倾斜值。默认为 100。
  • tilt_closed_value(可选):在命令上发送的值。默认为 0。
  • tilt_opened_value(可选):在命令上发送的值。默认为 100。
  • tilt_status_optimistic(可选):确定倾斜是否以即时更新模式工作的标志。默认情况下,如果未定义,则为 false;否则为 true。
  • tilt_invert_state(可选):确定打开/关闭是否被翻转;较高的值表示关闭,较低的值表示打开。默认为 False。

示例:

# 完整配置示例(无倾斜)
cover:
  - platform: mqtt
    name: "MQTT 窗帘/卷帘"  # 设备的名称
    command_topic: "home-assistant/cover/set"  # 用于发布窗帘/卷帘命令的 MQTT 主题
    state_topic: "home-assistant/cover/state"  # 订阅以接收窗帘/卷帘状态消息的 MQTT 主题
    availability_topic: "home-assistant/cover/availability"  # 订阅来自 MQTT 窗帘/卷帘设备的出生和 LWT 消息的 MQTT 主题
    qos: 0  # 接收和发布消息时使用的最大 QoS 级别
    retain: true  # 定义发布的消息是否应设置保留标志
    payload_open: "OPEN"  # 打开窗帘/卷帘的有效载荷
    payload_close: "CLOSE"  # 关闭窗帘/卷帘的有效载荷
    payload_stop: "STOP"  # 停止窗帘/卷帘的有效载荷
    state_open: "open"  # 表示打开状态的有效载荷
    state_closed: "closed"  # 表示关闭状态的有效载荷
    payload_available: "online"  # 表示在线状态的有效载荷
    payload_not_available: "offline"  # 表示离线状态的有效载荷
    optimistic: false  # 定义窗帘/卷帘是否以即时更新模式工作的标志
    value_template: '{{ value.x }}'  # 从有效载荷中提取值的模板
# 完整配置示例
cover:
  - platform: mqtt
    name: "MQTT 窗帘"  # 设备的名称
    command_topic: "home-assistant/cover/set"  # 用于发布窗帘/卷帘命令的 MQTT 主题
    state_topic: "home-assistant/cover/state"  # 订阅以接收窗帘/卷帘状态消息的 MQTT 主题
    availability_topic: "home-assistant/cover/availability"  # 订阅来自 MQTT 窗帘/卷帘设备的出生和 LWT 消息的 MQTT 主题
    qos: 0  # 接收和发布消息时使用的最大 QoS 级别
    retain: true  # 定义发布的消息是否应设置保留标志
    payload_open: "OPEN"  # 打开窗帘/卷帘的有效载荷
    payload_close: "CLOSE"  # 关闭窗帘/卷帘的有效载荷
    payload_stop: "STOP"  # 停止窗帘/卷帘的有效载荷
    state_open: "open"  # 表示打开状态的有效载荷
    state_closed: "closed"  # 表示关闭状态的有效载荷
    payload_available: "online"  # 表示在线状态的有效载荷
    payload_not_available: "offline"  # 表示离线状态的有效载荷
    optimistic: false  # 定义窗帘/卷帘是否以即时更新模式工作的标志
    value_template: '{{ value.x }}'  # 从有效载荷中提取值的模板
    tilt_command_topic: 'home-assistant/cover/tilt'  # 用于发布窗帘/卷帘倾斜命令的 MQTT 主题
    tilt_status_topic: 'home-assistant/cover/tilt-state'  # 订阅以接收窗帘/卷帘倾斜状态消息的 MQTT 主题
    tilt_min: 0  # 最小倾斜值
    tilt_max: 180  # 最大倾斜值
    tilt_closed_value: 70  # 关闭状态的倾斜值
    tilt_opened_value: 180  # 打开状态的倾斜值

为了进行测试,您可以使用附带的命令行工具或包发送 MQTT 消息,这将允许您手动操作您的窗帘/卷帘:

$ mosquitto_pub -h 127.0.0.1 -t home-assistant/cover/set -m "CLOSE"

这条命令用于关闭窗帘/卷帘。

payload_close(可

技术术语(共 6 个)—— 点击展开
MQTT轻量级物联网消息传输协议,基于发布/订阅模式,适合低带宽不稳定网络
Mosquitto轻量级开源 MQTT Broker,适合边缘与嵌入式部署
QoS服务质量等级,0 最多一次 / 1 至少一次 / 2 恰好一次
TopicMQTT 主题,消息路由的层级字符串,支持通配符 + 与 #
订阅客户端向 Broker 注册感兴趣的主题以接收消息
发布客户端向指定主题发送消息
来源/工具信息 —— 点击展开
来源 MQTT中文网(mqtt.cn) —— 国内领先的MQTT通信协议技术社区 分类 Home Assistant 字数 3549 字 · 阅读约 9 分钟 更新 2023-09-12 永久链接 https://www.mqtt.cn/596.html
推荐工具:MQTT调试助手 微信小程序
MQTT中文网官方推出的MQTT调试工具,支持 MQTT 3.1.1/5.0 实时连接调试、主题订阅、消息收发监控与报文分析。 无需安装,微信搜索「MQTT调试助手」即可使用。 电脑端入口:https://www.mqtt.cn/mqtttool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 mqtt.cn
📝 作者声明
本文由 MQTT中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口