mirror of
https://github.com/home-assistant/core.git
synced 2025-04-26 02:07:54 +00:00
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>
This commit is contained in:
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.const import CONF_LANGUAGE, CONF_LATITUDE, CONF_LONGITUDE, Platform
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import ConfigEntryNotReady
|
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
|
from .coordinator import ECConfigEntry, ECDataUpdateCoordinator, ECRuntimeData
|
||||||
|
|
||||||
DEFAULT_RADAR_UPDATE_INTERVAL = timedelta(minutes=5)
|
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:
|
async def async_unload_entry(hass: HomeAssistant, config_entry: ECConfigEntry) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS)
|
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.typing import VolDictType
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from . import device_info
|
|
||||||
from .const import ATTR_OBSERVATION_TIME
|
from .const import ATTR_OBSERVATION_TIME
|
||||||
from .coordinator import ECConfigEntry
|
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_unique_id = f"{coordinator.config_entry.unique_id}-radar"
|
||||||
self._attr_attribution = self.radar_object.metadata["attribution"]
|
self._attr_attribution = self.radar_object.metadata["attribution"]
|
||||||
self._attr_entity_registry_enabled_default = False
|
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"
|
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.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
@ -52,6 +53,12 @@ class ECDataUpdateCoordinator[_ECDataTypeT: ECAirQuality | ECRadar | ECWeather](
|
|||||||
)
|
)
|
||||||
self.ec_data = ec_data
|
self.ec_data = ec_data
|
||||||
self.last_update_success = False
|
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:
|
async def _async_update_data(self) -> _ECDataTypeT:
|
||||||
"""Fetch data from EC."""
|
"""Fetch data from EC."""
|
||||||
|
@ -26,7 +26,6 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
from . import device_info
|
|
||||||
from .const import ATTR_STATION
|
from .const import ATTR_STATION
|
||||||
from .coordinator import ECConfigEntry
|
from .coordinator import ECConfigEntry
|
||||||
|
|
||||||
@ -282,7 +281,7 @@ class ECBaseSensorEntity(CoordinatorEntity, SensorEntity):
|
|||||||
self._ec_data = coordinator.ec_data
|
self._ec_data = coordinator.ec_data
|
||||||
self._attr_attribution = self._ec_data.metadata["attribution"]
|
self._attr_attribution = self._ec_data.metadata["attribution"]
|
||||||
self._attr_unique_id = f"{coordinator.config_entry.title}-{description.key}"
|
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
|
@property
|
||||||
def native_value(self):
|
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 import entity_registry as er
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import device_info
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import ECConfigEntry
|
from .coordinator import ECConfigEntry
|
||||||
|
|
||||||
@ -104,7 +103,7 @@ class ECWeatherEntity(SingleCoordinatorWeatherEntity):
|
|||||||
self._attr_unique_id = _calculate_unique_id(
|
self._attr_unique_id = _calculate_unique_id(
|
||||||
coordinator.config_entry.unique_id, False
|
coordinator.config_entry.unique_id, False
|
||||||
)
|
)
|
||||||
self._attr_device_info = device_info(coordinator.config_entry)
|
self._attr_device_info = coordinator.device_info
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def native_temperature(self):
|
def native_temperature(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user