Migrate lamarzocco to entry.runtime_data (#119425)

migrate lamarzocco to entry.runtime_data
This commit is contained in:
Josef Zweck 2024-06-11 22:27:47 +02:00 committed by GitHub
parent 400b8a8361
commit bce8f2a25a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 33 additions and 45 deletions

View File

@ -41,8 +41,10 @@ PLATFORMS = [
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
type LaMarzoccoConfigEntry = ConfigEntry[LaMarzoccoUpdateCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: LaMarzoccoConfigEntry) -> bool:
"""Set up La Marzocco as config entry.""" """Set up La Marzocco as config entry."""
assert entry.unique_id assert entry.unique_id
@ -107,7 +109,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
await coordinator.async_setup() await coordinator.async_setup()
await coordinator.async_config_entry_first_refresh() await coordinator.async_config_entry_first_refresh()
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator entry.runtime_data = coordinator
gateway_version = coordinator.device.firmware[FirmwareType.GATEWAY].current_version gateway_version = coordinator.device.firmware[FirmwareType.GATEWAY].current_version
if version.parse(gateway_version) < version.parse("v3.5-rc5"): if version.parse(gateway_version) < version.parse("v3.5-rc5"):
@ -134,12 +136,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry.""" """Unload a config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:

View File

@ -10,12 +10,11 @@ from homeassistant.components.binary_sensor import (
BinarySensorEntity, BinarySensorEntity,
BinarySensorEntityDescription, BinarySensorEntityDescription,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
@ -51,11 +50,11 @@ ENTITIES: tuple[LaMarzoccoBinarySensorEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up binary sensor entities.""" """Set up binary sensor entities."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoBinarySensorEntity(coordinator, description) LaMarzoccoBinarySensorEntity(coordinator, description)

View File

@ -7,11 +7,10 @@ from typing import Any
from lmcloud.lm_machine import LaMarzoccoMachine from lmcloud.lm_machine import LaMarzoccoMachine
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
@ -36,12 +35,12 @@ ENTITIES: tuple[LaMarzoccoButtonEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up button entities.""" """Set up button entities."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoButtonEntity(coordinator, description) LaMarzoccoButtonEntity(coordinator, description)
for description in ENTITIES for description in ENTITIES

View File

@ -6,12 +6,11 @@ from datetime import datetime, timedelta
from lmcloud.models import LaMarzoccoWakeUpSleepEntry from lmcloud.models import LaMarzoccoWakeUpSleepEntry
from homeassistant.components.calendar import CalendarEntity, CalendarEvent from homeassistant.components.calendar import CalendarEntity, CalendarEvent
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .coordinator import LaMarzoccoUpdateCoordinator from .coordinator import LaMarzoccoUpdateCoordinator
from .entity import LaMarzoccoBaseEntity from .entity import LaMarzoccoBaseEntity
@ -30,12 +29,12 @@ DAY_OF_WEEK = [
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up switch entities and services.""" """Set up switch entities and services."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoCalendarEntity(coordinator, CALENDAR_KEY, wake_up_sleep_entry) LaMarzoccoCalendarEntity(coordinator, CALENDAR_KEY, wake_up_sleep_entry)
for wake_up_sleep_entry in coordinator.device.config.wake_up_sleep_entries.values() for wake_up_sleep_entry in coordinator.device.config.wake_up_sleep_entries.values()

View File

@ -8,11 +8,9 @@ from typing import Any, TypedDict
from lmcloud.const import FirmwareType from lmcloud.const import FirmwareType
from homeassistant.components.diagnostics import async_redact_data from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .coordinator import LaMarzoccoUpdateCoordinator
TO_REDACT = { TO_REDACT = {
"serial_number", "serial_number",
@ -29,10 +27,11 @@ class DiagnosticsData(TypedDict):
async def async_get_config_entry_diagnostics( async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry hass: HomeAssistant,
entry: LaMarzoccoConfigEntry,
) -> dict[str, Any]: ) -> dict[str, Any]:
"""Return diagnostics for a config entry.""" """Return diagnostics for a config entry."""
coordinator: LaMarzoccoUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
device = coordinator.device device = coordinator.device
# collect all data sources # collect all data sources
diagnostics_data = DiagnosticsData( diagnostics_data = DiagnosticsData(

View File

@ -19,7 +19,6 @@ from homeassistant.components.number import (
NumberEntity, NumberEntity,
NumberEntityDescription, NumberEntityDescription,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ( from homeassistant.const import (
PRECISION_TENTHS, PRECISION_TENTHS,
PRECISION_WHOLE, PRECISION_WHOLE,
@ -30,7 +29,7 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .coordinator import LaMarzoccoUpdateCoordinator from .coordinator import LaMarzoccoUpdateCoordinator
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
@ -187,11 +186,11 @@ KEY_ENTITIES: tuple[LaMarzoccoKeyNumberEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up number entities.""" """Set up number entities."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
entities: list[NumberEntity] = [ entities: list[NumberEntity] = [
LaMarzoccoNumberEntity(coordinator, description) LaMarzoccoNumberEntity(coordinator, description)
for description in ENTITIES for description in ENTITIES

View File

@ -9,12 +9,11 @@ from lmcloud.lm_machine import LaMarzoccoMachine
from lmcloud.models import LaMarzoccoMachineConfig from lmcloud.models import LaMarzoccoMachineConfig
from homeassistant.components.select import SelectEntity, SelectEntityDescription from homeassistant.components.select import SelectEntity, SelectEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
STEAM_LEVEL_HA_TO_LM = { STEAM_LEVEL_HA_TO_LM = {
@ -86,11 +85,11 @@ ENTITIES: tuple[LaMarzoccoSelectEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up select entities.""" """Set up select entities."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoSelectEntity(coordinator, description) LaMarzoccoSelectEntity(coordinator, description)

View File

@ -12,12 +12,11 @@ from homeassistant.components.sensor import (
SensorEntityDescription, SensorEntityDescription,
SensorStateClass, SensorStateClass,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory, UnitOfTemperature, UnitOfTime from homeassistant.const import EntityCategory, UnitOfTemperature, UnitOfTime
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
@ -87,11 +86,11 @@ ENTITIES: tuple[LaMarzoccoSensorEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up sensor entities.""" """Set up sensor entities."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoSensorEntity(coordinator, description) LaMarzoccoSensorEntity(coordinator, description)

View File

@ -9,11 +9,10 @@ from lmcloud.lm_machine import LaMarzoccoMachine
from lmcloud.models import LaMarzoccoMachineConfig from lmcloud.models import LaMarzoccoMachineConfig
from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
@ -47,12 +46,12 @@ ENTITIES: tuple[LaMarzoccoSwitchEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up switch entities and services.""" """Set up switch entities and services."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoSwitchEntity(coordinator, description) LaMarzoccoSwitchEntity(coordinator, description)
for description in ENTITIES for description in ENTITIES

View File

@ -11,13 +11,12 @@ from homeassistant.components.update import (
UpdateEntityDescription, UpdateEntityDescription,
UpdateEntityFeature, UpdateEntityFeature,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from . import LaMarzoccoConfigEntry
from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription from .entity import LaMarzoccoEntity, LaMarzoccoEntityDescription
@ -51,12 +50,12 @@ ENTITIES: tuple[LaMarzoccoUpdateEntityDescription, ...] = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, entry: LaMarzoccoConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Create update entities.""" """Create update entities."""
coordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator = entry.runtime_data
async_add_entities( async_add_entities(
LaMarzoccoUpdateEntity(coordinator, description) LaMarzoccoUpdateEntity(coordinator, description)
for description in ENTITIES for description in ENTITIES