模板 Cover
template Cover 平台允许您仅用几个动作和一个值 lambda 创建简单的 Cover。定义后,它将自动作为 Cover 出现在 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;如果 Cover 应报告为打开。return COVER_CLOSED;/return 0.0f如果 Cover 应报告为关闭。return {};如果应重复上一个状态。- 如果
has_position设置为true,则返回0.0f到1.0f(含)之间的值。
-
lambda (可选, lambda): 反复评估以获取 Cover 当前状态/位置的 Lambda。
-
open_action (可选, 动作): 当远程(如 Home Assistant 前端)请求打开 Cover 时应执行的动作。
-
close_action (可选, 动作): 当远程请求关闭 Cover 时应执行的动作。
-
stop_action (可选, 动作): 当远程请求停止 Cover 时应执行的动作。
-
toggle_action (可选, 动作): 当远程请求切换 Cover 时应执行的动作。
-
optimistic (可选, boolean): 是否以乐观模式运行 - 在此模式下,发送到模板 Cover 的任何命令都会立即更新报告的状态/位置,无需使用 lambda。默认为
false。 -
assumed_state (可选, boolean): Cover 的真实状态/位置是否未知。这将使 Home Assistant 前端显示打开和关闭两个动作的按钮,而不是隐藏其中一个。默认为
false。 -
has_position (可选, boolean): 此 Cover 是否将其位置作为浮点数发布。默认情况下(
false),Cover 仅发布打开/关闭位置。 -
tilt_action (可选, 动作): 当远程(如 Home Assistant 前端)请求将 Cover 设置为特定倾斜位置时应执行的动作。所需的倾斜位置在 lambda 中作为
tilt变量可用。 -
tilt_lambda (可选, lambda): 反复评估以获取 Cover 当前倾斜位置的 Lambda。
-
position_action (可选, 动作): 当远程(如 Home Assistant 前端)请求将 Cover 设置为特定位置时应执行的动作。所需的位置在 lambda 中作为
pos变量可用。仅在has_position设置为true时使用。 -
Cover 的所有其他选项。
cover.template.publish 动作
Section titled “cover.template.publish 动作”您还可以使用 cover.template.publish 动作从 YAML 文件的其他位置向模板 Cover 发布状态。
# 示例配置条目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): 模板 Cover 的 ID。
-
state (可选, 可模板化): 要发布的状态。
OPEN、CLOSED之一。如果使用 lambda,请使用COVER_OPEN或COVER_CLOSED。 -
position (可选, 可模板化, float): 要发布的位置,从 0(关闭)到 1.0(打开)
-
tilt (可选, 可模板化, float): 要发布的倾斜位置,从 0(关闭)到 1.0(打开)
-
current_operation (可选, 可模板化, string): 要发布的当前操作模式。
IDLE、OPENING和CLOSING之一。如果使用 lambda,请使用COVER_OPERATION_IDLE、COVER_OPERATION_OPENING和COVER_OPERATION_CLOSING。
NOTE
此动作也可以在 lambda 中编写:
id(template_cov).position = COVER_OPEN;id(template_cov).tilt = 0.5;id(template_cov).publish_state();