Skip to main content

锁实体

锁实体能够被锁定和解锁。锁定和解锁可以选择性地通过用户代码来保护。一些锁还允许打开闩锁,这也可以通过用户代码来保护。从 homeassistant.components.lock.LockEntity 派生一个平台实体。

属性

tip

属性始终只应从内存中返回信息,而不是进行 I/O(如网络请求)。实现 update()async_update() 以获取数据。

名称类型默认描述
changed_bystringNone描述最后一次更改是由什么触发的。
code_formatstringNone代码格式的正则表达式,如果不需要代码,则为 None。
is_lockedboolNone指示锁当前是否被锁定。用于确定 state
is_lockingboolNone指示锁当前是否正在锁定。用于确定 state
is_unlockingboolNone指示锁当前是否正在解锁。用于确定 state
is_jammedboolNone指示锁当前是否被卡住。用于确定 state
is_openingboolNone指示锁当前是否正在开启。用于确定 state
is_openboolNone指示锁当前是否打开。用于确定 state

状态

状态是通过设置上述属性来定义的。得到的状态使用 LockState 枚举,返回以下成员之一。

描述
LOCKED锁定是锁定状态。
LOCKING锁正在锁定。
UNLOCKING锁正在解锁。
UNLOCKED锁是解锁状态。
JAMMED锁当前被卡住。
OPENING锁正在开启。
OPEN锁是打开状态。

支持的功能

支持的功能通过使用 LockEntityFeature 枚举中的值定义,并使用按位或 (|) 操作符组合。

描述
OPEN此锁支持打开门闩。

方法

锁定

class MyLock(LockEntity):

def lock(self, **kwargs):
"""锁定所有或指定的锁。可以选择性地指定锁定锁的代码。"""

async def async_lock(self, **kwargs):
"""锁定所有或指定的锁。可以选择性地指定锁定锁的代码。"""

解锁

class MyLock(LockEntity):

def unlock(self, **kwargs):
"""解锁所有或指定的锁。可以选择性地指定解锁锁的代码。"""

async def async_unlock(self, **kwargs):
"""解锁所有或指定的锁。可以选择性地指定解锁锁的代码。"""

打开

仅在设置 SUPPORT_OPEN 标志时实现此方法。

class MyLock(LockEntity):

def open(self, **kwargs):
"""打开(解闩)所有或指定的锁。可以选择性地指定打开锁的代码。"""

async def async_open(self, **kwargs):
"""打开(解闩)所有或指定的锁。可以选择性地指定打开锁的代码。"""