Robot vacuums are one of the most satisfying things to automate. Your floors get cleaned while you're out, the vacuum returns to its dock, and Home Assistant handles the scheduling. Here's everything you need to know about picking the right vacuum, going fully local, and building automations that actually make sense.
Not every vacuum plays nice with Home Assistant. These are the ones that actually do.
The best vacuum+mop combo you can pair with Home Assistant. LiDAR navigation, obstacle avoidance, self-emptying and self-washing dock. Works through the official Roborock integration or Valetudo for fully local control. Room cleaning, zone cleaning, and detailed maps all work perfectly in HA.
Dreame vacuums are the easiest to root for Valetudo. Many models can be rooted over Wi-Fi in minutes without opening anything. The L10s Ultra has strong suction, good mopping, and a full dock. Once running Valetudo, you get MQTT integration with maps, room cleaning, and zero cloud dependency.
Excellent value with LiDAR, decent mopping, and a self-emptying dock. Works with the Roborock integration out of the box. Room cleaning, no-go zones, and scheduling all work in Home Assistant. Not Valetudo compatible yet, but the cloud integration is solid and reliable.
If you already own a Roomba, the iRobot integration works well for basic control. Start, stop, dock, room cleaning. The obstacle avoidance is among the best. Downside: no local control option. You're locked into iRobot's cloud, and the integration has been less reliable since the Amazon acquisition.
The square design reaches into corners better than round vacuums. Excellent mopping with hot water washing. The Ecovacs integration (HACS) gives you basic control, room cleaning, and status updates. Cloud dependent, but the integration has improved significantly in 2025/2026.
| Vacuum | Price | Local | Mop | Rooms |
|---|---|---|---|---|
| Roborock S8 MaxV Ultra | β¬1,200 | β | β | β |
| Dreame L10s Ultra | β¬700 | β | β | β |
| Roborock Q Revo | β¬450 | β | β | β |
| iRobot Roomba j9+ | β¬800 | β | β | β |
| Ecovacs X2 Omni | β¬900 | β | β | β |
If you want your robot vacuum to work without any cloud connection, Valetudo is the answer. It's custom firmware that runs directly on the vacuum, replacing the manufacturer's cloud with a local web interface and MQTT.
Check Support
Verify your exact model is supported on valetudo.cloud
Get Root Access
Follow the rooting guide for your model. Dreame = Wi-Fi, Roborock = USB
Install Valetudo
Deploy the binary, configure Wi-Fi, and connect to MQTT
Add to HA
MQTT auto-discovery finds your vacuum. Done.
Every brand connects differently. Here's how each one works.
Official integration since Home Assistant 2023.x. Supports start/stop/dock, room cleaning, fan speed, mop settings, and basic map data. Uses Roborock's cloud API, so you need an account. Reliable, but commands have a 1 to 2 second cloud delay.
Works with older Roborock and Xiaomi vacuums. Local control over your network using the Miio protocol. You need the device token (extractable from the Mi Home app or cloud). Room cleaning, zone cleaning, and status reporting. Slightly tricky to set up, but fully local.
The fully local option. Valetudo publishes everything over MQTT. Home Assistant auto-discovers the vacuum entity, plus sensors for battery, filter life, brush wear, error states, and more. Room segments are exposed as selectable options. Commands are instant because they go straight to the vacuum over your LAN.
Community integration available through HACS. Gives you room cleaning, scheduling, fan speed, water volume control, and DND mode. Cloud based, but very feature complete. If you don't want to root your Dreame, this is the next best thing.
Basic control: start, stop, dock, locate. Room cleaning works on newer models. The integration has had reliability issues over the years, especially after the Amazon acquisition. No local control option. If you're buying new, consider Roborock or Dreame instead.
The real power of a smart vacuum is sending it to clean specific rooms. Here's how to set that up.
Most vacuum integrations expose a service like vacuum.send_command or dedicated room cleaning services. Here's an example for Valetudo via MQTT:
service: mqtt.publish
data:
topic: "valetudo/vacuum/MapSegmentationCapability/clean/set"
payload: '{"segment_ids": ["kitchen", "living_room"]}'For more precise control, define rectangular zones on the map. Useful for cleaning under the dining table or around the pet bowl without doing a full room:
service: mqtt.publish
data:
topic: "valetudo/vacuum/ZoneCleaningCapability/start/set"
payload: '{"zones": [{"points": {"pA": {"x": 2450, "y": 2500}, "pB": {"x": 3200, "y": 3100}}}]}'Don't just schedule a daily clean. These automations respond to your life.
The classic. When the last person leaves the house, start a full clean. When someone arrives home, send the vacuum to the dock.
automation:
- alias: "Vacuum when house empty"
trigger:
- platform: state
entity_id: group.family
to: "not_home"
for: "00:05:00"
condition:
- condition: time
after: "09:00:00"
before: "21:00:00"
action:
- service: vacuum.start
target:
entity_id: vacuum.robotSend the vacuum to clean the kitchen and dining room 30 minutes after you typically finish dinner. Crumbs don't stand a chance.
automation:
- alias: "Kitchen cleanup after dinner"
trigger:
- platform: time
at: "20:00:00"
action:
- service: vacuum.send_command
target:
entity_id: vacuum.robot
data:
command: app_segment_clean
params: [18, 20] # kitchen + dining room IDsIf you add "guests" or "dinner party" to your calendar, trigger a full clean 2 hours before the event starts. Pairs well with smart lighting to set the mood.
automation:
- alias: "Pre-guest vacuum"
trigger:
- platform: calendar
event: start
entity_id: calendar.home
offset: "-02:00:00"
condition:
- condition: template
value_template: >
{{ 'guest' in trigger.calendar_event.summary | lower }}
action:
- service: vacuum.start
target:
entity_id: vacuum.robotGet a notification when the vacuum gets stuck, the dustbin is full, or the brush needs cleaning.
automation:
- alias: "Vacuum error notification"
trigger:
- platform: state
entity_id: vacuum.robot
to: "error"
action:
- service: notify.mobile_app
data:
title: "π€ Vacuum Stuck!"
message: >
Your vacuum ran into trouble.
Error: {{ state_attr('vacuum.robot', 'status') }}
data:
actions:
- action: "RETURN_DOCK"
title: "Send to Dock"Track filter and brush hours. When they hit the replacement threshold, send a reminder so you don't forget.
automation:
- alias: "Vacuum filter replacement reminder"
trigger:
- platform: numeric_state
entity_id: sensor.vacuum_filter_remaining
below: 10
action:
- service: notify.mobile_app
data:
title: "π§Ή Filter Almost Done"
message: >
Your vacuum filter is at
{{ states('sensor.vacuum_filter_remaining') }}%.
Time to order a replacement.See your vacuum's live position, cleaned areas, and room segments right in your Home Assistant dashboard.
The best map card for Valetudo users. Shows live vacuum position, cleaned path, room segments, no-go zones, and virtual walls. Tap a room to clean it. Install from HACS, configure with your Valetudo MQTT topic, and you're done.
Works with the Xiaomi Miio and Roborock integrations. Shows the map, lets you draw zones, and start room cleaning from the dashboard. Not as polished as the Valetudo card, but gets the job done for cloud-connected vacuums.
Buy the dock. Self-emptying docks are worth every penny. A vacuum that needs you to empty its bin every day isn't truly automated. The dock turns it into a set-and-forget device.
Keep Wi-Fi strong. Robot vacuums depend on your Wi-Fi to receive commands and report status. If your vacuum loses connection in a far room, it can't respond to automations. Use your presence detection setup to verify coverage.
Floor prep matters. Pick up cables, socks, and small objects before running the vacuum. Some people create a "vacuum mode" automation that turns on bright lights so they can quickly scan the floor before starting a clean.
Run during quiet hours. Vacuums are loud. Pair presence detection with your vacuum so it only runs when the house is empty. No one wants a vacuum going at 7 AM on a Sunday.
Track cleaning stats. Use the energy dashboard approach: create utility meters for cleaning area and cleaning time. Over months, you'll spot trends in how much your vacuum actually cleans.
Valetudo over cloud, every time. If your vacuum model supports it, root it. You get faster commands, no cloud dependency, better privacy, and a vacuum that still works when the manufacturer shuts down their servers. The cloud-free smart home dream includes your vacuum too.
Start with our free scan to see how a robot vacuum fits into your smart home setup. We'll check your current devices, suggest the best vacuum for your ecosystem, and help you plan automations that actually save time.
Takes 2 minutes. No account needed.
The Roborock S8 MaxV Ultra is our top pick for overall performance and HA integration. For fully local control, get a Dreame L10s Ultra and flash it with Valetudo. For budget buyers, the Roborock Q Revo offers great value with reliable cloud integration.
Yes. Install Valetudo on a supported Roborock or Dreame vacuum. It replaces the cloud connection with a local web interface and MQTT. Your maps and cleaning data stay on your network, and commands are instant.
Roborock, Dreame, Ecovacs, iRobot Roomba, Neato, Xiaomi, and Eufy all have integrations. Roborock and Dreame offer the best experience thanks to official integrations plus Valetudo support for local control.
It depends on the vacuum model. Dreame vacuums are the easiest since many can be rooted over Wi-Fi in a few minutes. Older Roborock models need a USB connection. The Valetudo docs walk you through every step for each supported model.
Yes. The Valetudo Map Card (HACS) shows a live map with room segments, vacuum position, and cleaned areas. For cloud-connected vacuums, the Xiaomi Vacuum Map Card works with Roborock and Xiaomi models. Check our dashboard examples for inspiration.
As many as you have. Each vacuum shows up as a separate entity. Multi-floor homes often have one vacuum per floor, and you can coordinate them through automations. Home Assistant handles dozens of vacuum entities without any performance issues.