matterbridge-dyson-robot 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +12 -9
  3. package/dist/config-types.d.ts +3 -1
  4. package/dist/config-types.d.ts.map +1 -1
  5. package/dist/dyson-360-msg-types.d.ts +2 -2
  6. package/dist/dyson-360-msg-types.d.ts.map +1 -1
  7. package/dist/dyson-360-types.d.ts +9 -0
  8. package/dist/dyson-360-types.d.ts.map +1 -1
  9. package/dist/dyson-cloud-api-ua.d.ts +3 -1
  10. package/dist/dyson-cloud-api-ua.d.ts.map +1 -1
  11. package/dist/dyson-cloud-api-ua.js +45 -3
  12. package/dist/dyson-cloud-api-ua.js.map +1 -1
  13. package/dist/dyson-device-360-base.d.ts.map +1 -1
  14. package/dist/dyson-device-360-base.js +3 -0
  15. package/dist/dyson-device-360-base.js.map +1 -1
  16. package/dist/dyson-device-360-map.d.ts +20 -0
  17. package/dist/dyson-device-360-map.d.ts.map +1 -0
  18. package/dist/dyson-device-360-map.js +129 -0
  19. package/dist/dyson-device-360-map.js.map +1 -0
  20. package/dist/dyson-map-bitmap.d.ts +59 -0
  21. package/dist/dyson-map-bitmap.d.ts.map +1 -0
  22. package/dist/dyson-map-bitmap.js +232 -0
  23. package/dist/dyson-map-bitmap.js.map +1 -0
  24. package/dist/dyson-map-coordinate.d.ts +29 -0
  25. package/dist/dyson-map-coordinate.d.ts.map +1 -0
  26. package/dist/dyson-map-coordinate.js +113 -0
  27. package/dist/dyson-map-coordinate.js.map +1 -0
  28. package/dist/dyson-map-grid.d.ts +20 -0
  29. package/dist/dyson-map-grid.d.ts.map +1 -0
  30. package/dist/dyson-map-grid.js +51 -0
  31. package/dist/dyson-map-grid.js.map +1 -0
  32. package/dist/dyson-map-text.d.ts +17 -0
  33. package/dist/dyson-map-text.d.ts.map +1 -0
  34. package/dist/dyson-map-text.js +137 -0
  35. package/dist/dyson-map-text.js.map +1 -0
  36. package/dist/dyson-mqtt.d.ts.map +1 -1
  37. package/dist/dyson-mqtt.js +23 -17
  38. package/dist/dyson-mqtt.js.map +1 -1
  39. package/dist/settings.d.ts.map +1 -1
  40. package/dist/settings.js +1 -0
  41. package/dist/settings.js.map +1 -1
  42. package/dist/ti/config-types-ti.d.ts +1 -0
  43. package/dist/ti/config-types-ti.d.ts.map +1 -1
  44. package/dist/ti/config-types-ti.js +4 -1
  45. package/dist/ti/config-types-ti.js.map +1 -1
  46. package/dist/ti/config-types.d.ts +4 -1
  47. package/dist/ti/config-types.d.ts.map +1 -1
  48. package/dist/ti/config-types.js +1 -1
  49. package/dist/ti/config-types.js.map +1 -1
  50. package/dist/ti/dyson-360-msg-types-ti.js +2 -2
  51. package/dist/ti/dyson-360-msg-types-ti.js.map +1 -1
  52. package/dist/ti/dyson-360-msg-types.js +1 -1
  53. package/dist/ti/dyson-360-types-ti.d.ts +3 -0
  54. package/dist/ti/dyson-360-types-ti.d.ts.map +1 -1
  55. package/dist/ti/dyson-360-types-ti.js +12 -0
  56. package/dist/ti/dyson-360-types-ti.js.map +1 -1
  57. package/dist/ti/dyson-360-types.d.ts +10 -1
  58. package/dist/ti/dyson-360-types.d.ts.map +1 -1
  59. package/dist/ti/dyson-360-types.js +1 -1
  60. package/dist/ti/dyson-360-types.js.map +1 -1
  61. package/dist/ti/dyson-air-msg-types.js +1 -1
  62. package/dist/ti/dyson-air-sensor-types.js +1 -1
  63. package/dist/ti/dyson-air-state-types.js +1 -1
  64. package/dist/ti/dyson-air-types.js +1 -1
  65. package/dist/ti/dyson-cloud-types.js +1 -1
  66. package/dist/ti/dyson-types.js +1 -1
  67. package/matterbridge-dyson-robot.schema.json +20 -0
  68. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v1.3.0] - 2025-09-05
8
+ ### Added
9
+ * Robot vacuum cleaned area maps are displayed in the log at the end of each clean. This is controlled by the new `logMapStyle` configuration option.
10
+
11
+ ## [v1.2.1] - 2025-08-30
12
+ ### Added
13
+ * MyDyson account API requests are now retried to cope with transient internal server errors.
14
+ * `Log MQTT Payloads as JSON` debug option captures full MQTT payloads in JSON format without truncation or duplicate suppression.
15
+
7
16
  ## [v1.2.0] - 2025-08-26
8
17
  ### Added
9
18
  * Improved test coverage using MQTT payload logs to mock devices.
@@ -143,7 +152,9 @@ All notable changes to this project will be documented in this file.
143
152
 
144
153
  Copyright © 2025 Alexander Thoukydides
145
154
 
146
- [Unreleased]: https://github.com/thoukydides/matterbridge-dyson-robot/compare/v1.2.0...HEAD
155
+ [Unreleased]: https://github.com/thoukydides/matterbridge-dyson-robot/compare/v1.3.0...HEAD
156
+ [v1.3.0]: https://github.com/thoukydides/homebridge-homeconnect/compare/v1.2.1...v1.3.0
157
+ [v1.2.1]: https://github.com/thoukydides/homebridge-homeconnect/compare/v1.2.0...v1.2.1
147
158
  [v1.2.0]: https://github.com/thoukydides/homebridge-homeconnect/compare/v1.1.4...v1.2.0
148
159
  [v1.1.4]: https://github.com/thoukydides/homebridge-homeconnect/compare/v1.1.3...v1.1.4
149
160
  [v1.1.3]: https://github.com/thoukydides/homebridge-homeconnect/compare/v1.1.2...v1.1.3
