developers.home-assistant/docs/core/entity/lock.md

2.6 KiB

title sidebar_label
Lock Entity Lock

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

Name Type Default Description
changed_by string None Describes what the last change was triggered by.
code_format string None Regex for code format or None if no code is required.
is_locked bool None Indication of whether the lock is currently locked. Used to determine state.
is_locking bool None Indication of whether the lock is currently locking. Used to determine state.
is_unlocking bool None Indication of whether the lock is currently unlocking. Used to determine state.
is_jammed bool None Indication of whether the lock is currently jammed. Used to determine state.

Supported Features

Supported features constants are combined using the bitwise or (|) operator.

Constant Description
SUPPORT_OPEN This 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."""