finds.dev← search

// the find

PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor

★ 1,408 · Python · MIT · updated Feb 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →