基于时间的罩盖
time_based 罩盖平台允许你创建具有位置控制的罩盖,但不
提供任何位置反馈。因此罩盖的状态始终是假设的,当前
位置是根据罩盖在某一方向上移动的时间来近似的。罩盖的
状态可以在节点重启时恢复。
# 配置示例cover: - platform: time_based name: "Time-Based Cover"
open_action: - switch.turn_on: open_cover_switch open_duration: 2.1min
close_action: - switch.turn_on: close_cover_switch close_duration: 2min
stop_action: - switch.turn_off: open_cover_switch - switch.turn_off: close_cover_switch-
open_action (必填,Action):当远程请求罩盖开启时应执行的 动作。
-
open_duration (必填,Time):罩盖从 完全关闭状态开启所需的时间。
-
close_action (必填,Action):当远程请求罩盖关闭时应执行的 动作。
-
close_duration (必填,Time):罩盖从 完全开启状态关闭所需的时间。
-
stop_action (必填,Action):当远程请求罩盖停止或 罩盖已开启/关闭了给定持续时间时应执行以停止罩盖的动作。
-
has_built_in_endstop (可选,布尔值):指示罩盖具有内置的限位 检测器。在此配置下,当开启或关闭 时间完成时不会执行
stop_action,并且如果命令罩盖开启或关闭,相应的动作 将在不检查当前状态的情况下执行。默认为false。 -
manual_control (可选,布尔值):适用于具有手动外部控制的罩盖。在此 配置下,如果命令罩盖开启或关闭,相应的动作将 被执行,即使当前状态(完全开启或完全关闭)与期望状态匹配,然后 在动作的完整持续时间经过后调用
stop_action。 随后,当前状态将在完成时重新学习。 建议将assumed_state设为 true,这样罩盖控制按钮就不会在 界面中被禁用。默认为false。 -
assumed_state (可选,布尔值):罩盖的真实状态是否未知。 这将使 Home Assistant 前端为 OPEN 和 CLOSE 动作都显示按钮,而不是 隐藏或禁用其中一个。默认为
true。 -
Cover 中的所有其他选项。
NOTE
UI 上的停止按钮始终启用,即使罩盖已停止,每次
按下按钮都会导致执行 stop_action。
处理 stop_action
Section titled “处理 stop_action”对于某些罩盖控制器,使用单独的开关进行 UP 和 DOWN 操作,而在发送反向命令时发出停止信号。 可以在 stop_action 中使用以下 lambda 函数来处理:
stop_action: - lambda: !lambda |- if (id(cover).get_last_operation() == CoverOperation::COVER_OPERATION_OPENING) { // 罩盖当前正在开启 id(cover_button_down).press(); } else if (id(cover).get_last_operation() == CoverOperation::COVER_OPERATION_CLOSING) { // 罩盖当前正在关闭 id(cover_button_up).press(); }