package/README.md CHANGED
@@ -92,6 +92,7 @@ You can include additional settings in `matterbridge-dyson-robot.config.json` to
92
92
  | `provisioningMethod` | `"Remote Account"` | Selects how the plugin is configured and how it connects to the Dyson devices. See [Alternative Provisioning Methods](#provisioning-methods) (below) for details of each option.
93
93
  | `devices` | `[]` | Local network and MQTT configuration for each Dyson device when not using the `Remote Account` provisioning method. See below for details.
94
94
  | `enableServerRvc` | `true` | When set to `false` all devices are exposed via a single Matter bridge. Setting it to `true` exposes any robot vacuum devices as standalone Matter nodes using Matterbridge's `server` mode, with the Matter bridge only used for any air treatment devices. This improves compatibility with Matter controllers such as the Apple Home app, but requires each robot vacuum to be paired individually.
95
+ | `logMapStyle` | `"Matterbridge"` | Select how robot vacuum maps are rendered in the log at the end of cleans. When set to `"Matterbridge"` the map is restricted to glyphs that render correctly in the Matterbridge frontend. Change to `Monospaced` for more detailed and clearer maps if the log will be viewed using a monospaced font. Set to `"Off"` to disable logging of maps.
95
96
  | `wildcardTopic` | `true` | When set to `false` the plugin only subscribes to the essential status MQTT topic(s) appropriate for each device. Setting it to `true` additionally subscribes to the command topic (for AWS IoT connections) or to the `#` wildcard topic (for local network connections), receiving additional messages published by the devices or echoed by the MQTT brokers. This is useful for discovering new topics, seeing the commands issued by the MyDyson app (only some commands to robot vacuums), and verifying correct `root_topic` and `username` settings.
96
97
  | `blackList` | `[]` | If the list is not empty, then any robot vacuum and air treatment devices with matching serial numbers will not be exposed as Matter devices.
97
98
  | `whiteList` | `[]` | If the list is not empty, then only robot vacuum and air treatment devices with matching serial numbers (and not on the `blacklist`) will be exposed as Matter devices.
@@ -112,15 +113,17 @@ The black and white lists control which robot vacuum and air treatment devices a
112
113
 
113
114
  The supported `debugFeatures` are:
114
115
 
115
- | Debug Feature | Description
116
- | ---------------------- | ---
117
- | `Log Endpoint Debug` | Sets the `debug` flag to the Matterbridge/Matter.js endpoint implementation.
118
- | `Log API Headers` | Logs HTTP headers for MyDyson API requests. Rarely useful. (Requires *Debug* level logging.)
119
- | `Log API Bodies` | Logs message bodies for MyDyson API requests. Useful for diagnosing interoperability issues. (Requires *Debug* level logging.)
120
- | `Log MQTT Client` | Enables (extremely) verbose debug logging from the low-level MQTT client. Rarely useful, unless the plugin is unable to establish or maintain a connection to the Dyson device. (Requires *Debug* level logging.)
121
- | `Log MQTT Payloads` | Logs every MQTT payload that is sent or received. Useful for diagnosing interoperability issues or identifying how to control new features. (Requires *Debug* level logging.)
122
- | `Log Serial Numbers` | By default product serial numbers (a.k.a. MQTT usernames) and passwords are automatically redacted in the log. This setting logs serial numbers verbatim.
123
- | `Log Debug as Info` | Redirect *Debug* level logging to *Info* level. This makes it visible in the Matterbridge frontend.
116
+ | Debug Feature | Description
117
+ | --------------------------- | ---
118
+ | `Log Endpoint Debug` | Sets the `debug` flag to the Matterbridge/Matter.js endpoint implementation.
119
+ | `Log API Headers` | Logs HTTP headers for MyDyson API requests. Rarely useful. (Requires *Debug* level logging.)
120
+ | `Log API Bodies` | Logs message bodies for MyDyson API requests. Useful for diagnosing interoperability issues. (Requires *Debug* level logging.)
121
+ | `Log MQTT Client` | Enables (extremely) verbose debug logging from the low-level MQTT client. Rarely useful, unless the plugin is unable to establish or maintain a connection to the Dyson device. (Requires *Debug* level logging.)
122
+ | `Log MQTT Payloads` | Logs every MQTT payload that is sent or received. Useful for diagnosing interoperability issues or identifying how to control new features. (Requires *Debug* level logging.)
123
+ | `Log MQTT Payloads as JSON` | Similar to `Log MQTT Payloads` except that payloads are logged in raw JSON format, without any truncation or special formatting. (Requires *Debug* level logging.)
124
+ Logs every MQTT payload that is sent or received. Useful for diagnosing interoperability issues or identifying how to control new features. (Requires *Debug* level logging.)
125
+ | `Log Serial Numbers` | By default product serial numbers (a.k.a. MQTT usernames) and passwords are automatically redacted in the log. This setting logs serial numbers verbatim.
126
+ | `Log Debug as Info` | Redirect *Debug* level logging to *Info* level. This makes it visible in the Matterbridge frontend.
124
127
 
125
128
  </details>
126
129
  <a name="provisioning-methods"></a>
@@ -39,7 +39,8 @@ export interface DeviceConfigMock {
39
39
  rootTopic: string;
40
40
  }
41
41
  export type EntityName = 'Air Purifier' | 'Air Quality Sensor' | 'Composed Air Purifier' | 'Humidity Sensor' | 'Temperature Sensor' | 'Thermostat';
42
- export type DebugFeatures = 'Log Endpoint Debug' | 'Log API Headers' | 'Log API Bodies' | 'Log MQTT Client' | 'Log MQTT Payloads' | 'Log Serial Numbers' | 'Log Debug as Info';
42
+ export type LogMapStyle = 'Off' | 'Monospaced' | 'Matterbridge';
43
+ export type DebugFeatures = 'Log Endpoint Debug' | 'Log API Headers' | 'Log API Bodies' | 'Log MQTT Client' | 'Log MQTT Payloads' | 'Log MQTT Payloads as JSON' | 'Log Serial Numbers' | 'Log Debug as Info';
43
44
  export interface ConfigBase {
44
45
  name: string;
45
46
  type: string;
@@ -54,6 +55,7 @@ export interface ConfigBase {
54
55
  provisioningMethod: ProvisioningMethod;
55
56
  enableServerRvc: boolean;
56
57
  wildcardTopic: boolean;
58
+ logMapStyle: LogMapStyle;
57
59
  debug: boolean;
58
60
  debugFeatures: DebugFeatures[];
59
61
  unregisterOnShutdown: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,YAAY,GACZ,cAAc,CAAC;AAGnB,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAmB,OAAO,CAAC;IAEhC,UAAU,CAAC,EAAa,OAAO,CAAC;IAChC,SAAS,CAAC,EAAc,OAAO,CAAA;CAClC;AACD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,KAAK,EAAmB,MAAM,CAAC;IAC/B,QAAQ,EAAgB,MAAM,CAAC;CAClC;AACD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,KAAK,EAAmB,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAkB,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAe,MAAM,CAAC;CAClC;AACD,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAGjE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAoB,MAAM,CAAC;IAC/B,IAAI,EAAoB,MAAM,CAAC;CAClC;AACD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAY,MAAM,CAAC;CAClC;AACD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAC9D,IAAI,EAAoB,MAAM,CAAC;IAC/B,IAAI,EAAoB,MAAM,CAAC;IAC/B,QAAQ,EAAgB,MAAM,CAAC;CAClC;AACD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAC9D,IAAI,EAAoB,MAAM,CAAC;IAC/B,YAAY,EAAY,MAAM,CAAC;IAC/B,QAAQ,EAAgB,MAAM,CAAC;IAC/B,SAAS,EAAe,MAAM,CAAC;CAClC;AACD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAoB,MAAM,CAAC;IAC/B,QAAQ,EAAgB,MAAM,CAAC;IAC/B,YAAY,EAAY,MAAM,CAAC;IAC/B,SAAS,EAAe,MAAM,CAAC;CAClC;AAGD,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,oBAAoB,GACpB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,YAAY,CAAC;AAGjB,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,CAAC;AAGxB,MAAM,WAAW,UAAU;IAEvB,IAAI,EAAoB,MAAM,CAAC;IAC/B,IAAI,EAAoB,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;IAC/B,SAAS,EAAe,MAAM,EAAE,CAAC;IACjC,SAAS,EAAe,MAAM,EAAE,CAAC;IACjC,eAAe,EAAS,UAAU,EAAE,CAAC;IACrC,eAAe,EAAS,UAAU,EAAE,CAAC;IACrC,qBAAqB,EAAG;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,EAAE,CAAA;KAAE,CAAC;IAEjE,kBAAkB,EAAM,kBAAkB,CAAC;IAC3C,eAAe,EAAS,OAAO,CAAC;IAChC,aAAa,EAAW,OAAO,CAAC;IAChC,KAAK,EAAmB,OAAO,CAAC;IAChC,aAAa,EAAW,aAAa,EAAE,CAAC;IACxC,oBAAoB,EAAI,OAAO,CAAC;CACnC;AACD,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C,YAAY,EAAY,YAAY,CAAC;CACxC;AACD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACtD,kBAAkB,EAAM,gBAAgB,CAAC;CAC5C;AACD,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACrD,kBAAkB,EAAM,eAAe,CAAC;IACxC,OAAO,EAAiB,wBAAwB,EAAE,CAAC;CACtD;AACD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAC/C,kBAAkB,EAAM,aAAa,CAAC;IACtC,OAAO,EAAiB,qBAAqB,EAAE,CAAC;CACnD;AACD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAC/C,kBAAkB,EAAM,YAAY,CAAC;IACrC,OAAO,EAAiB,qBAAqB,EAAE,CAAC;CACnD;AACD,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC1C,kBAAkB,EAAM,cAAc,CAAC;IACvC,OAAO,EAAiB,gBAAgB,EAAE,CAAC;IAC3C,YAAY,CAAC,EAAW,YAAY,CAAC;CACxC;AACD,MAAM,MAAM,MAAM,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"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"}
@@ -66,8 +66,8 @@ export interface Dyson360MsgMapData extends DysonMsg {
66
66
  cleanId: string;
67
67
  data: {
68
68
  content: string;
69
- contentType: string;
70
- contentEncoding: string;
69
+ contentType: 'application/json';
70
+ contentEncoding: 'gzip';
71
71
  };
72
72
  }
73
73
  export interface Dyson360MsgMapGlobal extends DysonMsg {
@@ -1 +1 @@
1
- {"version":3,"file":"dyson-360-msg-types.d.ts","sourceRoot":"","sources":["../src/dyson-360-msg-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dyson-360-msg-types.d.ts","sourceRoot":"","sources":["../src/dyson-360-msg-types.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI7D,MAAM,WAAW,4BAA6B,SAAQ,QAAQ;IAC1D,GAAG,EAAqB,oBAAoB,CAAC;IAC7C,YAAY,EAAY,MAAM,CAAC;IAC/B,cAAc,EAAU,MAAM,CAAC;CAClC;AAID,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IACzD,GAAG,EAAqB,mBAAmB,CAAC;IAC5C,MAAM,EAAkB,MAAM,CAAC;IAC/B,KAAK,EAAmB,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;IAC/B,SAAS,EAAe,MAAM,CAAC;IAC/B,EAAE,EAAsB,MAAM,CAAC;CAClC;AAKD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAC9C,GAAG,EAAqB,OAAO,CAAC;IAChC,QAAQ,EAAgB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAChD,GAAG,EAAqB,SAAS,CAAC;IAClC,MAAM,EAAkB,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACjD,GAAG,EAAqB,WAAW,CAAC;CAEvC;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAC/C,GAAG,EAAqB,SAAS,CAAC;IAClC,KAAK,CAAC,EAAkB,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,uBAAwB,SAAQ,QAAQ;IACrD,GAAG,EAAqB,eAAe,CAAC;IACxC,kBAAkB,EAAM,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAU,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;IAC/B,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,mBAAmB,CAAC,EAAI,oBAAoB,CAAC;IAC7C,mBAAmB,CAAC,EAAI,oBAAoB,CAAC;IAC7C,MAAM,CAAC,EAAiB,cAAc,CAAC;IACvC,aAAa,EAAW,oBAAoB,CAAC;IAC7C,cAAc,EAAU,gBAAgB,CAAC;IACzC,KAAK,EAAmB,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACpD,GAAG,EAAqB,cAAc,CAAC;IACvC,kBAAkB,CAAC,EAAK,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAU,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;IAC/B,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,mBAAmB,CAAC,EAAI,oBAAoB,CAAC;IAC7C,mBAAmB,CAAC,EAAI,oBAAoB,CAAC;IAC7C,MAAM,CAAC,EAAiB,cAAc,CAAC;IACvC,aAAa,EAAW,oBAAoB,CAAC;IAC7C,cAAc,EAAU,gBAAgB,CAAC;IACzC,QAAQ,EAAgB,aAAa,CAAC;IACtC,QAAQ,EAAgB,aAAa,CAAC;IACtC,UAAU,CAAC,EAAa,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAChD,GAAG,EAAqB,UAAU,CAAC;IACnC,MAAM,EAAkB,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;IAC/B,IAAI,EAAE;QACF,OAAO,EAAa,MAAM,CAAC;QAC3B,WAAW,EAAS,kBAAkB,CAAC;QACvC,eAAe,EAAK,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,QAAQ;IAClD,GAAG,EAAqB,YAAY,CAAC;IACrC,KAAK,EAAmB,MAAM,CAAC;IAC/B,OAAO,EAAiB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,CAAC,EAAuB,MAAM,CAAC;IAC/B,CAAC,EAAuB,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAChD,GAAG,EAAqB,UAAU,CAAC;IACnC,MAAM,EAAkB,gBAAgB,CAAC;IACzC,OAAO,EAAiB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,UAAU,EAAc,MAAM,CAAC;IAC/B,KAAK,EAAmB,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,wBAAyB,SAAQ,QAAQ;IACtD,GAAG,EAAqB,gBAAgB,CAAC;IACzC,MAAM,EAAkB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,MAAM,EAAkB,MAAM,CAAC;IAC/B,EAAE,EAAsB,MAAM,CAAC;CAClC;AAID,MAAM,WAAW,8BAA+B,SAAQ,QAAQ;IAC5D,GAAG,EAAqB,uBAAuB,CAAC;IAChD,aAAa,CAAC,EAAU,eAAe,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACjD,GAAG,EAAqB,WAAW,CAAC;IACpC,aAAa,EAAW,eAAe,CAAC;IACxC,IAAI,EAAE;QACF,sBAAsB,EAAE,iBAAiB,CAAC;KAC7C,CAAA;CACJ;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAC9C,GAAG,EAAqB,OAAO,CAAC;IAChC,aAAa,CAAC,EAAU,eAAe,CAAC;IACxC,aAAa,EAAW,oBAAoB,CAAC;IAC7C,YAAY,CAAC,EAAW,oBAAoB,CAAC;IAC7C,eAAe,CAAC,EAAQ,iBAAiB,CAAC;IAC1C,OAAO,CAAC,EAAgB,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAC9C,GAAG,EAAqB,OAAO,CAAC;IAChC,aAAa,EAAW,eAAe,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAC/C,GAAG,EAAqB,QAAQ,CAAC;IACjC,aAAa,EAAW,eAAe,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAC9C,GAAG,EAAqB,OAAO,CAAC;IAChC,aAAa,EAAW,eAAe,CAAC;CAC3C"}
@@ -74,4 +74,13 @@ export declare enum Dyson360CleaningMode {
74
74
  ZoneConfigured = "zoneConfigured"
75
75
  }
76
76
  export type Dyson360Position = [number, number];
77
+ export type Dyson360MapBitmap = number[][];
78
+ export type Dyson360MapPath = [number, number, number];
79
+ export interface Dyson360MapData {
80
+ cleaned: Dyson360MapBitmap;
81
+ observed: Dyson360MapBitmap;
82
+ occupied: Dyson360MapBitmap;
83
+ unnavigable: Dyson360MapBitmap;
84
+ path: Dyson360MapPath[];
85
+ }
77
86
  //# sourceMappingURL=dyson-360-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dyson-360-types.d.ts","sourceRoot":"","sources":["../src/dyson-360-types.ts"],"names":[],"mappings":"AAIA,oBAAY,aAAa;IACrB,UAAU,gBAAqC;IAC/C,iBAAiB,wBAAsC;IACvD,oBAAoB,2BAAsC;IAC1D,aAAa,mBAAqC;IAClD,gBAAgB,uBAAsC;IACtD,SAAS,eAAqC;IAC9C,WAAW,kBAAsC;IACjD,kBAAkB,0BAAuC;IACzD,mBAAmB,2BAAuC;IAC1D,kBAAkB,0BAAuC;IACzD,iBAAiB,yBAAuC;IACxD,sBAAsB,6BAAsC;IAC5D,oBAAoB,2BAAsC;IAC1D,kBAAkB,yBAAsC;IACxD,gBAAgB,uBAAsC;IACtD,iBAAiB,wBAAsC;IACvD,oBAAoB,2BAAsC;IAC1D,iBAAiB,wBAAsC;IACvD,kBAAkB,yBAAsC;IACxD,oBAAoB,4BAAuC;IAC3D,eAAe,sBAAsC;IACrD,gBAAgB,uBAAsC;IACtD,mBAAmB,0BAAsC;IACzD,eAAe,qBAAqC;IACpD,gBAAgB,sBAAqC;IACrD,mBAAmB,yBAAqC;IACxD,cAAc,oBAAqC;IACnD,eAAe,qBAAqC;IACpD,eAAe,qBAAqC;IACpD,gBAAgB,sBAAqC;IACrD,kBAAkB,yBAAsC;IACxD,aAAa,mBAAqC;IAClD,cAAc,oBAAqC;CACtD;AAGD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAA0B,KAAK,CAAC;CACzC,GAAG;IACA,MAAM,EAA0B,IAAI,CAAC;IACrC,WAAW,EAAqB,MAAM,CAAC;CAC1C,CAAA;AACD,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAyB,mBAAmB,CAAC;IACpD,OAAO,EAAyB,mBAAmB,CAAC;IACpD,sBAAsB,EAAU,mBAAmB,CAAC;IACpD,cAAc,EAAkB,mBAAmB,CAAC;IACpD,IAAI,EAA4B,mBAAmB,CAAC;IACpD,MAAM,EAA0B,mBAAmB,CAAC;CACvD;AAGD,oBAAY,oBAAoB;IAC5B,KAAK,cAAwC;IAC7C,GAAG,cAA0C;CAChD;AACD,oBAAY,wBAAwB;IAChC,KAAK,MAAgC;IACrC,IAAI,MAAiC;IACrC,GAAG,MAAkC;CACxC;AACD,oBAAY,uBAAuB;IAC/B,IAAI,MAAiC;IACrC,KAAK,MAAgC;IACrC,KAAK,MAAgC;IACrC,KAAK,MAAgC;CACxC;AACD,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,CAAC;AAG5B,oBAAY,oBAAoB;IAC5B,OAAO,KAA6B;IACpC,SAAS,cAAoC;IAC7C,MAAM,WAAoC;IAC1C,SAAS,cAAoC;CAChD;AAGD,oBAAY,oBAAoB;IAC5B,MAAM,WAAoC;IAC1C,cAAc,mBAAoC;CACrD;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"dyson-360-types.d.ts","sourceRoot":"","sources":["../src/dyson-360-types.ts"],"names":[],"mappings":"AAIA,oBAAY,aAAa;IACrB,UAAU,gBAAqC;IAC/C,iBAAiB,wBAAsC;IACvD,oBAAoB,2BAAsC;IAC1D,aAAa,mBAAqC;IAClD,gBAAgB,uBAAsC;IACtD,SAAS,eAAqC;IAC9C,WAAW,kBAAsC;IACjD,kBAAkB,0BAAuC;IACzD,mBAAmB,2BAAuC;IAC1D,kBAAkB,0BAAuC;IACzD,iBAAiB,yBAAuC;IACxD,sBAAsB,6BAAsC;IAC5D,oBAAoB,2BAAsC;IAC1D,kBAAkB,yBAAsC;IACxD,gBAAgB,uBAAsC;IACtD,iBAAiB,wBAAsC;IACvD,oBAAoB,2BAAsC;IAC1D,iBAAiB,wBAAsC;IACvD,kBAAkB,yBAAsC;IACxD,oBAAoB,4BAAuC;IAC3D,eAAe,sBAAsC;IACrD,gBAAgB,uBAAsC;IACtD,mBAAmB,0BAAsC;IACzD,eAAe,qBAAqC;IACpD,gBAAgB,sBAAqC;IACrD,mBAAmB,yBAAqC;IACxD,cAAc,oBAAqC;IACnD,eAAe,qBAAqC;IACpD,eAAe,qBAAqC;IACpD,gBAAgB,sBAAqC;IACrD,kBAAkB,yBAAsC;IACxD,aAAa,mBAAqC;IAClD,cAAc,oBAAqC;CACtD;AAGD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAA0B,KAAK,CAAC;CACzC,GAAG;IACA,MAAM,EAA0B,IAAI,CAAC;IACrC,WAAW,EAAqB,MAAM,CAAC;CAC1C,CAAA;AACD,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAyB,mBAAmB,CAAC;IACpD,OAAO,EAAyB,mBAAmB,CAAC;IACpD,sBAAsB,EAAU,mBAAmB,CAAC;IACpD,cAAc,EAAkB,mBAAmB,CAAC;IACpD,IAAI,EAA4B,mBAAmB,CAAC;IACpD,MAAM,EAA0B,mBAAmB,CAAC;CACvD;AAGD,oBAAY,oBAAoB;IAC5B,KAAK,cAAwC;IAC7C,GAAG,cAA0C;CAChD;AACD,oBAAY,wBAAwB;IAChC,KAAK,MAAgC;IACrC,IAAI,MAAiC;IACrC,GAAG,MAAkC;CACxC;AACD,oBAAY,uBAAuB;IAC/B,IAAI,MAAiC;IACrC,KAAK,MAAgC;IACrC,KAAK,MAAgC;IACrC,KAAK,MAAgC;CACxC;AACD,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,CAAC;AAG5B,oBAAY,oBAAoB;IAC5B,OAAO,KAA6B;IACpC,SAAS,cAAoC;IAC7C,MAAM,WAAoC;IAC1C,SAAS,cAAoC;CAChD;AAGD,oBAAY,oBAAoB;IAC5B,MAAM,WAAoC;IAC1C,cAAc,mBAAoC;CACrD;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAGhD,MAAM,MAAM,iBAAiB,GAAG,MAAM,EAAE,EAAE,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAyB,iBAAiB,CAAC;IAClD,QAAQ,EAAwB,iBAAiB,CAAC;IAClD,QAAQ,EAAwB,iBAAiB,CAAC;IAClD,WAAW,EAAqB,iBAAiB,CAAC;IAClD,IAAI,EAA4B,eAAe,EAAE,CAAC;CACrD"}
@@ -17,7 +17,9 @@ export declare class DysonCloudAPIUserAgent {
17
17
  constructor(log: AnsiLogger, config: Config, china: boolean);
18
18
  setBearerToken(token: string): void;
19
19
  request<Type>(checker: CheckerT<Type>, method: Method, path: string, body?: object): Promise<Type>;
20
- requestCore(request: Request): Promise<string>;
20
+ requestWithRetries(request: Request): Promise<string>;
21
+ canRetry(err: unknown): boolean;
22
+ requestCore(logPrefix: string, request: Request): Promise<string>;
21
23
  logHeaders(name: string, headers: Headers): void;
22
24
  logBody(name: string, body: unknown): void;
23
25
  logCheckerValidation(level: LogLevel, request: Request, body: unknown, errors?: IErrorDetail[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dyson-cloud-api-ua.d.ts","sourceRoot":"","sources":["../src/dyson-cloud-api-ua.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQ9D,MAAM,MAAM,MAAM,GAAQ,UAAU,CAAC,UAAU,CAAC;AAChD,MAAM,MAAM,OAAO,GAAO,mBAAmB,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAO,UAAU,CAAC,eAAe,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAM,UAAU,CAAC,YAAY,CAAC;AAalD,qBAAa,sBAAsB;IAiB3B,QAAQ,CAAC,GAAG,EAAQ,UAAU;IAC9B,QAAQ,CAAC,MAAM,EAAK,MAAM;IAC1B,QAAQ,CAAC,KAAK,EAAM,OAAO;IAhB/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAIvB;IAGF,YAAY,SAAK;gBAIJ,GAAG,EAAQ,UAAU,EACrB,MAAM,EAAK,MAAM,EACjB,KAAK,EAAM,OAAO;IAe/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmClG,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAehD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAY1C,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI;CASxG"}
1
+ {"version":3,"file":"dyson-cloud-api-ua.d.ts","sourceRoot":"","sources":["../src/dyson-cloud-api-ua.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAS9D,MAAM,MAAM,MAAM,GAAQ,UAAU,CAAC,UAAU,CAAC;AAChD,MAAM,MAAM,OAAO,GAAO,mBAAmB,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAO,UAAU,CAAC,eAAe,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAM,UAAU,CAAC,YAAY,CAAC;AAkBlD,qBAAa,sBAAsB;IAiB3B,QAAQ,CAAC,GAAG,EAAQ,UAAU;IAC9B,QAAQ,CAAC,MAAM,EAAK,MAAM;IAC1B,QAAQ,CAAC,KAAK,EAAM,OAAO;IAhB/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAIvB;IAGF,YAAY,SAAK;gBAIJ,GAAG,EAAQ,UAAU,EACrB,MAAM,EAAK,MAAM,EACjB,KAAK,EAAM,OAAO;IAe/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmClG,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B3D,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAgBzB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCvE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAehD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAY1C,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI;CASxG"}
@@ -7,6 +7,7 @@ import { inspect } from 'util';
7
7
  import { STATUS_CODES } from 'http';
8
8
  import { PLUGIN_NAME, PLUGIN_VERSION } from './settings.js';
9
9
  import { DysonCloudStatusCodeError } from './dyson-cloud-error.js';
10
+ import { setTimeout } from 'node:timers/promises';
10
11
  // Base URL for the Dyson cloud API
11
12
  const DYSON_API_URL_GLOBAL = 'https://appapi.cp.dyson.com';
12
13
  const DYSON_API_URL_CHINA = 'https://appapi.cp.dyson.cn';
@@ -14,6 +15,10 @@ const DYSON_API_URL_CHINA = 'https://appapi.cp.dyson.cn';
14
15
  const USER_AGENT = `${PLUGIN_NAME}/${PLUGIN_VERSION}`;
15
16
  // Timeout for all requests
16
17
  const TIMEOUT = 10 * MS; // 10 seconds
18
+ // Delays between retries
19
+ const RETRY_DELAY_MIN = 1 * MS; // 1 second
20
+ const RETRY_DELAY_MAX = 5 * 60 * MS; // 5 minutes
21
+ const RETRY_DELAY_FACTOR = 2;
17
22
  // Dyson cloud API user agent
18
23
  export class DysonCloudAPIUserAgent {
19
24
  log;
@@ -54,7 +59,7 @@ export class DysonCloudAPIUserAgent {
54
59
  const request = { method, path, headers };
55
60
  if (body)
56
61
  request.body = JSON.stringify(body);
57
- const text = await this.requestCore(request);
62
+ const text = await this.requestWithRetries(request);
58
63
  // Parse the response as JSON
59
64
  let json;
60
65
  try {
@@ -80,9 +85,46 @@ export class DysonCloudAPIUserAgent {
80
85
  // Return the result
81
86
  return json;
82
87
  }
88
+ // Perform the request, retrying if required, returning the response body
89
+ async requestWithRetries(request) {
90
+ // Request counters
91
+ let requestCount;
92
+ let retryCount = 0;
93
+ let retryDelay = RETRY_DELAY_MIN;
94
+ for (;;) {
95
+ try {
96
+ // Attempt the request
97
+ requestCount ??= ++this.requestCount;
98
+ const counter = `${requestCount}` + (retryCount ? `.${retryCount}` : '');
99
+ return await this.requestCore(`Dyson cloud API #${counter}:`, request);
100
+ }
101
+ catch (err) {
102
+ // Request failed, so check whether it can be retried
103
+ if (!this.canRetry(err))
104
+ throw err;
105
+ ++retryCount;
106
+ // Delay before trying again
107
+ await setTimeout(retryDelay);
108
+ retryDelay = Math.min(retryDelay * RETRY_DELAY_FACTOR, RETRY_DELAY_MAX);
109
+ }
110
+ }
111
+ }
112
+ // Decide whether a request can be retried following an error
113
+ canRetry(err) {
114
+ // Do not retry the request unless the failure was an API error
115
+ if (!(err instanceof DysonCloudStatusCodeError))
116
+ return false;
117
+ // Some status codes never retried
118
+ const noRetryStatusCodes = [401, 404, 429];
119
+ if (noRetryStatusCodes.includes(err.statusCode)) {
120
+ this.log.warn(`Request will not be retried (status code ${err.statusCode})`);
121
+ return false;
122
+ }
123
+ // The request can be retried
124
+ return true;
125
+ }
83
126
  // Perform the request and return the response body
84
- async requestCore(request) {
85
- const logPrefix = `Dyson cloud API #${this.requestCount++}:`;
127
+ async requestCore(logPrefix, request) {
86
128
  const startTime = Date.now();
87
129
  let status = 'OK';
88
130
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"dyson-cloud-api-ua.js","sourceRoot":"","sources":["../src/dyson-cloud-api-ua.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dyson-cloud-api-ua.js","sourceRoot":"","sources":["../src/dyson-cloud-api-ua.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dyson-device-360-base.d.ts","sourceRoot":"","sources":["../src/dyson-device-360-base.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,WAAW,EACX,4BAA4B,EAC5B,sBAAsB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACH,WAAW,EAEX,oBAAoB,EACpB,4BAA4B,EAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAiB,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAiB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACH,oBAAoB,EAEvB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA0DlD,MAAM,MAAM,YAAY,GAAG,CAAC,iBAAiB,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAQ9E,8BAAsB,kBAAmB,SAAQ,WAAW,CAAC,YAAY,CAAC;IAGtE,MAAM,CAAC,QAAQ,CAAC,eAAe,sBAAgB;IAC/C,YAAY,EAAI,MAAM,IAAI,CAAC;IAG3B,QAAQ,CAAC,EAAO,WAAW,CAAC;gBAGhB,GAAG,IAAI,EAAE,4BAA4B,CAAC,YAAY,CAAC;IAS/D,YAAY,IAAI,WAAW;IAqClB,WAAW,IAAI,sBAAsB,EAAE;IAKvC,YAAY,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE;IAKrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpC,QAAQ,CAAC,oBAAoB,IAAI,MAAM;IACvC,QAAQ,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,iBAAiB;IACnE,QAAQ,CAAC,gBAAgB,IAAI,YAAY,EAAE;IAG3C,oBAAoB,CAAC,SAAS,EAAE,eAAe,GAAG,iBAAiB;IAOnE,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,eAAe;IAQ7D,uBAAuB,CAAC,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzF,gBAAgB,CACZ,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAC3C,MAAM,EAAE,oBAAoB,GAC7B,oBAAoB;IAmBvB,mBAAmB,CACf,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAC3C,MAAM,EAAE,oBAAoB,GAC7B,4BAA4B;CAiBlC"}
1
+ {"version":3,"file":"dyson-device-360-base.d.ts","sourceRoot":"","sources":["../src/dyson-device-360-base.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,WAAW,EACX,4BAA4B,EAC5B,sBAAsB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACH,WAAW,EAEX,oBAAoB,EACpB,4BAA4B,EAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAiB,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAiB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACH,oBAAoB,EAEvB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA2DlD,MAAM,MAAM,YAAY,GAAG,CAAC,iBAAiB,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAQ9E,8BAAsB,kBAAmB,SAAQ,WAAW,CAAC,YAAY,CAAC;IAGtE,MAAM,CAAC,QAAQ,CAAC,eAAe,sBAAgB;IAC/C,YAAY,EAAI,MAAM,IAAI,CAAC;IAG3B,QAAQ,CAAC,EAAO,WAAW,CAAC;gBAGhB,GAAG,IAAI,EAAE,4BAA4B,CAAC,YAAY,CAAC;IAY/D,YAAY,IAAI,WAAW;IAqClB,WAAW,IAAI,sBAAsB,EAAE;IAKvC,YAAY,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE;IAKrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpC,QAAQ,CAAC,oBAAoB,IAAI,MAAM;IACvC,QAAQ,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,iBAAiB;IACnE,QAAQ,CAAC,gBAAgB,IAAI,YAAY,EAAE;IAG3C,oBAAoB,CAAC,SAAS,EAAE,eAAe,GAAG,iBAAiB;IAOnE,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,eAAe;IAQ7D,uBAAuB,CAAC,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzF,gBAAgB,CACZ,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAC3C,MAAM,EAAE,oBAAoB,GAC7B,oBAAoB;IAmBvB,mBAAmB,CACf,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAC3C,MAAM,EAAE,oBAAoB,GAC7B,4BAA4B;CAiBlC"}
@@ -46,6 +46,7 @@ import { Dyson360State } from './dyson-360-types.js';
46
46
  import { mapDyson360Faults } from './dyson-device-360-faults.js';
47
47
  import { assert } from 'console';
48
48
  import { attachDevice360CommandHandlers } from './dyson-device-360-commands.js';
49
+ import { DysonDevice360Map } from './dyson-device-360-map.js';
49
50
  const STATE_MAP = {
50
51
  // RunMode OperationalState isDocked
51
52
  [Dyson360State.MachineOff]: ['Idle', 'Error', false],
@@ -116,6 +117,8 @@ let DysonDevice360Base = (() => {
116
117
  super(...args);
117
118
  // Prepare a listener for MQTT updates
118
119
  this.mqttListener = tryListener(this.mqtt, () => this.updateClusterAttributes(this.mqtt.status));
120
+ // Start processing map-related MQTT messages
121
+ void new DysonDevice360Map(this.log, this.config, this.mqtt);
119
122
  }
120
123
  // Create the endpoint for this device
121
124
  makeEndpoint() {
@@ -1 +1 @@
1
- {"version":3,"file":"dyson-device-360-base.js","sourceRoot":"","sources":["../src/dyson-device-360-base.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC,OAAO,EACH,WAAW,EAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACH,WAAW,EAId,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAmB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAqB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAEH,iBAAiB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAShF,MAAM,SAAS,GAA2C;IACtD,oFAAoF;IACpF,CAAC,aAAa,CAAC,UAAU,CAAC,EAAc,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,aAAa,CAAC,EAAW,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,SAAS,CAAC,EAAe,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,WAAW,CAAC,EAAa,CAAC,MAAM,EAAS,OAAO,EAAa,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,MAAM,EAAS,OAAO,EAAa,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAK,CAAC,MAAM,EAAS,OAAO,EAAa,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,UAAU,EAAK,UAAU,EAAU,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,UAAU,EAAK,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,UAAU,EAAK,QAAQ,EAAY,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAK,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,MAAM,EAAS,QAAQ,EAAY,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,MAAM,EAAS,UAAU,EAAU,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAK,CAAC,MAAM,EAAS,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,cAAc,CAAC,EAAU,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,SAAS,EAAM,UAAU,EAAU,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,SAAS,EAAM,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,SAAS,EAAM,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,aAAa,CAAC,EAAW,CAAC,SAAS,EAAM,QAAQ,EAAY,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,cAAc,CAAC,EAAU,CAAC,SAAS,EAAM,SAAS,EAAW,KAAK,CAAC;CACrF,CAAC;AACF,SAAS,QAAQ,CAAC,KAAoB;IAKlC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO;QACH,OAAO,EAAa,aAAa,CAAC,OAAO,CAAC;QAC1C,gBAAgB,EAAI,mBAAmB,CAAC,gBAAgB,CAAC,cAAc,CAAC;QACxE,QAAQ;KACX,CAAC;AACN,CAAC;AAKD,gCAAgC;AAChC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,yBAAyB,GAAI,EAAE,CAAC;AACtC,MAAM,sBAAsB,GAAO,GAAG,CAAC;AAEvC,8BAA8B;IACR,kBAAkB;sBAAS,WAAW;;;iBAAtC,kBAAmB,SAAQ,WAAyB;;;mDAiGrE,cAAc;YACf,wNAAM,uBAAuB,6DAkB5B;;;QAlHD,6CAA6C;QAC7C,MAAM,CAAU,eAAe,GAAG,YAAY,CAAC;QAC/C,YAAY,GAJM,mDAAkB,CAIT;QAE3B,0BAA0B;QAC1B,QAAQ,CAAoB;QAE5B,wCAAwC;QACxC,YAAY,GAAG,IAAgD;YAC3D,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAEf,sCAAsC;YACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,sCAAsC;QACtC,YAAY;YACR,MAAM,kBAAkB,GACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAEpE,2CAA2C;YAC3C,MAAM,eAAe,GAAuB;gBACxC,gBAAgB,EAAQ,IAAI,CAAC,QAAQ;gBACrC,sBAAsB,EAAE,IAAI,CAAC,UAAU;gBACvC,gBAAgB,EAAE;oBACd,SAAS,EAAW,IAAI,CAAC,UAAU;oBACnC,UAAU,EAAU,IAAI,CAAC,WAAW;oBACpC,iBAAiB,EAAG,IAAI,CAAC,oBAAoB,EAAE;oBAC/C,SAAS,EAAW,IAAI,CAAC,SAAS;oBAClC,YAAY,EAAQ,IAAI,CAAC,WAAW;oBACpC,WAAW,EAAS,IAAI,CAAC,SAAS;oBAClC,UAAU,EAAU,UAAU;oBAC9B,YAAY,EAAQ,IAAI,CAAC,YAAY;oBACrC,QAAQ,EAAY,IAAI,CAAC,QAAQ;oBACjC,QAAQ,EAAY,SAAS;oBAC7B,UAAU,EAAU,WAAW;iBAClC;gBACD,WAAW,EAAE;oBACT,iBAAiB,EAAG,IAAI,CAAC,oBAAoB,EAAE;iBAClD;gBACD,YAAY,EAAE;oBACV,MAAM,EAAc,kBAAkB;iBACzC;aACJ,CAAC;YAEF,mDAAmD;YACnD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACzE,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,+DAA+D;QACtD,WAAW;YAChB,OAAO,EAAE,CAAC,CAAC,0CAA0C;QACzD,CAAC;QAED,sDAAsD;QAC7C,YAAY,CAAC,eAA6B;YAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,kDAAkD;QACzC,KAAK,CAAC,KAAK;YAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,qDAAqD;QAC5C,KAAK,CAAC,IAAI;YACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAOD,8DAA8D;QAC9D,oBAAoB,CAAC,SAA0B;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YACrE,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6DAA6D;QAC7D,oBAAoB,CAAC,SAA4B;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YACnE,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,4DAA4D;QAE5D,KAAK,CAAC,uBAAuB,CAAC,MAA2C;YACrE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE/B,4CAA4C;YAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,SAAS,GAAW,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACnF,MAAM,EAAE,OAAO,EAAE,GAAS,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,gBAAgB,GAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,aAAa,GAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhE,6BAA6B;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,gEAAgE;QAChE,gBAAgB,CACZ,MAA2C,EAC3C,MAA4B;YAE5B,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;YACtC,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;YAC1D,OAAO;gBACH,eAAe;gBACf,qBAAqB,EAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;gBAC7D,mBAAmB,EAAK,kBAAkB,GAAG,CAAC,EAAE,wBAAwB;gBACxE,cAAc,EAAU,WAAW,CAAC,cAAc,CAC9C,kBAAkB,GAAG,0BAA0B,CAAC,CAAC,CAAC,UAAU;oBAC5D,CAAC,CAAC,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxE,cAAc,EAAU,WAAW,CAAC,cAAc,CAC9C,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY;oBACnF,CAAC,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACvF,MAAM,EAAkB,WAAW,CAAC,iBAAiB,CAAC,MAAM;aAC/D,CAAC;QACN,CAAC;QAED,iEAAiE;QACjE,mBAAmB,CACf,MAA2C,EAC3C,MAA4B;YAE5B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC;YAE5D,4DAA4D;YAC5D,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;YACpC,IAAI,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,gBAAgB,CAAC,YAAY,KAAK,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC3E,kDAAkD;gBAClD,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,2DAA2D;gBAC3D,MAAM,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;QAC5D,CAAC;;;SAhKiB,kBAAkB"}
1
+ {"version":3,"file":"dyson-device-360-base.js","sourceRoot":"","sources":["../src/dyson-device-360-base.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC,OAAO,EACH,WAAW,EAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACH,WAAW,EAId,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAmB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAqB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAEH,iBAAiB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,MAAM,SAAS,GAA2C;IACtD,oFAAoF;IACpF,CAAC,aAAa,CAAC,UAAU,CAAC,EAAc,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,aAAa,CAAC,EAAW,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,SAAS,CAAC,EAAe,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,WAAW,CAAC,EAAa,CAAC,MAAM,EAAS,OAAO,EAAa,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,MAAM,EAAS,OAAO,EAAa,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAK,CAAC,MAAM,EAAS,OAAO,EAAa,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,MAAM,EAAS,OAAO,EAAa,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,UAAU,EAAK,UAAU,EAAU,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAO,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAI,CAAC,UAAU,EAAK,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,UAAU,EAAK,QAAQ,EAAY,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAK,CAAC,UAAU,EAAK,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,MAAM,EAAS,QAAQ,EAAY,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,MAAM,EAAS,UAAU,EAAU,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAK,CAAC,MAAM,EAAS,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,cAAc,CAAC,EAAU,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,SAAS,EAAM,UAAU,EAAU,IAAI,CAAC;IACjF,CAAC,aAAa,CAAC,eAAe,CAAC,EAAS,CAAC,MAAM,EAAS,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAQ,CAAC,SAAS,EAAM,SAAS,EAAW,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAM,CAAC,SAAS,EAAM,gBAAgB,EAAI,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,aAAa,CAAC,EAAW,CAAC,SAAS,EAAM,QAAQ,EAAY,KAAK,CAAC;IAClF,CAAC,aAAa,CAAC,cAAc,CAAC,EAAU,CAAC,SAAS,EAAM,SAAS,EAAW,KAAK,CAAC;CACrF,CAAC;AACF,SAAS,QAAQ,CAAC,KAAoB;IAKlC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO;QACH,OAAO,EAAa,aAAa,CAAC,OAAO,CAAC;QAC1C,gBAAgB,EAAI,mBAAmB,CAAC,gBAAgB,CAAC,cAAc,CAAC;QACxE,QAAQ;KACX,CAAC;AACN,CAAC;AAKD,gCAAgC;AAChC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,yBAAyB,GAAI,EAAE,CAAC;AACtC,MAAM,sBAAsB,GAAO,GAAG,CAAC;AAEvC,8BAA8B;IACR,kBAAkB;sBAAS,WAAW;;;iBAAtC,kBAAmB,SAAQ,WAAyB;;;mDAoGrE,cAAc;YACf,wNAAM,uBAAuB,6DAkB5B;;;QArHD,6CAA6C;QAC7C,MAAM,CAAU,eAAe,GAAG,YAAY,CAAC;QAC/C,YAAY,GAJM,mDAAkB,CAIT;QAE3B,0BAA0B;QAC1B,QAAQ,CAAoB;QAE5B,wCAAwC;QACxC,YAAY,GAAG,IAAgD;YAC3D,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAEf,sCAAsC;YACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAEpD,6CAA6C;YAC7C,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,sCAAsC;QACtC,YAAY;YACR,MAAM,kBAAkB,GACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAEpE,2CAA2C;YAC3C,MAAM,eAAe,GAAuB;gBACxC,gBAAgB,EAAQ,IAAI,CAAC,QAAQ;gBACrC,sBAAsB,EAAE,IAAI,CAAC,UAAU;gBACvC,gBAAgB,EAAE;oBACd,SAAS,EAAW,IAAI,CAAC,UAAU;oBACnC,UAAU,EAAU,IAAI,CAAC,WAAW;oBACpC,iBAAiB,EAAG,IAAI,CAAC,oBAAoB,EAAE;oBAC/C,SAAS,EAAW,IAAI,CAAC,SAAS;oBAClC,YAAY,EAAQ,IAAI,CAAC,WAAW;oBACpC,WAAW,EAAS,IAAI,CAAC,SAAS;oBAClC,UAAU,EAAU,UAAU;oBAC9B,YAAY,EAAQ,IAAI,CAAC,YAAY;oBACrC,QAAQ,EAAY,IAAI,CAAC,QAAQ;oBACjC,QAAQ,EAAY,SAAS;oBAC7B,UAAU,EAAU,WAAW;iBAClC;gBACD,WAAW,EAAE;oBACT,iBAAiB,EAAG,IAAI,CAAC,oBAAoB,EAAE;iBAClD;gBACD,YAAY,EAAE;oBACV,MAAM,EAAc,kBAAkB;iBACzC;aACJ,CAAC;YAEF,mDAAmD;YACnD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACzE,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,+DAA+D;QACtD,WAAW;YAChB,OAAO,EAAE,CAAC,CAAC,0CAA0C;QACzD,CAAC;QAED,sDAAsD;QAC7C,YAAY,CAAC,eAA6B;YAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,kDAAkD;QACzC,KAAK,CAAC,KAAK;YAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,qDAAqD;QAC5C,KAAK,CAAC,IAAI;YACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAOD,8DAA8D;QAC9D,oBAAoB,CAAC,SAA0B;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YACrE,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6DAA6D;QAC7D,oBAAoB,CAAC,SAA4B;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YACnE,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,4DAA4D;QAE5D,KAAK,CAAC,uBAAuB,CAAC,MAA2C;YACrE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE/B,4CAA4C;YAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,SAAS,GAAW,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACnF,MAAM,EAAE,OAAO,EAAE,GAAS,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,gBAAgB,GAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,aAAa,GAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhE,6BAA6B;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,gEAAgE;QAChE,gBAAgB,CACZ,MAA2C,EAC3C,MAA4B;YAE5B,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;YACtC,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;YAC1D,OAAO;gBACH,eAAe;gBACf,qBAAqB,EAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;gBAC7D,mBAAmB,EAAK,kBAAkB,GAAG,CAAC,EAAE,wBAAwB;gBACxE,cAAc,EAAU,WAAW,CAAC,cAAc,CAC9C,kBAAkB,GAAG,0BAA0B,CAAC,CAAC,CAAC,UAAU;oBAC5D,CAAC,CAAC,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxE,cAAc,EAAU,WAAW,CAAC,cAAc,CAC9C,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY;oBACnF,CAAC,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACvF,MAAM,EAAkB,WAAW,CAAC,iBAAiB,CAAC,MAAM;aAC/D,CAAC;QACN,CAAC;QAED,iEAAiE;QACjE,mBAAmB,CACf,MAA2C,EAC3C,MAA4B;YAE5B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC;YAE5D,4DAA4D;YAC5D,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;YACpC,IAAI,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,gBAAgB,CAAC,YAAY,KAAK,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC3E,kDAAkD;gBAClD,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,2DAA2D;gBAC3D,MAAM,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;QAC5D,CAAC;;;SAnKiB,kBAAkB"}
@@ -0,0 +1,20 @@
1
+ import { AnsiLogger, LogLevel } from 'matterbridge/logger';
2
+ import { Config } from './config-types.js';
3
+ import { DysonMqtt360 } from './dyson-mqtt-360.js';
4
+ import { Dyson360MapData } from './dyson-360-types.js';
5
+ import { Dyson360MsgMapData, Dyson360MsgMapGlobal, Dyson360MsgMapGrid, Dyson360MsgStateChange } from './dyson-360-msg-types.js';
6
+ import { IErrorDetail } from 'ts-interface-checker';
7
+ import { DysonMapGrid } from './dyson-map-grid.js';
8
+ export declare class DysonDevice360Map {
9
+ readonly log: AnsiLogger;
10
+ readonly config: Config;
11
+ readonly mqtt: DysonMqtt360;
12
+ cleanId?: string;
13
+ readonly grids: Map<string, DysonMapGrid>;
14
+ constructor(log: AnsiLogger, config: Config, mqtt: DysonMqtt360);
15
+ updateMap(msg: Dyson360MsgMapGlobal | Dyson360MsgMapGrid | Dyson360MsgMapData): void;
16
+ finishMap(msg?: Dyson360MsgStateChange): void;
17
+ decodeMapData(content: string): Dyson360MapData;
18
+ logCheckerValidation(level: LogLevel, content: unknown, errors?: IErrorDetail[]): void;
19
+ }
20
+ //# sourceMappingURL=dyson-device-360-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dyson-device-360-map.d.ts","sourceRoot":"","sources":["../src/dyson-device-360-map.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACH,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACzB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AASnD,qBAAa,iBAAiB;IAQtB,QAAQ,CAAC,GAAG,EAAQ,UAAU;IAC9B,QAAQ,CAAC,MAAM,EAAK,MAAM;IAC1B,QAAQ,CAAC,IAAI,EAAO,YAAY;IAPpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,KAAK,4BAAmC;gBAIpC,GAAG,EAAQ,UAAU,EACrB,MAAM,EAAK,MAAM,EACjB,IAAI,EAAO,YAAY;IAkBpC,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,IAAI;IAiCpF,SAAS,CAAC,GAAG,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAsB7C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IA8B/C,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI;CASzF"}
@@ -0,0 +1,129 @@
1
+ // Matterbridge plugin for Dyson robot vacuum and air treatment devices
2
+ // Copyright © 2025 Alexander Thoukydides
3
+ import { formatSeconds, getValidationTree, tryListener } from './utils.js';
4
+ import { checkers } from './ti/dyson-360-types.js';
5
+ import { inflateSync } from 'node:zlib';
6
+ import { INSPECT_VERBOSE } from './logger-options.js';
7
+ import { inspect } from 'node:util';
8
+ import { DysonMapGrid } from './dyson-map-grid.js';
9
+ import { DysonMapCoordinate } from './dyson-map-coordinate.js';
10
+ import { DYSON_MAP_CONFIG_MATTERBRIDGE, DYSON_MAP_CONFIG_MONOSPACED, dysonMapText } from './dyson-map-text.js';
11
+ // Map rendering for a Dyson robot vacuum device
12
+ export class DysonDevice360Map {
13
+ log;
14
+ config;
15
+ mqtt;
16
+ // Current clean, if any
17
+ cleanId;
18
+ grids = new Map();
19
+ // Construct a new Dyson map renderer
20
+ constructor(log, config, mqtt) {
21
+ this.log = log;
22
+ this.config = config;
23
+ this.mqtt = mqtt;
24
+ // Listen to map-related MQTT messages
25
+ mqtt.on('message', tryListener(this.mqtt, msg => {
26
+ switch (msg.msg) {
27
+ case 'MAP-GLOBAL':
28
+ case 'MAP-GRID':
29
+ case 'MAP-DATA':
30
+ this.updateMap(msg);
31
+ break;
32
+ case 'STATE-CHANGE':
33
+ if (msg.endOfClean)
34
+ this.finishMap(msg);
35
+ break;
36
+ }
37
+ }));
38
+ }
39
+ // Update a single map tile from a received MQTT message
40
+ updateMap(msg) {
41
+ // Start a new map if the clean identifier has changed
42
+ if (msg.cleanId !== this.cleanId) {
43
+ if (this.cleanId !== undefined) {
44
+ this.log.warn(`Discarding map for cleanId ${this.cleanId}`);
45
+ this.finishMap();
46
+ }
47
+ this.log.debug(`Starting new map for cleanId ${msg.cleanId}`);
48
+ this.cleanId = msg.cleanId;
49
+ }
50
+ // Select or create the tile for this update
51
+ const grid = this.grids.get(msg.gridID) ?? new DysonMapGrid();
52
+ this.grids.set(msg.gridID, grid);
53
+ // Update the tile using the details from the received MQTT message
54
+ switch (msg.msg) {
55
+ case 'MAP-GLOBAL':
56
+ grid.setGlobalPosition(new DysonMapCoordinate(msg));
57
+ grid.setRotation(msg.angle);
58
+ break;
59
+ case 'MAP-GRID':
60
+ grid.setResolution(msg.resolution);
61
+ grid.setSize(new DysonMapCoordinate([msg.width, msg.height]));
62
+ grid.setOrigin(new DysonMapCoordinate(msg.anchor));
63
+ break;
64
+ case 'MAP-DATA':
65
+ grid.setData(this.decodeMapData(msg.data.content));
66
+ break;
67
+ }
68
+ }
69
+ // Render the final map when the clean finishes
70
+ finishMap(msg) {
71
+ if (this.cleanId === undefined)
72
+ return;
73
+ // Convert the map to a textual representation for logging
74
+ const { logMapStyle } = this.config;
75
+ if (logMapStyle !== 'Off') {
76
+ const style = logMapStyle === 'Matterbridge'
77
+ ? DYSON_MAP_CONFIG_MATTERBRIDGE : DYSON_MAP_CONFIG_MONOSPACED;
78
+ const robotCoord = new DysonMapCoordinate(this.mqtt.status.globalPosition);
79
+ const mapText = dysonMapText([...this.grids.values()], robotCoord, style);
80
+ this.log.info(msg?.cleanDuration
81
+ ? `Cleaned for ${formatSeconds(msg.cleanDuration)}:`
82
+ : `Unexpected end of clean ${this.cleanId}:`);
83
+ for (const line of mapText)
84
+ this.log.info(line);
85
+ }
86
+ // Discard the map data
87
+ this.cleanId = undefined;
88
+ this.grids.clear();
89
+ }
90
+ // Decode and check the MAP-DATA content field
91
+ decodeMapData(content) {
92
+ let json;
93
+ try {
94
+ const deflated = Buffer.from(content, 'base64');
95
+ // (Note: zlib deflate compressed, despite 'gzipped' label)
96
+ const text = inflateSync(deflated).toString();
97
+ json = JSON.parse(text);
98
+ }
99
+ catch (err) {
100
+ const message = err instanceof Error ? err.message : String(err);
101
+ throw new Error(`Failed to decode and parse Dyson map data as JSON: ${message}`);
102
+ }
103
+ // Check that the map data has the expected fields
104
+ const checker = checkers.Dyson360MapData;
105
+ const validation = checker.validate(json);
106
+ if (validation) {
107
+ this.logCheckerValidation("error" /* LogLevel.ERROR */, json, validation);
108
+ throw new Error('Unexpected structure of Dyson map data');
109
+ }
110
+ const strictValidation = checker.strictValidate(json);
111
+ if (strictValidation) {
112
+ this.logCheckerValidation("warn" /* LogLevel.WARN */, json, strictValidation);
113
+ // (Continue processing map data that includes unexpected properties)
114
+ }
115
+ // Return the result
116
+ return json;
117
+ }
118
+ // Log checker validation errors
119
+ logCheckerValidation(level, content, errors) {
120
+ this.log.log(level, 'MAP-DATA content:');
121
+ if (errors) {
122
+ const validationLines = getValidationTree(errors);
123
+ validationLines.forEach(line => { this.log.log(level, line); });
124
+ }
125
+ const contentLines = inspect(content, INSPECT_VERBOSE).split('\n');
126
+ contentLines.forEach(line => { this.log.info(` ${line}`); });
127
+ }
128
+ }
129
+ //# sourceMappingURL=dyson-device-360-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dyson-device-360-map.js","sourceRoot":"","sources":["../src/dyson-device-360-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { DysonMapCoordinate } from './dyson-map-coordinate.js';
2
+ export type DysonMapPixel<Layer extends string> = Partial<Record<Layer, number>>;
3
+ export declare abstract class DysonMapBitmapBase<Layer extends string> {
4
+ abstract get size(): DysonMapCoordinate;
5
+ abstract get origin(): DysonMapCoordinate;
6
+ abstract getPixel(coord: DysonMapCoordinate): DysonMapPixel<Layer>;
7
+ }
8
+ export declare class DysonMapBitmap<Layer extends string> extends DysonMapBitmapBase<Layer> {
9
+ layers: Map<Layer, number[][]>;
10
+ size: DysonMapCoordinate;
11
+ origin: DysonMapCoordinate;
12
+ setLayer(layer: Layer, data: number[][]): void;
13
+ getPixel(coord: DysonMapCoordinate): DysonMapPixel<Layer>;
14
+ }
15
+ export declare class DysonMapBitmapRotated<Layer extends string> extends DysonMapBitmapBase<Layer> {
16
+ readonly bitmap: DysonMapBitmapBase<Layer>;
17
+ readonly degrees: number;
18
+ constructor(bitmap: DysonMapBitmapBase<Layer>, degrees: number);
19
+ get size(): DysonMapCoordinate;
20
+ get origin(): DysonMapCoordinate;
21
+ getPixel(coord: DysonMapCoordinate): DysonMapPixel<Layer>;
22
+ rotateCoordinate(degrees: number, coord: DysonMapCoordinate): DysonMapCoordinate;
23
+ }
24
+ export declare class DysonMapBitmapResampled<Layer extends string> extends DysonMapBitmapBase<Layer> {
25
+ readonly bitmap: DysonMapBitmapBase<Layer>;
26
+ readonly scaleX: number;
27
+ readonly scaleY: number;
28
+ constructor(bitmap: DysonMapBitmapBase<Layer>, scaleX: number, // (0 < scale < 1 for smaller)
29
+ scaleY?: number);
30
+ get size(): DysonMapCoordinate;
31
+ get origin(): DysonMapCoordinate;
32
+ getPixel(coord: DysonMapCoordinate): DysonMapPixel<Layer>;
33
+ }
34
+ export declare class DysonMapBitmapCropped<Layer extends string> extends DysonMapBitmapBase<Layer> {
35
+ readonly bitmap: DysonMapBitmapBase<Layer>;
36
+ readonly min: DysonMapCoordinate;
37
+ readonly max: DysonMapCoordinate;
38
+ constructor(bitmap: DysonMapBitmapBase<Layer>, min: DysonMapCoordinate, // (inclusive)
39
+ max: DysonMapCoordinate);
40
+ get size(): DysonMapCoordinate;
41
+ get origin(): DysonMapCoordinate;
42
+ getPixel(coord: DysonMapCoordinate): DysonMapPixel<Layer>;
43
+ }
44
+ interface DysonMapBitmapWithCoord<Layer extends string> {
45
+ bitmap: DysonMapBitmapBase<Layer>;
46
+ boundingBox: [DysonMapCoordinate, DysonMapCoordinate];
47
+ }
48
+ export declare class DysonMapBitmapComposite<Layer extends string> extends DysonMapBitmapBase<Layer> {
49
+ readonly bitmaps: DysonMapBitmapWithCoord<Layer>[];
50
+ boundingBox?: [DysonMapCoordinate, DysonMapCoordinate];
51
+ addBitmap(bitmap: DysonMapBitmapBase<Layer>, origin: DysonMapCoordinate): void;
52
+ get size(): DysonMapCoordinate;
53
+ get origin(): DysonMapCoordinate;
54
+ getPixel(coord: DysonMapCoordinate): DysonMapPixel<Layer>;
55
+ }
56
+ export declare function DysonMapMergePixels<Layer extends string>(pixels: DysonMapPixel<Layer>[]): DysonMapPixel<Layer>;
57
+ export declare function DysonMapBitmapBoundingBox<Layer extends string>(bitmap: DysonMapBitmapBase<Layer>, predicate: (pixel: DysonMapPixel<Layer>) => boolean): [DysonMapCoordinate, DysonMapCoordinate] | undefined;
58
+ export {};
59
+ //# sourceMappingURL=dyson-map-bitmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dyson-map-bitmap.d.ts","sourceRoot":"","sources":["../src/dyson-map-bitmap.ts"],"names":[],"mappings":"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"}