// the find
Tasshack/dreame-vacuum
Home Assistant integration for Dreame robot vacuums with map support
A custom Home Assistant integration that replaces the Dreame app for robot vacuums, covering dozens of Dreame/Mijia/MOVA SKUs. It's for HA users who want their vacuum's live map, room segments, and cleaning services inside Home Assistant instead of a manufacturer app.
The device support matrix is genuinely wide (30+ SKUs across three sub-brands sharing the miio-derived protocol), which is unusual maintenance overhead for a single-maintainer project. It renders the vacuum's own map as an HA camera entity with multi-floor and room-segment support, and plugs into several existing community Lovelace map cards (Xiaomi Vacuum Map Card, Valetudo Map Card) rather than shipping a half-baked custom UI. Per-room and per-zone cleaning are exposed as real services with documented examples, not just a start/stop toggle. It's a HACS default repo with real download/star numbers behind it, so the protocol reverse-engineering has been exercised against a lot of live hardware.
There's no test suite in the tree, which is a real gap for something (device.py, protocol.py, map.py) that's reverse-engineering a vendor's binary protocol across dozens of firmware variants — regressions from a Dreame firmware update would only surface via user bug reports. Local device discovery requires the HA host and vacuum to be on the same subnet, a known python-miio limitation the integration doesn't work around, so anyone running VLANs for IoT is stuck with the cloud config path. The TODO list still lists schedule editing and map recovery as unimplemented, meaning anyone wanting to fully retire the Dreame app still has to open it for those tasks. Documentation and config-flow strings are English-only, with other languages sitting in a translations folder maintained ad hoc by contributors, so non-English UX can lag behind new features.