@homebridge-plugins/homebridge-sharkiq 1.3.2 → 1.4.1-beta.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.
package/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
- ## [1.4.0](https://github.com/homebridge-plugins/homebridge-sharkiq/releases/tag/v1.4.0) (2025-01-25)
5
+ ## [1.4.0](https://github.com/homebridge-plugins/homebridge-sharkiq/releases/tag/v1.4.0) (2025-07-17)
6
6
 
7
7
  ### What's Changes
8
8
  - Convert to ESModule
package/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  <span align="center">
2
2
 
3
3
  # Homebridge Shark Clean Vacuum Plugin
4
+
4
5
  [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
5
- [![npm](https://badgen.net/npm/dt/homebridge-sharkiq?color=purple)](https://www.npmjs.com/package/homebridge-sharkiq)
6
- [![npm](https://badgen.net/npm/v/homebridge-sharkiq?color=purple)](https://www.npmjs.com/package/homebridge-sharkiq)
6
+ [![npm](https://badgen.net/npm/dt/@homebridge-plugins/homebridge-sharkiq?color=purple)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-sharkiq)
7
+ [![npm](https://badgen.net/npm/v/@homebridge-plugins/homebridge-sharkiq?color=purple)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-sharkiq)
7
8
 
8
9
  </span>
9
10
 
@@ -24,28 +25,28 @@ Run `npm install -g homebridge-sharkiq`
24
25
  ### Step 2.
25
26
 
26
27
  Configure Homebridge. The config file for SharkIQ should include:
28
+
27
29
  ```json
28
30
  {
29
- "platforms": [
30
- {
31
- "name": "SharkIQ",
32
- "platform": "SharkIQ",
33
- "email": "[Shark Clean Account Email]",
34
- "password": "[Shark Clean Account Password]",
35
- "oAuthCode": "[Optional. Use for manually obtaining credentials]",
36
- "vacuums": [
37
- "[Shark Vacuum DSN]",
38
- "..."
39
- ],
40
- "europe": false,
41
- "invertDockedStatus": false,
42
- "dockedUpdateInterval": 30000
43
- }
44
- ]
31
+ "platforms": [
32
+ {
33
+ "name": "SharkIQ",
34
+ "platform": "SharkIQ",
35
+ "email": "[Shark Clean Account Email]",
36
+ "password": "[Shark Clean Account Password]",
37
+ "oAuthCode": "[Optional. Use for manually obtaining credentials]",
38
+ "vacuums": [
39
+ "[Shark Vacuum DSN]",
40
+ "..."
41
+ ],
42
+ "europe": false,
43
+ "invertDockedStatus": false,
44
+ "dockedUpdateInterval": 30000
45
+ }
46
+ ]
45
47
  }
46
48
  ```
47
49
 
48
-
49
50
  # Important
50
51
 
51
52
  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.
@@ -67,12 +68,14 @@ The default interval between updating the docked status is 30 seconds (30000 ms)
67
68
  - Be able to turn on and off the vacuum
68
69
  - Set the power mode of the vacuum and change it while running
69
70
  - Sensor for if the vacuum is docked or not
70
- - The sensor will display as "opened" when the vacuum is docked and "closed" when the vacuum is not docked
71
- - Set `invertDockedStatus` to `true` to display as "closed" when the vacuum is docked and "opened" when the vacuum is not docked
71
+ - The sensor will display as "opened" when the vacuum is docked and "closed" when the vacuum is not docked
72
+ - Set `invertDockedStatus` to `true` to display as "closed" when the vacuum is docked and "opened" when the vacuum is not docked
72
73
  - Pause switch for pausing the vacuum while it's running
73
74
 
74
75
  ### OAuth Code Login Method
76
+
75
77
  The OAuth Code value is for creating and storing the login for the plugin. Here is how to sign in with this method.
78
+
76
79
  1. Run Homebridge with the latest plugin version.
77
80
  2. Open the Homebridge logs
78
81
  3. Open the URL in the console printed by homebridge-sharkiq. Safari will not work due to the way Safari handles the results of the login
@@ -89,4 +92,5 @@ The OAuth Code value is for creating and storing the login for the plugin. Here
89
92
  Contributions would be very helpful to help this Homebridge plugin stay maintained and up to date. If you have any problems, please create an issue.
90
93
 
91
94
  ## Useful Links
95
+
92
96
  - [SharkIQ Python](https://github.com/JeffResc/sharkiq/)
@@ -1,2 +1,2 @@
1
1
  <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><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><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
- <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-sharkiq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" 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></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Function default</h1></div></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link"><a id="default" class="tsd-anchor"></a><span class="tsd-kind-call-signature">default</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><a href="#default" 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></div><div 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><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-sharkiq/blob/d392eb4532880284cf52cf10ae14c336a0c6b9f3/src/index.ts#L7">index.ts:7</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-sharkiq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-sharkiq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" 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></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Function default</h1></div></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link"><a id="default" class="tsd-anchor"></a><span class="tsd-kind-call-signature">default</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><a href="#default" 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></div><div 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><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-sharkiq/blob/d5f5ab40b096d1040a5ae3eebad371ab44bd3d90/src/index.ts#L7">index.ts:7</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-sharkiq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
package/docs/index.html CHANGED
@@ -1,8 +1,8 @@
1
1
  <!DOCTYPE html><html class="default" lang="en" data-base="."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>@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><link rel="stylesheet" href="assets/dmt/dmt-components.css"><link rel="stylesheet" href="assets/dmt/dmt-theme.css"><script src="assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
2
  <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="index.html" class="title">@homebridge-plugins/homebridge-sharkiq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" 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></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><div class="dmt-title-header-flex"><h1>@homebridge-plugins/homebridge-sharkiq</h1></div></div><div class="tsd-panel tsd-typography"><span align="center">
3
3
  <a id="homebridge-shark-clean-vacuum-plugin" class="tsd-anchor"></a><h1 class="tsd-anchor-link">Homebridge Shark Clean Vacuum Plugin<a href="#homebridge-shark-clean-vacuum-plugin" 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><a href="https://github.com/homebridge/homebridge/wiki/Verified-Plugins"><img src="https://badgen.net/badge/homebridge/verified/purple" alt="verified-by-homebridge"></a>
4
- <a href="https://www.npmjs.com/package/homebridge-sharkiq"><img src="https://badgen.net/npm/dt/homebridge-sharkiq?color=purple" alt="npm"></a>
5
- <a href="https://www.npmjs.com/package/homebridge-sharkiq"><img src="https://badgen.net/npm/v/homebridge-sharkiq?color=purple" alt="npm"></a></p>
4
+ <a href="https://www.npmjs.com/package/@homebridge-plugins/homebridge-sharkiq"><img src="https://badgen.net/npm/dt/@homebridge-plugins/homebridge-sharkiq?color=purple" alt="npm"></a>
5
+ <a href="https://www.npmjs.com/package/@homebridge-plugins/homebridge-sharkiq"><img src="https://badgen.net/npm/v/@homebridge-plugins/homebridge-sharkiq?color=purple" alt="npm"></a></p>
6
6
  </span>
7
7
  <p>A new homebridge plugin for SharkIQ Vacuums.</p>
8
8
  <p>Contributions are always welcome. I used the <a href="https://github.com/JeffResc/sharkiq/">sharkiq</a> python module as a reference for creating the javascript wrapper to control SharkIQ Vacuums.</p>
@@ -10,7 +10,7 @@
10
10
  <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>
11
11
  <a id="install-and-setup" class="tsd-anchor"></a><h2 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><a id="step-1" class="tsd-anchor"></a><h3 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>
12
12
  <a id="step-2" class="tsd-anchor"></a><h3 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>
13
- <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><span class="hl-0">,</span><br><span class="hl-0"> </span><span class="hl-1">"invertDockedStatus"</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">"dockedUpdateInterval"</span><span class="hl-0">: </span><span class="hl-4">30000</span><br><span class="hl-0"> }</span><br><span class="hl-0"> ]</span><br><span class="hl-0">}</span>
13
+ <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><span class="hl-0">,</span><br><span class="hl-0"> </span><span class="hl-1">"invertDockedStatus"</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">"dockedUpdateInterval"</span><span class="hl-0">: </span><span class="hl-4">30000</span><br><span class="hl-0"> }</span><br><span class="hl-0"> ]</span><br><span class="hl-0">}</span>
14
14
  </code><button type="button">Copy</button></pre>
15
15
 
16
16
  <a id="important" class="tsd-anchor"></a><h1 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>
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": "1.3.2",
5
+ "version": "1.4.1-beta.0",
6
6
  "description": "A Homebridge plugin to connect your Shark Vacuum to homebridge.",
7
7
  "author": {
8
8
  "name": "Bubba8291",