Move config entry type of energyzero integration (#133094)

Move config_entry type to coordinator file
This commit is contained in:
Klaas Schoute 2024-12-13 07:53:25 +01:00 committed by GitHub
parent 09b06f839d
commit 0ffb588d5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 14 additions and 15 deletions

View File

@ -2,7 +2,6 @@
from __future__ import annotations from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
@ -10,14 +9,12 @@ from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import ConfigType
from .const import DOMAIN from .const import DOMAIN
from .coordinator import EnergyZeroDataUpdateCoordinator from .coordinator import EnergyZeroConfigEntry, EnergyZeroDataUpdateCoordinator
from .services import async_setup_services from .services import async_setup_services
PLATFORMS: list[Platform] = [Platform.SENSOR] PLATFORMS: list[Platform] = [Platform.SENSOR]
CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
type EnergyZeroConfigEntry = ConfigEntry[EnergyZeroDataUpdateCoordinator]
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up EnergyZero services.""" """Set up EnergyZero services."""
@ -30,7 +27,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: EnergyZeroConfigEntry) -> bool: async def async_setup_entry(hass: HomeAssistant, entry: EnergyZeroConfigEntry) -> bool:
"""Set up EnergyZero from a config entry.""" """Set up EnergyZero from a config entry."""
coordinator = EnergyZeroDataUpdateCoordinator(hass) coordinator = EnergyZeroDataUpdateCoordinator(hass, entry)
try: try:
await coordinator.async_config_entry_first_refresh() await coordinator.async_config_entry_first_refresh()
except ConfigEntryNotReady: except ConfigEntryNotReady:

View File

@ -21,6 +21,8 @@ from homeassistant.util import dt as dt_util
from .const import DOMAIN, LOGGER, SCAN_INTERVAL, THRESHOLD_HOUR from .const import DOMAIN, LOGGER, SCAN_INTERVAL, THRESHOLD_HOUR
type EnergyZeroConfigEntry = ConfigEntry[EnergyZeroDataUpdateCoordinator]
class EnergyZeroData(NamedTuple): class EnergyZeroData(NamedTuple):
"""Class for defining data in dict.""" """Class for defining data in dict."""
@ -35,13 +37,14 @@ class EnergyZeroDataUpdateCoordinator(DataUpdateCoordinator[EnergyZeroData]):
config_entry: ConfigEntry config_entry: ConfigEntry
def __init__(self, hass: HomeAssistant) -> None: def __init__(self, hass: HomeAssistant, entry: EnergyZeroConfigEntry) -> None:
"""Initialize global EnergyZero data updater.""" """Initialize global EnergyZero data updater."""
super().__init__( super().__init__(
hass, hass,
LOGGER, LOGGER,
name=DOMAIN, name=DOMAIN,
update_interval=SCAN_INTERVAL, update_interval=SCAN_INTERVAL,
config_entry=entry,
) )
self.energyzero = EnergyZero(session=async_get_clientsession(hass)) self.energyzero = EnergyZero(session=async_get_clientsession(hass))

View File

@ -7,8 +7,7 @@ from typing import Any
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from . import EnergyZeroConfigEntry from .coordinator import EnergyZeroConfigEntry, EnergyZeroData
from .coordinator import EnergyZeroData
def get_gas_price(data: EnergyZeroData, hours: int) -> float | None: def get_gas_price(data: EnergyZeroData, hours: int) -> float | None:

View File

@ -25,9 +25,12 @@ from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
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 EnergyZeroConfigEntry
from .const import DOMAIN, SERVICE_TYPE_DEVICE_NAMES from .const import DOMAIN, SERVICE_TYPE_DEVICE_NAMES
from .coordinator import EnergyZeroData, EnergyZeroDataUpdateCoordinator from .coordinator import (
EnergyZeroConfigEntry,
EnergyZeroData,
EnergyZeroDataUpdateCoordinator,
)
@dataclass(frozen=True, kw_only=True) @dataclass(frozen=True, kw_only=True)

View File

@ -5,7 +5,7 @@ from __future__ import annotations
from datetime import date, datetime from datetime import date, datetime
from enum import Enum from enum import Enum
from functools import partial from functools import partial
from typing import TYPE_CHECKING, Final from typing import Final
from energyzero import Electricity, Gas, VatOption from energyzero import Electricity, Gas, VatOption
import voluptuous as vol import voluptuous as vol
@ -22,11 +22,8 @@ from homeassistant.exceptions import ServiceValidationError
from homeassistant.helpers import selector from homeassistant.helpers import selector
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
if TYPE_CHECKING:
from . import EnergyZeroConfigEntry
from .const import DOMAIN from .const import DOMAIN
from .coordinator import EnergyZeroDataUpdateCoordinator from .coordinator import EnergyZeroConfigEntry, EnergyZeroDataUpdateCoordinator
ATTR_CONFIG_ENTRY: Final = "config_entry" ATTR_CONFIG_ENTRY: Final = "config_entry"
ATTR_START: Final = "start" ATTR_START: Final = "start"