1 """The Steamist integration."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 from aiosteamist
import Steamist
18 from .const
import DISCOVER_SCAN_TIMEOUT, DISCOVERY, DOMAIN
19 from .coordinator
import SteamistDataUpdateCoordinator
20 from .discovery
import (
21 async_discover_device,
22 async_discover_devices,
24 async_trigger_discovery,
25 async_update_entry_from_discovery,
28 PLATFORMS: list[str] = [Platform.SENSOR, Platform.SWITCH]
30 CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
33 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
34 """Set up the steamist component."""
35 domain_data = hass.data.setdefault(DOMAIN, {})
36 domain_data[DISCOVERY] = []
38 async
def _async_discovery(*_: Any) ->
None:
43 hass.async_create_background_task(
44 _async_discovery(),
"steamist-discovery", eager_start=
True
51 """Set up Steamist from a config entry."""
52 host = entry.data[CONF_HOST]
57 entry.data.get(CONF_NAME),
59 await coordinator.async_config_entry_first_refresh()
63 hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
64 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
69 """Unload a config entry."""
70 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
71 hass.data[DOMAIN].pop(entry.entry_id)
ElkSystem|None async_discover_device(HomeAssistant hass, str host)
bool async_update_entry_from_discovery(HomeAssistant hass, config_entries.ConfigEntry entry, ElkSystem device)
FluxLEDDiscovery|None async_get_discovery(HomeAssistant hass, str host)
bool async_setup(HomeAssistant hass, ConfigType config)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
dict[str, Device] async_discover_devices(HomeAssistant hass)
None async_trigger_discovery(HomeAssistant hass, dict[str, Device] discovered_devices)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)
CALLBACK_TYPE async_track_time_interval(HomeAssistant hass, Callable[[datetime], Coroutine[Any, Any, None]|None] action, timedelta interval, *str|None name=None, bool|None cancel_on_shutdown=None)