From db266d80ec62ed5c6184a4e13f362a7b44fbccdc Mon Sep 17 00:00:00 2001 From: G Johansson Date: Wed, 4 Dec 2024 10:45:47 +0100 Subject: [PATCH] Pass config entry to UpdateCoordinator in yale_smart_alarm (#132205) --- .../components/yale_smart_alarm/__init__.py | 6 +++--- .../yale_smart_alarm/alarm_control_panel.py | 4 ++-- .../components/yale_smart_alarm/binary_sensor.py | 4 +++- .../components/yale_smart_alarm/coordinator.py | 13 ++++++++----- homeassistant/components/yale_smart_alarm/entity.py | 8 ++++---- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/yale_smart_alarm/__init__.py b/homeassistant/components/yale_smart_alarm/__init__.py index c543de89b84..b3fcc28ad49 100644 --- a/homeassistant/components/yale_smart_alarm/__init__.py +++ b/homeassistant/components/yale_smart_alarm/__init__.py @@ -27,17 +27,17 @@ async def async_setup_entry(hass: HomeAssistant, entry: YaleConfigEntry) -> bool return True -async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: +async def update_listener(hass: HomeAssistant, entry: YaleConfigEntry) -> None: """Handle options update.""" await hass.config_entries.async_reload(entry.entry_id) -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_unload_entry(hass: HomeAssistant, entry: YaleConfigEntry) -> bool: """Unload a config entry.""" return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) -async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_migrate_entry(hass: HomeAssistant, entry: YaleConfigEntry) -> bool: """Migrate old entry.""" LOGGER.debug("Migrating from version %s", entry.version) diff --git a/homeassistant/components/yale_smart_alarm/alarm_control_panel.py b/homeassistant/components/yale_smart_alarm/alarm_control_panel.py index 0f5b7d0b8e5..868b186be9d 100644 --- a/homeassistant/components/yale_smart_alarm/alarm_control_panel.py +++ b/homeassistant/components/yale_smart_alarm/alarm_control_panel.py @@ -47,7 +47,7 @@ class YaleAlarmDevice(YaleAlarmEntity, AlarmControlPanelEntity): def __init__(self, coordinator: YaleDataUpdateCoordinator) -> None: """Initialize the Yale Alarm Device.""" super().__init__(coordinator) - self._attr_unique_id = coordinator.entry.entry_id + self._attr_unique_id = coordinator.config_entry.entry_id async def async_alarm_disarm(self, code: str | None = None) -> None: """Send disarm command.""" @@ -84,7 +84,7 @@ class YaleAlarmDevice(YaleAlarmEntity, AlarmControlPanelEntity): translation_domain=DOMAIN, translation_key="set_alarm", translation_placeholders={ - "name": self.coordinator.entry.data[CONF_NAME], + "name": self.coordinator.config_entry.data[CONF_NAME], "error": str(error), }, ) from error diff --git a/homeassistant/components/yale_smart_alarm/binary_sensor.py b/homeassistant/components/yale_smart_alarm/binary_sensor.py index 8e68b1f0cb4..17b6035321a 100644 --- a/homeassistant/components/yale_smart_alarm/binary_sensor.py +++ b/homeassistant/components/yale_smart_alarm/binary_sensor.py @@ -108,7 +108,9 @@ class YaleProblemSensor(YaleAlarmEntity, BinarySensorEntity): """Initiate Yale Problem Sensor.""" super().__init__(coordinator) self.entity_description = entity_description - self._attr_unique_id = f"{coordinator.entry.entry_id}-{entity_description.key}" + self._attr_unique_id = ( + f"{coordinator.config_entry.entry_id}-{entity_description.key}" + ) @property def is_on(self) -> bool: diff --git a/homeassistant/components/yale_smart_alarm/coordinator.py b/homeassistant/components/yale_smart_alarm/coordinator.py index 66bd71c9f1e..7ece2a3448b 100644 --- a/homeassistant/components/yale_smart_alarm/coordinator.py +++ b/homeassistant/components/yale_smart_alarm/coordinator.py @@ -9,12 +9,14 @@ from yalesmartalarmclient import YaleLock from yalesmartalarmclient.client import YaleSmartAlarmClient from yalesmartalarmclient.exceptions import AuthenticationError -from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_PASSWORD, CONF_USERNAME from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed +if TYPE_CHECKING: + from . import YaleConfigEntry + from .const import DEFAULT_SCAN_INTERVAL, DOMAIN, LOGGER, YALE_BASE_ERRORS @@ -22,13 +24,14 @@ class YaleDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]): """A Yale Data Update Coordinator.""" yale: YaleSmartAlarmClient + config_entry: YaleConfigEntry - def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: + def __init__(self, hass: HomeAssistant, config_entry: YaleConfigEntry) -> None: """Initialize the Yale hub.""" - self.entry = entry super().__init__( hass, LOGGER, + config_entry=config_entry, name=DOMAIN, update_interval=timedelta(seconds=DEFAULT_SCAN_INTERVAL), always_update=False, @@ -40,8 +43,8 @@ class YaleDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]): try: self.yale = await self.hass.async_add_executor_job( YaleSmartAlarmClient, - self.entry.data[CONF_USERNAME], - self.entry.data[CONF_PASSWORD], + self.config_entry.data[CONF_USERNAME], + self.config_entry.data[CONF_PASSWORD], ) self.locks = await self.hass.async_add_executor_job(self.yale.get_locks) except AuthenticationError as error: diff --git a/homeassistant/components/yale_smart_alarm/entity.py b/homeassistant/components/yale_smart_alarm/entity.py index e37dc3562f5..4020c93de4e 100644 --- a/homeassistant/components/yale_smart_alarm/entity.py +++ b/homeassistant/components/yale_smart_alarm/entity.py @@ -25,7 +25,7 @@ class YaleEntity(CoordinatorEntity[YaleDataUpdateCoordinator]): manufacturer=MANUFACTURER, model=MODEL, identifiers={(DOMAIN, data["address"])}, - via_device=(DOMAIN, coordinator.entry.data[CONF_USERNAME]), + via_device=(DOMAIN, coordinator.config_entry.data[CONF_USERNAME]), ) @@ -43,7 +43,7 @@ class YaleLockEntity(CoordinatorEntity[YaleDataUpdateCoordinator]): manufacturer=MANUFACTURER, model=MODEL, identifiers={(DOMAIN, lock.sid())}, - via_device=(DOMAIN, coordinator.entry.data[CONF_USERNAME]), + via_device=(DOMAIN, coordinator.config_entry.data[CONF_USERNAME]), ) self.lock_data = lock @@ -58,10 +58,10 @@ class YaleAlarmEntity(CoordinatorEntity[YaleDataUpdateCoordinator], Entity): super().__init__(coordinator) panel_info = coordinator.data["panel_info"] self._attr_device_info = DeviceInfo( - identifiers={(DOMAIN, coordinator.entry.data[CONF_USERNAME])}, + identifiers={(DOMAIN, coordinator.config_entry.data[CONF_USERNAME])}, manufacturer=MANUFACTURER, model=MODEL, - name=coordinator.entry.data[CONF_NAME], + name=coordinator.config_entry.data[CONF_NAME], connections={(CONNECTION_NETWORK_MAC, panel_info["mac"])}, sw_version=panel_info["version"], )