阀门组件
valve 组件是 ESPHome 中阀门的通用表示。阀门目前可以是 关闭 或
打开,并支持三个命令:打开、关闭 和 停止。
NOTE
在 Home Assistant 中使用阀门需要 Home Assistant 2024.5 或更高版本。
基础阀门配置
Section titled “基础阀门配置”所有阀门配置模式都继承自此模式——您可以为阀门设置这些键。
valve: - platform: ... device_class: water配置变量:
- id (可选, string): 手动指定用于代码生成的 ID。至少必须指定 id 和 name 中的一个。
- name (可选, string): 阀门的名称。至少必须指定 id 和 name 中的一个。
NOTE
如果您为设备设置了 friendly_name,并希望阀门
使用该名称,可以将 name: None。
-
device_class (可选, string): 传感器的设备类。请参阅 https://www.home-assistant.io/components/valve/ 了解可用选项列表。
-
icon (可选, icon): 手动设置在前端中为阀门使用的图标。
高级选项:
-
internal (可选, boolean): 将此组件标记为内部组件。内部组件将不会暴露给 前端(如 Home Assistant)。仅指定不带
name的id将隐式地将此设置为 true。 -
disabled_by_default (可选, boolean): 如果为 true,则此实体不应被添加到任何客户端的前端中, (通常是 Home Assistant),除非用户手动启用它(通过 Home Assistant UI)。默认为
false。 -
entity_category (可选, string): 实体的类别。请参阅 https://developers.home-assistant.io/docs/core/entity/#generic-properties 了解可用选项列表。设置为
""以移除默认实体类别。 -
如果启用了 Webserver 并选择了版本 3,则还包括 Webserver 组件的所有其他选项。请参阅 Webserver Version 3。
MQTT 选项:
- position_state_topic (可选, string): 用于发布阀门位置变更的主题。
- position_command_topic (可选, string): 用于接收阀门位置命令的主题。
- 还包括 MQTT 组件 的所有其他选项。
valve.open 操作
Section titled “valve.open 操作”执行时,此 action 将打开给定 ID 的阀门。
on_...: then: - valve.open: valve_1valve.close 操作
Section titled “valve.close 操作”执行时,此 action 将关闭给定 ID 的阀门。
on_...: then: - valve.close: valve_1NOTE
此操作也可以表示为 lambdas:
auto call = id(valve_1).make_call();call.set_command_close();call.perform();valve.stop 操作
Section titled “valve.stop 操作”执行时,此 action 将停止给定 ID 的阀门。
on_...: then: - valve.stop: valve_1valve.toggle 操作
Section titled “valve.toggle 操作”执行时,此 action 将切换给定 ID 的阀门,循环经过状态 关闭/停止/打开/停止… 这允许通过单个按钮来控制阀门。
on_...: then: - valve.toggle: valve_1NOTE
此操作也可以表示为 lambdas:
auto call = id(valve_1).make_call();call.set_command_toggle();call.perform();valve.control 操作
Section titled “valve.control 操作”此 action 是其他阀门操作的更通用版本,允许设置所有阀门属性。
on_...: then: - valve.control: id: valve_1 position: 50%配置变量:
-
id (必填, ID): 要控制的阀门。
-
stop (可选, boolean, templatable): 是否停止阀门。
-
state (可选, string, templatable): 要设置的阀门状态——
OPEN或CLOSE之一。 -
position (可选, float, templatable): 要设置的阀门位置。
0.0=0%=CLOSED1.0=100%=OPEN
NOTE
此操作也可以表示为 lambdas:
auto call = id(valve_1).make_call();// set attributescall.set_position(0.5);call.perform();Lambdas
Section titled “Lambdas”在 lambdas 中,您可以访问阀门的当前状态(注意这些字段是
只读的,如果您想对阀门进行操作,请使用如上所示的 make_call() 方法)。
position: 检索阀门的当前位置,作为介于0.0(关闭)和1.0(打开)之间的值。
if (id(my_valve).position == VALVE_OPEN) { // 阀门已打开 } else if (id(my_valve).position == VALVE_CLOSED) { // 阀门已关闭 } else { // 阀门处于打开和关闭之间 }current_operation: 阀门当前执行的操作:
if (id(my_valve).current_operation == ValveOperation::VALVE_OPERATION_IDLE) { // 阀门处于空闲状态 } else if (id(my_valve).current_operation == ValveOperation::VALVE_OPERATION_OPENING) { // 阀门当前正在打开 } else if (id(my_valve).current_operation == ValveOperation::VALVE_OPERATION_CLOSING) { // 阀门当前正在关闭 }valve.on_open 触发器
Section titled “valve.on_open 触发器”此触发器在阀门每次达到完全打开状态时激活。
valve: - platform: template # 或任何其他平台 # ... on_open: - logger.log: "Valve is Open!"valve.on_closed 触发器
Section titled “valve.on_closed 触发器”此触发器在阀门每次达到完全关闭状态时激活。
valve: - platform: template # 或任何其他平台 # ... on_closed: - logger.log: "Valve is Closed!"