Skip to main content

Vacuum entity

Derive entity platforms from homeassistant.components.vacuum.StateVacuumEntity

Properties

tip

Properties should always only return information from memory and not do I/O (like network requests). Implement update() or async_update() to fetch data.

NameTypeDefaultDescription
fan_speedstringnoneThe current fan speed.
fan_speed_listlistNotImplementedError()List of available fan speeds.
namestringRequiredName of the entity.
activityVacuumActivityRequiredReturn one of the states listed in the states section.

States

Setting the state should return an enum from VacuumActivity in the activity property.

ValueDescription
CLEANINGThe vacuum is currently cleaning.
DOCKEDThe vacuum is currently docked, it is assumed that docked can also mean charging.
IDLEThe vacuum is not paused, not docked and does not have any errors.
PAUSEDThe vacuum was cleaning but was paused without returning to the dock.
RETURNINGThe vacuum is done cleaning and is currently returning to the dock, but not yet docked.
ERRORThe vacuum encountered an error while cleaning.

Supported features

Supported features are defined by using values in the VacuumEntityFeature enum and are combined using the bitwise or (|) operator. Note that all vacuum entity platforms derived from homeassistant.components.vacuum.StateVacuumEntity must set the VacuumEntityFeature.STATE flag.

ValueDescription
CLEAN_AREAThe vacuum supports cleaning specific areas.
CLEAN_SPOTThe vacuum supports spot cleaning.
FAN_SPEEDThe vacuum supports setting fan speed.
LOCATEThe vacuum supports locating.
MAPThe vacuum supports retrieving its map.
PAUSEThe vacuum supports the pause command.
RETURN_HOMEThe vacuum supports the return to the dock command.
SEND_COMMANDThe vacuum supports sending a command to the vacuum.
STARTThe vacuum supports the start command.
STATEThe vacuum supports returning its state.
STOPThe vacuum supports the stop command.

Methods

async_get_segments

Return a list of Segment objects representing the cleanable segments reported by the vacuum. Integration platforms are required to implement this method when supporting CLEAN_AREA. It is called when configuring the area mapping, so it should return fully up-to-date information.

async def async_get_segments(self) -> list[Segment]:
"""Get the segments that can be cleaned."""

The Segment dataclass is defined as:

@dataclass(slots=True)
class Segment:
"""Represents a cleanable segment reported by a vacuum."""

id: str
name: str
group: str | None = None

The id must be globally unique across all segments for a given vacuum entity, regardless of group. The group field is used only for grouping segments in the mapping UI.

clean_segments or async_clean_segments

Clean the specified segments by their IDs. Integration platforms are required to implement this method when supporting CLEAN_AREA. It is called internally by the clean_area service after resolving targeted areas to segments using the area mapping.

async def async_clean_segments(self, segment_ids: list[str], **kwargs: Any) -> None:
"""Perform an area clean."""

last_seen_segments

A property that returns the segments reported by the vacuum that were available when last configuring the area mapping. Integrations can compare this against current device segments during their update cycle to detect changes and call async_create_segments_issue when appropriate. Returns None if no mapping has been saved yet, in which case the issue should not be raised.

@property
def last_seen_segments(self) -> list[Segment] | None:
"""Return segments as seen by the user, when last mapping the areas."""

async_create_segments_issue

A helper method that creates a repair issue when the vacuum reports different segments than what was available when last configuring the area mapping. Integrations should call this when segment changes require the area mapping to be adjusted. The resulting repair issue prompts the user to re-configure the area mapping, which will update last_seen_segments accordingly.

@callback
def async_create_segments_issue(self) -> None:
"""Create a repair issue when vacuum segments have changed."""

clean_spot or async_clean_spot

Perform a spot clean-up.

locate or async_locate

Locate the vacuum cleaner.

pause or async_pause

Pause the cleaning task.

return_to_base or async_return_to_base

Set the vacuum cleaner to return to the dock.

send_command or async_send_command

Send a command to a vacuum cleaner.

set_fan_speed or async_set_fan_speed

Set the fan speed.

start or async_start

Start or resume the cleaning task.

stop or async_stop

Stop the vacuum cleaner, do not return to base.