1 """Refoss devices platform loader."""
3 from __future__
import annotations
5 from datetime
import timedelta
6 from typing
import Final
13 from .bridge
import DiscoveryService
14 from .const
import COORDINATORS, DATA_DISCOVERY_SERVICE, DISCOVERY_SCAN_INTERVAL, DOMAIN
15 from .util
import refoss_discovery_server
24 """Set up Refoss from a config entry."""
25 hass.data.setdefault(DOMAIN, {})
28 hass.data[DOMAIN][DATA_DISCOVERY_SERVICE] = refoss_discovery
30 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
32 async
def _async_scan_update(_=None):
33 await refoss_discovery.discovery.broadcast_msg()
35 await _async_scan_update()
37 entry.async_on_unload(
39 hass, _async_scan_update,
timedelta(seconds=DISCOVERY_SCAN_INTERVAL)
47 """Unload a config entry."""
48 if hass.data[DOMAIN].
get(DATA_DISCOVERY_SERVICE)
is not None:
49 refoss_discovery: DiscoveryService = hass.data[DOMAIN][DATA_DISCOVERY_SERVICE]
50 refoss_discovery.discovery.clean_up()
51 hass.data[DOMAIN].pop(DATA_DISCOVERY_SERVICE)
53 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
56 hass.data[DOMAIN].pop(COORDINATORS)
web.Response get(self, web.Request request, str config_key)
Discovery refoss_discovery_server(HomeAssistant hass)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
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)