Home Assistant Unofficial Reference 2024.12.1
vacuum.py
Go to the documentation of this file.
1 """Support for Wi-Fi enabled iRobot Roombas."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.config_entries import ConfigEntry
6 from homeassistant.core import HomeAssistant
7 from homeassistant.helpers.entity_platform import AddEntitiesCallback
8 
9 from . import roomba_reported_state
10 from .braava import BraavaJet
11 from .const import DOMAIN
12 from .entity import IRobotVacuum
13 from .models import RoombaData
14 from .roomba import RoombaVacuum, RoombaVacuumCarpetBoost
15 
16 
18  hass: HomeAssistant,
19  config_entry: ConfigEntry,
20  async_add_entities: AddEntitiesCallback,
21 ) -> None:
22  """Set up the iRobot Roomba vacuum cleaner."""
23  domain_data: RoombaData = hass.data[DOMAIN][config_entry.entry_id]
24  roomba = domain_data.roomba
25  blid = domain_data.blid
26 
27  # Get the capabilities of our unit
28  state = roomba_reported_state(roomba)
29  capabilities = state.get("cap", {})
30  cap_carpet_boost = capabilities.get("carpetBoost")
31  detected_pad = state.get("detectedPad")
32  constructor: type[IRobotVacuum]
33  if detected_pad is not None:
34  constructor = BraavaJet
35  elif cap_carpet_boost == 1:
36  constructor = RoombaVacuumCarpetBoost
37  else:
38  constructor = RoombaVacuum
39 
40  roomba_vac = constructor(roomba, blid)
41  async_add_entities([roomba_vac])
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: vacuum.py:21
dict[str, Any] roomba_reported_state(Roomba roomba)
Definition: __init__.py:129