diff --git a/.coveragerc b/.coveragerc index 73ae1d1a466..2a75526e63a 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1011,6 +1011,7 @@ omit = homeassistant/components/rainmachine/util.py homeassistant/components/renson/__init__.py homeassistant/components/renson/const.py + homeassistant/components/renson/coordinator.py homeassistant/components/renson/entity.py homeassistant/components/renson/sensor.py homeassistant/components/renson/fan.py diff --git a/homeassistant/components/renson/__init__.py b/homeassistant/components/renson/__init__.py index 7ce143d8a21..231e63bfc25 100644 --- a/homeassistant/components/renson/__init__.py +++ b/homeassistant/components/renson/__init__.py @@ -1,11 +1,7 @@ """The Renson integration.""" from __future__ import annotations -import asyncio from dataclasses import dataclass -from datetime import timedelta -import logging -from typing import Any from renson_endura_delta.renson import RensonVentilation @@ -13,11 +9,9 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryNotReady -from homeassistant.helpers.update_coordinator import DataUpdateCoordinator from .const import DOMAIN - -_LOGGER = logging.getLogger(__name__) +from .coordinator import RensonCoordinator PLATFORMS = [ Platform.BINARY_SENSOR, @@ -62,30 +56,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: hass.data[DOMAIN].pop(entry.entry_id) return unload_ok - - -class RensonCoordinator(DataUpdateCoordinator): - """Data update coordinator for Renson.""" - - def __init__( - self, - name: str, - hass: HomeAssistant, - api: RensonVentilation, - update_interval=timedelta(seconds=30), - ) -> None: - """Initialize my coordinator.""" - super().__init__( - hass, - _LOGGER, - # Name of the data. For logging purposes. - name=name, - # Polling interval. Will only be polled if there are subscribers. - update_interval=update_interval, - ) - self.api = api - - async def _async_update_data(self) -> dict[str, Any]: - """Fetch data from API endpoint.""" - async with asyncio.timeout(30): - return await self.hass.async_add_executor_job(self.api.get_all_data) diff --git a/homeassistant/components/renson/binary_sensor.py b/homeassistant/components/renson/binary_sensor.py index cad8b92c0c3..39c2b1b883d 100644 --- a/homeassistant/components/renson/binary_sensor.py +++ b/homeassistant/components/renson/binary_sensor.py @@ -25,8 +25,8 @@ from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import RensonCoordinator from .const import DOMAIN +from .coordinator import RensonCoordinator from .entity import RensonEntity diff --git a/homeassistant/components/renson/coordinator.py b/homeassistant/components/renson/coordinator.py new file mode 100644 index 00000000000..924a3b765f5 --- /dev/null +++ b/homeassistant/components/renson/coordinator.py @@ -0,0 +1,41 @@ +"""DataUpdateCoordinator for the renson integration.""" +from __future__ import annotations + +import asyncio +from datetime import timedelta +import logging +from typing import Any + +from renson_endura_delta.renson import RensonVentilation + +from homeassistant.core import HomeAssistant +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator + +_LOGGER = logging.getLogger(__name__) + + +class RensonCoordinator(DataUpdateCoordinator[dict[str, Any]]): + """Data update coordinator for Renson.""" + + def __init__( + self, + name: str, + hass: HomeAssistant, + api: RensonVentilation, + update_interval=timedelta(seconds=30), + ) -> None: + """Initialize my coordinator.""" + super().__init__( + hass, + _LOGGER, + # Name of the data. For logging purposes. + name=name, + # Polling interval. Will only be polled if there are subscribers. + update_interval=update_interval, + ) + self.api = api + + async def _async_update_data(self) -> dict[str, Any]: + """Fetch data from API endpoint.""" + async with asyncio.timeout(30): + return await self.hass.async_add_executor_job(self.api.get_all_data) diff --git a/homeassistant/components/renson/entity.py b/homeassistant/components/renson/entity.py index 245b55d6611..9bb2c27b112 100644 --- a/homeassistant/components/renson/entity.py +++ b/homeassistant/components/renson/entity.py @@ -12,8 +12,8 @@ from renson_endura_delta.renson import RensonVentilation from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.update_coordinator import CoordinatorEntity -from . import RensonCoordinator from .const import DOMAIN +from .coordinator import RensonCoordinator class RensonEntity(CoordinatorEntity[RensonCoordinator]): diff --git a/homeassistant/components/renson/fan.py b/homeassistant/components/renson/fan.py index 0fe639d40ec..da6850859a6 100644 --- a/homeassistant/components/renson/fan.py +++ b/homeassistant/components/renson/fan.py @@ -18,8 +18,8 @@ from homeassistant.util.percentage import ( ranged_value_to_percentage, ) -from . import RensonCoordinator from .const import DOMAIN +from .coordinator import RensonCoordinator from .entity import RensonEntity _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/renson/number.py b/homeassistant/components/renson/number.py index bf33b75c9e3..344fa3ff0bd 100644 --- a/homeassistant/components/renson/number.py +++ b/homeassistant/components/renson/number.py @@ -16,8 +16,8 @@ from homeassistant.const import EntityCategory, UnitOfTime from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import RensonCoordinator from .const import DOMAIN +from .coordinator import RensonCoordinator from .entity import RensonEntity _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/renson/sensor.py b/homeassistant/components/renson/sensor.py index 661ab82f373..b729e2969d6 100644 --- a/homeassistant/components/renson/sensor.py +++ b/homeassistant/components/renson/sensor.py @@ -46,8 +46,9 @@ from homeassistant.const import ( from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import RensonCoordinator, RensonData +from . import RensonData from .const import DOMAIN +from .coordinator import RensonCoordinator from .entity import RensonEntity OPTIONS_MAPPING = {