Skip to main content

Lock entity

A lock entity is able to be locked and unlocked. Locking and unlocking can optionally be secured with a user code. Some locks also allow for opening of latches, this may also be secured with a user code. Derive a platform entity from homeassistant.components.lock.LockEntity.

Properties

tip

Properties should always only return information from memory and not do I/O (like network requests). Implement update() or async_update() to fetch data.

NameTypeDefaultDescription
changed_bystringNoneDescribes what the last change was triggered by.
code_formatstringNoneRegex for code format or None if no code is required.
is_lockedboolNoneIndication of whether the lock is currently locked. Used to determine state.
is_lockingboolNoneIndication of whether the lock is currently locking. Used to determine state.
is_unlockingboolNoneIndication of whether the lock is currently unlocking. Used to determine state.
is_jammedboolNoneIndication of whether the lock is currently jammed. Used to determine state.
is_openingboolNoneIndication of whether the lock is currently opening. Used to determine state.
is_openboolNoneIndication of whether the lock is currently open. Used to determine state.

States

The state is defined by setting the above properties. The resulting state is using the LockState enum to return one of the below members.

ValueDescription
LOCKEDThe lock is locked.
LOCKINGThe lock is locking.
UNLOCKINGThe lock is unlocking.
UNLOCKEDThe lock is unlocked.
JAMMEDThe lock is currently jammed.
OPENINGThe lock is opening.
OPENThe lock is open.

Supported features

Supported features are defined by using values in the LockEntityFeature enum and are combined using the bitwise or (|) operator.

ValueDescription
OPENThis lock supports opening the door latch.

Methods

Lock

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."""

Unlock

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."""

Open

Only implement this method if the flag SUPPORT_OPEN is set.

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."""