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