Dreame Vacuum
Tasshack/dreame-vacuum · vv2.0.2
Home Assistant integration for Dreame robot vacuums with map support
In Apple Home through HomeKit Bridge
What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.
| Entity | Shows up as | Note |
|---|---|---|
switch | Switch or outlet | |
camera | Camera | Needs its own HomeKit Bridge in accessory mode |
binary_sensor | Sensor (motion, contact, leak, smoke…) | |
sensor | Sensor (temperature, humidity, air quality…) | |
vacuum | Vacuum (as a switch) | |
button | Button (as a switch) | |
select | Mode picker (as switches) |
What people report
Wide Dreame, Mova and Xiaomi-branded vacuum support; local control only works when the robot is on Mi Home cloud. Brand-new models are often added in beta and some local polling drops replies.
- Works4
- Partly works4
- Requested6
| Device | In Home Assistant | In Apple Home | What they said | Source |
|---|---|---|---|---|
| Dreame Aqua10 Ultra Roller Complete | Works Cloud | CleanGenius unavailable bug fixed after reportSaved copySummary On the Dreame Aqua10 Ultra Roller Complete (`dreame.vacuum.r95475`), the CleanGenius entities are created but remain unavailable because availability depends on `device.status.mop_pad_installed`. The device reports `MOP_PAD_INSTALLED = 0` while also advertising both `CLEANGENIUS` and `CLEANGENIUS_MODE` capabilities. ## Environment - Device Model Number (e.g. `dreame.vacuum.r2364a`): `dreame.vacuum.r95475` - Firmware Version (e.g. `1156`): `4.3.9_3507` - Home Assistant Version: `2026.9.3` - Integration Version: `v2.0.0` - Configuration Type (cloud account / local, with or without map … Excerpt saved from GitHub on 2026-10-23. | Issue #1847 · 2026-10 | |
| Dreame X50 Ultra Complete (beta) | Works | Supported in beta version of the integrationSaved copyPlease add the support for Dreame X50 Ultra Complete Excerpt saved from GitHub on 2026-10-23. | Issue #1517 · 2026-03 | |
| Dreame X60 Ultra Complete | Works Cloud | Works on dev build; sticker model r60016 differs from reported modelSaved copyIs your feature request related to a problem? Please describe. The Dreame X60 Ultra Complete (EU) is not recognized by the integration. Its model string `dreame.vacuum.r60016` is missing from the embedded device database (`DEVICE_INFO` in `dreame/const.py`), I decoded the blob from both `v2.0.0b25` and current `dev` (705 models) and `r60016` is not present. Because of that, `get_supported_devices()` classifies the robot as unsupported and the Dreamehome account login ends with *"No supported devices found in this account on selected region."* Note this is a different unit than the … Excerpt saved from GitHub on 2026-10-23. | Issue #1747 · 2026-08 | |
| Mova L600 | Works | Added to config flowSaved copyMova L600 is listed in the readme as supported but not useable since it's not in the supported directory in the config flow Excerpt saved from GitHub on 2026-10-23. | PR #10 · 2022-10 | |
| Dreame L10s Ultra | Partly works Local | Local polling drops replies in larger batches on Mi Home accountSaved copyAnother data point, from a Dreame model rather than a Xiaomi one: `dreame.vacuum.r2228o` (L10s Ultra), firmware `4.3.9_3407`, v2.0.2, Mi Home account with "Prefer cloud connection" off. Same symptom: batches 1–2 answer, batch 3 (`4.50` AUTO_SWITCH_SETTINGS + 14 siid-4 siblings `4.30`–`4.49`) never does, entry stays in setup retry with "No response from the device". The Mijia 10-batch from #1831 does not apply here because the model is not `xiaomi.vacuum.*`. #342 (same model, 2023) was most likely this too. I sent raw `get_properties` requests to the device to find the limit, and it looks like … Excerpt saved from GitHub on 2026-10-23. | Issue #1909 · 2026-10 | |
| Dreame L40S Pro Ultra | Partly works Cloud | Cloud setup failed on later versions; fix proposedSaved copyCloses #1856. ## Problem Cloud setup fails with [code] for devices that worked on v2.0.0b25 (reported on L40S Pro Ultra, same as #1836). The Dreame app still reaches the robot, so the robot is online. ## Cause v2.0.0 added `CLEANING_PROGRESS_INFO` to the property list that is requested right after connecting. That property is one of the largest on the device. When the cloud or the robot cannot answer it in time, the whole `get_properties` batch it is part of times out, and the cloud reports 80001 for the request. Excluding that single property from the first request makes the robot connect … Excerpt saved from GitHub on 2026-10-23. | PR #1861 · 2026-10 | |
| Dreame X20+ (Xiaomi c102gl) | Partly works Local | Local-only entries drop replies in batches of 15; fix openSaved copy… #1831 by polling Mijia devices locally in batches of 10: [code] For an entry created with Manual Connection (Without map), `account_type` is `"local"`. `DreameVacuumProtocol.init` sets `self.prefer_cloud = True` for every account type other than `"mi"`, `"local"` included: [code] So `not self._protocol.prefer_cloud` is false, the batch stays at 15, and the X20+ drops the reply exactly as in #1831. The entry sits in `setup_retry` ("No response from the device"). This is despite there being no cloud at all (`self._protocol.cloud is None`) and the entry's `prefer_cloud` option being `false`. … Excerpt saved from GitHub on 2026-10-23. | Issue #1909 · 2026-10 | |
| Dreame X50 r2532d | Partly works Cloud | Does not pair with Xiaomi Home so no local controlSaved copyX50 problem (dreame.vacuum.r2532d) To open a new thread to keep my stuff about the X50 Ultra Complete in one place. As explained above, it does not actually seem to pair with the Xiaomi Home app, nor is it shown in the list of robots in that app. One thing that wonders me then though is, when you scan the QR code on the device and just go to the website, you land here: https://app.dreame.tech/?model=dreame.vacuum.r2532d (I removed some sensitive query parameters containing the serial number an Excerpt saved from GitHub on 2026-10-23. | Discussion #323 · 2023-11 | |
| Dreame L10s Ultra r2228z | Requested | Support PR closed, closes #734Saved copyThis closes #734 Excerpt saved from GitHub on 2026-10-23. | PR #818 · 2024-12 | |
| Dreame S50 Pro | Requested | Support PR closedSaved copy``` {'dreame': ['dreame.vacuum.p2009', 'dreame.vacuum.p2027', 'dreame.vacuum.p2028', 'dreame.vacuum.p2028a', 'dreame.vacuum.p2029', 'dreame.vacuum.p2036', 'dreame.vacuum.p2156o', 'dreame.vacuum.p2157', 'dreame.vacuum.p2187', 'dreame.vacuum.p2259', 'dreame.vacuum.r2104', 'dreame.vacuum.r2205', 'dreame.vacuum.r2212', 'dreame.vacuum.r2215', 'dreame.vacuum.r2216o', 'dreame.vacuum.r2228', 'dreame.vacuum.r2228d', 'dreame.vacuum.r2228o', 'dreame.vacuum.r2228z', 'dreame.vacuum.r2232a', 'dreame.vacuum.r2232b', 'dreame.vacuum.r2232c', 'dreame.vacuum.r2232d', 'dreame.vacuum.r2233', … Excerpt saved from GitHub on 2026-10-23. | PR #979 · 2025-04 | |
| Dreame X50 Ultra Complete | Requested Cloud | Brazil unit not found in account; setup failsSaved copySummary Hi! I’d like to request support for the Dreame X50 model dreame.vacuum.r9446j. The robot was purchased in Brazil and was initially set up with Brazil selected in the Dreamehome app. I also tried configuring it with a US account and selecting “United States” as the server country in the integration, but setup fails with this error: No compatible devices found in this account in the selected country. (dreame.vacuum.r9446j) I’m using Dreame Vacuum integration v2.0.2 in Home Assistant. Could you please add support for this device variant? I’m happy to provide diagnostic information and … Excerpt saved from GitHub on 2026-10-23. | Issue #1934 · 2026-10 | |
| Dreame X50 Ultra r2489q | Requested | Reported working by contributor; PR closedSaved copyI have this working with r2489q variant. Excerpt saved from GitHub on 2026-10-23. | PR #1048 · 2025-06 | |
| Mova r2587a | Requested | Added as copy of r2475a; PR closedSaved copyDevice acts like r2475a, added as a copy with same device info. #1448 Excerpt saved from GitHub on 2026-10-23. | PR #1548 · 2026-03 | |
| Xiaomi Robot Vacuum S20+ and X20 Max | Requested | Support PRs closed without mergeSaved copyAdd `xiaomi.vacuum.b108gl` (Xiaomi Robot Vacuum S20+) and `xiaomi.vacuum.d109gl` (Xiaomi Robot Vacuum X20 Max) to the supported devices list. Device info is copied from `c102gl` as these are Xiaomi-branded vacuums in the same family. Tested on Home Assistant 2026.3.4 with integration v2.0.0b22: | Feature | xiaomi.vacuum.d109gl (X20 Max) | |---------|-------------------------------| | Cloud login (Xiaomi Home) | ✅ Working | | 2FA verification | ✅ Working | | Device discovery | ✅ Working | | Battery level | ✅ 100% | | Charging status | ✅ charging_completed | | Vacuum status | ✅ idle | | Main … Excerpt saved from GitHub on 2026-10-23. | PR #1549 · 2026-03 |
Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.
How it connects
Cloud polling
Goes through the maker’s cloud, asking it for updates every so often. Needs the internet and an account.
Details
| Installs (analytics) | 17,726 (2.5%) |
|---|---|
| GitHub stars | 2,248 |
| Latest version | v2.0.2 (2026-10-11) |
| Set up in the UI | Yes |
| Maintainers | @tasshack |
| License | MIT |
Notable forks
Forks with stars, or with code pushed at least 90 days after the original’s last push. Useful when the original goes quiet.
| Fork | Stars | Last push | Description |
|---|---|---|---|
| ArtCore7/dreame-vacuum-translation | ★ 4 | 2022-10-30 | Home Assistant integration for Dreame Gen2 Lidar robot vacuums with map support |
In ReReHome
Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.
Bridges get their own settings page listing the accessories behind them.
Sources
- Documentation: https://dreame-vacuum.tasshack.com/configuration
- Source code: https://github.com/Tasshack/dreame-vacuum
- Issues: https://github.com/Tasshack/dreame-vacuum/issues
- HACS: https://hacs.xyz