1 """The Broadlink integration."""
3 from __future__
import annotations
5 from dataclasses
import dataclass, field
12 from .const
import DOMAIN
13 from .device
import BroadlinkDevice
14 from .heartbeat
import BroadlinkHeartbeat
16 CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
21 """Class for sharing data within the Broadlink integration."""
23 devices: dict[str, BroadlinkDevice] = field(default_factory=dict)
24 platforms: dict = field(default_factory=dict)
25 heartbeat: BroadlinkHeartbeat |
None =
None
28 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
29 """Set up the Broadlink integration."""
35 """Set up a Broadlink device from a config entry."""
36 data: BroadlinkData = hass.data[DOMAIN]
39 if not await device.async_setup():
41 if data.heartbeat
is None:
43 hass.async_create_task(data.heartbeat.async_setup())
48 """Unload a config entry."""
49 data: BroadlinkData = hass.data[DOMAIN]
51 device = data.devices.pop(entry.entry_id)
52 result = await device.async_unload()
54 if data.heartbeat
and not data.devices:
55 await data.heartbeat.async_unload()
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup(HomeAssistant hass, ConfigType config)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)