Releases: CamSoper/shark2mqtt
v1.5.1
Final fix for #4.
The skegox AreasToClean_V3 payload requires the robot_room_name (e.g. AZ_1) in areas_to_clean, not the human-readable display name (Hallway). Confirmed by app pcap. Previously we were sending display names, which the robot silently defaulted to Kitchen on accounts with AZ_N placeholders.
Clean commands now reverse-translate display names through the MARD name map before building the payload. Accounts with identity-mapped MARD (display == robot name) see no change; accounts with AZ_N placeholders now hit the correct room.
v1.5.0
Fixes #4.
For skegox-migrated devices, rooms and floor_id now come from the skegox property-files MARD file instead of Ayla's Mobile_App_Room_Definition. Ayla MARD turns out to be frozen at migration time on migrated accounts — it can disagree with skegox on floor_id, room count, and on what each AZ_N placeholder means (same AZ_N on different floors = different rooms). Sending commands built from the stale source caused clean-by-room to hit the wrong area.
Room source priority:
- Skegox MARD (migrated devices)
- Ayla MARD (pure-Ayla accounts, fallback)
- Ayla
Robot_Room_Listshadow (last-resort fallback)
No config changes. Accounts where robot_room_name already holds display names see no change; accounts with AZ_N placeholders now resolve correctly to current app-assigned names.
v1.4.3
Investigation build for issue #4. Fetches MARD from the skegox property-files endpoint on first poll and runs the structural DEBUG dump against it alongside the existing Ayla MARD dump. No behavior change at INFO — this is observability only to see whether skegox MARD and Ayla MARD diverge (different floor_id, different room set) on affected accounts.
v1.4.2
Uses Mobile_App_Room_Definition (MARD) UserRoom entries as the room source instead of Robot_Room_List from skegox/Ayla, which can contain phantom entries and incomplete room sets. Also reads MARD's floor_id for clean commands. No behavior change for accounts where robot_room_name already holds display names. Closes #4.
v1.4.1
Investigation build for issue #4. Adds a structural DEBUG dump of Mobile_App_Room_Definition (top-level keys, area_meta_data prefix histogram, one compact line per area — no coordinate data) so placeholder zone IDs like AZ_1 can be traced to their actual source in the file. No behavior change at INFO.
v1.4.0
v1.4.0
Fixes
- #4: Room names that came through as placeholder zone IDs (e.g.
AZ_1,AZ_4) are now mapped to their real display names. On startup shark2mqtt pullsMobile_App_Room_Definitionfrom Ayla for each device and builds a{robot_room_name → user_room_name}map, which is applied to both Ayla and skegox device rooms. Accounts where the display names were already stored inrobot_room_nameget an identity map and see no behavior change.
Diagnostics
- Renames are logged at INFO level (
Renamed Ayla rooms for .../Renamed skegox rooms for .../Room name map for ... contains rewrites: ...) so it's visible without DEBUG whether the map did anything.
v1.3.3
v1.3.3
Diagnostics
- Add DEBUG fetch of Ayla file-type room datapoints (
Mobile_App_Room_Definition,GET_Zones,GET_Persistent_Floor_1) to help investigate reports where room names come through as placeholder zone IDs. Contents are truncated to 4KB of JSON or logged as hex for binary. SetLOG_LEVEL=DEBUGto enable.
Related: #4
v1.3.2
v1.3.2
Diagnostics
- Add DEBUG shadow dump to the Ayla API path, mirroring the skegox-side dump added in v1.3.1. Logs raw
GET_Robot_Room_List, the full Ayla property-name list, and any room/area/zone/map/floor-related property values. SetLOG_LEVEL=DEBUGto enable.
v1.3.1
v1.3.1
Fixes
- Restore Ayla room-list fallback for devices whose skegox
Robot_Room_Listshadow is empty (rooms configured before the skegox migration). Regressed in v1.3.0. - Normalize WiFi RSSI to negative dBm regardless of the raw sign returned by the API — different Shark models report with opposite signs.
- Force an Auth0 token refresh if Ayla
token_sign_in401s with a stale id_token, so a cold start after the Auth0 token has aged out recovers cleanly.
Diagnostics
- Add DEBUG-level shadow dump in
SharkVacuum.from_skegoxlogging raw room-related properties and the full shadow property-name list. SetLOG_LEVEL=DEBUGto enable.
v1.3.0
Full Changelog: v1.2.4...v1.3.0