mirror of
https://github.com/home-assistant/core.git
synced 2025-11-08 10:29:27 +00:00
Fix MQTT Lock state reset to unknown when a reset payload is received (#153647)
This commit is contained in:
committed by
Franck Nijhof
parent
a3d1aa28e7
commit
0009a7a042
@@ -188,7 +188,10 @@ class MqttLock(MqttEntity, LockEntity):
|
||||
return
|
||||
if payload == self._config[CONF_PAYLOAD_RESET]:
|
||||
# Reset the state to `unknown`
|
||||
self._attr_is_locked = None
|
||||
self._attr_is_locked = self._attr_is_locking = None
|
||||
self._attr_is_unlocking = None
|
||||
self._attr_is_open = self._attr_is_opening = None
|
||||
self._attr_is_jammed = None
|
||||
elif payload in self._valid_states:
|
||||
self._attr_is_locked = payload == self._config[CONF_STATE_LOCKED]
|
||||
self._attr_is_locking = payload == self._config[CONF_STATE_LOCKING]
|
||||
|
||||
@@ -75,6 +75,7 @@ CONFIG_WITH_STATES = {
|
||||
"state_opening": "opening",
|
||||
"state_unlocked": "unlocked",
|
||||
"state_unlocking": "unlocking",
|
||||
"state_jammed": "jammed",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,6 +90,7 @@ CONFIG_WITH_STATES = {
|
||||
(CONFIG_WITH_STATES, "opening", LockState.OPENING),
|
||||
(CONFIG_WITH_STATES, "unlocked", LockState.UNLOCKED),
|
||||
(CONFIG_WITH_STATES, "unlocking", LockState.UNLOCKING),
|
||||
(CONFIG_WITH_STATES, "jammed", LockState.JAMMED),
|
||||
],
|
||||
)
|
||||
async def test_controlling_state_via_topic(
|
||||
@@ -111,6 +113,12 @@ async def test_controlling_state_via_topic(
|
||||
state = hass.states.get("lock.test")
|
||||
assert state.state == lock_state
|
||||
|
||||
async_fire_mqtt_message(hass, "state-topic", "None")
|
||||
await hass.async_block_till_done()
|
||||
|
||||
state = hass.states.get("lock.test")
|
||||
assert state.state == STATE_UNKNOWN
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("hass_config", "payload", "lock_state"),
|
||||
|
||||
Reference in New Issue
Block a user