From 7a3a57c78eb425fb6e1c7320700eecafa58f2d89 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Sat, 15 Jun 2024 11:24:33 +0200 Subject: [PATCH] Add open state support to matter lock (#119682) --- homeassistant/components/matter/lock.py | 3 +++ tests/components/matter/test_door_lock.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/homeassistant/components/matter/lock.py b/homeassistant/components/matter/lock.py index e5067efd482e..f58ded010130 100644 --- a/homeassistant/components/matter/lock.py +++ b/homeassistant/components/matter/lock.py @@ -168,6 +168,9 @@ class MatterLock(MatterEntity, LockEntity): self._attr_is_jammed = ( door_state is clusters.DoorLock.Enums.DoorStateEnum.kDoorJammed ) + self._attr_is_open = ( + door_state is clusters.DoorLock.Enums.DoorStateEnum.kDoorOpen + ) DISCOVERY_SCHEMAS = [ diff --git a/tests/components/matter/test_door_lock.py b/tests/components/matter/test_door_lock.py index 7f6abeff62b6..6e0e0846ad5a 100644 --- a/tests/components/matter/test_door_lock.py +++ b/tests/components/matter/test_door_lock.py @@ -9,6 +9,7 @@ import pytest from homeassistant.components.lock import ( STATE_LOCKED, STATE_LOCKING, + STATE_OPEN, STATE_UNLOCKED, STATE_UNLOCKING, LockEntityFeature, @@ -208,3 +209,10 @@ async def test_lock_with_unbolt( command=clusters.DoorLock.Commands.UnlockDoor(), timed_request_timeout_ms=1000, ) + + set_node_attribute(door_lock_with_unbolt, 1, 257, 3, 0) + await trigger_subscription_callback(hass, matter_client) + + state = hass.states.get("lock.mock_door_lock") + assert state + assert state.state == STATE_OPEN