1 """Support for Twente Milieu."""
3 from __future__
import annotations
5 from datetime
import date, timedelta
7 from twentemilieu
import TwenteMilieu, WasteType
8 import voluptuous
as vol
17 from .const
import CONF_HOUSE_LETTER, CONF_HOUSE_NUMBER, CONF_POST_CODE, DOMAIN, LOGGER
21 SERVICE_UPDATE =
"update"
22 SERVICE_SCHEMA = vol.Schema({vol.Optional(CONF_ID): cv.string})
24 PLATFORMS = [Platform.CALENDAR, Platform.SENSOR]
26 type TwenteMilieuDataUpdateCoordinator = DataUpdateCoordinator[
27 dict[WasteType, list[date]]
29 type TwenteMilieuConfigEntry = ConfigEntry[TwenteMilieuDataUpdateCoordinator]
33 """Set up Twente Milieu from a config entry."""
35 twentemilieu = TwenteMilieu(
36 post_code=entry.data[CONF_POST_CODE],
37 house_number=entry.data[CONF_HOUSE_NUMBER],
38 house_letter=entry.data[CONF_HOUSE_LETTER],
47 update_interval=SCAN_INTERVAL,
48 update_method=twentemilieu.update,
50 await coordinator.async_config_entry_first_refresh()
52 entry.runtime_data = coordinator
53 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
59 """Unload Twente Milieu config entry."""
60 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)