From 91e9eb0ab336046d481f991be114b97f4816f552 Mon Sep 17 00:00:00 2001 From: Abode Systems Date: Wed, 25 Mar 2026 18:04:44 +1100 Subject: [PATCH] Fix Abode retrofit lock discovery (#166433) --- homeassistant/components/abode/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/abode/test_lock.py | 26 ++++++++++++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/abode/manifest.json b/homeassistant/components/abode/manifest.json index c1ffb9f699b..e71e73f305b 100644 --- a/homeassistant/components/abode/manifest.json +++ b/homeassistant/components/abode/manifest.json @@ -9,6 +9,6 @@ }, "iot_class": "cloud_push", "loggers": ["jaraco.abode", "lomond"], - "requirements": ["jaraco.abode==6.2.1"], + "requirements": ["jaraco.abode==6.4.0"], "single_config_entry": true } diff --git a/requirements_all.txt b/requirements_all.txt index f1744c755a5..7da5cdd0355 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1355,7 +1355,7 @@ ismartgate==5.0.2 israel-rail-api==0.1.4 # homeassistant.components.abode -jaraco.abode==6.2.1 +jaraco.abode==6.4.0 # homeassistant.components.jellyfin jellyfin-apiclient-python==1.11.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index acbca74a303..d3b4fe92f6f 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1201,7 +1201,7 @@ ismartgate==5.0.2 israel-rail-api==0.1.4 # homeassistant.components.abode -jaraco.abode==6.2.1 +jaraco.abode==6.4.0 # homeassistant.components.jellyfin jellyfin-apiclient-python==1.11.0 diff --git a/tests/components/abode/test_lock.py b/tests/components/abode/test_lock.py index fe203d0b0f4..8ca91dabc15 100644 --- a/tests/components/abode/test_lock.py +++ b/tests/components/abode/test_lock.py @@ -1,7 +1,11 @@ """Tests for the Abode lock device.""" +import json from unittest.mock import patch +from jaraco.abode.helpers import urls as URL +from requests_mock import Mocker + from homeassistant.components.abode import ATTR_DEVICE_ID from homeassistant.components.lock import DOMAIN as LOCK_DOMAIN, LockState from homeassistant.const import ( @@ -15,6 +19,8 @@ from homeassistant.helpers import entity_registry as er from .common import setup_platform +from tests.common import async_load_fixture + DEVICE_ID = "lock.test_lock" @@ -63,3 +69,23 @@ async def test_unlock(hass: HomeAssistant) -> None: ) await hass.async_block_till_done() mock_unlock.assert_called_once() + + +async def test_retrofit_lock_discovered( + hass: HomeAssistant, requests_mock: Mocker +) -> None: + """Test retrofit locks are discovered as lock entities.""" + devices = json.loads(await async_load_fixture(hass, "devices.json", "abode")) + for device in devices: + if device["type_tag"] == "device_type.door_lock": + device["type_tag"] = "device_type.retrofit_lock" + device["type"] = "Retrofit Lock" + break + + requests_mock.get(URL.DEVICES, text=json.dumps(devices)) + + await setup_platform(hass, LOCK_DOMAIN) + + state = hass.states.get(DEVICE_ID) + assert state is not None + assert state.state == LockState.LOCKED