from __future__ import annotations from homeassistant.components.switch import SwitchEntity from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DATA_COORDINATOR, DOMAIN, STANDBY_ACTIVE_KEY from .coordinator import DualPidDataUpdateCoordinator from .entity import DualPidEntity async def async_setup_entry( hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: coordinator: DualPidDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][DATA_COORDINATOR] async_add_entities([DualPidStandbySwitch(coordinator, entry)]) class DualPidStandbySwitch(DualPidEntity, SwitchEntity): """Switch entity to control machine power semantics via standby.""" _attr_name = "Maschine" _attr_icon = "mdi:coffee-maker" def __init__( self, coordinator: DualPidDataUpdateCoordinator, entry: ConfigEntry, ) -> None: super().__init__(coordinator, entry, "standby_switch") @property def is_on(self) -> bool: return not bool(self.coordinator.data.get(STANDBY_ACTIVE_KEY)) async def async_turn_on(self, **kwargs) -> None: await self.coordinator.async_execute_action("standby_off") async def async_turn_off(self, **kwargs) -> None: await self.coordinator.async_execute_action("standby_on")