v0.34.1-beta.10
Pre-release-
Fix DysonDustMapImage._build() v2 condition: replace
'if download_url and not dust_map_model' with
'if not dust_map_model and clean_id' so the v2 cloud-fetch
path is taken for devices (e.g. RB05) that omit downloadUrl
from the clean-maps response but do provide a clean_id -
Add _render_v2_floor_plan_png(): renders zone boundary line
segments (zones[i].presentation[j].{start,end}) from the
CleanMapResponse on a white canvas with a dock location
indicator; APK-decompiled PersistentMapResponse confirmed
the v2 persistent-maps endpoint returns vector zone data
rather than a pre-rendered PNG -
Add _fetch_v2_floor_plan_image(): fetches the same
clean-maps-data payload already used for dust maps and
renders it as a floor plan; cached in _floor_plan_cache
(6-hour TTL) keyed as '{serial}:fp:{clean_id}' -
Update DysonFloorPlanImage._build(): after Map Visualizer
returns 404 (expected for v2 devices), now falls back to
_fetch_v2_floor_plan_image() using the latest clean_id -
Add _floor_plan_cache TTLCache (6-hour TTL)
-
Update module docstring to reflect all three floor plan
rendering strategies -
Bump version to 0.34.1-beta.10
-
Add 14 new tests (109 total): TestRenderV2FloorPlanPng (9),
TestFetchV2FloorPlanImage (3), updated dust map condition
tests (2 new/updated)