Move melnor coordinator to separate module (#117486)

This commit is contained in:
epenet 2024-05-15 12:13:05 +02:00 committed by GitHub
parent 37c55d81e3
commit 6bd3648c77
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 45 additions and 53 deletions

View File

@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ConfigEntryNotReady
from .const import DOMAIN
from .models import MelnorDataUpdateCoordinator
from .coordinator import MelnorDataUpdateCoordinator
PLATFORMS: list[Platform] = [
Platform.NUMBER,

View File

@ -0,0 +1,33 @@
"""Coordinator for the Melnor integration."""
from datetime import timedelta
import logging
from melnor_bluetooth.device import Device
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
_LOGGER = logging.getLogger(__name__)
class MelnorDataUpdateCoordinator(DataUpdateCoordinator[Device]):
"""Melnor data update coordinator."""
_device: Device
def __init__(self, hass: HomeAssistant, device: Device) -> None:
"""Initialize my coordinator."""
super().__init__(
hass,
_LOGGER,
name="Melnor Bluetooth",
update_interval=timedelta(seconds=5),
)
self._device = device
async def _async_update_data(self):
"""Update the device state."""
await self._device.fetch_state()
return self._device

View File

@ -1,45 +1,17 @@
"""Melnor integration models."""
from collections.abc import Callable
from datetime import timedelta
import logging
from typing import TypeVar
from melnor_bluetooth.device import Device, Valve
from homeassistant.components.number import EntityDescription
from homeassistant.core import HomeAssistant, callback
from homeassistant.core import callback
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
)
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
class MelnorDataUpdateCoordinator(DataUpdateCoordinator[Device]): # pylint: disable=hass-enforce-coordinator-module
"""Melnor data update coordinator."""
_device: Device
def __init__(self, hass: HomeAssistant, device: Device) -> None:
"""Initialize my coordinator."""
super().__init__(
hass,
_LOGGER,
name="Melnor Bluetooth",
update_interval=timedelta(seconds=5),
)
self._device = device
async def _async_update_data(self):
"""Update the device state."""
await self._device.fetch_state()
return self._device
from .coordinator import MelnorDataUpdateCoordinator
class MelnorBluetoothEntity(CoordinatorEntity[MelnorDataUpdateCoordinator]):

View File

@ -19,11 +19,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN
from .models import (
MelnorDataUpdateCoordinator,
MelnorZoneEntity,
get_entities_for_valves,
)
from .coordinator import MelnorDataUpdateCoordinator
from .models import MelnorZoneEntity, get_entities_for_valves
@dataclass(frozen=True, kw_only=True)

View File

@ -27,12 +27,8 @@ from homeassistant.helpers.typing import StateType
from homeassistant.util import dt as dt_util
from .const import DOMAIN
from .models import (
MelnorBluetoothEntity,
MelnorDataUpdateCoordinator,
MelnorZoneEntity,
get_entities_for_valves,
)
from .coordinator import MelnorDataUpdateCoordinator
from .models import MelnorBluetoothEntity, MelnorZoneEntity, get_entities_for_valves
def watering_seconds_left(valve: Valve) -> datetime | None:

View File

@ -18,11 +18,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN
from .models import (
MelnorDataUpdateCoordinator,
MelnorZoneEntity,
get_entities_for_valves,
)
from .coordinator import MelnorDataUpdateCoordinator
from .models import MelnorZoneEntity, get_entities_for_valves
@dataclass(frozen=True, kw_only=True)

View File

@ -16,11 +16,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN
from .models import (
MelnorDataUpdateCoordinator,
MelnorZoneEntity,
get_entities_for_valves,
)
from .coordinator import MelnorDataUpdateCoordinator
from .models import MelnorZoneEntity, get_entities_for_valves
@dataclass(frozen=True, kw_only=True)