@homebridge-plugins/homebridge-sharkiq 2.0.0-beta.2 → 2.0.0-beta.21

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 (47) hide show
  1. package/CHANGELOG.md +19 -2
  2. package/README.md +41 -4
  3. package/config.schema.json +8 -26
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/devices/BaseMatterAccessory.d.ts +67 -0
  7. package/dist/devices/BaseMatterAccessory.d.ts.map +1 -0
  8. package/dist/devices/BaseMatterAccessory.js +153 -0
  9. package/dist/devices/BaseMatterAccessory.js.map +1 -0
  10. package/dist/devices/RoboticVacuumAccessory.d.ts +67 -0
  11. package/dist/devices/RoboticVacuumAccessory.d.ts.map +1 -0
  12. package/dist/devices/RoboticVacuumAccessory.js +645 -0
  13. package/dist/devices/RoboticVacuumAccessory.js.map +1 -0
  14. package/dist/devices/index.d.ts +9 -0
  15. package/dist/devices/index.d.ts.map +1 -0
  16. package/dist/devices/index.js +8 -0
  17. package/dist/devices/index.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/platform.d.ts +39 -16
  23. package/dist/platform.d.ts.map +1 -1
  24. package/dist/platform.js +195 -92
  25. package/dist/platform.js.map +1 -1
  26. package/dist/sharkiq-js/room_encoding.d.ts +8 -0
  27. package/dist/sharkiq-js/room_encoding.d.ts.map +1 -0
  28. package/dist/sharkiq-js/room_encoding.js +35 -0
  29. package/dist/sharkiq-js/room_encoding.js.map +1 -0
  30. package/dist/sharkiq-js/sharkiq.d.ts.map +1 -1
  31. package/dist/sharkiq-js/sharkiq.js +2 -20
  32. package/dist/sharkiq-js/sharkiq.js.map +1 -1
  33. package/docs/assets/highlight.css +9 -2
  34. package/docs/index.html +35 -3
  35. package/docs/variables/default.html +2 -1
  36. package/package.json +3 -3
  37. package/test/context.spec.ts +33 -0
  38. package/test/encodeRoomList.spec.ts +25 -0
  39. package/test/polling.spec.ts +74 -0
  40. package/dist/errorHandling.d.ts +0 -19
  41. package/dist/errorHandling.d.ts.map +0 -1
  42. package/dist/errorHandling.js +0 -27
  43. package/dist/errorHandling.js.map +0 -1
  44. package/dist/platformAccessory.d.ts +0 -33
  45. package/dist/platformAccessory.d.ts.map +0 -1
  46. package/dist/platformAccessory.js +0 -384
  47. package/dist/platformAccessory.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room_encoding.js","sourceRoot":"","sources":["../../src/sharkiq-js/room_encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkC,EAAE,UAAU,GAAG,EAAE;IAChF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,GAAG,sBAAsB,CAAA;IAEnC,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,SAAS,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAA;IAC7D,CAAC,CAAC,CAAA;IACF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAExC,4EAA4E;IAC5E,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAAA;IAE3E,8EAA8E;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACjF,MAAM,IAAI,WAAW,CAAA;IACrB,MAAM,IAAI,IAAI,CAAA;IAEd,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC1F,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACrD,CAAC;AAED,eAAe,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sharkiq.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharkiq.d.ts","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Buffer, transcode } from 'node:buffer';
2
1
  import { safeJsonParse } from '../utils.js';
3
2
  import { global_vars } from './const.js';
4
3
  import { OperatingModes, PowerModes, Properties } from './properties.js';
4
+ import { encodeRoomList } from './room_encoding.js';
5
5
  // Strip text from property name
