@homebridge-plugins/homebridge-sharkiq 2.0.0-beta.2 → 2.0.0-beta.20
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.
- package/CHANGELOG.md +19 -2
- package/README.md +41 -4
- package/config.schema.json +8 -26
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/devices/BaseMatterAccessory.d.ts +63 -0
- package/dist/devices/BaseMatterAccessory.d.ts.map +1 -0
- package/dist/devices/BaseMatterAccessory.js +100 -0
- package/dist/devices/BaseMatterAccessory.js.map +1 -0
- package/dist/devices/RoboticVacuumAccessory.d.ts +67 -0
- package/dist/devices/RoboticVacuumAccessory.d.ts.map +1 -0
- package/dist/devices/RoboticVacuumAccessory.js +649 -0
- package/dist/devices/RoboticVacuumAccessory.js.map +1 -0
- package/dist/devices/index.d.ts +9 -0
- package/dist/devices/index.d.ts.map +1 -0
- package/dist/devices/index.js +8 -0
- package/dist/devices/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/platform.d.ts +39 -16
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +195 -92
- package/dist/platform.js.map +1 -1
- package/dist/sharkiq-js/room_encoding.d.ts +8 -0
- package/dist/sharkiq-js/room_encoding.d.ts.map +1 -0
- package/dist/sharkiq-js/room_encoding.js +35 -0
- package/dist/sharkiq-js/room_encoding.js.map +1 -0
- package/dist/sharkiq-js/sharkiq.d.ts.map +1 -1
- package/dist/sharkiq-js/sharkiq.js +2 -20
- package/dist/sharkiq-js/sharkiq.js.map +1 -1
- package/docs/assets/highlight.css +9 -2
- package/docs/index.html +35 -3
- package/docs/variables/default.html +2 -1
- package/package.json +3 -3
- package/test/context.spec.ts +33 -0
- package/test/encodeRoomList.spec.ts +25 -0
- package/test/polling.spec.ts +74 -0
- package/dist/errorHandling.d.ts +0 -19
- package/dist/errorHandling.d.ts.map +0 -1
- package/dist/errorHandling.js +0 -27
- package/dist/errorHandling.js.map +0 -1
- package/dist/platformAccessory.d.ts +0 -33
- package/dist/platformAccessory.d.ts.map +0 -1
- package/dist/platformAccessory.js +0 -384
- 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":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
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
|
-
|
|
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: #
|
|
11
|
-
--dark-hl-4: #
|
|
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">"platforms"</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">"name"</span><span class="hl-0">: </span><span class="hl-2">"SharkIQ"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"platform"</span><span class="hl-0">: </span><span class="hl-2">"SharkIQ"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"email"</span><span class="hl-0">: </span><span class="hl-2">"[Shark Clean Account Email]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"password"</span><span class="hl-0">: </span><span class="hl-2">"[Shark Clean Account Password]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"oAuthCode"</span><span class="hl-0">: </span><span class="hl-2">"[Optional. Use for manually obtaining credentials]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"vacuums"</span><span class="hl-0">: [</span><br/><span class="hl-0"> </span><span class="hl-2">"[Shark Vacuum DSN]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-2">"..."</span><br/><span class="hl-0"> ],</span><br/><span class="hl-0"> </span><span class="hl-1">"europe"</span><span class="hl-0">: </span><span class="hl-3">false</span><
|
|
12
|
+
<pre><code class="json"><span class="hl-0">{</span><br/><span class="hl-0"> </span><span class="hl-1">"platforms"</span><span class="hl-0">: [</span><br/><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-1">"name"</span><span class="hl-0">: </span><span class="hl-2">"SharkIQ"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"platform"</span><span class="hl-0">: </span><span class="hl-2">"SharkIQ"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"email"</span><span class="hl-0">: </span><span class="hl-2">"[Shark Clean Account Email]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"password"</span><span class="hl-0">: </span><span class="hl-2">"[Shark Clean Account Password]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"oAuthCode"</span><span class="hl-0">: </span><span class="hl-2">"[Optional. Use for manually obtaining credentials]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-1">"vacuums"</span><span class="hl-0">: [</span><br/><span class="hl-0"> </span><span class="hl-2">"[Shark Vacuum DSN]"</span><span class="hl-0">,</span><br/><span class="hl-0"> </span><span class="hl-2">"..."</span><br/><span class="hl-0"> ],</span><br/><span class="hl-0"> </span><span class="hl-1">"europe"</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
|
|
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
|
-
|
|
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 >= 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 "Publishing X robotic device(s) as external Matter accessories" 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 "requires Homebridge with Matter support" 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">=></span> <span class="tsd-signature-type">void</span></div><div class="tsd-
|
|
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">=></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/eaed1fc7d02a3bddeb2913f5d0a84f199292f7dd/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.
|
|
5
|
+
"version": "2.0.0-beta.20",
|
|
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": "
|
|
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": "^
|
|
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
|
+
})
|
package/dist/errorHandling.d.ts
DELETED
|
@@ -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"}
|
package/dist/errorHandling.js
DELETED
|
@@ -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"}
|