开关实体
开关实体用于打开或关闭某些东西,例如继电器。从 homeassistant.components.switch.SwitchEntity
派生平台实体。如果要表示可以打开或关闭但无法控制的东西,例如一个能传输其状态但无法从Home Assistant打开或关闭的墙壁开关,二进制传感器是更好的选择。如果要表示没有状态的东西,例如门铃按钮,自定义事件或设备触发器是更好的选择。
属性
提示:属性应始终仅从内存返回信息,不应进行I/O操作(如网络请求)。实现 update()
或 async_update()
来获取数据。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
is_on | boolean | None | 开关当前是打开还是关闭。 |
已弃用属性
以下属性已弃用,新集成不应使用它们。应改为将它们作为传感器提供。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
current_power_w | float | None | 当前功率使用量(单位:瓦)。 |
today_energy_kwh | float | None | 总能量使用量(单位:千瓦时)。 |
方法
打开
打开开关。
class MySwitch(SwitchEntity):
# 实现以下方法之一
def turn_on(self, **kwargs) -> None:
"""打开实体。"""
async def async_turn_on(self, **kwargs):
"""打开实体。"""
关闭
关闭开关。
class MySwitch(SwitchEntity):
# 实现以下方法之一
def turn_off(self, **kwargs):
"""关闭实体。"""
async def async_turn_off(self, **kwargs):
"""关闭实体。"""
切换
可选。如果未实现,将默认根据 is_on
属性检查调用哪个方法。
class MySwitch(SwitchEntity):
# 实现以下方法之一
def toggle(self, **kwargs):
"""切换实体。"""
async def async_toggle(self, **kwargs):
"""切换实体。"""
可用设备类别
可选。设备类型。它可能会映射到谷歌设备类型。
常量 | 描述 |
---|---|
SwitchDeviceClass.OUTLET | 设备是电源插座。 |
SwitchDeviceClass.SWITCH | 设备是某种类型实体的开关。 |