6
6
  function _clean_property_name(raw_property_name) {
7
7
  const check_for = ['SET_', 'GET_'];
@@ -315,26 +315,8 @@ class SharkIqVacuum {
315
315
  }
316
316
  // Encode room list for specifying multiple rooms
317
317
  _encode_room_list(rooms) {
318
- if (!rooms) {
319
- return '*';
320
- }
321
- else if (rooms.length === 0) {
322
- return '*';
323
- }
324
318
  const room_list = this._get_device_room_list();
325
- let header = '\x80\x01\x0B\xCA\x02';
326
- let rooms_enc = '';
327
- rooms.forEach((room) => {
328
- rooms_enc += `${String.fromCharCode(room.length) + room}\n`;
329
- });
330
- rooms_enc = rooms_enc.replace(/\n$/, '');
331
- const footer = `\x1A${String.fromCharCode(room_list.identifier.length)}${room_list.identifier}`;
332
- const header_byte = String.fromCharCode(0 + 1 + rooms_enc.length + footer.length);
333
- header += header_byte;
334
- header += '\n';
335
- const latin1Buffer = transcode(Buffer.from(header + rooms_enc + footer), 'utf8', 'latin1');
336
- const encoded = Buffer.from(latin1Buffer).toString('base64');
337
- return encoded;
319
+ return encodeRoomList(rooms, room_list.identifier);
338
320
  }
339
321
  // Get object of the device room list for starting a clean
340
322
  _get_device_room_list() {
@@ -1 +1 @@
1
- {"version":3,"file":"sharkiq.js","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharkiq.js","sourceRoot":"","sources":["../../src/sharkiq-js/sharkiq.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,10 @@
7
7
  --dark-hl-2: #CE9178;
8
8
  --light-hl-3: #0000FF;
9
9
  --dark-hl-3: #569CD6;
10
- --light-hl-4: #098658;
11
- --dark-hl-4: #B5CEA8;
10
+ --light-hl-4: #008000;
11
+ --dark-hl-4: #6A9955;
12
+ --light-hl-5: #795E26;
13
+ --dark-hl-5: #DCDCAA;
12
14
  --light-code-background: #FFFFFF;
13
15
  --dark-code-background: #1E1E1E;
14
16
  }
@@ -19,6 +21,7 @@
19
21
  --hl-2: var(--light-hl-2);
20
22
  --hl-3: var(--light-hl-3);
21
23
  --hl-4: var(--light-hl-4);
24
+ --hl-5: var(--light-hl-5);
22
25
  --code-background: var(--light-code-background);
23
26
  } }
24
27
 
@@ -28,6 +31,7 @@
28
31
  --hl-2: var(--dark-hl-2);
29
32
  --hl-3: var(--dark-hl-3);
30
33
  --hl-4: var(--dark-hl-4);
34
+ --hl-5: var(--dark-hl-5);
31
35
  --code-background: var(--dark-code-background);
32
36
  } }
33
37
 
@@ -37,6 +41,7 @@
37
41
  --hl-2: var(--light-hl-2);
38
42
  --hl-3: var(--light-hl-3);
39
43
  --hl-4: var(--light-hl-4);
44
+ --hl-5: var(--light-hl-5);
40
45
  --code-background: var(--light-code-background);
41
46
  }
42
47
 
@@ -46,6 +51,7 @@
46
51
  --hl-2: var(--dark-hl-2);
47
52
  --hl-3: var(--dark-hl-3);
48
53
  --hl-4: var(--dark-hl-4);
54
+ --hl-5: var(--dark-hl-5);
49
55
  --code-background: var(--dark-code-background);
50
56
  }
51
57
 
@@ -54,4 +60,5 @@
54
60
  .hl-2 { color: var(--hl-2); }
55
61
  .hl-3 { color: var(--hl-3); }
56
62
  .hl-4 { color: var(--hl-4); }
63
+ .hl-5 { color: var(--hl-5); }
57
64
  pre, code { background: var(--code-background); }
package/docs/index.html CHANGED
@@ -9,7 +9,7 @@
9
9
  <p>The fastest way to get community support (not for bugs) is to join the <a href="https://discord.gg/kqNCe2D">Homebridge Discord server</a> and chat in the #sharkiq channel.</p>
10
10
  <h2 id="install-and-setup" class="tsd-anchor-link">Install and Setup<a href="#install-and-setup" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="step-1" class="tsd-anchor-link">Step 1.<a href="#step-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Run <code>npm install -g homebridge-sharkiq</code></p>
11
11
  <h3 id="step-2" class="tsd-anchor-link">Step 2.<a href="#step-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure Homebridge. The config file for SharkIQ should include:</p>
