@homebridge-plugins/homebridge-ecovacs 8.2.0-beta.0 → 8.2.0-beta.2
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 +2 -0
- package/dist/homebridge-ui/public/index.html +102 -123
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,8 @@ All notable changes to `@homebridge-plugins/homebridge-ecovacs` will be document
|
|
|
7
7
|
### Changed
|
|
8
8
|
|
|
9
9
|
- feat(ui): add, remove and hide devices from the config via the my devices tab
|
|
10
|
+
- style(ui): standardise the custom ui layout and sync the support tab with the readme
|
|
11
|
+
- feat(ui): add a remove all devices action to the my devices tab
|
|
10
12
|
|
|
11
13
|
## v8.1.4 (2026-07-19)
|
|
12
14
|
|
|
@@ -108,6 +108,17 @@
|
|
|
108
108
|
</button>
|
|
109
109
|
</div>
|
|
110
110
|
</li>
|
|
111
|
+
<li class="list-group-item">
|
|
112
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
113
|
+
<div class="pr-2">
|
|
114
|
+
<div>Remove All Devices</div>
|
|
115
|
+
<div class="text-muted action-desc" id="removeAllText">Remove every device from the plugin config.</div>
|
|
116
|
+
</div>
|
|
117
|
+
<button type="button" class="btn btn-primary m-0 ml-3 py-1 min-w-50" id="removeAllBtn" aria-label="Remove all devices from the config">
|
|
118
|
+
<i aria-hidden="true" class="fas fa-arrow-right"></i>
|
|
119
|
+
</button>
|
|
120
|
+
</div>
|
|
121
|
+
</li>
|
|
111
122
|
<li class="list-group-item">
|
|
112
123
|
<div class="d-flex justify-content-between align-items-center">
|
|
113
124
|
<div class="pr-2">
|
|
@@ -179,133 +190,55 @@
|
|
|
179
190
|
</div>
|
|
180
191
|
</div>
|
|
181
192
|
<div id="pageSupport" class="mt-4" style="display: none">
|
|
182
|
-
<p class="text-center lead">
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
<
|
|
186
|
-
<h4>Setup</h4>
|
|
187
|
-
<ul>
|
|
188
|
-
<li>
|
|
189
|
-
<a
|
|
190
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Installation"
|
|
191
|
-
target="_blank"
|
|
192
|
-
>Installation</a
|
|
193
|
-
>
|
|
194
|
-
</li>
|
|
195
|
-
<li>
|
|
196
|
-
<a
|
|
197
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Configuration"
|
|
198
|
-
target="_blank"
|
|
199
|
-
>Configuration</a
|
|
200
|
-
>
|
|
201
|
-
</li>
|
|
202
|
-
<li>
|
|
203
|
-
<a
|
|
204
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Beta-Version"
|
|
205
|
-
target="_blank"
|
|
206
|
-
>Beta Version</a
|
|
207
|
-
>
|
|
208
|
-
</li>
|
|
209
|
-
<li>
|
|
210
|
-
<a
|
|
211
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Node-Version"
|
|
212
|
-
target="_blank"
|
|
213
|
-
>Node Version</a
|
|
214
|
-
>
|
|
215
|
-
</li>
|
|
216
|
-
</ul>
|
|
217
|
-
<h4>Features</h4>
|
|
218
|
-
<ul>
|
|
219
|
-
<li>
|
|
220
|
-
<a
|
|
221
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Supported-Devices"
|
|
222
|
-
target="_blank"
|
|
223
|
-
>Supported Devices</a
|
|
224
|
-
>
|
|
225
|
-
</li>
|
|
226
|
-
<li>
|
|
227
|
-
<a
|
|
228
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Speed-Control"
|
|
229
|
-
target="_blank"
|
|
230
|
-
>Speed Control</a
|
|
231
|
-
>
|
|
232
|
-
</li>
|
|
233
|
-
<li>
|
|
234
|
-
<a
|
|
235
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Custom-Areas"
|
|
236
|
-
target="_blank"
|
|
237
|
-
>Custom Areas</a
|
|
238
|
-
>
|
|
239
|
-
</li>
|
|
240
|
-
</ul>
|
|
241
|
-
<h4>Help/About</h4>
|
|
242
|
-
<ul>
|
|
243
|
-
<li>
|
|
244
|
-
<a
|
|
245
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Common-Errors"
|
|
246
|
-
target="_blank"
|
|
247
|
-
>Common Errors</a
|
|
248
|
-
>
|
|
249
|
-
</li>
|
|
250
|
-
<li>
|
|
251
|
-
<a
|
|
252
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/issues/new/choose"
|
|
253
|
-
target="_blank"
|
|
254
|
-
>Support Request</a
|
|
255
|
-
>
|
|
256
|
-
</li>
|
|
257
|
-
<li>
|
|
258
|
-
<a
|
|
259
|
-
href="https://github.com/homebridge-plugins/homebridge-ecovacs/blob/latest/CHANGELOG.md"
|
|
260
|
-
target="_blank"
|
|
261
|
-
>Changelog</a
|
|
262
|
-
>
|
|
263
|
-
</li>
|
|
264
|
-
<li>
|
|
265
|
-
<a href="https://github.com/sponsors/bwp91" target="_blank">About Me</a>
|
|
266
|
-
</li>
|
|
267
|
-
</ul>
|
|
268
|
-
<h4>Credits</h4>
|
|
193
|
+
<p class="text-center lead">Thank you for using <strong>homebridge-ecovacs</strong></p>
|
|
194
|
+
<h5>Plugin Information</h5>
|
|
195
|
+
<ul>
|
|
196
|
+
<li>This plugin allows you to view and control your Ecovacs or Yeedi devices within HomeKit. The plugin:</li>
|
|
269
197
|
<ul>
|
|
270
|
-
<li>
|
|
271
|
-
|
|
272
|
-
<a href="https://github.com/mrbungle64/ecovacs-deebot.js" target="_blank"
|
|
273
|
-
>ecovacs-deebot.js</a
|
|
274
|
-
>
|
|
275
|
-
client:
|
|
276
|
-
<a href="https://github.com/mrbungle64" target="_blank">@mrbungle64</a>.
|
|
277
|
-
</li>
|
|
278
|
-
<li>
|
|
279
|
-
To the owner of
|
|
280
|
-
<a
|
|
281
|
-
href="https://github.com/nicoduj/homebridge-deebotEcovacs"
|
|
282
|
-
target="_blank"
|
|
283
|
-
>homebridge-deebotEcovacs</a
|
|
284
|
-
>: <a href="https://github.com/nicoduj" target="_blank">@nicoduj</a>.
|
|
285
|
-
</li>
|
|
286
|
-
<li>
|
|
287
|
-
To the creator of the awesome plugin header logo:
|
|
288
|
-
<a href="https://www.instagram.com/keryan.me" target="_blank"
|
|
289
|
-
>Keryan Belahcene</a
|
|
290
|
-
>.
|
|
291
|
-
</li>
|
|
292
|
-
<li>
|
|
293
|
-
To the creators/contributors of
|
|
294
|
-
<a href="https://homebridge.io" target="_blank">Homebridge</a> who make
|
|
295
|
-
this plugin possible.
|
|
296
|
-
</li>
|
|
198
|
+
<li>requires your Ecovacs or Yeedi credentials to function</li>
|
|
199
|
+
<li>uses a cloud-based connection (i.e. requires the internet)</li>
|
|
297
200
|
</ul>
|
|
298
|
-
|
|
201
|
+
</ul>
|
|
202
|
+
<h5>Prerequisites</h5>
|
|
203
|
+
<ul>
|
|
204
|
+
<li>To use this plugin, you will need to already have:</li>
|
|
299
205
|
<ul>
|
|
300
|
-
<li>
|
|
301
|
-
|
|
302
|
-
project that I maintain in my free time.
|
|
303
|
-
</li>
|
|
304
|
-
<li>
|
|
305
|
-
Use this plugin entirely at your own risk - please see licence for more
|
|
306
|
-
information.
|
|
307
|
-
</li>
|
|
206
|
+
<li><a href="https://nodejs.org" target="_blank">Node</a>: latest version of <code>v22</code> or <code>v24</code> - any other major version is not supported.</li>
|
|
207
|
+
<li><a href="https://homebridge.io" target="_blank">Homebridge</a>: <code>v2.0</code> or above - refer to link for more information and installation instructions.</li>
|
|
308
208
|
</ul>
|
|
209
|
+
</ul>
|
|
210
|
+
<h5>Setup</h5>
|
|
211
|
+
<ul>
|
|
212
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Installation" target="_blank">Installation</a></li>
|
|
213
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Configuration" target="_blank">Configuration</a></li>
|
|
214
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Beta-Version" target="_blank">Beta Version</a></li>
|
|
215
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Node-Version" target="_blank">Node Version</a></li>
|
|
216
|
+
</ul>
|
|
217
|
+
<h5>Features</h5>
|
|
218
|
+
<ul>
|
|
219
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Supported-Devices" target="_blank">Supported Devices</a></li>
|
|
220
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Speed-Control" target="_blank">Speed Control</a></li>
|
|
221
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Predefined-Areas" target="_blank">Predefined Areas</a></li>
|
|
222
|
+
</ul>
|
|
223
|
+
<h5>Help/About</h5>
|
|
224
|
+
<ul>
|
|
225
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/wiki/Common-Errors" target="_blank">Common Errors</a></li>
|
|
226
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/issues/new/choose" target="_blank">Support Request</a></li>
|
|
227
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-ecovacs/blob/latest/CHANGELOG.md" target="_blank">Changelog</a></li>
|
|
228
|
+
<li><a href="https://github.com/sponsors/bwp91" target="_blank">About Me</a></li>
|
|
229
|
+
</ul>
|
|
230
|
+
<h5>Credits</h5>
|
|
231
|
+
<ul>
|
|
232
|
+
<li>To the owner of <a href="https://github.com/mrbungle64/ecovacs-deebot.js" target="_blank">ecovacs-deebot.js</a> client: <a href="https://github.com/mrbungle64" target="_blank">@mrbungle64</a>.</li>
|
|
233
|
+
<li>To the owner of <a href="https://github.com/nicoduj/homebridge-deebotEcovacs" target="_blank">homebridge-deebotEcovacs</a>: <a href="https://github.com/nicoduj" target="_blank">@nicoduj</a>.</li>
|
|
234
|
+
<li>To the creator of the awesome plugin header logo: <a href="https://www.instagram.com/keryan.me" target="_blank">Keryan Belahcene</a>.</li>
|
|
235
|
+
<li>To the creators/contributors of <a href="https://homebridge.io" target="_blank">Homebridge</a> who make this plugin possible.</li>
|
|
236
|
+
</ul>
|
|
237
|
+
<h5>Disclaimer</h5>
|
|
238
|
+
<ul>
|
|
239
|
+
<li>I am in no way affiliated with Ecovacs/Deebot/Yeedi and this plugin is a personal project that I maintain in my free time.</li>
|
|
240
|
+
<li>Use this plugin entirely at your own risk - please see licence for more information.</li>
|
|
241
|
+
</ul>
|
|
309
242
|
</div>
|
|
310
243
|
<script>
|
|
311
244
|
(async () => {
|
|
@@ -317,6 +250,7 @@
|
|
|
317
250
|
// so staged-but-unsaved edits made in the Settings tab are respected
|
|
318
251
|
let pickerAccessories = [];
|
|
319
252
|
let removeConfirmTimer;
|
|
253
|
+
let removeAllConfirmTimer;
|
|
320
254
|
|
|
321
255
|
// The action buttons always show the settings-page arrow; the row text
|
|
322
256
|
// (and the button's aria-label) says what the arrow will do
|
|
@@ -542,6 +476,51 @@
|
|
|
542
476
|
homebridge.toast.error(err.message, "Error");
|
|
543
477
|
}
|
|
544
478
|
});
|
|
479
|
+
const resetRemoveAllButton = () => {
|
|
480
|
+
const btn = document.getElementById('removeAllBtn');
|
|
481
|
+
clearTimeout(removeAllConfirmTimer);
|
|
482
|
+
delete btn.dataset.confirm;
|
|
483
|
+
btn.classList.remove('btn-danger');
|
|
484
|
+
btn.classList.add('btn-primary');
|
|
485
|
+
btn.innerHTML = actionArrow;
|
|
486
|
+
btn.setAttribute('aria-label', 'Remove all devices from the config');
|
|
487
|
+
document.getElementById('removeAllText').innerHTML = 'Remove every device from the plugin config.';
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
document.getElementById('removeAllBtn').addEventListener('click', async () => {
|
|
491
|
+
try {
|
|
492
|
+
const btn = document.getElementById('removeAllBtn');
|
|
493
|
+
const blocks = await getConfigBlocks();
|
|
494
|
+
const config = blocks[0];
|
|
495
|
+
const total = Array.isArray(config.devices) ? config.devices.length : 0;
|
|
496
|
+
if (total === 0) {
|
|
497
|
+
resetRemoveAllButton();
|
|
498
|
+
homebridge.toast.info('There are no devices in the config.', 'Nothing To Remove');
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
if (btn.dataset.confirm !== 'yes') {
|
|
502
|
+
// Removing everything always asks for a second click, since any
|
|
503
|
+
// settings on the entries would be lost
|
|
504
|
+
btn.dataset.confirm = 'yes';
|
|
505
|
+
btn.classList.remove('btn-primary');
|
|
506
|
+
btn.classList.add('btn-danger');
|
|
507
|
+
btn.innerHTML = actionArrow;
|
|
508
|
+
btn.setAttribute('aria-label', 'Confirm removing all devices from the config');
|
|
509
|
+
document.getElementById('removeAllText').innerHTML = 'Any settings on these entries will be lost. Click again to remove all ' + total + (total === 1 ? ' entry.' : ' entries.');
|
|
510
|
+
removeAllConfirmTimer = setTimeout(resetRemoveAllButton, 5000);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
delete config.devices;
|
|
514
|
+
await homebridge.updatePluginConfig(blocks);
|
|
515
|
+
resetRemoveAllButton();
|
|
516
|
+
setConfigButton(false);
|
|
517
|
+
setHideControl(false);
|
|
518
|
+
homebridge.toast.success(total + ' device entr' + (total === 1 ? 'y' : 'ies') + ' removed - press Save to apply.', 'Removed From Config');
|
|
519
|
+
} catch (err) {
|
|
520
|
+
homebridge.toast.error(err.message, 'Error');
|
|
521
|
+
}
|
|
522
|
+
});
|
|
523
|
+
|
|
545
524
|
// ===== End device picker =====
|
|
546
525
|
showIntro = () => {
|
|
547
526
|
homebridge.disableSaveButton?.();
|
package/package.json
CHANGED