1 """The mill component."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 from mill_local
import Mill
as MillLocal
16 from .const
import CLOUD, CONNECTION_TYPE, DOMAIN, LOCAL
17 from .coordinator
import MillDataUpdateCoordinator
19 PLATFORMS = [Platform.CLIMATE, Platform.SENSOR]
23 """Set up the Mill heater."""
24 hass.data.setdefault(DOMAIN, {LOCAL: {}, CLOUD: {}})
26 if entry.data.get(CONNECTION_TYPE) == LOCAL:
27 mill_data_connection = MillLocal(
28 entry.data[CONF_IP_ADDRESS],
32 key = entry.data[CONF_IP_ADDRESS]
35 mill_data_connection = Mill(
36 entry.data[CONF_USERNAME],
37 entry.data[CONF_PASSWORD],
41 key = entry.data[CONF_USERNAME]
45 if not await mill_data_connection.connect():
46 raise ConfigEntryNotReady
47 except TimeoutError
as error:
48 raise ConfigEntryNotReady
from error
51 mill_data_connection=mill_data_connection,
52 update_interval=update_interval,
55 await data_coordinator.async_config_entry_first_refresh()
56 hass.data[DOMAIN][conn_type][key] = data_coordinator
58 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
63 """Unload a config entry."""
64 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry 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)