Fix state for Matter Locks (including optional door sensor)#121665
Conversation
|
Hey there @home-assistant/matter, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
|
test is broken - I'll do a follow up |
MartinHjelmare
left a comment
There was a problem hiding this comment.
Why did we merge with failing tests?
| self.async_write_ha_state() | ||
| # the lock should acknowledge the command with an attribute update | ||
| # but bad things may happen, so guard against it with a timer. | ||
| self._optimistic_timer = self.hass.loop.call_later( |
There was a problem hiding this comment.
We have the event helper async_call_later.
There was a problem hiding this comment.
what's the benefit of that ?
There was a problem hiding this comment.
It's an abstraction over the low level event loop API. Generally we want to use our helpers when we can.
There was a problem hiding this comment.
I have a follow-up PR open, I can use the helper right away
There was a problem hiding this comment.
Tried implementing it with the async_call_later helper but didn't like it. I needed more (and ugly) code to use it with a regular callback instead of coroutine. I think there's something wrong with the typing of that helper as it does seem to accept a callback but the type hint simply doesn't allow it.
Anyways, me and @edenhaus decided to leave it as-is for now and look at async_call_later another day. Something flaky there
There was a problem hiding this comment.
The callback should accept a single datetime parameter.
There was a problem hiding this comment.
I just want to mimic the behavior of loop.call_later --> call a callback method after X period of time.
It does work with that helper but mypy chokes
Apparently it showed as green for @edenhaus |



Proposed change
After some back-and-forth with Nuki (the smart lock manufacturer) we came to the conclusion that a few assumption of translating the door lock state were wrong. This PR corrects that:
Type of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: