跳转到内容

基于时间的罩盖

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。

对于某些罩盖控制器,使用单独的开关进行 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();
}