锁定实体

锁实体能够被锁定和解锁。可以选择使用用户代码来保护锁定和解锁。有些锁还允许打开闩锁,这也可以使用用户代码进行保护。平台实体派生自homeassistant.components.lock.LockEntity

特性

Tip

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

名称类型默认值说明
changed_bystringNone描述最后一次更改是由什么触发的。
code_formatstringNone代码格式的正则表达式或无(如果不需要代码)。
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):
        """Lock all or specified locks. A code to lock the lock with may optionally be specified."""

    async def async_lock(self, **kwargs):
        """Lock all or specified locks. A code to lock the lock with may optionally be specified."""

开锁

class MyLock(LockEntity):

    def unlock(self, **kwargs):
        """Unlock all or specified locks. A code to unlock the lock with may optionally be specified."""

    async def async_unlock(self, **kwargs):
        """Unlock all or specified locks. A code to unlock the lock with may optionally be specified."""

打开

仅当设置了标志 SUPPORT_OPEN 时才实现此方法。

class MyLock(LockEntity):

    def open(self, **kwargs):
        """Open (unlatch) all or specified locks. A code to open the lock with may optionally be specified."""

    async def async_open(self, **kwargs):
        """Open (unlatch) all or specified locks. A code to open the lock with may optionally be specified."""