模板罩盖
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 中的所有其他选项。
cover.template.publish 动作
Section titled “cover.template.publish 动作”你还可以在 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();