Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """Support for Ecovacs Deebot vacuums."""
2 
3 from sucks import VacBot
4 
5 from homeassistant.config_entries import ConfigEntry
6 from homeassistant.const import Platform
7 from homeassistant.core import HomeAssistant
8 
9 from .controller import EcovacsController
10 
11 PLATFORMS = [
12  Platform.BINARY_SENSOR,
13  Platform.BUTTON,
14  Platform.EVENT,
15  Platform.IMAGE,
16  Platform.LAWN_MOWER,
17  Platform.NUMBER,
18  Platform.SELECT,
19  Platform.SENSOR,
20  Platform.SWITCH,
21  Platform.VACUUM,
22 ]
23 type EcovacsConfigEntry = ConfigEntry[EcovacsController]
24 
25 
26 async def async_setup_entry(hass: HomeAssistant, entry: EcovacsConfigEntry) -> bool:
27  """Set up this integration using UI."""
28  controller = EcovacsController(hass, entry.data)
29  await controller.initialize()
30 
31  async def on_unload() -> None:
32  await controller.teardown()
33 
34  entry.async_on_unload(on_unload)
35  entry.runtime_data = controller
36 
37  async def _async_wait_connect(device: VacBot) -> None:
38  await hass.async_add_executor_job(device.connect_and_wait_until_ready)
39 
40  for device in controller.legacy_devices:
41  entry.async_create_background_task(
42  hass=hass,
43  target=_async_wait_connect(device),
44  name=f"{entry.title}_wait_connect_{device.vacuum['did']}",
45  )
46  await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
47  return True
48 
49 
50 async def async_unload_entry(hass: HomeAssistant, entry: EcovacsConfigEntry) -> bool:
51  """Unload config entry."""
52  return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, EcovacsConfigEntry entry)
Definition: __init__.py:26
bool async_unload_entry(HomeAssistant hass, EcovacsConfigEntry entry)
Definition: __init__.py:50
None on_unload(HomeAssistant hass, GatewayId gateway_id, Callable fnct)
Definition: helpers.py:45