1 """The Knocki integration."""
3 from __future__
import annotations
5 from knocki
import Event, EventType, KnockiClient
12 from .coordinator
import KnockiCoordinator
14 PLATFORMS: list[Platform] = [Platform.EVENT]
16 type KnockiConfigEntry = ConfigEntry[KnockiCoordinator]
20 """Set up Knocki from a config entry."""
21 client = KnockiClient(
27 await coordinator.async_config_entry_first_refresh()
29 entry.async_on_unload(
30 client.register_listener(EventType.CREATED, coordinator.add_trigger)
33 async
def _refresh_coordinator(_: Event) ->
None:
34 await coordinator.async_refresh()
36 entry.async_on_unload(
37 client.register_listener(EventType.DELETED, _refresh_coordinator)
40 entry.runtime_data = coordinator
42 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
44 await client.start_websocket()
50 """Unload a config entry."""
51 await entry.runtime_data.client.close()
52 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, KnockiConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, KnockiConfigEntry entry)
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)