@switchbot/homebridge-switchbot 5.0.0-beta.87 → 5.0.0-beta.89

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAgB,MAAM,6BAA6B,CAAA;AAGpF,QAAA,MAAM,MAAM,0BAAiC,CAAA;AAuY7C,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAgB,MAAM,6BAA6B,CAAA;AAGpF,QAAA,MAAM,MAAM,0BAAiC,CAAA;AAob7C,eAAe,MAAM,CAAA"}
@@ -3,32 +3,38 @@ import { HomebridgePluginUiServer, RequestError } from '@homebridge/plugin-ui-ut
3
3
  import fs from 'node:fs/promises';
4
4
  const server = new HomebridgePluginUiServer();
5
5
  function getDevicesRef(platform) {
6
- if (Array.isArray(platform?.devices)) {
7
- return platform.devices;
8
- }
9
- if (platform?.options && typeof platform.options === 'object') {
10
- if (!Array.isArray(platform.options.devices)) {
11
- platform.options.devices = [];
12
- }
13
- return platform.options.devices;
6
+ if (!platform || typeof platform !== 'object') {
7
+ return [];
14
8
  }
15
- if (platform && typeof platform === 'object') {
16
- platform.devices = [];
9
+ if (Array.isArray(platform.devices)) {
17
10
  return platform.devices;
18
11
  }
19
- return [];
12
+ platform.devices = [];
13
+ return platform.devices;
14
+ }
15
+ function getDeviceArrays(platform) {
16
+ const rootDevices = getDevicesRef(platform);
17
+ return [rootDevices];
18
+ }
19
+ function getAllDevices(platform) {
20
+ const all = getDevicesRef(platform);
21
+ const seen = new Set();
22
+ return all.filter((d) => {
23
+ const id = String(d?.deviceId ?? d?.id ?? '').trim().toLowerCase();
24
+ if (!id || seen.has(id)) {
25
+ return false;
26
+ }
27
+ seen.add(id);
28
+ return true;
29
+ });
20
30
  }
21
31
  function getCredential(platform, key) {
22
- return platform?.[key] ?? platform?.options?.[key];
32
+ return platform?.[key];
23
33
  }
24
34
  function setCredential(platform, key, value) {
25
35
  if (!platform || typeof platform !== 'object') {
26
36
  return;
27
37
  }
28
- if (platform.options && Object.prototype.hasOwnProperty.call(platform.options, key)) {
29
- platform.options[key] = value;
30
- return;
31
- }
32
38
  platform[key] = value;
33
39
  }
34
40
  // Helper function to find the SwitchBot platform config
@@ -68,7 +74,7 @@ server.onRequest('/devices', async () => {
68
74
  if (!platformName || !/switchbot/i.test(String(platformName))) {
69
75
  continue;
70
76
  }
71
- const devices = getDevicesRef(p);
77
+ const devices = getAllDevices(p);
72
78
  for (const d of devices) {
73
79
  const id = d.deviceId ?? d.id;
74
80
  if (!id) {
@@ -87,7 +93,7 @@ server.onRequest('/devices', async () => {
87
93
  // ignore malformed platform entries
88
94
  }
89
95
  }
90
- console.log('[SwitchBot UI] GET /devices - Found', found.length, 'devices');
96
+ console.log('[SwitchBot UI] GET /devices - Found', found.length, 'devices in', cfgPath);
91
97
  return { success: true, data: found };
92
98
  }
93
99
  catch (e) {
@@ -169,10 +175,11 @@ server.onRequest('/add-device', async (body) => {
169
175
  }
170
176
  const { config, platform, cfgPath } = await getSwitchBotPlatformConfig();
171
177
  console.log('[SwitchBot UI] POST /add-device - Adding device:', deviceId);
172
- const devices = getDevicesRef(platform);
178
+ const deviceArrays = getDeviceArrays(platform);
179
+ const allDevices = getAllDevices(platform);
173
180
  // Check if already exists
174
181
  const normalizedDeviceId = String(deviceId).trim().toLowerCase();
175
- const exists = devices.some((d) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId);
182
+ const exists = allDevices.some((d) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId);
176
183
  if (exists) {
177
184
  return {
178
185
  success: true,
@@ -183,14 +190,19 @@ server.onRequest('/add-device', async (body) => {
183
190
  };
184
191
  }
185
192
  // Add device
186
- devices.push({
187
- deviceId,
188
- configDeviceName: name,
189
- configDeviceType: type,
190
- });
193
+ for (const ref of deviceArrays) {
194
+ const refHasDevice = ref.some((d) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId);
195
+ if (!refHasDevice) {
196
+ ref.push({
197
+ deviceId,
198
+ configDeviceName: name,
199
+ configDeviceType: type,
200
+ });
201
+ }
202
+ }
191
203
  // Save config
192
204
  await fs.writeFile(cfgPath, JSON.stringify(config, null, 2), 'utf8');
193
- console.log('[SwitchBot UI] Device added successfully:', deviceId);
205
+ console.log('[SwitchBot UI] Device added successfully:', deviceId, 'saved to', cfgPath);
194
206
  return {
195
207
  success: true,
196
208
  data: {
@@ -214,7 +226,8 @@ server.onRequest('/update-device', async (body) => {
214
226
  const { config, platform, cfgPath } = await getSwitchBotPlatformConfig();
215
227
  console.log('[SwitchBot UI] POST /update-device - Updating device:', deviceId);
216
228
  console.log('[SwitchBot UI] Parameters - name:', configDeviceName, 'type:', configDeviceType, 'pref:', connectionPreference, 'room:', room);
217
- const devices = getDevicesRef(platform);
229
+ const deviceArrays = getDeviceArrays(platform);
230
+ const devices = getAllDevices(platform);
218
231
  const normalizedDeviceId = String(deviceId).trim().toLowerCase();
219
232
  const device = devices.find((d) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId);
220
233
  if (!device) {
@@ -222,27 +235,43 @@ server.onRequest('/update-device', async (body) => {
222
235
  throw new Error('Device not found in config');
223
236
  }
224
237
  console.log('[SwitchBot UI] Found device before update:', JSON.stringify(device, null, 2));
225
- // Update properties
238
+ // Update properties in all config branches
239
+ for (const ref of deviceArrays) {
240
+ for (const entry of ref) {
241
+ const entryId = String(entry.deviceId ?? entry.id ?? '').trim().toLowerCase();
242
+ if (entryId !== normalizedDeviceId) {
243
+ continue;
244
+ }
245
+ if (configDeviceName !== undefined && configDeviceName !== null && String(configDeviceName).trim() !== '') {
246
+ entry.configDeviceName = configDeviceName;
247
+ }
248
+ if (configDeviceType !== undefined && configDeviceType !== null && String(configDeviceType).trim() !== '') {
249
+ entry.configDeviceType = configDeviceType;
250
+ }
251
+ if (connectionPreference !== undefined) {
252
+ entry.connectionPreference = connectionPreference;
253
+ }
254
+ if (room !== undefined) {
255
+ entry.room = room || undefined;
256
+ }
257
+ }
258
+ }
226
259
  if (configDeviceName !== undefined && configDeviceName !== null && String(configDeviceName).trim() !== '') {
227
- device.configDeviceName = configDeviceName;
228
260
  console.log('[SwitchBot UI] ✓ Updated configDeviceName to:', configDeviceName);
229
261
  }
230
262
  if (configDeviceType !== undefined && configDeviceType !== null && String(configDeviceType).trim() !== '') {
231
- device.configDeviceType = configDeviceType;
232
263
  console.log('[SwitchBot UI] ✓ Updated configDeviceType to:', configDeviceType);
233
264
  }
234
265
  if (connectionPreference !== undefined) {
235
- device.connectionPreference = connectionPreference;
236
266
  console.log('[SwitchBot UI] ✓ Updated connectionPreference to:', connectionPreference);
237
267
  }
238
268
  if (room !== undefined) {
239
- device.room = room || undefined;
240
269
  console.log('[SwitchBot UI] ✓ Updated room to:', room);
241
270
  }
242
271
  console.log('[SwitchBot UI] Device after updates:', JSON.stringify(device, null, 2));
243
272
  // Save config
244
273
  await fs.writeFile(cfgPath, JSON.stringify(config, null, 2), 'utf8');
245
- console.log('[SwitchBot UI] ✓ Config file saved successfully');
274
+ console.log('[SwitchBot UI] ✓ Config file saved successfully:', cfgPath);
246
275
  console.log('[SwitchBot UI] Device updated successfully:', deviceId);
247
276
  return {
248
277
  success: true,
@@ -262,17 +291,30 @@ server.onRequest('/delete-device', async (body) => {
262
291
  }
263
292
  const { config, platform, cfgPath } = await getSwitchBotPlatformConfig();
264
293
  console.log('[SwitchBot UI] POST /delete-device - Deleting:', deviceId);
265
- const devices = getDevicesRef(platform);
294
+ const deviceArrays = getDeviceArrays(platform);
266
295
  const normalizedDeviceId = String(deviceId).trim().toLowerCase();
267
- const index = devices.findIndex((d) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId);
268
- if (index === -1) {
296
+ const allDevices = getAllDevices(platform);
297
+ const existing = allDevices.find((d) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId);
298
+ if (!existing) {
299
+ throw new Error('Device not found in config');
300
+ }
301
+ const deviceName = existing.configDeviceName || deviceId;
302
+ let removedCount = 0;
303
+ for (const ref of deviceArrays) {
304
+ for (let i = ref.length - 1; i >= 0; i--) {
305
+ const id = String(ref[i]?.deviceId ?? ref[i]?.id ?? '').trim().toLowerCase();
306
+ if (id === normalizedDeviceId) {
307
+ ref.splice(i, 1);
308
+ removedCount++;
309
+ }
310
+ }
311
+ }
312
+ if (!removedCount) {
269
313
  throw new Error('Device not found in config');
270
314
  }
271
- const deviceName = devices[index].configDeviceName || deviceId;
272
- devices.splice(index, 1);
273
315
  // Save config
274
316
  await fs.writeFile(cfgPath, JSON.stringify(config, null, 2), 'utf8');
275
- console.log('[SwitchBot UI] Device deleted successfully:', deviceId);
317
+ console.log('[SwitchBot UI] Device deleted successfully:', deviceId, 'saved to', cfgPath);
276
318
  return {
277
319
  success: true,
278
320
  data: { message: `Device "${deviceName}" removed from config` },
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAwB7D,qBAAa,oBAAoB;IAC/B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,qBAAqB,CAAA;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAK;IAEnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE7B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,oBAAoB,CAA8B;gBAE9C,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA2C1D,OAAO,CAAC,aAAa;YAUP,qBAAqB;IAU7B,WAAW;IA2JX,kBAAkB,CAAC,SAAS,EAAE,GAAG;IAYvC,wBAAwB,CAAC,CAAC,SAAS,EAAE,GAAG;CASzC;AAGD,qBAAa,uBAAuB;IAClC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,qBAAqB,CAAA;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAK;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE7B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,oBAAoB,CAA8B;gBAE9C,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA8CpD,WAAW;IA2CjB,OAAO,CAAC,aAAa;YAUP,qBAAqB;IAU7B,kBAAkB,CAAC,SAAS,EAAE,GAAG;IAWvC,wBAAwB,CAAC,SAAS,EAAE,GAAG;IAWjC,yBAAyB;CA+EhC;AAED,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAwB7D,qBAAa,oBAAoB;IAC/B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,qBAAqB,CAAA;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAK;IAEnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE7B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,oBAAoB,CAA8B;gBAE9C,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA2C1D,OAAO,CAAC,aAAa;YAUP,qBAAqB;IAU7B,WAAW;IA2JX,kBAAkB,CAAC,SAAS,EAAE,GAAG;IAYvC,wBAAwB,CAAC,CAAC,SAAS,EAAE,GAAG;CASzC;AAGD,qBAAa,uBAAuB;IAClC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,qBAAqB,CAAA;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAK;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE7B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,oBAAoB,CAA8B;gBAE9C,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA8CpD,WAAW;IA2CjB,OAAO,CAAC,aAAa;YAUP,qBAAqB;IAU7B,kBAAkB,CAAC,SAAS,EAAE,GAAG;IAWvC,wBAAwB,CAAC,SAAS,EAAE,GAAG;IAWjC,yBAAyB;CA0FhC;AAED,eAAe,oBAAoB,CAAA"}
package/dist/platform.js CHANGED
@@ -123,7 +123,7 @@ export class SwitchBotHAPPlatform {
123
123
  const createdDesc = created.createAccessory?.(this.api) || { id: d.id, name: d.name || type };
124
124
  const uuid = matterApi.uuid.generate(`${d.id}`);
125
125
  const accessory = {
126
- uuid,
126
+ UUID: uuid,
127
127
  displayName: createdDesc.name || d.name || type,
128
128
  context: { deviceId: d.id, type, _created: true },
129
129
  };
@@ -358,7 +358,7 @@ export class SwitchBotMatterPlatform {
358
358
  const created = await createDevice({ id: d.id, type, name: d.name }, this.config, useMatter);
359
359
  this.devices.push(created);
360
360
  if (useMatter) {
361
- this.log.info(`Prepared Matter accessory for ${d.id} (${type})${matterAvailable ? ' (auto-detected)' : ' (manually enabled)'})`);
361
+ this.log.info(`Prepared Matter accessory for ${d.id} (${type})${matterAvailable ? ' (auto-detected)' : ' (manually enabled)'}`);
362
362
  }
363
363
  else {
364
364
  if (!matterEnabled) {
@@ -433,8 +433,16 @@ export class SwitchBotMatterPlatform {
433
433
  // Auto-detect Matter from Homebridge API
434
434
  const matterAvailable = this.api?.isMatterAvailable?.() && this.api?.isMatterEnabled?.();
435
435
  const matterEnabled = matterAvailable || !!this.config.enableMatter;
436
- for (const d of devices) {
437
- let type = d.type || d.deviceType || 'unknown';
436
+ for (const raw of devices) {
437
+ const d = {
438
+ id: raw.deviceId ?? raw.id,
439
+ name: raw.configDeviceName ?? raw.name,
440
+ type: raw.configDeviceType ?? raw.type ?? raw.deviceType ?? 'unknown',
441
+ };
442
+ if (!d.id) {
443
+ continue;
444
+ }
445
+ let type = d.type;
438
446
  // Normalize wosweeper variants to vacuum
439
447
  if (['wosweeper', 'wosweepermini', 'wosweeperminipro'].includes((type || '').toLowerCase())) {
440
448
  type = 'vacuum';
@@ -467,12 +475,13 @@ export class SwitchBotMatterPlatform {
467
475
  existing.context.deviceId = existing.context.deviceId || d.id;
468
476
  existing.context.type = existing.context.type || type;
469
477
  existing.displayName = createdDesc.name || d.name || type;
478
+ existing.UUID = existing.UUID || existing.uuid || uuid;
470
479
  accessoriesToRegister.push(existing);
471
- this.accessories.set(existing.uuid || uuid, existing);
480
+ this.accessories.set(existing.UUID || uuid, existing);
472
481
  }
473
482
  else {
474
483
  const serialized = {
475
- uuid,
484
+ UUID: uuid,
476
485
  displayName: createdDesc.name || d.name || type,
477
486
  context: { deviceId: d.id, type, created: true },
478
487
  };
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1 +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 | @switchbot/homebridge-switchbot</title><meta name="description" content="Documentation for @switchbot/homebridge-switchbot"/><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">@switchbot/homebridge-switchbot</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">void</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">api</span>: <span class="tsd-signature-type">API</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/OpenWonderLabs/homebridge-switchbot/blob/b714b419d7004e9f477bd9865b39854fd8742461/src/index.ts#L12">index.ts:12</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">@switchbot/homebridge-switchbot</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>default | @switchbot/homebridge-switchbot</title><meta name="description" content="Documentation for @switchbot/homebridge-switchbot"/><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">@switchbot/homebridge-switchbot</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">void</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">api</span>: <span class="tsd-signature-type">API</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/OpenWonderLabs/homebridge-switchbot/blob/de0fee999c55120a79d1febe2ca82f1b6beef943/src/index.ts#L12">index.ts:12</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">@switchbot/homebridge-switchbot</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": "@switchbot/homebridge-switchbot",
3
3
  "displayName": "SwitchBot",
4
4
  "type": "module",
5
- "version": "5.0.0-beta.87",
5
+ "version": "5.0.0-beta.89",
6
6
  "description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
7
7
  "author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
8
8
  "contributors": [
@@ -5,27 +5,39 @@ import fs from 'node:fs/promises'
5
5
  const server = new HomebridgePluginUiServer()
6
6
 
7
7
  function getDevicesRef(platform: any): any[] {
8
- if (Array.isArray(platform?.devices)) {
9
- return platform.devices
10
- }
11
-
12
- if (platform?.options && typeof platform.options === 'object') {
13
- if (!Array.isArray(platform.options.devices)) {
14
- platform.options.devices = []
15
- }
16
- return platform.options.devices
8
+ if (!platform || typeof platform !== 'object') {
9
+ return []
17
10
  }
18
11
 
19
- if (platform && typeof platform === 'object') {
20
- platform.devices = []
12
+ if (Array.isArray(platform.devices)) {
21
13
  return platform.devices
22
14
  }
23
15
 
24
- return []
16
+ platform.devices = []
17
+ return platform.devices
18
+ }
19
+
20
+ function getDeviceArrays(platform: any): any[][] {
21
+ const rootDevices = getDevicesRef(platform)
22
+ return [rootDevices]
23
+ }
24
+
25
+ function getAllDevices(platform: any): any[] {
26
+ const all = getDevicesRef(platform)
27
+ const seen = new Set<string>()
28
+
29
+ return all.filter((d: any) => {
30
+ const id = String(d?.deviceId ?? d?.id ?? '').trim().toLowerCase()
31
+ if (!id || seen.has(id)) {
32
+ return false
33
+ }
34
+ seen.add(id)
35
+ return true
36
+ })
25
37
  }
26
38
 
27
39
  function getCredential(platform: any, key: 'openApiToken' | 'openApiSecret') {
28
- return platform?.[key] ?? platform?.options?.[key]
40
+ return platform?.[key]
29
41
  }
30
42
 
31
43
  function setCredential(platform: any, key: 'openApiToken' | 'openApiSecret', value: string) {
@@ -33,11 +45,6 @@ function setCredential(platform: any, key: 'openApiToken' | 'openApiSecret', val
33
45
  return
34
46
  }
35
47
 
36
- if (platform.options && Object.prototype.hasOwnProperty.call(platform.options, key)) {
37
- platform.options[key] = value
38
- return
39
- }
40
-
41
48
  platform[key] = value
42
49
  }
43
50
 
@@ -87,7 +94,7 @@ server.onRequest('/devices', async () => {
87
94
  continue
88
95
  }
89
96
 
90
- const devices = getDevicesRef(p)
97
+ const devices = getAllDevices(p)
91
98
  for (const d of devices) {
92
99
  const id = d.deviceId ?? d.id
93
100
  if (!id) {
@@ -107,7 +114,7 @@ server.onRequest('/devices', async () => {
107
114
  }
108
115
  }
109
116
 
110
- console.log('[SwitchBot UI] GET /devices - Found', found.length, 'devices')
117
+ console.log('[SwitchBot UI] GET /devices - Found', found.length, 'devices in', cfgPath)
111
118
  return { success: true, data: found }
112
119
  } catch (e) {
113
120
  console.error('[SwitchBot UI] Error in /devices:', e)
@@ -200,12 +207,12 @@ server.onRequest('/add-device', async (body: any) => {
200
207
  const { config, platform, cfgPath } = await getSwitchBotPlatformConfig()
201
208
 
202
209
  console.log('[SwitchBot UI] POST /add-device - Adding device:', deviceId)
203
-
204
- const devices = getDevicesRef(platform)
210
+ const deviceArrays = getDeviceArrays(platform)
211
+ const allDevices = getAllDevices(platform)
205
212
 
206
213
  // Check if already exists
207
214
  const normalizedDeviceId = String(deviceId).trim().toLowerCase()
208
- const exists = devices.some((d: any) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId)
215
+ const exists = allDevices.some((d: any) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId)
209
216
  if (exists) {
210
217
  return {
211
218
  success: true,
@@ -217,16 +224,21 @@ server.onRequest('/add-device', async (body: any) => {
217
224
  }
218
225
 
219
226
  // Add device
220
- devices.push({
221
- deviceId,
222
- configDeviceName: name,
223
- configDeviceType: type,
224
- })
227
+ for (const ref of deviceArrays) {
228
+ const refHasDevice = ref.some((d: any) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId)
229
+ if (!refHasDevice) {
230
+ ref.push({
231
+ deviceId,
232
+ configDeviceName: name,
233
+ configDeviceType: type,
234
+ })
235
+ }
236
+ }
225
237
 
226
238
  // Save config
227
239
  await fs.writeFile(cfgPath, JSON.stringify(config, null, 2), 'utf8')
228
240
 
229
- console.log('[SwitchBot UI] Device added successfully:', deviceId)
241
+ console.log('[SwitchBot UI] Device added successfully:', deviceId, 'saved to', cfgPath)
230
242
 
231
243
  return {
232
244
  success: true,
@@ -256,7 +268,8 @@ server.onRequest('/update-device', async (body: any) => {
256
268
  console.log('[SwitchBot UI] POST /update-device - Updating device:', deviceId)
257
269
  console.log('[SwitchBot UI] Parameters - name:', configDeviceName, 'type:', configDeviceType, 'pref:', connectionPreference, 'room:', room)
258
270
 
259
- const devices = getDevicesRef(platform)
271
+ const deviceArrays = getDeviceArrays(platform)
272
+ const devices = getAllDevices(platform)
260
273
  const normalizedDeviceId = String(deviceId).trim().toLowerCase()
261
274
  const device = devices.find((d: any) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId)
262
275
  if (!device) {
@@ -266,21 +279,39 @@ server.onRequest('/update-device', async (body: any) => {
266
279
 
267
280
  console.log('[SwitchBot UI] Found device before update:', JSON.stringify(device, null, 2))
268
281
 
269
- // Update properties
282
+ // Update properties in all config branches
283
+ for (const ref of deviceArrays) {
284
+ for (const entry of ref) {
285
+ const entryId = String(entry.deviceId ?? entry.id ?? '').trim().toLowerCase()
286
+ if (entryId !== normalizedDeviceId) {
287
+ continue
288
+ }
289
+
290
+ if (configDeviceName !== undefined && configDeviceName !== null && String(configDeviceName).trim() !== '') {
291
+ entry.configDeviceName = configDeviceName
292
+ }
293
+ if (configDeviceType !== undefined && configDeviceType !== null && String(configDeviceType).trim() !== '') {
294
+ entry.configDeviceType = configDeviceType
295
+ }
296
+ if (connectionPreference !== undefined) {
297
+ entry.connectionPreference = connectionPreference
298
+ }
299
+ if (room !== undefined) {
300
+ entry.room = room || undefined
301
+ }
302
+ }
303
+ }
304
+
270
305
  if (configDeviceName !== undefined && configDeviceName !== null && String(configDeviceName).trim() !== '') {
271
- device.configDeviceName = configDeviceName
272
306
  console.log('[SwitchBot UI] ✓ Updated configDeviceName to:', configDeviceName)
273
307
  }
274
308
  if (configDeviceType !== undefined && configDeviceType !== null && String(configDeviceType).trim() !== '') {
275
- device.configDeviceType = configDeviceType
276
309
  console.log('[SwitchBot UI] ✓ Updated configDeviceType to:', configDeviceType)
277
310
  }
278
311
  if (connectionPreference !== undefined) {
279
- device.connectionPreference = connectionPreference
280
312
  console.log('[SwitchBot UI] ✓ Updated connectionPreference to:', connectionPreference)
281
313
  }
282
314
  if (room !== undefined) {
283
- device.room = room || undefined
284
315
  console.log('[SwitchBot UI] ✓ Updated room to:', room)
285
316
  }
286
317
 
@@ -288,7 +319,7 @@ server.onRequest('/update-device', async (body: any) => {
288
319
 
289
320
  // Save config
290
321
  await fs.writeFile(cfgPath, JSON.stringify(config, null, 2), 'utf8')
291
- console.log('[SwitchBot UI] ✓ Config file saved successfully')
322
+ console.log('[SwitchBot UI] ✓ Config file saved successfully:', cfgPath)
292
323
 
293
324
  console.log('[SwitchBot UI] Device updated successfully:', deviceId)
294
325
 
@@ -314,20 +345,34 @@ server.onRequest('/delete-device', async (body: any) => {
314
345
 
315
346
  console.log('[SwitchBot UI] POST /delete-device - Deleting:', deviceId)
316
347
 
317
- const devices = getDevicesRef(platform)
348
+ const deviceArrays = getDeviceArrays(platform)
318
349
  const normalizedDeviceId = String(deviceId).trim().toLowerCase()
319
- const index = devices.findIndex((d: any) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId)
320
- if (index === -1) {
350
+ const allDevices = getAllDevices(platform)
351
+ const existing = allDevices.find((d: any) => String(d.deviceId ?? d.id ?? '').trim().toLowerCase() === normalizedDeviceId)
352
+ if (!existing) {
321
353
  throw new Error('Device not found in config')
322
354
  }
323
355
 
324
- const deviceName = devices[index].configDeviceName || deviceId
325
- devices.splice(index, 1)
356
+ const deviceName = existing.configDeviceName || deviceId
357
+ let removedCount = 0
358
+ for (const ref of deviceArrays) {
359
+ for (let i = ref.length - 1; i >= 0; i--) {
360
+ const id = String(ref[i]?.deviceId ?? ref[i]?.id ?? '').trim().toLowerCase()
361
+ if (id === normalizedDeviceId) {
362
+ ref.splice(i, 1)
363
+ removedCount++
364
+ }
365
+ }
366
+ }
367
+
368
+ if (!removedCount) {
369
+ throw new Error('Device not found in config')
370
+ }
326
371
 
327
372
  // Save config
328
373
  await fs.writeFile(cfgPath, JSON.stringify(config, null, 2), 'utf8')
329
374
 
330
- console.log('[SwitchBot UI] Device deleted successfully:', deviceId)
375
+ console.log('[SwitchBot UI] Device deleted successfully:', deviceId, 'saved to', cfgPath)
331
376
 
332
377
  return {
333
378
  success: true,
package/src/platform.ts CHANGED
@@ -133,7 +133,7 @@ export class SwitchBotHAPPlatform {
133
133
  const createdDesc = created.createAccessory?.(this.api) || { id: d.id, name: d.name || type }
134
134
  const uuid = matterApi.uuid.generate(`${d.id}`)
135
135
  const accessory: any = {
136
- uuid,
136
+ UUID: uuid,
137
137
  displayName: createdDesc.name || d.name || type,
138
138
  context: { deviceId: d.id, type, _created: true },
139
139
  }
@@ -357,7 +357,7 @@ export class SwitchBotMatterPlatform {
357
357
  const created = await createDevice({ id: d.id, type, name: d.name }, this.config, useMatter)
358
358
  this.devices.push(created)
359
359
  if (useMatter) {
360
- this.log.info(`Prepared Matter accessory for ${d.id} (${type})${matterAvailable ? ' (auto-detected)' : ' (manually enabled)'})`)
360
+ this.log.info(`Prepared Matter accessory for ${d.id} (${type})${matterAvailable ? ' (auto-detected)' : ' (manually enabled)'}`)
361
361
  } else {
362
362
  if (!matterEnabled) {
363
363
  this.log.info(`Skipping Matter for ${d.id} (${type}) - Matter not available on this bridge`)
@@ -434,8 +434,18 @@ export class SwitchBotMatterPlatform {
434
434
  const matterAvailable = this.api?.isMatterAvailable?.() && this.api?.isMatterEnabled?.()
435
435
  const matterEnabled = matterAvailable || !!this.config.enableMatter
436
436
 
437
- for (const d of devices) {
438
- let type: string = d.type || d.deviceType || 'unknown'
437
+ for (const raw of devices) {
438
+ const d: any = {
439
+ id: raw.deviceId ?? raw.id,
440
+ name: raw.configDeviceName ?? raw.name,
441
+ type: raw.configDeviceType ?? raw.type ?? raw.deviceType ?? 'unknown',
442
+ }
443
+
444
+ if (!d.id) {
445
+ continue
446
+ }
447
+
448
+ let type: string = d.type
439
449
  // Normalize wosweeper variants to vacuum
440
450
  if (['wosweeper', 'wosweepermini', 'wosweeperminipro'].includes((type || '').toLowerCase())) {
441
451
  type = 'vacuum'
@@ -469,11 +479,12 @@ export class SwitchBotMatterPlatform {
469
479
  existing.context.deviceId = existing.context.deviceId || d.id
470
480
  existing.context.type = existing.context.type || type
471
481
  existing.displayName = createdDesc.name || d.name || type
482
+ existing.UUID = existing.UUID || existing.uuid || uuid
472
483
  accessoriesToRegister.push(existing)
473
- this.accessories.set(existing.uuid || uuid, existing)
484
+ this.accessories.set(existing.UUID || uuid, existing)
474
485
  } else {
475
486
  const serialized: any = {
476
- uuid,
487
+ UUID: uuid,
477
488
  displayName: createdDesc.name || d.name || type,
478
489
  context: { deviceId: d.id, type, created: true },
479
490
  }