diff --git a/homeassistant/components/incomfort/__init__.py b/homeassistant/components/incomfort/__init__.py index 4d05a57bcfa..307ff09206f 100644 --- a/homeassistant/components/incomfort/__init__.py +++ b/homeassistant/components/incomfort/__init__.py @@ -5,14 +5,18 @@ from __future__ import annotations from aiohttp import ClientResponseError from incomfortclient import InvalidGateway, InvalidHeaterList -from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.helpers import device_registry as dr from .const import DOMAIN -from .coordinator import InComfortData, InComfortDataCoordinator, async_connect_gateway +from .coordinator import ( + InComfortConfigEntry, + InComfortData, + InComfortDataCoordinator, + async_connect_gateway, +) from .errors import InComfortTimeout, InComfortUnknownError, NoHeaters, NotFound PLATFORMS = ( @@ -24,8 +28,6 @@ PLATFORMS = ( INTEGRATION_TITLE = "Intergas InComfort/Intouch Lan2RF gateway" -type InComfortConfigEntry = ConfigEntry[InComfortDataCoordinator] - @callback def async_cleanup_stale_devices( @@ -93,7 +95,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: InComfortConfigEntry) -> name="RFGateway", ) async_cleanup_stale_devices(hass, entry, data, gateway_device) - coordinator = InComfortDataCoordinator(hass, data, entry.entry_id) + coordinator = InComfortDataCoordinator(hass, entry, data) entry.runtime_data = coordinator await coordinator.async_config_entry_first_refresh() diff --git a/homeassistant/components/incomfort/binary_sensor.py b/homeassistant/components/incomfort/binary_sensor.py index e4353e457a5..323ba7e6eee 100644 --- a/homeassistant/components/incomfort/binary_sensor.py +++ b/homeassistant/components/incomfort/binary_sensor.py @@ -17,8 +17,7 @@ from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import InComfortConfigEntry -from .coordinator import InComfortDataCoordinator +from .coordinator import InComfortConfigEntry, InComfortDataCoordinator from .entity import IncomfortBoilerEntity PARALLEL_UPDATES = 0 diff --git a/homeassistant/components/incomfort/climate.py b/homeassistant/components/incomfort/climate.py index f814b1fb1f5..3a4b4e56fd5 100644 --- a/homeassistant/components/incomfort/climate.py +++ b/homeassistant/components/incomfort/climate.py @@ -17,9 +17,8 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import InComfortConfigEntry from .const import CONF_LEGACY_SETPOINT_STATUS, DOMAIN -from .coordinator import InComfortDataCoordinator +from .coordinator import InComfortConfigEntry, InComfortDataCoordinator from .entity import IncomfortEntity PARALLEL_UPDATES = 1 @@ -74,7 +73,10 @@ class InComfortClimate(IncomfortEntity, ClimateEntity): name=f"Thermostat {room.room_no}", ) if coordinator.unique_id: - self._attr_device_info["via_device"] = (DOMAIN, coordinator.unique_id) + self._attr_device_info["via_device"] = ( + DOMAIN, + coordinator.config_entry.entry_id, + ) @property def extra_state_attributes(self) -> dict[str, Any]: diff --git a/homeassistant/components/incomfort/config_flow.py b/homeassistant/components/incomfort/config_flow.py index 8e4a5f72619..875bc25bd2f 100644 --- a/homeassistant/components/incomfort/config_flow.py +++ b/homeassistant/components/incomfort/config_flow.py @@ -28,9 +28,8 @@ from homeassistant.helpers.selector import ( ) from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo -from . import InComfortConfigEntry from .const import CONF_LEGACY_SETPOINT_STATUS, DOMAIN -from .coordinator import async_connect_gateway +from .coordinator import InComfortConfigEntry, async_connect_gateway TITLE = "Intergas InComfort/Intouch Lan2RF gateway" diff --git a/homeassistant/components/incomfort/coordinator.py b/homeassistant/components/incomfort/coordinator.py index 3436d40298a..5c72b9daa06 100644 --- a/homeassistant/components/incomfort/coordinator.py +++ b/homeassistant/components/incomfort/coordinator.py @@ -12,12 +12,15 @@ from incomfortclient import ( InvalidHeaterList, ) +from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryError from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed +type InComfortConfigEntry = ConfigEntry[InComfortDataCoordinator] + _LOGGER = logging.getLogger(__name__) UPDATE_INTERVAL = 30 @@ -50,14 +53,20 @@ async def async_connect_gateway( class InComfortDataCoordinator(DataUpdateCoordinator[InComfortData]): """Data coordinator for InComfort entities.""" + config_entry: InComfortConfigEntry + def __init__( - self, hass: HomeAssistant, incomfort_data: InComfortData, unique_id: str | None + self, + hass: HomeAssistant, + config_entry: InComfortConfigEntry, + incomfort_data: InComfortData, ) -> None: """Initialize coordinator.""" - self.unique_id = unique_id + self.unique_id = config_entry.unique_id super().__init__( hass, _LOGGER, + config_entry=config_entry, name="InComfort datacoordinator", update_interval=timedelta(seconds=UPDATE_INTERVAL), ) diff --git a/homeassistant/components/incomfort/diagnostics.py b/homeassistant/components/incomfort/diagnostics.py index a2f89a94f58..4d7af14eac7 100644 --- a/homeassistant/components/incomfort/diagnostics.py +++ b/homeassistant/components/incomfort/diagnostics.py @@ -8,7 +8,7 @@ from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_PASSWORD from homeassistant.core import HomeAssistant, callback -from . import InComfortConfigEntry +from .coordinator import InComfortConfigEntry REDACT_CONFIG = {CONF_PASSWORD} diff --git a/homeassistant/components/incomfort/entity.py b/homeassistant/components/incomfort/entity.py index 1924c91376b..1e0d357e8e0 100644 --- a/homeassistant/components/incomfort/entity.py +++ b/homeassistant/components/incomfort/entity.py @@ -29,4 +29,7 @@ class IncomfortBoilerEntity(IncomfortEntity): serial_number=heater.serial_no, ) if coordinator.unique_id: - self._attr_device_info["via_device"] = (DOMAIN, coordinator.unique_id) + self._attr_device_info["via_device"] = ( + DOMAIN, + coordinator.config_entry.entry_id, + ) diff --git a/homeassistant/components/incomfort/sensor.py b/homeassistant/components/incomfort/sensor.py index e3f3fc785b2..8507e9f9ebf 100644 --- a/homeassistant/components/incomfort/sensor.py +++ b/homeassistant/components/incomfort/sensor.py @@ -18,8 +18,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import StateType -from . import InComfortConfigEntry -from .coordinator import InComfortDataCoordinator +from .coordinator import InComfortConfigEntry, InComfortDataCoordinator from .entity import IncomfortBoilerEntity PARALLEL_UPDATES = 0 diff --git a/homeassistant/components/incomfort/water_heater.py b/homeassistant/components/incomfort/water_heater.py index 0ab4a6a06b8..334fc187538 100644 --- a/homeassistant/components/incomfort/water_heater.py +++ b/homeassistant/components/incomfort/water_heater.py @@ -12,8 +12,7 @@ from homeassistant.const import EntityCategory, UnitOfTemperature from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import InComfortConfigEntry -from .coordinator import InComfortDataCoordinator +from .coordinator import InComfortConfigEntry, InComfortDataCoordinator from .entity import IncomfortBoilerEntity _LOGGER = logging.getLogger(__name__)