模板阀门
template 阀门平台允许您使用几个操作和一个值 lambda 创建简单的阀门。一旦
定义,它将自动在 Home Assistant 中显示为阀门,并可通过前端进行控制。
# Example configuration entryvalve: - platform: template name: "Template Valve" lambda: |- if (id(top_end_stop).state) { return VALVE_OPEN; } else { return VALVE_CLOSED; } open_action: - switch.turn_on: open_valve_switch close_action: - switch.turn_on: close_valve_switch stop_action: - switch.turn_on: stop_valve_switch optimistic: true可选 lambda 的可能返回值:
return VALVE_OPEN;如果阀门应报告为 OPEN。return VALVE_CLOSED;如果阀门应报告为 CLOSED。return {};如果应重复上一个状态。
-
lambda (可选, lambda): 重复评估以获取阀门当前状态的 Lambda。
-
open_action (可选, Action): 当远程 (如 Home Assistant 的前端)请求打开阀门时应执行的操作。
-
close_action (可选, Action): 当远程 请求关闭阀门时应执行的操作。
-
stop_action (可选, Action): 当远程 请求停止阀门时应执行的操作。
-
optimistic (可选, boolean): 是否以乐观模式运行——在此模式下,任何发送到 模板阀门的命令将立即更新报告的状态,且无需使用 lambda。默认为
false。 -
restore_mode (可选, enum): 控制阀门在启动时如何尝试恢复状态。
NO_RESTORE(默认):不保存或恢复状态。RESTORE: 尝试在启动时恢复状态,但不指示阀门返回到该状态。RESTORE_AND_CALL: 尝试在启动时恢复状态,并指示阀门返回到恢复的状态。
-
assumed_state (可选, boolean): 是否未知阀门的真实状态。这将使 Home Assistant 前端显示 OPEN 和 CLOSE 操作两个按钮,而不是隐藏其中一个。默认为
false。 -
has_position (可选, boolean): 此阀门是否将其位置发布为浮点数。 默认情况下(
false),阀门仅发布 OPEN/CLOSED 位置。 -
position_action (可选, Action): 当远程 (如 Home Assistant 的前端)请求将阀门设置为特定位置时应执行的操作。所需位置在 lambda 的
pos变量中可用。需要将has_position(上方)设置为true。 -
还包括 Valve 的所有其他选项。
valve.template.publish 操作
Section titled “valve.template.publish 操作”您还可以从 YAML 文件中的其他地方使用 valve.template.publish 操作向模板阀门发布状态。
# Example configuration entryvalve: - platform: template name: "Template Valve" id: my_template_valve
# in some triggeron_...: - valve.template.publish: id: my_template_valve state: OPEN
# Templated - valve.template.publish: id: my_template_valve state: !lambda 'return VALVE_OPEN;'配置选项:
-
id (必填, ID): 模板阀门的 ID。
-
state (可选, templatable): 要发布的状态。
OPEN、CLOSED之一。如果使用 lambda,请使用VALVE_OPEN或VALVE_CLOSED。 -
position (可选, float, templatable): 要发布的位置,从 0(CLOSED)到 1.0(OPEN)
-
current_operation (可选, string, templatable): 要发布的当前操作模式。
IDLE、OPENING和CLOSING之一。如果使用 lambda,请使用VALVE_OPERATION_IDLE、VALVE_OPERATION_OPENING和VALVE_OPERATION_CLOSING。
NOTE
此操作也可以在 lambdas 中编写:
id(my_template_valve).position = VALVE_OPEN;id(my_template_valve).publish_state();