Skip to content

Releases: CamSoper/shark2mqtt

v1.5.1

22 Apr 16:38

Choose a tag to compare

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

21 Apr 19:56

Choose a tag to compare

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:

  1. Skegox MARD (migrated devices)
  2. Ayla MARD (pure-Ayla accounts, fallback)
  3. Ayla Robot_Room_List shadow (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

21 Apr 16:29

Choose a tag to compare

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

16 Apr 19:57

Choose a tag to compare

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

16 Apr 00:30

Choose a tag to compare

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

14 Apr 18:38

Choose a tag to compare

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 pulls Mobile_App_Room_Definition from 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 in robot_room_name get 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

14 Apr 16:26

Choose a tag to compare

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. Set LOG_LEVEL=DEBUG to enable.

Related: #4

v1.3.2

14 Apr 00:53

Choose a tag to compare

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. Set LOG_LEVEL=DEBUG to enable.

v1.3.1

14 Apr 00:50

Choose a tag to compare

v1.3.1

Fixes

  • Restore Ayla room-list fallback for devices whose skegox Robot_Room_List shadow 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_in 401s 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_skegox logging raw room-related properties and the full shadow property-name list. Set LOG_LEVEL=DEBUG to enable.

v1.3.0

03 Apr 21:29

Choose a tag to compare

Full Changelog: v1.2.4...v1.3.0