mirror of
https://github.com/home-assistant/core.git
synced 2026-05-08 09:38:58 +01:00
Fix Aladdin Connect state not updating (#151652)
Co-authored-by: Joostlek <joostlek@outlook.com>
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from genie_partner_sdk.client import AladdinConnectClient
|
||||
from genie_partner_sdk.model import GarageDoor
|
||||
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
@@ -36,22 +35,7 @@ async def async_setup_entry(
|
||||
api.AsyncConfigEntryAuth(aiohttp_client.async_get_clientsession(hass), session)
|
||||
)
|
||||
|
||||
sdk_doors = await client.get_doors()
|
||||
|
||||
# Convert SDK GarageDoor objects to integration GarageDoor objects
|
||||
doors = [
|
||||
GarageDoor(
|
||||
{
|
||||
"device_id": door.device_id,
|
||||
"door_number": door.door_number,
|
||||
"name": door.name,
|
||||
"status": door.status,
|
||||
"link_status": door.link_status,
|
||||
"battery_level": door.battery_level,
|
||||
}
|
||||
)
|
||||
for door in sdk_doors
|
||||
]
|
||||
doors = await client.get_doors()
|
||||
|
||||
entry.runtime_data = {
|
||||
door.unique_id: AladdinConnectCoordinator(hass, entry, client, door)
|
||||
|
||||
@@ -41,4 +41,10 @@ class AladdinConnectCoordinator(DataUpdateCoordinator[GarageDoor]):
|
||||
async def _async_update_data(self) -> GarageDoor:
|
||||
"""Fetch data from the Aladdin Connect API."""
|
||||
await self.client.update_door(self.data.device_id, self.data.door_number)
|
||||
self.data.status = self.client.get_door_status(
|
||||
self.data.device_id, self.data.door_number
|
||||
)
|
||||
self.data.battery_level = self.client.get_battery_status(
|
||||
self.data.device_id, self.data.door_number
|
||||
)
|
||||
return self.data
|
||||
|
||||
@@ -49,7 +49,9 @@ class AladdinCoverEntity(AladdinConnectEntity, CoverEntity):
|
||||
@property
|
||||
def is_closed(self) -> bool | None:
|
||||
"""Update is closed attribute."""
|
||||
return self.coordinator.data.status == "closed"
|
||||
if (status := self.coordinator.data.status) is None:
|
||||
return None
|
||||
return status == "closed"
|
||||
|
||||
@property
|
||||
def is_closing(self) -> bool | None:
|
||||
|
||||
@@ -12,5 +12,5 @@
|
||||
"documentation": "https://www.home-assistant.io/integrations/aladdin_connect",
|
||||
"integration_type": "hub",
|
||||
"iot_class": "cloud_polling",
|
||||
"requirements": ["genie-partner-sdk==1.0.10"]
|
||||
"requirements": ["genie-partner-sdk==1.0.11"]
|
||||
}
|
||||
|
||||
Generated
+1
-1
@@ -1005,7 +1005,7 @@ gassist-text==0.0.14
|
||||
gcal-sync==8.0.0
|
||||
|
||||
# homeassistant.components.aladdin_connect
|
||||
genie-partner-sdk==1.0.10
|
||||
genie-partner-sdk==1.0.11
|
||||
|
||||
# homeassistant.components.geniushub
|
||||
geniushub-client==0.7.1
|
||||
|
||||
Generated
+1
-1
@@ -875,7 +875,7 @@ gassist-text==0.0.14
|
||||
gcal-sync==8.0.0
|
||||
|
||||
# homeassistant.components.aladdin_connect
|
||||
genie-partner-sdk==1.0.10
|
||||
genie-partner-sdk==1.0.11
|
||||
|
||||
# homeassistant.components.geniushub
|
||||
geniushub-client==0.7.1
|
||||
|
||||
@@ -30,6 +30,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
|
||||
mock_door.status = "closed"
|
||||
mock_door.link_status = "connected"
|
||||
mock_door.battery_level = 100
|
||||
mock_door.unique_id = f"{mock_door.device_id}-{mock_door.door_number}"
|
||||
|
||||
mock_client = AsyncMock()
|
||||
mock_client.get_doors.return_value = [mock_door]
|
||||
@@ -80,6 +81,7 @@ async def test_unload_entry(hass: HomeAssistant) -> None:
|
||||
mock_door.status = "closed"
|
||||
mock_door.link_status = "connected"
|
||||
mock_door.battery_level = 100
|
||||
mock_door.unique_id = f"{mock_door.device_id}-{mock_door.door_number}"
|
||||
|
||||
# Mock client
|
||||
mock_client = AsyncMock()
|
||||
|
||||
Reference in New Issue
Block a user