1 """Support for IKEA Tradfri switches."""
3 from __future__
import annotations
5 from collections.abc
import Callable
6 from typing
import Any, cast
8 from pytradfri.command
import Command
15 from .const
import CONF_GATEWAY_ID, COORDINATOR, COORDINATOR_LIST, DOMAIN, KEY_API
16 from .coordinator
import TradfriDeviceDataUpdateCoordinator
17 from .entity
import TradfriBaseEntity
22 config_entry: ConfigEntry,
23 async_add_entities: AddEntitiesCallback,
25 """Load Tradfri switches based on a config entry."""
26 gateway_id = config_entry.data[CONF_GATEWAY_ID]
27 coordinator_data = hass.data[DOMAIN][config_entry.entry_id][COORDINATOR]
28 api = coordinator_data[KEY_API]
36 for device_coordinator
in coordinator_data[COORDINATOR_LIST]
37 if device_coordinator.device.has_socket_control
42 """The platform class required by Home Assistant."""
48 device_coordinator: TradfriDeviceDataUpdateCoordinator,
49 api: Callable[[Command | list[Command]], Any],
52 """Initialize a switch."""
54 device_coordinator=device_coordinator,
56 gateway_id=gateway_id,
63 """Refresh the device."""
64 self.
_device_data_device_data = self.coordinator.data.socket_control.sockets[0]
68 """Return true if switch is on."""
74 """Instruct the switch to turn off."""
80 """Instruct the switch to turn on."""
None __init__(self, TradfriDeviceDataUpdateCoordinator device_coordinator, Callable[[Command|list[Command]], Any] api, str gateway_id)
None async_turn_off(self, **Any kwargs)
None async_turn_on(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)