// the find
PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor
This custom integration provides a way to present a live view of a map for Xiaomi (Roborock/Viomi/Roidmi/Dreame) vacuums without a need for rooting.
A Home Assistant custom component that pulls live vacuum map data from Xiaomi's cloud API and renders it as a camera entity — no rooting required. It supports four distinct binary map formats (Xiaomi/Roborock, Viomi, Roidmi, Dreame) and exposes enough attributes to feed the companion Lovelace vacuum map card with calibration points, room boundaries, and obstacle positions.
The format coverage is genuinely impressive — four separate map parsers, each reverse-engineered from undocumented protocols, with a clean per-format module structure that makes adding a fifth format tractable. The attribute surface is rich: calibration points, room numbers, obstacle coords, cleaned area, goto path — all the data a power user or automation would want is there, not just the rendered image. The blueprint for pausing camera updates while docked is a small but thoughtful quality-of-life addition that prevents pointless cloud polling. HACS integration means zero friction for the HA community to install and keep updated.
Configuration is still YAML-only in 2026 — no config flow, which means no UI setup and no entity registry integration. For a custom component with 1400 stars that's a real gap; HA has been pushing config flows for years and YAML camera platforms are increasingly second-class. The cloud credential requirement (Xiaomi Home username + password in plaintext config) is a meaningful security trade-off that the README buries — you're handing your Xiaomi account to Home Assistant. The supported device list stops at the S8 Pro Ultra and hasn't been updated for anything in the S8/S9/S10 generation or post-2023 Dreame models, so newer hardware is a gamble. No test suite visible anywhere in the tree — for code that reverse-engineers binary map formats, that's a maintenance time bomb whenever Xiaomi rotates their encoding.