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 <joostlek@outlook.com>pull/136822/head
parent
b93c2382ce
commit
a6d132a337
|
@ -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/",
|
||||
)
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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."""
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue