Skip to content

Commit

Permalink
Explicitly pass in the config_entry in incomfort coordinator (#138131)
Browse files Browse the repository at this point in the history
  • Loading branch information
jbouwh authored Feb 9, 2025
1 parent 56eecf0 commit 2dbf475
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 20 deletions.
12 changes: 7 additions & 5 deletions homeassistant/components/incomfort/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@
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 = (
Expand All @@ -24,8 +28,6 @@

INTEGRATION_TITLE = "Intergas InComfort/Intouch Lan2RF gateway"

type InComfortConfigEntry = ConfigEntry[InComfortDataCoordinator]


@callback
def async_cleanup_stale_devices(
Expand Down Expand Up @@ -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()

Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/incomfort/binary_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@
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
Expand Down
8 changes: 5 additions & 3 deletions homeassistant/components/incomfort/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@
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
Expand Down Expand Up @@ -74,7 +73,10 @@ def __init__(
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]:
Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/incomfort/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@
)
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"

Expand Down
13 changes: 11 additions & 2 deletions homeassistant/components/incomfort/coordinator.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@
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
Expand Down Expand Up @@ -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),
)
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/incomfort/diagnostics.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from homeassistant.const import CONF_PASSWORD
from homeassistant.core import HomeAssistant, callback

from . import InComfortConfigEntry
from .coordinator import InComfortConfigEntry

REDACT_CONFIG = {CONF_PASSWORD}

Expand Down
5 changes: 4 additions & 1 deletion homeassistant/components/incomfort/entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,7 @@ def __init__(self, coordinator: InComfortDataCoordinator, heater: Heater) -> Non
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,
)
3 changes: 1 addition & 2 deletions homeassistant/components/incomfort/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
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
Expand Down
3 changes: 1 addition & 2 deletions homeassistant/components/incomfort/water_heater.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
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__)
Expand Down

0 comments on commit 2dbf475

Please sign in to comment.