1 """The BSB-Lan integration."""
5 from bsblan
import BSBLAN, BSBLANConfig, Device, Info, StaticState
18 from .const
import CONF_PASSKEY
19 from .coordinator
import BSBLanUpdateCoordinator
21 PLATFORMS = [Platform.CLIMATE, Platform.SENSOR, Platform.WATER_HEATER]
23 type BSBLanConfigEntry = ConfigEntry[BSBLanData]
26 @dataclasses.dataclass
28 """BSBLan data stored in the Home Assistant data object."""
30 coordinator: BSBLanUpdateCoordinator
38 """Set up BSB-Lan from a config entry."""
41 config = BSBLANConfig(
42 host=entry.data[CONF_HOST],
43 passkey=entry.data[CONF_PASSKEY],
44 port=entry.data[CONF_PORT],
45 username=entry.data.get(CONF_USERNAME),
46 password=entry.data.get(CONF_PASSWORD),
51 bsblan = BSBLAN(config, session)
55 await coordinator.async_config_entry_first_refresh()
58 device = await bsblan.device()
59 info = await bsblan.info()
60 static = await bsblan.static_values()
64 coordinator=coordinator,
70 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
76 """Unload BSBLAN config entry."""
77 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, BSBLanConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, BSBLanConfigEntry 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)