跳转到内容

模板罩盖

template 罩盖平台允许你使用少量 动作和一个值 lambda 创建简单的罩盖。定义后,它将自动出现在 Home Assistant 中作为一个罩盖,并可以通过前端控制。

# 配置示例
cover:
- platform: template
name: "Template Cover"
lambda: |-
if (id(top_end_stop).state) {
return COVER_OPEN;
} else {
return COVER_CLOSED;
}
open_action:
- switch.turn_on: open_cover_switch
close_action:
- switch.turn_on: close_cover_switch
stop_action:
- switch.turn_on: stop_cover_switch
optimistic: true

可选 lambda 的可能返回值:

  • return COVER_OPEN; / return 1.0f; 如果罩盖应报告为 OPEN。
  • return COVER_CLOSED; / return 0.0f 如果罩盖应报告为 CLOSED。
  • return {}; 如果应重复上一个状态。
  • 如果将 has_position 设为 true,则返回 0.0f 到 1.0f 之间的值(含端点)。
  • lambda (可选,lambda): 重复求值以获取罩盖当前状态/位置的 Lambda。

  • open_action (可选,Action):当远程(如 Home Assistant 的前端)请求罩盖开启时应执行的 动作。

  • close_action (可选,Action):当远程请求罩盖关闭时应执行的 动作。

  • stop_action (可选,Action):当远程请求罩盖停止时应执行的 动作。

  • toggle_action (可选,Action):当远程请求切换罩盖时应执行的 动作。

  • optimistic (可选,布尔值):是否以乐观模式运行——在此模式下, 发送到模板罩盖的任何命令都将立即更新报告的状态/位置,无需使用 lambda。默认为 false。

  • assumed_state (可选,布尔值):罩盖的真实状态/位置是否未知。 这将使 Home Assistant 前端为 OPEN 和 CLOSE 动作都显示按钮,而不是 隐藏其中一个。默认为 false。

  • has_position (可选,布尔值):此罩盖是否以浮点数发布其位置。 默认情况下(false),罩盖仅发布 OPEN/CLOSED 位置。

  • tilt_action (可选,Action):当远程(如 Home Assistant 的前端)请求将罩盖设置为特定 倾斜位置时应执行的 动作。所需倾斜值在 lambda 中的 tilt 变量中可用。

  • tilt_lambda (可选,lambda): 重复求值以获取罩盖当前倾斜位置的 Lambda。

  • position_action (可选,Action):当远程(如 Home Assistant 的前端)请求将罩盖设置为特定 位置时应执行的 动作。所需位置值在 lambda 中的 pos 变量中可用。 仅当将 has_position 设为 true 时使用。

  • Cover 中的所有其他选项。

你还可以在 YAML 文件的其他地方使用 cover.template.publish 动作 向模板罩盖发布状态。

# 配置示例
cover:
- platform: template
name: "Template Cover"
id: template_cov
# 在某个触发器中
on_...:
- cover.template.publish:
id: template_cov
state: OPEN
# 模板化
- cover.template.publish:
id: template_cov
state: !lambda 'return COVER_OPEN;'

配置选项:

  • id (必填,ID):模板罩盖的 ID。

  • state (可选,可模板化): 要发布的状态。OPEN 或 CLOSED 之一。如果使用 lambda,使用 COVER_OPEN 或 COVER_CLOSED。

  • position (可选,浮点数,可模板化): 要发布的位置,从 0(CLOSED)到 1.0(OPEN)。

  • tilt (可选,浮点数,可模板化): 要发布的倾斜位置,从 0(CLOSED)到 1.0(OPEN)。

  • current_operation (可选,字符串,可模板化): 要发布的当前操作模式。IDLE、OPENING 和 CLOSING 之一。如果使用 lambda,使用 COVER_OPERATION_IDLE、COVER_OPERATION_OPENING 和 COVER_OPERATION_CLOSING。

NOTE

此动作也可以在 lambdas 中编写:

id(template_cov).position = COVER_OPEN;
id(template_cov).tilt = 0.5;
id(template_cov).publish_state();