阀门实体
阀门实体控制诸如家中的水阀或燃气阀之类的阀门设备。从 homeassistant.components.valve.ValveEntity
派生一个平台实体。
属性
tip
属性应始终仅从内存返回信息,而不执行 I/O(如网络请求)。实现 update()
或 async_update()
来获取数据。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
current_valve_position | int | None | None | 阀门的当前位置,0表示关闭,100表示完全打开。该属性是具有 reports_position = True 的阀门所必需的,用于确定状态。 |
is_closed | bool | None | None | 阀门是否关闭。用于确定不报告位置的阀门的 state 。 |
is_closing | bool | None | None | 阀门是否正在关闭。用于确定 state 。 |
is_opening | bool | None | None | 阀门是否正在打开。用于确定 state 。 |
reports_position | bool | 必需 | 阀门是否知道其位置。 |
设备分类
常量 | 描述 |
---|---|
ValveDeviceClass.WATER | 控制水阀。 |
ValveDeviceClass.GAS | 控制燃气阀。 |
状态
状态通过设置其属性来定义。结果状态使用 ValveState
枚举返回以下成员之一。
值 | 描述 |
---|---|
OPENING | 阀门正在打开以达到设定位置的过程。 |
OPEN | 阀门已达开的位置。 |
CLOSING | 阀门正在关闭以达到设定位置的过程。 |
CLOSED | 阀门已达闭的位置。 |
支持的功能
支持的功能通过在 ValveEntityFeature
枚举中使用值定义,并使用按位或 (|
) 运算符组合。
值 | 描述 |
---|---|
OPEN | 阀门支持打开。 |
CLOSE | 阀门支持关闭。 |
SET_POSITION | 阀门支持移动到打开和关闭之间的特定位置。 |
STOP | 阀门支持停止当前操作(打开、关闭、设置位置) |
方法
打开阀门
仅在标志 SUPPORT_OPEN
被设置时实现此方法。对于可以设置位置的阀门,此方法应保持未实现,仅需 set_valve_position
。
class MyValve(ValveEntity):
# 实现这些方法之一。
def open_valve(self) -> None:
"""打开阀门。"""
async def async_open_valve(self) -> None:
"""打开阀门。"""
关闭阀门
仅在标志 SUPPORT_CLOSE
被设置时实现此方法。对于可以设置位置的阀门,此方法应保持未实现,仅需 set_valve_position
。
class MyValve(ValveEntity):
# 实现这些方法之一。
def close_valve(self) -> None:
"""关闭阀门。"""
async def async_close_valve(self) -> None:
"""关闭阀门。"""
设置阀门位置
仅在标志 SUPPORT_SET_POSITION
被设置时实现此方法。此方法必须在可以设置位置的阀门中实现。
class MyValve(ValveEntity):
# 实现这些方法之一。
def set_valve_position(self, position: int) -> None:
"""将阀门移动到特定位置。"""
async def async_set_valve_position(self, position: int) -> None:
"""将阀门移动到特定位置。"""
停止阀门
仅在标志 SUPPORT_STOP
被设置时实现此方法。
class MyValve(ValveEntity):
# 实现这些方法之一。
def stop_valve(self) -> None:
"""停止阀门。"""
async def async_stop_valve(self) -> None:
"""停止阀门。"""