ThisCalculator

Everyday

Home Assistant Vacuum: Clean Rooms on Demand

Updated · Standard formula, shown below

Home Assistant Vacuum: Clean Rooms on Demand

Yes, Home Assistant can clean individual rooms on demand, but only if your robot vacuum supports room mapping and you set up the automation correctly. You can trigger a room-specific clean with a button, a voice command, or a schedule, and the vacuum will only clean the zones you define.

What “Clean a Room� Means in Home Assistant

Home Assistant itself doesn’t clean anything—it’s the brain that tells your vacuum where to go. Whether you can clean a single room depends on your vacuum’s firmware and the integration you use. Most modern robot vacuums (Roomba, Roborock, Dreame, Ecovacs, etc.) store a map of your home and expose “rooms� or “zones� to their own apps. Home Assistant can tap into that map through the official or community integration, then send a command like vacuum.start() with a specific room ID or zone coordinates.

If your vacuum doesn’t have a map (older models or very cheap ones), you cannot clean a single room—only the whole floor. Some vacuums without mapping can still clean a rectangular zone if you give it coordinates, but that’s less common.

How Room Cleaning Works Under the Hood

When you ask Home Assistant to clean a room, it sends a service call to the vacuum integration. The service call includes parameters like rooms or zones, depending on the integration. For example, with the Roborock integration, you might call vacuum.start() with rooms: ["living_room"] or zones: [[x1,y1,x2,y2,repetitions]].

The vacuum then navigates to that area using its internal map, cleans it, and returns to the dock. Home Assistant doesn’t need to know the room’s shape—it just passes the ID or coordinates that the vacuum’s app already uses.

To get the room IDs, you usually need to fetch them from the integration’s attributes. In the developer tools, you can inspect the vacuum entity’s state attributes and look for something like rooms or room_mapping. Some integrations expose a list of rooms with names and IDs; others require you to read the raw JSON from the vacuum’s API.

Setting Up a Room Clean Automation

Here’s a typical way to create a “clean the kitchen� button in Home Assistant:

  1. Install the integration for your vacuum (e.g., xiaomi_miio, roomba, deebot).
  2. Find the room ID by checking the vacuum entity’s attributes in Developer Tools → States.
  3. Create a script or automation that calls vacuum.start() with the room parameter.
  4. Add a button to your dashboard that triggers that script.

For example, a script might look like:

alias: Clean Kitchen
trigger: []
action:
  - service: vacuum.start
    target:
      entity_id: vacuum.roborock
    data:
      rooms:
        - 16
mode: single

Replace 16 with your kitchen’s room ID. You can also use zones with coordinates instead of room IDs if your vacuum doesn’t expose named rooms.

Voice Control and Schedules

Once the script exists, you can trigger it from a voice assistant (Alexa, Google Home, or the built-in Assist) by creating a sentence like “Clean the kitchen.� You can also schedule it with a time-based automation, e.g., every Monday at 9 AM clean the living room.

For voice, you’ll need to set up the appropriate integration (e.g., alexa or google_assistant) and expose the script as a custom intent. With Assist, you can define a custom sentence in the conversation integration.

Common Problems and Misconceptions

One big misconception: if you don’t have a map, you can’t clean a specific room. True—but some vacuums without mapping can still clean a rectangular area if you give it coordinates, but that’s less common.

Another issue: room IDs can change after the vacuum remaps (e.g., after moving furniture or a new firmware update). If your automation suddenly cleans the wrong room, re-fetch the IDs.

Some vacuums require the “room� to be a named zone in their own app first. If you haven’t set up rooms in the manufacturer’s app, Home Assistant won’t see them.

Also, not all integrations support room cleaning. For example, the generic roomba integration may only support start/stop, not room-specific commands. Check the integration documentation.

Comparing Vacuum Integrations

Here’s a rough breakdown of what popular integrations support:

  • Roborock (xiaomi_miio / roborock): Full room support via rooms parameter.
  • Roomba (roomba): Only start/stop/pause, no room selection in the official integration.
  • Ecovacs Deebot (deebot): Supports zones and rooms via the deebot integration.
  • Dreame (dreame_vacuum): Supports rooms, but requires a custom component.
  • Generic MQTT vacuums: Depends on the firmware; some expose room IDs, others don’t.

Check the integration’s documentation on the Home Assistant community forums before buying a vacuum if room-specific cleaning is a must.

Costs and Alternatives

If your current vacuum doesn’t support room cleaning, you have a few options:

  • Use a smart plug to turn on a regular vacuum in a specific room (but that’s not autonomous).
  • Buy a vacuum that supports mapping—prices vary, but many mid-range models do.
  • Use a different home automation platform like Node-RED to send raw commands to the vacuum.

There’s no extra cost for using Home Assistant itself—it’s free. The cost is the vacuum hardware.

Frequently Asked Questions

Can I clean multiple rooms at once?

Yes, you can pass a list of room IDs in the rooms parameter, e.g., rooms: ["kitchen", "living_room"]. The vacuum will clean them in sequence.

Why does my vacuum clean the whole house even when I specify a room?

This usually happens when the room ID is wrong or the integration doesn’t support room parameters. Double-check the attribute names and the integration documentation. Also, some vacuums require the room to be a “zone� in their app.

Can I use a sensor to trigger cleaning only when a room is dirty?

Not directly—there’s no standard “dirtiness� sensor. You could use a motion sensor or a schedule, but that’s not the same as detecting dirt. Some vacuums have a “carpet boost� feature, but that’s automatic, not room-specific.

Will room cleaning work if I have multiple floors?

Yes, if your vacuum supports multiple maps. You’ll need to select the correct map before sending the room command. In Home Assistant, you may need to call a service to switch maps first.

Do I need a cloud connection?

Most vacuums require cloud access for mapping, but some integrations (like Valetudo) run fully locally. If you want local control, look for a vacuum that supports Valetudo or a local API.

Can I clean a room with a manual mop?

That’s not a robot vacuum—it’s a manual task. Home Assistant can’t physically mop, but it can remind you to do it via a notification.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.