跳转到内容

模板 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.0f1.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 动作从 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 (可选, 可模板化): 要发布的状态。OPENCLOSED 之一。如果使用 lambda,请使用 COVER_OPENCOVER_CLOSED

  • position (可选, 可模板化, float): 要发布的位置,从 0(关闭)到 1.0(打开)

  • tilt (可选, 可模板化, float): 要发布的倾斜位置,从 0(关闭)到 1.0(打开)

  • current_operation (可选, 可模板化, string): 要发布的当前操作模式。IDLEOPENINGCLOSING 之一。如果使用 lambda,请使用 COVER_OPERATION_IDLECOVER_OPERATION_OPENINGCOVER_OPERATION_CLOSING

NOTE

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

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