v1.6.0 — HD map, performance overhaul, carpet detection
High-resolution live map, a performance overhaul that removes the event-loop stalls, and carpet detection.
Highlights
- HD map camera
camera.*_map_hd: upscaled grid with anti-aliased vector overlays, livecalibration_pointsforxiaomi-vacuum-map-card(calibration_source: {camera: true}), and amap_scaleoption (2–6). - Live overlays: robot-recorded trail, the exact vacuumed strip, planned trajectory, furniture (with rotation), and per-overlay switches you can toggle from the UI.
- Lidar cell marks with carpet detection: cells the robot flags as carpet render as a light tint above the floor (like the Narwal app); wall-adjacent cells take the wall shade; free-standing detections are minimally darker. Carpet persists across sessions; the noisier buffers reset each run.
⚡ Performance
The map camera used to redraw every accumulated swath and lidar cell on every frame — an O(total) cost that grew through a clean and, holding the GIL, stalled Home Assistant's event loop up to ~3.9 s on a large map.
Swath and lidar are now painted once onto persistent RGBA layers; only new cells are drawn per frame (O(new)). Measured under a full live clean: CPU flat at 4–19 %, render latency ≤360 ms, zero multi-second stalls.
⚠️ Deprecated (removed in 2.0.0)
- The map-image pixel contract of
narwal.clean_zone - The legacy 1:1
camera.*_mapentity
Both will be removed in 2.0.0, which defaults to world coordinates. Migrate your map card to the HD camera with calibration_source: {camera: true}.
See CHANGELOG.md for the full list.