@homebridge-plugins/homebridge-sharkiq 2.0.0-beta.22 → 2.0.0-beta.23
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/dist/devices/RoboticVacuumAccessory.d.ts +18 -0
- package/dist/devices/RoboticVacuumAccessory.d.ts.map +1 -1
- package/dist/devices/RoboticVacuumAccessory.js +286 -7
- package/dist/devices/RoboticVacuumAccessory.js.map +1 -1
- package/docs/variables/default.html +1 -1
- package/package.json +1 -1
- package/test/updateRunMode.spec.ts +61 -0
- package/test/updateSelectedAreas.spec.ts +59 -0
|
@@ -25,9 +25,27 @@ import type { SharkIqVacuum } from '../sharkiq-js/sharkiq.js';
|
|
|
25
25
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
26
26
|
export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
27
27
|
private activeTimers;
|
|
28
|
+
private lastRunMode;
|
|
29
|
+
private lastBatteryLevel;
|
|
30
|
+
private lastChargingStatus;
|
|
31
|
+
private lastOperationalState;
|
|
32
|
+
private lastRssi;
|
|
33
|
+
private lastSelectedAreas;
|
|
34
|
+
private lastCleanMode;
|
|
28
35
|
private readonly sharkDevice?;
|
|
29
36
|
private pollInterval?;
|
|
30
37
|
constructor(api: API, log: Logger, sharkDevice?: SharkIqVacuum, pollIntervalMs?: number);
|
|
38
|
+
/**
|
|
39
|
+
* Initialize cached runtime values from the Shark device wrapper where
|
|
40
|
+
* available, otherwise fall back to persisted accessory state exposed by the API.
|
|
41
|
+
*/
|
|
42
|
+
private initCachedState;
|
|
43
|
+
/**
|
|
44
|
+
* Persist a named cache value into accessory context and keep in-memory copy.
|
|
45
|
+
* This centralizes writes so callers only need to update the in-memory field
|
|
46
|
+
* and call this to persist to Homebridge accessory.context.
|
|
47
|
+
*/
|
|
48
|
+
private persistCache;
|
|
31
49
|
private startPolling;
|
|
32
50
|
private stopPolling;
|
|
33
51
|
private buildServiceAreaCluster;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoboticVacuumAccessory.d.ts","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAe;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAgB;gBAEzB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"RoboticVacuumAccessory.d.ts","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,YAAY,CAAuB;IAE3C,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,kBAAkB,CAAuB;IAEjD,OAAO,CAAC,oBAAoB,CAAsB;IAElD,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,iBAAiB,CAAwB;IAEjD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAe;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAgB;gBAEzB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM;IAwLvF;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkJvB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;IA6JpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,uBAAuB;YAqCjB,mBAAmB;YAoDnB,qBAAqB;YA4BrB,WAAW;YAaX,UAAU;YAcV,WAAW;YA0BX,YAAY;YA0BZ,YAAY;YAuBZ,iBAAiB;YAsBjB,cAAc;IAQ5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA0BpB;;;;OAIG;IAEI,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA2B3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBjC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA8BnC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAkC5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU9C,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;CAIjF"}
|
|
@@ -3,9 +3,24 @@ import { ERROR_MESSAGES, OperatingModes, PowerModes, Properties } from '../shark
|
|
|
3
3
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
4
4
|
export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
5
5
|
activeTimers = [];
|
|
6
|
+
// Cache the last known run mode so we only emit info logs when it changes
|
|
7
|
+
lastRunMode = null;
|
|
8
|
+
// Cache battery state so we only emit info logs when battery or charging changes
|
|
9
|
+
lastBatteryLevel = null;
|
|
10
|
+
lastChargingStatus = null;
|
|
11
|
+
// Cache operational state so we only emit info logs when it changes
|
|
12
|
+
lastOperationalState = null;
|
|
13
|
+
// Cache last seen RSSI so we only log when it changes
|
|
14
|
+
lastRssi = null;
|
|
15
|
+
// Cache last selected areas so we only emit info logs when selection changes
|
|
16
|
+
lastSelectedAreas = null;
|
|
17
|
+
// Cache last clean mode so we only emit info logs when it changes
|
|
18
|
+
lastCleanMode = null;
|
|
6
19
|
sharkDevice;
|
|
7
20
|
pollInterval;
|
|
8
21
|
constructor(api, log, sharkDevice, pollIntervalMs) {
|
|
22
|
+
// If possible, initialize lastRunMode from the device or persisted state
|
|
23
|
+
// This is done after super() returns so api and other properties are available.
|
|
9
24
|
const serialNumber = (sharkDevice && (sharkDevice.serial_number || sharkDevice._dsn)) || 'VACUUM-001';
|
|
10
25
|
const displayName = (sharkDevice && (sharkDevice.name || sharkDevice._name)) || 'Robot Vacuum';
|
|
11
26
|
const manufacturer = sharkDevice ? 'Shark' : 'Homebridge Matter';
|
|
@@ -65,6 +80,14 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
65
80
|
vacSerial: (sharkDevice && (sharkDevice.vac_serial_number || sharkDevice._vac_serial_number)) || null,
|
|
66
81
|
oemModel: (sharkDevice && (sharkDevice.oem_model_number || sharkDevice._oem_model_number)) || null,
|
|
67
82
|
pollIntervalMs: typeof pollIntervalMs === 'number' ? pollIntervalMs : null,
|
|
83
|
+
// Cached runtime values persisted so they survive restarts
|
|
84
|
+
lastRunMode: null,
|
|
85
|
+
lastBatteryLevel: null,
|
|
86
|
+
lastChargingStatus: null,
|
|
87
|
+
lastOperationalState: null,
|
|
88
|
+
lastRssi: null,
|
|
89
|
+
lastSelectedAreas: null,
|
|
90
|
+
lastCleanMode: null,
|
|
68
91
|
},
|
|
69
92
|
clusters: {
|
|
70
93
|
// Run Mode: Controls what the vacuum is doing (Idle, Cleaning, Mapping)
|
|
@@ -121,6 +144,11 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
121
144
|
},
|
|
122
145
|
// Service Area: Room/zone selection for targeted cleaning
|
|
123
146
|
serviceArea: serviceAreaCluster,
|
|
147
|
+
// Legacy informational clusters - present so runtime updateState() calls
|
|
148
|
+
// using 'power' and 'diagnostics' will be forwarded to the Matter API
|
|
149
|
+
// during tests and runtime. These clusters are informational only.
|
|
150
|
+
power: {},
|
|
151
|
+
diagnostics: {},
|
|
124
152
|
},
|
|
125
153
|
handlers: {
|
|
126
154
|
rvcRunMode: {
|
|
@@ -160,6 +188,185 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
160
188
|
}
|
|
161
189
|
}
|
|
162
190
|
this.logInfo('initialized and ready.');
|
|
191
|
+
// Initialize cached runtime values (device wrapper preferred; fallback to persisted accessory state)
|
|
192
|
+
this.initCachedState(sharkDevice);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Initialize cached runtime values from the Shark device wrapper where
|
|
196
|
+
* available, otherwise fall back to persisted accessory state exposed by the API.
|
|
197
|
+
*/
|
|
198
|
+
initCachedState(sharkDevice) {
|
|
199
|
+
try {
|
|
200
|
+
// Prefer value from Shark device wrapper if available
|
|
201
|
+
if (sharkDevice && typeof sharkDevice.operating_mode === 'function') {
|
|
202
|
+
const op = sharkDevice.operating_mode();
|
|
203
|
+
if (typeof op === 'number') {
|
|
204
|
+
this.persistCache('lastRunMode', op, 'lastRunMode');
|
|
205
|
+
}
|
|
206
|
+
// battery
|
|
207
|
+
if (sharkDevice.battery_capacity && typeof sharkDevice.battery_capacity === 'function') {
|
|
208
|
+
const b = sharkDevice.battery_capacity();
|
|
209
|
+
if (typeof b === 'number') {
|
|
210
|
+
this.persistCache('lastBatteryLevel', Number(b), 'lastBatteryLevel');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// charging status
|
|
214
|
+
if (sharkDevice.charging_status && typeof sharkDevice.charging_status === 'function') {
|
|
215
|
+
const c = sharkDevice.charging_status();
|
|
216
|
+
if (typeof c !== 'undefined') {
|
|
217
|
+
this.persistCache('lastChargingStatus', c === 1 || c === true, 'lastChargingStatus');
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// clean mode mapping
|
|
221
|
+
if (sharkDevice.power_mode && typeof sharkDevice.power_mode === 'function') {
|
|
222
|
+
try {
|
|
223
|
+
const pm = sharkDevice.power_mode();
|
|
224
|
+
if (typeof pm === 'number') {
|
|
225
|
+
let cleanMode = 0;
|
|
226
|
+
if (pm === PowerModes.ECO) {
|
|
227
|
+
cleanMode = 12; // Eco Vacuum
|
|
228
|
+
}
|
|
229
|
+
else if (pm === PowerModes.MAX) {
|
|
230
|
+
cleanMode = 7; // Max Clean
|
|
231
|
+
}
|
|
232
|
+
this.persistCache('lastCleanMode', cleanMode, 'lastCleanMode');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
// ignore
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// docked/operational
|
|
240
|
+
if (sharkDevice.docked_status && typeof sharkDevice.docked_status === 'function') {
|
|
241
|
+
const d = sharkDevice.docked_status();
|
|
242
|
+
if (typeof d === 'number') {
|
|
243
|
+
this.persistCache('lastOperationalState', d === 1 ? 66 : null, 'lastOperationalState');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (this.lastOperationalState === null && typeof op === 'number') {
|
|
247
|
+
if (op === OperatingModes.START) {
|
|
248
|
+
this.persistCache('lastOperationalState', 1, 'lastOperationalState');
|
|
249
|
+
}
|
|
250
|
+
else if (op === OperatingModes.PAUSE) {
|
|
251
|
+
this.persistCache('lastOperationalState', 2, 'lastOperationalState');
|
|
252
|
+
}
|
|
253
|
+
else if (op === OperatingModes.RETURN) {
|
|
254
|
+
this.persistCache('lastOperationalState', 64, 'lastOperationalState');
|
|
255
|
+
}
|
|
256
|
+
else if (op === OperatingModes.STOP) {
|
|
257
|
+
this.persistCache('lastOperationalState', 0, 'lastOperationalState');
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// selected areas from device room list
|
|
261
|
+
if (typeof sharkDevice.get_room_list === 'function') {
|
|
262
|
+
try {
|
|
263
|
+
const rooms = sharkDevice.get_room_list() || [];
|
|
264
|
+
const ids = rooms.map((_, idx) => idx);
|
|
265
|
+
const sanitized = Array.from(new Set(ids.filter(n => Number.isInteger(n) && n >= 0 && n < rooms.length)));
|
|
266
|
+
this.persistCache('lastSelectedAreas', sanitized, 'lastSelectedAreas');
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
// ignore
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else if (this.api.matter && typeof this.api.matter.getAccessoryState === 'function') {
|
|
274
|
+
try {
|
|
275
|
+
const state = this.api.matter.getAccessoryState(this.uuid, 'rvcRunMode');
|
|
276
|
+
if (state && typeof state.currentMode === 'number') {
|
|
277
|
+
this.persistCache('lastRunMode', state.currentMode, 'lastRunMode');
|
|
278
|
+
}
|
|
279
|
+
// persisted power cluster
|
|
280
|
+
try {
|
|
281
|
+
const p = this.api.matter.getAccessoryState(this.uuid, 'power');
|
|
282
|
+
if (p) {
|
|
283
|
+
if (typeof p.batteryLevel === 'number') {
|
|
284
|
+
this.persistCache('lastBatteryLevel', Number(p.batteryLevel), 'lastBatteryLevel');
|
|
285
|
+
}
|
|
286
|
+
if (typeof p.charging !== 'undefined') {
|
|
287
|
+
this.persistCache('lastChargingStatus', p.charging === 1 || p.charging === true, 'lastChargingStatus');
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
// ignore
|
|
293
|
+
}
|
|
294
|
+
// persisted clean mode
|
|
295
|
+
try {
|
|
296
|
+
const c = this.api.matter.getAccessoryState(this.uuid, 'rvcCleanMode');
|
|
297
|
+
if (c && typeof c.currentMode === 'number') {
|
|
298
|
+
this.persistCache('lastCleanMode', Number(c.currentMode), 'lastCleanMode');
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
// ignore
|
|
303
|
+
}
|
|
304
|
+
// persisted diagnostics (RSSI)
|
|
305
|
+
try {
|
|
306
|
+
const d = this.api.matter.getAccessoryState(this.uuid, 'diagnostics');
|
|
307
|
+
if (d && typeof d.rssi === 'number') {
|
|
308
|
+
this.persistCache('lastRssi', Number(d.rssi), 'lastRssi');
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
// ignore
|
|
313
|
+
}
|
|
314
|
+
// persisted operational state
|
|
315
|
+
try {
|
|
316
|
+
const o = this.api.matter.getAccessoryState(this.uuid, 'rvcOperationalState');
|
|
317
|
+
if (o && typeof o.operationalState === 'number') {
|
|
318
|
+
this.persistCache('lastOperationalState', Number(o.operationalState), 'lastOperationalState');
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
// ignore
|
|
323
|
+
}
|
|
324
|
+
// persisted selected areas
|
|
325
|
+
try {
|
|
326
|
+
const s = this.api.matter.getAccessoryState(this.uuid, 'serviceArea');
|
|
327
|
+
if (s && Array.isArray(s.selectedAreas)) {
|
|
328
|
+
const raw = Array.isArray(s.selectedAreas) ? s.selectedAreas.map((v) => Number(v)).filter((n) => Number.isInteger(n) && n >= 0) : [];
|
|
329
|
+
const sanitized = raw.length > 0 ? Array.from(new Set(raw)) : null;
|
|
330
|
+
this.persistCache('lastSelectedAreas', sanitized, 'lastSelectedAreas');
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
catch {
|
|
334
|
+
// ignore
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
// ignore failures reading accessory state
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
catch (e) {
|
|
343
|
+
// Ignore any initialization errors; keep caches as-is
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Persist a named cache value into accessory context and keep in-memory copy.
|
|
348
|
+
* This centralizes writes so callers only need to update the in-memory field
|
|
349
|
+
* and call this to persist to Homebridge accessory.context.
|
|
350
|
+
*/
|
|
351
|
+
persistCache(key, value, inMemoryKey) {
|
|
352
|
+
try {
|
|
353
|
+
// Update in-memory cache if requested
|
|
354
|
+
if (typeof inMemoryKey === 'string' && inMemoryKey.length > 0) {
|
|
355
|
+
try {
|
|
356
|
+
;
|
|
357
|
+
this[inMemoryKey] = value;
|
|
358
|
+
}
|
|
359
|
+
catch (e) {
|
|
360
|
+
// ignore failures to set in-memory field
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
// Write value into this.context under the same key name
|
|
364
|
+
;
|
|
365
|
+
this.context[key] = value;
|
|
366
|
+
}
|
|
367
|
+
catch (e) {
|
|
368
|
+
// Best-effort: ignore failures to persist context
|
|
369
|
+
}
|
|
163
370
|
}
|
|
164
371
|
startPolling(intervalMs = 30000) {
|
|
165
372
|
if (this.pollInterval) {
|
|
@@ -251,7 +458,15 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
251
458
|
// chargingVal may be boolean-like or numeric
|
|
252
459
|
const isCharging = chargingVal === 1 || chargingVal === true;
|
|
253
460
|
await this.updateState('power', { batteryLevel: Math.max(0, Math.min(100, pct)), charging: isCharging });
|
|
254
|
-
this.
|
|
461
|
+
this.logDebug(`battery updated: ${pct}% (charging: ${isCharging})`);
|
|
462
|
+
// Only emit info logs when battery level or charging status actually changes
|
|
463
|
+
if (this.lastBatteryLevel !== pct || this.lastChargingStatus !== isCharging) {
|
|
464
|
+
this.logInfo(`battery level: ${pct}%, charging: ${isCharging}`);
|
|
465
|
+
this.lastBatteryLevel = pct;
|
|
466
|
+
this.lastChargingStatus = isCharging;
|
|
467
|
+
this.context.lastBatteryLevel = this.lastBatteryLevel;
|
|
468
|
+
this.context.lastChargingStatus = this.lastChargingStatus;
|
|
469
|
+
}
|
|
255
470
|
}
|
|
256
471
|
// RSSI (signal strength) mapping if available
|
|
257
472
|
try {
|
|
@@ -259,8 +474,17 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
259
474
|
? this.sharkDevice.get_property_value(Properties.RSSI)
|
|
260
475
|
: null;
|
|
261
476
|
if (rssi !== null && typeof rssi !== 'undefined') {
|
|
262
|
-
|
|
263
|
-
this.
|
|
477
|
+
const r = Number(rssi);
|
|
478
|
+
await this.updateState('diagnostics', { ...null, rssi: r });
|
|
479
|
+
// Only log when RSSI value actually changes
|
|
480
|
+
if (this.lastRssi !== r) {
|
|
481
|
+
this.logInfo(`rssi updated: ${r}`);
|
|
482
|
+
this.lastRssi = r;
|
|
483
|
+
this.context.lastRssi = this.lastRssi;
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
this.logDebug(`rssi unchanged: ${r}`);
|
|
487
|
+
}
|
|
264
488
|
}
|
|
265
489
|
}
|
|
266
490
|
catch (e) {
|
|
@@ -594,12 +818,34 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
594
818
|
'Charging',
|
|
595
819
|
'Docked',
|
|
596
820
|
];
|
|
597
|
-
|
|
821
|
+
// Only emit info logs when the operational state actually changes
|
|
822
|
+
if (this.lastOperationalState !== state) {
|
|
823
|
+
this.logInfo(`operational state updated to: ${states[state] || `Unknown (${state})`}`);
|
|
824
|
+
this.lastOperationalState = state;
|
|
825
|
+
this.persistCache('lastOperationalState', state);
|
|
826
|
+
}
|
|
827
|
+
else {
|
|
828
|
+
this.logDebug(`operational state unchanged: ${states[state] || `Unknown (${state})`}`);
|
|
829
|
+
}
|
|
598
830
|
}
|
|
599
831
|
updateRunMode(mode) {
|
|
600
832
|
this.updateState('rvcRunMode', { currentMode: mode });
|
|
601
833
|
const modes = ['Idle', 'Cleaning', 'Mapping'];
|
|
602
|
-
this.
|
|
834
|
+
this.logDebug(`run mode updated to: ${modes[mode] || `Unknown (${mode})`}`);
|
|
835
|
+
// Only emit informational logs when the run mode actually changes
|
|
836
|
+
if (this.lastRunMode !== mode) {
|
|
837
|
+
if (mode === 0) {
|
|
838
|
+
this.logInfo('vacuum is now idle.');
|
|
839
|
+
}
|
|
840
|
+
else if (mode === 1) {
|
|
841
|
+
this.logInfo('vacuum is now cleaning.');
|
|
842
|
+
}
|
|
843
|
+
else if (mode === 2) {
|
|
844
|
+
this.logInfo('vacuum is now mapping.');
|
|
845
|
+
}
|
|
846
|
+
this.lastRunMode = mode;
|
|
847
|
+
this.persistCache('lastRunMode', mode);
|
|
848
|
+
}
|
|
603
849
|
}
|
|
604
850
|
updateCleanMode(mode) {
|
|
605
851
|
this.updateState('rvcCleanMode', { currentMode: mode });
|
|
@@ -620,12 +866,45 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
620
866
|
'Eco Mop',
|
|
621
867
|
'Auto',
|
|
622
868
|
];
|
|
623
|
-
|
|
869
|
+
// Only emit info logs when the clean mode actually changes
|
|
870
|
+
if (this.lastCleanMode !== mode) {
|
|
871
|
+
this.logInfo(`clean mode updated to: ${modes[mode] || `Unknown (${mode})`}`);
|
|
872
|
+
this.lastCleanMode = mode;
|
|
873
|
+
this.persistCache('lastCleanMode', mode);
|
|
874
|
+
}
|
|
875
|
+
else {
|
|
876
|
+
this.logDebug(`clean mode unchanged: ${modes[mode] || `Unknown (${mode})`}`);
|
|
877
|
+
}
|
|
624
878
|
}
|
|
625
879
|
updateSelectedAreas(areaIds) {
|
|
626
880
|
this.updateState('serviceArea', { selectedAreas: areaIds });
|
|
881
|
+
// Determine if the selection actually changed (order-insensitive)
|
|
882
|
+
const incoming = Array.isArray(areaIds) ? areaIds.slice().sort((a, b) => a - b) : [];
|
|
883
|
+
const previous = Array.isArray(this.lastSelectedAreas) ? this.lastSelectedAreas.slice().sort((a, b) => a - b) : null;
|
|
884
|
+
let changed = false;
|
|
885
|
+
if (previous === null) {
|
|
886
|
+
changed = true;
|
|
887
|
+
}
|
|
888
|
+
else if (previous.length !== incoming.length) {
|
|
889
|
+
changed = true;
|
|
890
|
+
}
|
|
891
|
+
else {
|
|
892
|
+
for (let i = 0; i < incoming.length; i++) {
|
|
893
|
+
if (incoming[i] !== previous[i]) {
|
|
894
|
+
changed = true;
|
|
895
|
+
break;
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
}
|
|
627
899
|
const areaNames = areaIds.map(id => ['Living Room', 'Kitchen', 'Bedroom', 'Bathroom'][id] || `Area ${id}`);
|
|
628
|
-
|
|
900
|
+
if (changed) {
|
|
901
|
+
this.logInfo(`selected areas updated to: ${areaNames.join(', ') || 'All Areas'}`);
|
|
902
|
+
this.lastSelectedAreas = Array.isArray(areaIds) ? areaIds.slice() : [];
|
|
903
|
+
this.persistCache('lastSelectedAreas', this.lastSelectedAreas);
|
|
904
|
+
}
|
|
905
|
+
else {
|
|
906
|
+
this.logDebug(`selected areas unchanged: ${areaNames.join(', ') || 'All Areas'}`);
|
|
907
|
+
}
|
|
629
908
|
}
|
|
630
909
|
updateCurrentArea(areaId) {
|
|
631
910
|
this.updateState('serviceArea', { currentArea: areaId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
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/
|
|
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/985a47641d0c3c9f252e7f83e66387f47bf8f748/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.23",
|
|
6
6
|
"description": "A Homebridge plugin to connect your Shark Vacuum to homebridge.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Bubba8291",
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
2
|
+
|
|
3
|
+
import { RoboticVacuumAccessory } from '../src/devices/RoboticVacuumAccessory.js'
|
|
4
|
+
|
|
5
|
+
// Minimal mock logger matching Homebridge Logger
|
|
6
|
+
function createLogger() {
|
|
7
|
+
const info = vi.fn()
|
|
8
|
+
const debug = vi.fn()
|
|
9
|
+
const warn = vi.fn()
|
|
10
|
+
const error = vi.fn()
|
|
11
|
+
return { info, debug, warn, error }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Minimal API mock with matter helpers used in constructor
|
|
15
|
+
function createApi() {
|
|
16
|
+
return {
|
|
17
|
+
matter: {
|
|
18
|
+
uuid: { generate: () => 'UUID-1' },
|
|
19
|
+
deviceTypes: { RoboticVacuumCleaner: 1 },
|
|
20
|
+
updateAccessoryState: async () => {},
|
|
21
|
+
getAccessoryState: (uuid: string, cluster: string) => {
|
|
22
|
+
void uuid
|
|
23
|
+
void cluster
|
|
24
|
+
return null
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
} as any
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
describe('roboticVacuumAccessory.updateRunMode', () => {
|
|
31
|
+
let log: any
|
|
32
|
+
let api: any
|
|
33
|
+
let acc: RoboticVacuumAccessory
|
|
34
|
+
|
|
35
|
+
beforeEach(() => {
|
|
36
|
+
log = createLogger()
|
|
37
|
+
api = createApi()
|
|
38
|
+
acc = new RoboticVacuumAccessory(api, log as any, undefined, 0)
|
|
39
|
+
// clear any persisted context written during constructor
|
|
40
|
+
acc.context.lastRunMode = null
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('should emit info only when run mode changes and persist to context', () => {
|
|
44
|
+
// Initially lastRunMode is null
|
|
45
|
+
acc.updateRunMode(1)
|
|
46
|
+
expect(log.info).toHaveBeenCalled()
|
|
47
|
+
expect(acc.context.lastRunMode).toBe(1)
|
|
48
|
+
|
|
49
|
+
// Calling again with same mode should not call info again (only debug)
|
|
50
|
+
log.info.mockClear()
|
|
51
|
+
acc.updateRunMode(1)
|
|
52
|
+
expect(log.info).not.toHaveBeenCalled()
|
|
53
|
+
expect(log.debug).toHaveBeenCalled()
|
|
54
|
+
|
|
55
|
+
// Change to Idle
|
|
56
|
+
log.info.mockClear()
|
|
57
|
+
acc.updateRunMode(0)
|
|
58
|
+
expect(log.info).toHaveBeenCalled()
|
|
59
|
+
expect(acc.context.lastRunMode).toBe(0)
|
|
60
|
+
})
|
|
61
|
+
})
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
2
|
+
|
|
3
|
+
import { RoboticVacuumAccessory } from '../src/devices/RoboticVacuumAccessory.js'
|
|
4
|
+
|
|
5
|
+
function createLogger() {
|
|
6
|
+
const info = vi.fn()
|
|
7
|
+
const debug = vi.fn()
|
|
8
|
+
const warn = vi.fn()
|
|
9
|
+
const error = vi.fn()
|
|
10
|
+
return { info, debug, warn, error }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function createApi() {
|
|
14
|
+
return {
|
|
15
|
+
matter: {
|
|
16
|
+
uuid: { generate: () => 'UUID-1' },
|
|
17
|
+
deviceTypes: { RoboticVacuumCleaner: 1 },
|
|
18
|
+
updateAccessoryState: async () => {},
|
|
19
|
+
getAccessoryState: (uuid: string, cluster: string) => {
|
|
20
|
+
void uuid
|
|
21
|
+
void cluster
|
|
22
|
+
return null
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
} as any
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
describe('roboticVacuumAccessory.updateSelectedAreas', () => {
|
|
29
|
+
let log: any
|
|
30
|
+
let api: any
|
|
31
|
+
let acc: RoboticVacuumAccessory
|
|
32
|
+
|
|
33
|
+
beforeEach(() => {
|
|
34
|
+
log = createLogger()
|
|
35
|
+
api = createApi()
|
|
36
|
+
acc = new RoboticVacuumAccessory(api, log as any, undefined, 0)
|
|
37
|
+
acc.context.lastSelectedAreas = null
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('should persist selection and only info-log on real changes (order-insensitive)', () => {
|
|
41
|
+
// initial set
|
|
42
|
+
acc.updateSelectedAreas([1, 2])
|
|
43
|
+
expect(log.info).toHaveBeenCalled()
|
|
44
|
+
expect(acc.context.lastSelectedAreas).toEqual([1, 2])
|
|
45
|
+
|
|
46
|
+
// same selection different order => no info
|
|
47
|
+
log.info.mockClear()
|
|
48
|
+
log.debug.mockClear()
|
|
49
|
+
acc.updateSelectedAreas([2, 1])
|
|
50
|
+
expect(log.info).not.toHaveBeenCalled()
|
|
51
|
+
expect(log.debug).toHaveBeenCalled()
|
|
52
|
+
|
|
53
|
+
// change selection
|
|
54
|
+
log.info.mockClear()
|
|
55
|
+
acc.updateSelectedAreas([0, 2])
|
|
56
|
+
expect(log.info).toHaveBeenCalled()
|
|
57
|
+
expect(acc.context.lastSelectedAreas).toEqual([0, 2])
|
|
58
|
+
})
|
|
59
|
+
})
|