Fix sending a (default) pincode to Matter Lock operations (#95402)
This commit is contained in:
parent
99a622c8ee
commit
e7f29263e3
1 changed files with 17 additions and 3 deletions
|
@ -8,7 +8,7 @@ from chip.clusters import Objects as clusters
|
||||||
|
|
||||||
from homeassistant.components.lock import LockEntity, LockEntityDescription
|
from homeassistant.components.lock import LockEntity, LockEntityDescription
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import ATTR_CODE, Platform
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
|
@ -56,11 +56,25 @@ class MatterLock(MatterEntity, LockEntity):
|
||||||
|
|
||||||
async def async_lock(self, **kwargs: Any) -> None:
|
async def async_lock(self, **kwargs: Any) -> None:
|
||||||
"""Lock the lock with pin if needed."""
|
"""Lock the lock with pin if needed."""
|
||||||
await self.send_device_command(command=clusters.DoorLock.Commands.LockDoor())
|
code: str = kwargs.get(
|
||||||
|
ATTR_CODE,
|
||||||
|
self._lock_option_default_code,
|
||||||
|
)
|
||||||
|
code_bytes = code.encode() if code else None
|
||||||
|
await self.send_device_command(
|
||||||
|
command=clusters.DoorLock.Commands.LockDoor(code_bytes)
|
||||||
|
)
|
||||||
|
|
||||||
async def async_unlock(self, **kwargs: Any) -> None:
|
async def async_unlock(self, **kwargs: Any) -> None:
|
||||||
"""Unlock the lock with pin if needed."""
|
"""Unlock the lock with pin if needed."""
|
||||||
await self.send_device_command(command=clusters.DoorLock.Commands.UnlockDoor())
|
code: str = kwargs.get(
|
||||||
|
ATTR_CODE,
|
||||||
|
self._lock_option_default_code,
|
||||||
|
)
|
||||||
|
code_bytes = code.encode() if code else None
|
||||||
|
await self.send_device_command(
|
||||||
|
command=clusters.DoorLock.Commands.UnlockDoor(code_bytes)
|
||||||
|
)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _update_from_device(self) -> None:
|
def _update_from_device(self) -> None:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue