From a6d132a3371d8e9f907c66ffd0cea88391963a64 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:41:33 +0100 Subject: [PATCH] Simplify device_info access in environment_canada (#136816) * Simplify device_info access in environment_canada * Update homeassistant/components/environment_canada/coordinator.py --------- Co-authored-by: Joost Lekkerkerker --- .../components/environment_canada/__init__.py | 14 +------------- .../components/environment_canada/camera.py | 3 +-- .../components/environment_canada/coordinator.py | 7 +++++++ .../components/environment_canada/sensor.py | 3 +-- .../components/environment_canada/weather.py | 3 +-- 5 files changed, 11 insertions(+), 19 deletions(-) diff --git a/homeassistant/components/environment_canada/__init__.py b/homeassistant/components/environment_canada/__init__.py index c87832de6ab..6afea2f983d 100644 --- a/homeassistant/components/environment_canada/__init__.py +++ b/homeassistant/components/environment_canada/__init__.py @@ -8,9 +8,8 @@ from env_canada import ECAirQuality, ECRadar, ECWeather from homeassistant.const import CONF_LANGUAGE, CONF_LATITUDE, CONF_LONGITUDE, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryNotReady -from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo -from .const import CONF_STATION, DOMAIN +from .const import CONF_STATION from .coordinator import ECConfigEntry, ECDataUpdateCoordinator, ECRuntimeData DEFAULT_RADAR_UPDATE_INTERVAL = timedelta(minutes=5) @@ -81,14 +80,3 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ECConfigEntry) -> async def async_unload_entry(hass: HomeAssistant, config_entry: ECConfigEntry) -> bool: """Unload a config entry.""" return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS) - - -def device_info(config_entry: ECConfigEntry) -> DeviceInfo: - """Build and return the device info for EC.""" - return DeviceInfo( - entry_type=DeviceEntryType.SERVICE, - identifiers={(DOMAIN, config_entry.entry_id)}, - manufacturer="Environment Canada", - name=config_entry.title, - configuration_url="https://weather.gc.ca/", - ) diff --git a/homeassistant/components/environment_canada/camera.py b/homeassistant/components/environment_canada/camera.py index 4a321e88e6d..fd82ac97bea 100644 --- a/homeassistant/components/environment_canada/camera.py +++ b/homeassistant/components/environment_canada/camera.py @@ -13,7 +13,6 @@ from homeassistant.helpers.entity_platform import ( from homeassistant.helpers.typing import VolDictType from homeassistant.helpers.update_coordinator import CoordinatorEntity -from . import device_info from .const import ATTR_OBSERVATION_TIME from .coordinator import ECConfigEntry @@ -55,7 +54,7 @@ class ECCameraEntity(CoordinatorEntity, Camera): self._attr_unique_id = f"{coordinator.config_entry.unique_id}-radar" self._attr_attribution = self.radar_object.metadata["attribution"] self._attr_entity_registry_enabled_default = False - self._attr_device_info = device_info(coordinator.config_entry) + self._attr_device_info = coordinator.device_info self.content_type = "image/gif" diff --git a/homeassistant/components/environment_canada/coordinator.py b/homeassistant/components/environment_canada/coordinator.py index 8161e26028c..e65d8f6e471 100644 --- a/homeassistant/components/environment_canada/coordinator.py +++ b/homeassistant/components/environment_canada/coordinator.py @@ -11,6 +11,7 @@ from env_canada import ECAirQuality, ECRadar, ECWeather, ec_exc from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from .const import DOMAIN @@ -52,6 +53,12 @@ class ECDataUpdateCoordinator[_ECDataTypeT: ECAirQuality | ECRadar | ECWeather]( ) self.ec_data = ec_data self.last_update_success = False + self.device_info = DeviceInfo( + entry_type=DeviceEntryType.SERVICE, + identifiers={(DOMAIN, entry.entry_id)}, + manufacturer="Environment Canada", + configuration_url="https://weather.gc.ca/", + ) async def _async_update_data(self) -> _ECDataTypeT: """Fetch data from EC.""" diff --git a/homeassistant/components/environment_canada/sensor.py b/homeassistant/components/environment_canada/sensor.py index 2d7a9648446..1485f890cd2 100644 --- a/homeassistant/components/environment_canada/sensor.py +++ b/homeassistant/components/environment_canada/sensor.py @@ -26,7 +26,6 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity -from . import device_info from .const import ATTR_STATION from .coordinator import ECConfigEntry @@ -282,7 +281,7 @@ class ECBaseSensorEntity(CoordinatorEntity, SensorEntity): self._ec_data = coordinator.ec_data self._attr_attribution = self._ec_data.metadata["attribution"] self._attr_unique_id = f"{coordinator.config_entry.title}-{description.key}" - self._attr_device_info = device_info(coordinator.config_entry) + self._attr_device_info = coordinator.device_info @property def native_value(self): diff --git a/homeassistant/components/environment_canada/weather.py b/homeassistant/components/environment_canada/weather.py index a5bc72856e7..5cfe32f18dd 100644 --- a/homeassistant/components/environment_canada/weather.py +++ b/homeassistant/components/environment_canada/weather.py @@ -37,7 +37,6 @@ from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import entity_registry as er from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import device_info from .const import DOMAIN from .coordinator import ECConfigEntry @@ -104,7 +103,7 @@ class ECWeatherEntity(SingleCoordinatorWeatherEntity): self._attr_unique_id = _calculate_unique_id( coordinator.config_entry.unique_id, False ) - self._attr_device_info = device_info(coordinator.config_entry) + self._attr_device_info = coordinator.device_info @property def native_temperature(self):