12
- <pre><code class="json"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;platforms&quot;</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;name&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;SharkIQ&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;platform&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;SharkIQ&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;email&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;[Shark Clean Account Email]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;password&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;[Shark Clean Account Password]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;oAuthCode&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;[Optional. Use for manually obtaining credentials]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;vacuums&quot;</span><span class="hl-0">: [</span><br/><span class="hl-0"> </span><span class="hl-2">&quot;[Shark Vacuum DSN]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-2">&quot;...&quot;</span><br/><span class="hl-0"> ],</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;europe&quot;</span><span class="hl-0">: </span><span class="hl-3">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;invertDockedStatus&quot;</span><span class="hl-0">: </span><span class="hl-3">false</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;dockedUpdateInterval&quot;</span><span class="hl-0">: </span><span class="hl-4">30000</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;enhancedVacuumMode&quot;</span><span class="hl-0">: </span><span class="hl-3">true</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> ]</span><br/><span class="hl-0">}</span>
12
+ <pre><code class="json"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;platforms&quot;</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;name&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;SharkIQ&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;platform&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;SharkIQ&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;email&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;[Shark Clean Account Email]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;password&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;[Shark Clean Account Password]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;oAuthCode&quot;</span><span class="hl-0">: </span><span class="hl-2">&quot;[Optional. Use for manually obtaining credentials]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;vacuums&quot;</span><span class="hl-0">: [</span><br/><span class="hl-0"> </span><span class="hl-2">&quot;[Shark Vacuum DSN]&quot;</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-2">&quot;...&quot;</span><br/><span class="hl-0"> ],</span><br/><span class="hl-0"> </span><span class="hl-1">&quot;europe&quot;</span><span class="hl-0">: </span><span class="hl-3">false</span><br/><span class="hl-0"> }</span><br/><span class="hl-0"> ]</span><br/><span class="hl-0">}</span>
13
13
  </code><button type="button">Copy</button></pre>
14
14
 
15
15
  <h1 id="important" class="tsd-anchor-link">Important<a href="#important" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>You may be prompted to use the manual OAuth login method. In order to use the manual OAuth login method, you must remove the email and password values in your configuration first.</p>
@@ -31,7 +31,12 @@
31
31
  <li>Pause switch for pausing the vacuum while it's running</li>
32
32
  <li><strong>Enhanced Vacuum Mode</strong> (new): Improved power level mappings and vacuum-optimized behavior that prepares for future native HomeKit robot vacuum support</li>
33
33
  </ul>
34
- <h2 id="homebridge-200-compatibility" class="tsd-anchor-link">Homebridge 2.0.0+ Compatibility<a href="#homebridge-200-compatibility" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>This plugin is compatible with Homebridge 2.0.0-alpha.28 and later versions, providing enhanced vacuum functionality while maintaining compatibility with current HomeKit limitations:</p>
34
+ <h2 id="homebridge-200-compatibility" class="tsd-anchor-link">Homebridge 2.0.0+ Compatibility<a href="#homebridge-200-compatibility" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>This release of the plugin is Matter-only and requires a Homebridge runtime that exposes the Matter API.
35
+ Minimum tested Homebridge: 2.0.0-alpha.28 or later. If your Homebridge installation does not support Matter, this plugin will log an error and will not start.</p>
36
+ <p>This plugin uses Matter external accessories (Robotic Vacuum Cleaner) to integrate with the platform and no longer publishes HAP platform accessories.</p>
37
+ <p>If you rely on the legacy HAP (HomeKit) path, keep using an older plugin release or run this code from a separate branch — this release intentionally removes HAP fallback.</p>
38
+ <p>Compatibility notes and behavior:</p>
39
+ <p>This plugin is compatible with Homebridge 2.0.0-alpha.28 and later versions, providing enhanced vacuum functionality while maintaining compatibility with current HomeKit limitations:</p>
35
40
  <ul>
36
41
  <li><strong>Current Implementation</strong>: Uses optimized FanV2 service with vacuum-specific behavior</li>
37
42
  <li><strong>Enhanced Mode</strong>: Provides intuitive power levels (25%=Eco, 50%=Normal, 100%=Max) instead of arbitrary percentages</li>
@@ -56,4 +61,31 @@
56
61
  <h2 id="useful-links" class="tsd-anchor-link">Useful Links<a href="#useful-links" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
57
62
  <li><a href="https://github.com/JeffResc/sharkiq/">SharkIQ Python</a></li>
58
63
  </ul>
59
- </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#homebridge-shark-clean-vacuum-plugin"><span>Homebridge <wbr/>Shark <wbr/>Clean <wbr/>Vacuum <wbr/>Plugin</span></a><ul><li><a href="#install-and-setup"><span>Install and <wbr/>Setup</span></a></li><li><ul><li><a href="#step-1"><span>Step 1.</span></a></li><li><a href="#step-2"><span>Step 2.</span></a></li></ul></li></ul><a href="#important"><span>Important</span></a><a href="#"><span></span></a><ul><li><a href="#features"><span>Features</span></a></li><li><a href="#homebridge-200-compatibility"><span>Homebridge 2.0.0+ <wbr/>Compatibility</span></a></li><li><ul><li><a href="#oauth-code-login-method"><span>O<wbr/>Auth <wbr/>Code <wbr/>Login <wbr/>Method</span></a></li></ul></li><li><a href="#notes"><span>Notes</span></a></li><li><a href="#useful-links"><span>Useful <wbr/>Links</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@homebridge-plugins/homebridge-sharkiq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
64
+ <h2 id="integration-checklist-matter" class="tsd-anchor-link">Integration checklist — Matter<a href="#integration-checklist-matter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Follow these steps to verify Matter integration locally on a Homebridge instance that supports Matter (Homebridge &gt;= 2.0.0-alpha.28):</p>
65
+ <ol>
66
+ <li>Ensure your Homebridge runtime supports Matter and the <code>api.matter</code> external accessory API.</li>
67
+ <li>Configure the plugin in <code>config.json</code> with your Shark credentials or <code>oAuthCode</code> and do NOT include deprecated HAP-only options (the plugin is Matter-only).</li>
68
+ <li>Start Homebridge in a terminal and watch logs. You should see the plugin log the DSNs found on your account and then a &quot;Publishing X robotic device(s) as external Matter accessories&quot; message.</li>
69
+ <li>After publishing, Homebridge should emit READY/COMMISSIONED events for each accessory. The plugin will perform an initial sync and start polling.</li>
70
+ <li>From the Home app or a Matter controller, attempt these actions and verify the vacuum responds:</li>
71
+ </ol>
72
+ <ul>
73
+ <li>Start / Stop cleaning</li>
74
+ <li>Pause / Resume</li>
75
+ <li>Go Home (return to dock)</li>
76
+ <li>Select Areas (if your device supports area cleaning)</li>
77
+ </ul>
78
+ <ol start="6">
79
+ <li>Observe plugin logs for successful API calls and state updates. Look for <code>Matter accessory ready</code> and <code>Performing initial device sync</code> log lines.</li>
80
+ </ol>
81
+ <p>Quick troubleshooting:</p>
82
+ <ul>
83
+ <li>If you see &quot;requires Homebridge with Matter support&quot; in logs, update Homebridge to a Matter-enabled build.</li>
84
+ <li>If actions fail, inspect network connectivity and plugin logs for Ayla API errors; the plugin now includes retries with exponential backoff for critical calls.</li>
85
+ </ul>
86
+ <p>Optional: run the prepublish checks locally (lint, build, docs) to validate everything before publishing:</p>
87
+ <pre><code class="bash"><span class="hl-4"># Run this in the project root (macOS / zsh)</span><br/><span class="hl-5">npm</span><span class="hl-0"> </span><span class="hl-2">run</span><span class="hl-0"> </span><span class="hl-2">prepublishOnly</span>
88
+ </code><button type="button">Copy</button></pre>
89
+
90
+ <p>If you'd like, I can add a short automated script that validates a sample run (requires a Matter-enabled Homebridge instance and credentials).</p>
91
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#homebridge-shark-clean-vacuum-plugin"><span>Homebridge <wbr/>Shark <wbr/>Clean <wbr/>Vacuum <wbr/>Plugin</span></a><ul><li><a href="#install-and-setup"><span>Install and <wbr/>Setup</span></a></li><li><ul><li><a href="#step-1"><span>Step 1.</span></a></li><li><a href="#step-2"><span>Step 2.</span></a></li></ul></li></ul><a href="#important"><span>Important</span></a><a href="#"><span></span></a><ul><li><a href="#features"><span>Features</span></a></li><li><a href="#homebridge-200-compatibility"><span>Homebridge 2.0.0+ <wbr/>Compatibility</span></a></li><li><ul><li><a href="#oauth-code-login-method"><span>O<wbr/>Auth <wbr/>Code <wbr/>Login <wbr/>Method</span></a></li></ul></li><li><a href="#notes"><span>Notes</span></a></li><li><a href="#useful-links"><span>Useful <wbr/>Links</span></a></li><li><a href="#integration-checklist-matter"><span>Integration checklist — <wbr/>Matter</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@homebridge-plugins/homebridge-sharkiq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -1 +1,2 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>default | @homebridge-plugins/homebridge-sharkiq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-sharkiq"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@homebridge-plugins/homebridge-sharkiq</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">void</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">api</span>: <span class="tsd-signature-type">API</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-sharkiq/blob/d5adccf69bbdadaf69cfdb26e60208dfae049f0a/src/index.ts#L7">index.ts:7</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-sharkiq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>default | @homebridge-plugins/homebridge-sharkiq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-sharkiq"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@homebridge-plugins/homebridge-sharkiq</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">void</span></div><div class="tsd-comment tsd-typography"><p>This method registers the platform with Homebridge</p>
2
+ </div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">api</span>: <span class="tsd-signature-type">API</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-sharkiq/blob/c3c540fa2c001bf3d298586219633d631ecbb665/src/index.ts#L9">index.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-sharkiq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-sharkiq",
3
3
  "displayName": "SharkIQ Plugin",
4
4
  "type": "module",
5
- "version": "2.0.0-beta.2",
5
+ "version": "2.0.0-beta.21",
6
6
  "description": "A Homebridge plugin to connect your Shark Vacuum to homebridge.",
7
7
  "author": {
8
8
  "name": "Bubba8291",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "main": "dist/index.js",
31
31
  "engines": {
32
- "homebridge": "^1.10.0 || ^2.0.0 || ^2.0.0-alpha.28",
32
+ "homebridge": ">=2.0.0-beta.36",
33
33
  "node": "^22 || ^24"
34
34
  },
35
35
  "scripts": {
@@ -73,7 +73,7 @@
73
73
  "eslint": "^9.38.0",
74
74
  "eslint-plugin-format": "^1.0.2",
75
75
  "eslint-plugin-import": "^2.32.0",
76
- "homebridge": "^1.11.0",
76
+ "homebridge": "^2.0.0-beta.36",
77
77
  "homebridge-config-ui-x": "5.8.0",
78
78
  "nodemon": "^3.1.10",
79
79
  "shx": "^0.4.0",
@@ -0,0 +1,33 @@
1
+ import { expect, it } from 'vitest'
2
+
3
+ import { RoboticVacuumAccessory } from '../src/devices/RoboticVacuumAccessory.js'
4
+
5
+ const mockApi: any = {
6
+ matter: {
7
+ uuid: { generate: (s: string) => `uuid-${s}` },
8
+ deviceTypes: { RoboticVacuumCleaner: 123 },
9
+ updateAccessoryState: async () => {},
10
+ },
11
+ }
12
+
13
+ const mockLogger: any = { info: () => {}, warn: () => {}, error: () => {}, debug: () => {} }
14
+
15
+ it('persists metadata into accessory context', () => {
16
+ const mockShark: any = {
17
+ serial_number: 'DSN-123',
18
+ name: 'Test Shark',
19
+ vac_model_number: 'VAC-1',
20
+ vac_serial_number: 'V-123',
21
+ oem_model_number: 'OEM-1',
22
+ }
23
+
24
+ const acc = new RoboticVacuumAccessory(mockApi as any, mockLogger as any, mockShark as any, 0)
25
+ const serialized = acc.toAccessory()
26
+
27
+ expect(serialized.context).toBeDefined()
28
+ expect((serialized.context as any).serialNumber).toBe('DSN-123')
29
+ expect((serialized.context as any).name).toBe('Test Shark')
30
+ expect((serialized.context as any).vacModel).toBe('VAC-1')
31
+ expect((serialized.context as any).vacSerial).toBe('V-123')
32
+ expect((serialized.context as any).oemModel).toBe('OEM-1')
33
+ })
@@ -0,0 +1,25 @@
1
+ import { Buffer } from 'node:buffer'
2
+
3
+ import { describe, expect, it } from 'vitest'
4
+
5
+ import { encodeRoomList } from '../src/sharkiq-js/room_encoding.js'
6
+
7
+ describe('encodeRoomList', () => {
8
+ it('returns "*" for null or empty', () => {
9
+ expect(encodeRoomList(null)).toBe('*')
10
+ expect(encodeRoomList([])).toBe('*')
11
+ })
12
+
13
+ it('encodes rooms and includes identifier in decoded payload', () => {
14
+ const rooms = ['kitchen', 'hall']
15
+ const identifier = 'map1'
16
+ const encoded = encodeRoomList(rooms, identifier)
17
+ expect(typeof encoded).toBe('string')
18
+
19
+ // Decode base64 then interpret bytes as latin1 to inspect payload contents
20
+ const decodedLatin1 = Buffer.from(encoded, 'base64').toString('latin1')
21
+ expect(decodedLatin1.includes('kitchen')).toBe(true)
22
+ expect(decodedLatin1.includes('hall')).toBe(true)
23
+ expect(decodedLatin1.includes(identifier)).toBe(true)
24
+ })
25
+ })
@@ -0,0 +1,74 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import { RoboticVacuumAccessory } from '../src/devices/RoboticVacuumAccessory.js'
4
+
5
+ // Minimal mocks for Homebridge API and logger
6
+ let mockRecorder: Array<any> = []
7
+
8
+ const mockApi: any = {
9
+ matter: {
10
+ uuid: { generate: (s: string) => `uuid-${s}` },
11
+ deviceTypes: { RoboticVacuumCleaner: 123 },
12
+ updateAccessoryState: async (uuid: string, cluster: string, attrs: Record<string, unknown>) => {
13
+ // forward to recorder
14
+ mockRecorder.push({ uuid, cluster, attrs })
15
+ },
16
+ },
17
+ }
18
+
19
+ const mockLogger: any = {
20
+ info: () => {},
21
+ warn: () => {},
22
+ error: () => {},
23
+ debug: () => {},
24
+ }
25
+
26
+ describe('roboticVacuumAccessory polling & mapping', () => {
27
+ it('maps battery, charging, rssi and error into matter clusters via polling', async () => {
28
+ mockRecorder = []
29
+
30
+ // Mock Shark device: update() resolves and get_property_value returns values
31
+ const mockShark: any = {
32
+ update: async () => Promise.resolve(0),
33
+ get_property_value: (name: string) => {
34
+ switch (name) {
35
+ case 'Battery_Capacity':
36
+ return 73
37
+ case 'Charging_Status':
38
+ return 1
39
+ case 'RSSI':
40
+ return -56
41
+ case 'Error_Code':
42
+ return 8
43
+ case 'CleanComplete':
44
+ return 0
45
+ default:
46
+ return null
47
+ }
48
+ },
49
+ }
50
+
51
+ const accessory = new RoboticVacuumAccessory(mockApi as any, mockLogger as any, mockShark as any, 20)
52
+
53
+ // Wait 150ms to allow a few polling intervals to run (interval=20ms)
54
+ await new Promise(resolve => setTimeout(resolve, 150))
55
+
56
+ // Stop polling to clean up
57
+ ;(accessory as any).stopPolling()
58
+
59
+ // Find the power update
60
+ const powerUpdates = mockRecorder.filter(r => r.cluster === 'power')
61
+ const diagUpdates = mockRecorder.filter(r => r.cluster === 'diagnostics')
62
+
63
+ expect(powerUpdates.length).toBeGreaterThan(0)
64
+ const lastPower = powerUpdates[powerUpdates.length - 1].attrs as any
65
+ expect(lastPower.batteryLevel).toBeGreaterThanOrEqual(0)
66
+ expect(lastPower.batteryLevel).toBeLessThanOrEqual(100)
67
+ expect(lastPower.charging).toBe(true)
68
+
69
+ // diagnostics should include errorCode or rssi at least once
70
+ expect(diagUpdates.length).toBeGreaterThan(0)
71
+ const anyDiag = diagUpdates.find(d => (d.attrs as any).errorCode !== undefined || (d.attrs as any).rssi !== undefined)
72
+ expect(anyDiag).toBeTruthy()
73
+ }, 10000)
74
+ })
@@ -1,19 +0,0 @@
1
- import type { Logger } from 'homebridge';
2
- /**
3
- * Centralized error handling utilities
4
- */
5
- /**
6
- * Logs a rejected promise with consistent formatting
7
- * @param log - The logger instance
8
- * @param operation - Description of the operation that failed
9
- * @param error - Optional error details
10
- */
11
- export declare function logRejectedPromise(log: Logger, operation: string, error?: unknown): void;
12
- /**
13
- * Creates a promise rejection handler that logs the error
14
- * @param log - The logger instance
15
- * @param operation - Description of the operation that failed
16
- * @returns A function that can be used with .catch()
17
- */
18
- export declare function createPromiseRejectionHandler(log: Logger, operation: string): (error?: unknown) => void;
19
- //# sourceMappingURL=errorHandling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errorHandling.d.ts","sourceRoot":"","sources":["../src/errorHandling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAKxF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IAClE,QAAQ,OAAO,UAGxB"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Centralized error handling utilities
3
- */
4
- /**
5
- * Logs a rejected promise with consistent formatting
6
- * @param log - The logger instance
7
- * @param operation - Description of the operation that failed
8
- * @param error - Optional error details
9
- */
10
- export function logRejectedPromise(log, operation, error) {
11
- log.debug(`Promise Rejected with ${operation}.`);
12
- if (error) {
13
- log.debug(`Error details: ${error}`);
14
- }
15
- }
16
- /**
17
- * Creates a promise rejection handler that logs the error
18
- * @param log - The logger instance
19
- * @param operation - Description of the operation that failed
20
- * @returns A function that can be used with .catch()
21
- */
22
- export function createPromiseRejectionHandler(log, operation) {
23
- return (error) => {
24
- logRejectedPromise(log, operation, error);
25
- };
26
- }
27
- //# sourceMappingURL=errorHandling.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../src/errorHandling.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAe;IAChF,GAAG,CAAC,KAAK,CAAC,yBAAyB,SAAS,GAAG,CAAC,CAAA;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAW,EAAE,SAAiB;IAC1E,OAAO,CAAC,KAAe,EAAE,EAAE;QACzB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAA;AACH,CAAC"}
@@ -1,33 +0,0 @@
1
- import type { CharacteristicValue, Logger, PlatformAccessory, uuid } from 'homebridge';
2
- import type { SharkIQPlatform } from './platform.js';
3
- import type { SharkIqVacuum } from './sharkiq-js/sharkiq.js';
4
- export declare class SharkIQAccessory {
5
- private readonly platform;
6
- private readonly accessory;
7
- private device;
8
- private readonly log;
9
- private readonly invertDockedStatus;
10
- private readonly dockedUpdateInterval;
11
- private readonly enhancedVacuumMode;
12
- private dockedDelay;
13
- private service;
14
- private dockedStatusService;
15
- private vacuumPausedService;
16
- private isNativeVacuumServiceAvailable;
17
- constructor(platform: SharkIQPlatform, accessory: PlatformAccessory, device: SharkIqVacuum, UUIDGen: typeof uuid, log: Logger, invertDockedStatus: boolean, dockedUpdateInterval: number, enhancedVacuumMode?: boolean, dockedDelay?: number);
18
- private checkForNativeVacuumService;
19
- private calculateDockedStatus;
20
- retrieveVacuumStateInterval(): Promise<void>;
21
- retrieveDockedStatus(): Promise<boolean>;
22
- retrieveOperatingMode(): Promise<void>;
23
- retrievePowerMode(): Promise<void>;
24
- retrieveVacuumStates(): Promise<void>;
25
- updateStates(): void;
26
- getPaused(): Promise<boolean>;
27
- setPaused(value: CharacteristicValue): Promise<void>;
28
- getVacuumActive(): Promise<boolean>;
29
- setVacuumActive(value: CharacteristicValue): Promise<void>;
30
- getFanSpeed(): Promise<number>;
31
- setFanSpeed(value: CharacteristicValue): Promise<void>;
32
- }
33
- //# sourceMappingURL=platformAccessory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAW,IAAI,EAAE,MAAM,YAAY,CAAA;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAM5D,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,WAAW;IAdrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,8BAA8B,CAAS;gBAG5B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,EACrC,MAAM,EAAE,aAAa,EAC7B,OAAO,EAAE,OAAO,IAAI,EACH,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,OAAO,EAC3B,oBAAoB,EAAE,MAAM,EAC5B,kBAAkB,GAAE,OAAc,EAC3C,WAAW,GAAE,MAAU;IA+EjC,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,qBAAqB;IASvB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD3C,YAAY,IAAI,IAAI;IAgBd,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAc7B,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpD,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYnC,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAkC9B,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAkE7D"}