@switchbot/homebridge-switchbot 5.0.0-beta.7 → 5.0.0-beta.9

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":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;yBAOrB,KAAK,GAAG,KAAG,IAAI;AAA/B,wBAWC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;yBAOrB,KAAK,GAAG,KAAG,IAAI;AAA/B,wBAgCC"}
package/dist/index.js CHANGED
@@ -5,9 +5,30 @@ import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
5
5
  export default (api) => {
6
6
  // Call the instance method on the runtime `api` object (optional chaining in case
7
7
  // older homebridge doesn't provide it). Treat undefined as false.
8
- const isMatter = typeof api.isMatterEnabled === 'function'
9
- ? Boolean(api.isMatterEnabled())
10
- : Boolean(api.isMatterEnabled);
8
+ const isMatter = (() => {
9
+ try {
10
+ const maybeFnOrProp = api.isMatterEnabled;
11
+ if (typeof maybeFnOrProp === 'function') {
12
+ return Boolean(maybeFnOrProp.call(api));
13
+ }
14
+ if (typeof maybeFnOrProp !== 'undefined') {
15
+ return Boolean(maybeFnOrProp);
16
+ }
17
+ // Some Homebridge beta versions expose Matter info on an internal server object
18
+ const server = api.server ?? api.homebridgeServer ?? api.homebridge_server;
19
+ const serverFn = server?.isMatterEnabled;
20
+ if (typeof serverFn === 'function') {
21
+ return Boolean(serverFn.call(server));
22
+ }
23
+ if (typeof server?.isMatterEnabled !== 'undefined') {
24
+ return Boolean(server.isMatterEnabled);
25
+ }
26
+ }
27
+ catch (e) {
28
+ // ignore and fall through to false
29
+ }
30
+ return false;
31
+ })();
11
32
  const log = api.logger ?? api.log ?? console;
12
33
  log.info?.(`Homebridge SwitchBot Plugin initializing in ${isMatter ? 'Matter' : 'HAP'} mode.`);
13
34
  // If Matter is enabled register the Matter platform, otherwise use HAP platform.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE1D,yCAAyC;AACzC,eAAe,CAAC,GAAQ,EAAQ,EAAE;IAChC,kFAAkF;IAClF,kEAAkE;IAClE,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU;QACxD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC,CAAC,OAAO,CAAE,GAAW,CAAC,eAAe,CAAC,CAAA;IAEzC,MAAM,GAAG,GAAI,GAAW,CAAC,MAAM,IAAK,GAAW,CAAC,GAAG,IAAI,OAAO,CAAA;IAC9D,GAAG,CAAC,IAAI,EAAE,CAAC,+CAA+C,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;IAC9F,iFAAiF;IACjF,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAC7G,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE1D,yCAAyC;AACzC,eAAe,CAAC,GAAQ,EAAQ,EAAE;IAChC,kFAAkF;IAClF,kEAAkE;IAClE,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,aAAa,GAAI,GAAW,CAAC,eAAe,CAAA;YAClD,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YACzC,CAAC;YACD,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,CAAC;gBACzC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAA;YAC/B,CAAC;YAED,gFAAgF;YAChF,MAAM,MAAM,GAAI,GAAW,CAAC,MAAM,IAAK,GAAW,CAAC,gBAAgB,IAAK,GAAW,CAAC,iBAAiB,CAAA;YACrG,MAAM,QAAQ,GAAG,MAAM,EAAE,eAAe,CAAA;YACxC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YACvC,CAAC;YACD,IAAI,OAAO,MAAM,EAAE,eAAe,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,mCAAmC;QACrC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,GAAG,GAAI,GAAW,CAAC,MAAM,IAAK,GAAW,CAAC,GAAG,IAAI,OAAO,CAAA;IAC9D,GAAG,CAAC,IAAI,EAAE,CAAC,+CAA+C,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;IAC9F,iFAAiF;IACjF,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAC7G,CAAC,CAAA"}
@@ -17,6 +17,25 @@ export declare class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
17
17
  private discoveredDevices;
18
18
  private bleEventHandler;
19
19
  constructor(log: Logging, config: SwitchBotPlatformConfig, api: API);
20
+ /**
21
+ * Normalize a deviceId for matching (uppercase alphanumerics only)
22
+ */
23
+ private normalizeDeviceId;
24
+ /**
25
+ * Merge two arrays by deviceId. For each item in a1 (user-provided devices list),
26
+ * find matching item in a2 (discovered devices) and merge them with user overrides last.
27
+ */
28
+ private mergeByDeviceId;
29
+ /**
30
+ * Merge discovered devices with deviceConfig (per deviceType) and per-device overrides
31
+ * from `config.options.devices`, matching the behavior used in platform-hap.
32
+ */
33
+ private mergeDiscoveredDevices;
34
+ /**
35
+ * Select effective connection type for a device: prefer explicit device.connectionType,
36
+ * otherwise prefer BLE when platform BLE is enabled and device provides a BLE model/id.
37
+ */
38
+ private chooseConnectionType;
20
39
  /**
21
40
  * Map a SwitchBot device object to a MatterAccessory using the device-specific
22
41
  * Matter accessory classes in `src/devices-matter`.
@@ -1 +1 @@
1
- {"version":3,"file":"platform-matter.d.ts","sourceRoot":"","sources":["../src/platform-matter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,OAAO,EAEP,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AA8B5D;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,qBAAqB;aAgBjD,GAAG,EAAE,OAAO;aACZ,MAAM,EAAE,uBAAuB;aAC/B,GAAG,EAAE,GAAG;IAZ1B,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAY;IAErF,OAAO,CAAC,YAAY,CAAC,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC,OAAO,CAAC,iBAAiB,CAAe;IAExC,OAAO,CAAC,eAAe,CAA8C;gBAGnD,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,GAAG;IA4F1B;;;OAGG;YACW,yBAAyB;IAkVvC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,SAAI,EAAE,mBAAmB,SAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BzJ;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAwDnC;;;OAGG;IACH,kBAAkB;IAMlB;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,yBAAyB;IAK7D;;OAEG;YACW,yBAAyB;IAgDvC;;OAEG;YACW,yBAAyB;IAqCvC;;OAEG;YACW,wBAAwB;IA8CtC;;OAEG;YACW,0BAA0B;IAsBxC;;OAEG;YACW,wBAAwB;IAsBtC;;OAEG;YACW,uBAAuB;IA0DrC;;OAEG;YACW,uBAAuB;IAkCrC;;OAEG;YACW,oBAAoB;IA4BlC;;;;;OAKG;YACW,wBAAwB;IAsBtC;;;;;;OAMG;YACW,qBAAqB;CAqBpC"}
1
+ {"version":3,"file":"platform-matter.d.ts","sourceRoot":"","sources":["../src/platform-matter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,OAAO,EAEP,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AA8B5D;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,qBAAqB;aAgBjD,GAAG,EAAE,OAAO;aACZ,MAAM,EAAE,uBAAuB;aAC/B,GAAG,EAAE,GAAG;IAZ1B,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAY;IAErF,OAAO,CAAC,YAAY,CAAC,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC,OAAO,CAAC,iBAAiB,CAAe;IAExC,OAAO,CAAC,eAAe,CAA8C;gBAGnD,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,GAAG;IA4F1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAOvB;;;OAGG;YACW,sBAAsB;IAsCpC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;YACW,yBAAyB;IAqVvC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,SAAI,EAAE,mBAAmB,SAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BzJ;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAwDnC;;;OAGG;IACH,kBAAkB;IAMlB;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,yBAAyB;IAK7D;;OAEG;YACW,yBAAyB;IAoDvC;;OAEG;YACW,yBAAyB;IAqCvC;;OAEG;YACW,wBAAwB;IA8CtC;;OAEG;YACW,0BAA0B;IAsBxC;;OAEG;YACW,wBAAwB;IAsBtC;;OAEG;YACW,uBAAuB;IA0DrC;;OAEG;YACW,uBAAuB;IAkCrC;;OAEG;YACW,oBAAoB;IA4BlC;;;;;OAKG;YACW,wBAAwB;IAsBtC;;;;;;OAMG;YACW,qBAAqB;CAqBpC"}
@@ -116,6 +116,72 @@ export class SwitchBotMatterPlatform {
116
116
  this.registerMatterAccessories();
117
117
  });
118
118
  }
119
+ /**
120
+ * Normalize a deviceId for matching (uppercase alphanumerics only)
121
+ */
122
+ normalizeDeviceId(deviceId) {
123
+ return (deviceId ?? '').toUpperCase().replace(/[^A-Z0-9]+/g, '');
124
+ }
125
+ /**
126
+ * Merge two arrays by deviceId. For each item in a1 (user-provided devices list),
127
+ * find matching item in a2 (discovered devices) and merge them with user overrides last.
128
+ */
129
+ mergeByDeviceId(a1, a2) {
130
+ return a1.map((itm) => {
131
+ const matchingItem = a2.find(item => this.normalizeDeviceId(item.deviceId) === this.normalizeDeviceId(itm.deviceId));
132
+ return Object.assign({}, matchingItem, itm);
133
+ });
134
+ }
135
+ /**
136
+ * Merge discovered devices with deviceConfig (per deviceType) and per-device overrides
137
+ * from `config.options.devices`, matching the behavior used in platform-hap.
138
+ */
139
+ async mergeDiscoveredDevices(discovered) {
140
+ // If there's no device config or per-device config, return discovered as-is
141
+ if (!this.config.options?.devices && !this.config.options?.deviceConfig) {
142
+ return discovered;
143
+ }
144
+ // Step 1: Assign missing deviceType from configDeviceType and merge deviceType-level configs
145
+ const devicesWithTypeConfig = await Promise.all(discovered.map(async (deviceObj) => {
146
+ if (!deviceObj.deviceType) {
147
+ deviceObj.deviceType = deviceObj.configDeviceType !== undefined ? deviceObj.configDeviceType : 'Unknown';
148
+ this.log.debug(`API missing deviceType for ${deviceObj.deviceId}, using configDeviceType: ${deviceObj.configDeviceType}`);
149
+ }
150
+ const deviceTypeConfig = this.config.options?.deviceConfig?.[deviceObj.deviceType] || {};
151
+ return Object.assign({}, deviceObj, deviceTypeConfig);
152
+ }));
153
+ // Merge per-device overrides by matching deviceId
154
+ const merged = this.mergeByDeviceId(this.config.options?.devices ?? [], devicesWithTypeConfig ?? []);
155
+ // For any entries in merged (which are based on config.options.devices), ensure final per-device merges include deviceId-specific config
156
+ const final = [];
157
+ for (const device of merged) {
158
+ const deviceIdConfig = this.config.options?.devices?.[device.deviceId] || {};
159
+ const deviceWithConfig = Object.assign({}, device, deviceIdConfig);
160
+ final.push(deviceWithConfig);
161
+ }
162
+ // Also include any discovered devices that weren't present in the user devices list
163
+ const userDeviceIds = new Set((this.config.options?.devices || []).map((d) => this.normalizeDeviceId(d.deviceId)));
164
+ for (const d of devicesWithTypeConfig) {
165
+ if (!userDeviceIds.has(this.normalizeDeviceId(d.deviceId))) {
166
+ final.push(d);
167
+ }
168
+ }
169
+ return final;
170
+ }
171
+ /**
172
+ * Select effective connection type for a device: prefer explicit device.connectionType,
173
+ * otherwise prefer BLE when platform BLE is enabled and device provides a BLE model/id.
174
+ */
175
+ chooseConnectionType(deviceObj) {
176
+ if (deviceObj?.connectionType) {
177
+ return deviceObj.connectionType === 'BLE' ? 'BLE' : 'OpenAPI';
178
+ }
179
+ // If platform BLE is enabled and we have a bleModel or deviceId that formats to a MAC, prefer BLE
180
+ if (this.config.options?.BLE && (deviceObj?.bleModel || formatDeviceIdAsMac(deviceObj?.deviceId))) {
181
+ return 'BLE';
182
+ }
183
+ return 'OpenAPI';
184
+ }
119
185
  /**
120
186
  * Map a SwitchBot device object to a MatterAccessory using the device-specific
121
187
  * Matter accessory classes in `src/devices-matter`.
@@ -178,11 +244,11 @@ export class SwitchBotMatterPlatform {
178
244
  }
179
245
  throw new Error('BLE operation failed');
180
246
  };
181
- const makeOnOffHandlers = (uuid) => ({
247
+ const makeOnOffHandlers = (uuid, connectionType) => ({
182
248
  onOff: {
183
249
  on: async () => {
184
250
  try {
185
- if (this.config.options?.BLE && this.switchBotBLE) {
251
+ if (connectionType === 'BLE' && this.switchBotBLE) {
186
252
  await sendBLE('turnOn');
187
253
  }
188
254
  else {
@@ -196,7 +262,7 @@ export class SwitchBotMatterPlatform {
196
262
  },
197
263
  off: async () => {
198
264
  try {
199
- if (this.config.options?.BLE && this.switchBotBLE) {
265
+ if (connectionType === 'BLE' && this.switchBotBLE) {
200
266
  await sendBLE('turnOff');
201
267
  }
202
268
  else {
@@ -256,12 +322,12 @@ export class SwitchBotMatterPlatform {
256
322
  // Misc
257
323
  'Hub 2': undefined,
258
324
  'Hub 3': undefined,
259
- 'Bot': undefined,
260
- 'Humidifier': undefined,
261
- 'Humidifier2': undefined,
262
- 'Air Purifier Table PM2.5': undefined,
263
- 'Air Purifier VOC': undefined,
264
- 'Air Purifier Table VOC': undefined,
325
+ 'Bot': OnOffSwitchAccessory,
326
+ 'Humidifier': HumiditySensorAccessory,
327
+ 'Humidifier2': HumiditySensorAccessory,
328
+ 'Air Purifier Table PM2.5': HumiditySensorAccessory,
329
+ 'Air Purifier VOC': HumiditySensorAccessory,
330
+ 'Air Purifier Table VOC': HumiditySensorAccessory,
265
331
  };
266
332
  const Ctor = mapping[dev.deviceType ?? ''];
267
333
  if (!Ctor) {
@@ -271,8 +337,10 @@ export class SwitchBotMatterPlatform {
271
337
  // Build opts and handlers tailored for basic capabilities
272
338
  const uuid = baseOpts.uuid;
273
339
  const handlers = {};
340
+ // Choose connection type for this device (BLE vs OpenAPI)
341
+ const connectionType = this.chooseConnectionType(dev);
274
342
  // On/Off common
275
- handlers.onOff = makeOnOffHandlers(uuid).onOff;
343
+ handlers.onOff = makeOnOffHandlers(uuid, connectionType).onOff;
276
344
  // If this is a light, add brightness and color handlers
277
345
  if (['Color Bulb', 'Ceiling Light', 'Ceiling Light Pro', 'Strip Light', 'Dimmable Light'].includes(dev.deviceType ?? '')) {
278
346
  // levelControl
@@ -281,7 +349,7 @@ export class SwitchBotMatterPlatform {
281
349
  try {
282
350
  const level = request.level;
283
351
  const percent = Math.round((level / 254) * 100);
284
- if (this.config.options?.BLE && this.switchBotBLE) {
352
+ if (connectionType === 'BLE' && this.switchBotBLE) {
285
353
  await sendBLE('setBrightness', percent);
286
354
  }
287
355
  else {
@@ -301,7 +369,7 @@ export class SwitchBotMatterPlatform {
301
369
  const hue = request.hue;
302
370
  const saturation = request.saturation;
303
371
  const [r, g, b] = hs2rgb(Math.round((hue / 254) * 360), Math.round((saturation / 254) * 100));
304
- if (this.config.options?.BLE && this.switchBotBLE) {
372
+ if (connectionType === 'BLE' && this.switchBotBLE) {
305
373
  await sendBLE('setRGB', Number(request.level ?? 100), r, g, b);
306
374
  }
307
375
  else {
@@ -322,7 +390,7 @@ export class SwitchBotMatterPlatform {
322
390
  const hueApprox = Math.round((colorX / 65535) * 360);
323
391
  const satApprox = Math.round((colorY / 65535) * 100);
324
392
  const [r, g, b] = hs2rgb(hueApprox, satApprox);
325
- if (this.config.options?.BLE && this.switchBotBLE) {
393
+ if (connectionType === 'BLE' && this.switchBotBLE) {
326
394
  await sendBLE('setRGB', Number(request.level ?? 100), r, g, b);
327
395
  }
328
396
  else {
@@ -340,7 +408,7 @@ export class SwitchBotMatterPlatform {
340
408
  moveToColorTemperature: async (request) => {
341
409
  try {
342
410
  const kelvin = Math.round(1000000 / Number(request.colorTemperature));
343
- if (this.config.options?.BLE && this.switchBotBLE) {
411
+ if (connectionType === 'BLE' && this.switchBotBLE) {
344
412
  await sendBLE('setColorTemperature', kelvin);
345
413
  }
346
414
  else {
@@ -580,7 +648,9 @@ export class SwitchBotMatterPlatform {
580
648
  if (this.discoveredDevices && this.discoveredDevices.length > 0) {
581
649
  this.log.info(`Registering ${this.discoveredDevices.length} discovered SwitchBot device(s) as Matter accessories`);
582
650
  const accessories = [];
583
- for (const dev of this.discoveredDevices) {
651
+ // Merge device config (deviceConfig per deviceType and per-device overrides) to match HAP behavior
652
+ const devicesToProcess = await this.mergeDiscoveredDevices(this.discoveredDevices);
653
+ for (const dev of devicesToProcess) {
584
654
  try {
585
655
  const acc = await this.createAccessoryFromDevice(dev);
586
656
  if (acc) {
@@ -1 +1 @@
1
- {"version":3,"file":"platform-matter.js","sourceRoot":"","sources":["../src/platform-matter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-matter.js","sourceRoot":"","sources":["../src/platform-matter.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/3bc1dfbedf076cfe6f3c8193aec41196e04b9c10/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/c6fa3e6551770e5b18269e6085101e8852df0588/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.7",
5
+ "version": "5.0.0-beta.9",
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": [
package/src/index.ts CHANGED
@@ -12,9 +12,30 @@ import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js'
12
12
  export default (api: API): void => {
13
13
  // Call the instance method on the runtime `api` object (optional chaining in case
14
14
  // older homebridge doesn't provide it). Treat undefined as false.
15
- const isMatter = typeof api.isMatterEnabled === 'function'
16
- ? Boolean(api.isMatterEnabled())
17
- : Boolean((api as any).isMatterEnabled)
15
+ const isMatter = (() => {
16
+ try {
17
+ const maybeFnOrProp = (api as any).isMatterEnabled
18
+ if (typeof maybeFnOrProp === 'function') {
19
+ return Boolean(maybeFnOrProp.call(api))
20
+ }
21
+ if (typeof maybeFnOrProp !== 'undefined') {
22
+ return Boolean(maybeFnOrProp)
23
+ }
24
+
25
+ // Some Homebridge beta versions expose Matter info on an internal server object
26
+ const server = (api as any).server ?? (api as any).homebridgeServer ?? (api as any).homebridge_server
27
+ const serverFn = server?.isMatterEnabled
28
+ if (typeof serverFn === 'function') {
29
+ return Boolean(serverFn.call(server))
30
+ }
31
+ if (typeof server?.isMatterEnabled !== 'undefined') {
32
+ return Boolean(server.isMatterEnabled)
33
+ }
34
+ } catch (e) {
35
+ // ignore and fall through to false
36
+ }
37
+ return false
38
+ })()
18
39
 
19
40
  const log = (api as any).logger ?? (api as any).log ?? console
20
41
  log.info?.(`Homebridge SwitchBot Plugin initializing in ${isMatter ? 'Matter' : 'HAP'} mode.`)
@@ -153,6 +153,81 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
153
153
  })
154
154
  }
155
155
 
156
+ /**
157
+ * Normalize a deviceId for matching (uppercase alphanumerics only)
158
+ */
159
+ private normalizeDeviceId(deviceId: string) {
160
+ return (deviceId ?? '').toUpperCase().replace(/[^A-Z0-9]+/g, '')
161
+ }
162
+
163
+ /**
164
+ * Merge two arrays by deviceId. For each item in a1 (user-provided devices list),
165
+ * find matching item in a2 (discovered devices) and merge them with user overrides last.
166
+ */
167
+ private mergeByDeviceId(a1: { deviceId: string }[], a2: any[]) {
168
+ return a1.map((itm) => {
169
+ const matchingItem = a2.find(item => this.normalizeDeviceId(item.deviceId) === this.normalizeDeviceId(itm.deviceId))
170
+ return Object.assign({}, matchingItem, itm)
171
+ })
172
+ }
173
+
174
+ /**
175
+ * Merge discovered devices with deviceConfig (per deviceType) and per-device overrides
176
+ * from `config.options.devices`, matching the behavior used in platform-hap.
177
+ */
178
+ private async mergeDiscoveredDevices(discovered: device[]): Promise<any[]> {
179
+ // If there's no device config or per-device config, return discovered as-is
180
+ if (!this.config.options?.devices && !this.config.options?.deviceConfig) {
181
+ return discovered
182
+ }
183
+
184
+ // Step 1: Assign missing deviceType from configDeviceType and merge deviceType-level configs
185
+ const devicesWithTypeConfig = await Promise.all(discovered.map(async (deviceObj) => {
186
+ if (!deviceObj.deviceType) {
187
+ deviceObj.deviceType = (deviceObj as any).configDeviceType !== undefined ? (deviceObj as any).configDeviceType : 'Unknown'
188
+ this.log.debug(`API missing deviceType for ${deviceObj.deviceId}, using configDeviceType: ${(deviceObj as any).configDeviceType}`)
189
+ }
190
+ const deviceTypeConfig = this.config.options?.deviceConfig?.[deviceObj.deviceType] || {}
191
+ return Object.assign({}, deviceObj, deviceTypeConfig)
192
+ }))
193
+
194
+ // Merge per-device overrides by matching deviceId
195
+ const merged = this.mergeByDeviceId(this.config.options?.devices ?? [], devicesWithTypeConfig ?? [])
196
+
197
+ // For any entries in merged (which are based on config.options.devices), ensure final per-device merges include deviceId-specific config
198
+ const final: any[] = []
199
+ for (const device of merged) {
200
+ const deviceIdConfig = this.config.options?.devices?.[device.deviceId] || {}
201
+ const deviceWithConfig = Object.assign({}, device, deviceIdConfig)
202
+ final.push(deviceWithConfig)
203
+ }
204
+
205
+ // Also include any discovered devices that weren't present in the user devices list
206
+ const userDeviceIds = new Set((this.config.options?.devices || []).map((d: any) => this.normalizeDeviceId(d.deviceId)))
207
+ for (const d of devicesWithTypeConfig) {
208
+ if (!userDeviceIds.has(this.normalizeDeviceId(d.deviceId))) {
209
+ final.push(d)
210
+ }
211
+ }
212
+
213
+ return final
214
+ }
215
+
216
+ /**
217
+ * Select effective connection type for a device: prefer explicit device.connectionType,
218
+ * otherwise prefer BLE when platform BLE is enabled and device provides a BLE model/id.
219
+ */
220
+ private chooseConnectionType(deviceObj: any): 'BLE' | 'OpenAPI' {
221
+ if (deviceObj?.connectionType) {
222
+ return deviceObj.connectionType === 'BLE' ? 'BLE' : 'OpenAPI'
223
+ }
224
+ // If platform BLE is enabled and we have a bleModel or deviceId that formats to a MAC, prefer BLE
225
+ if (this.config.options?.BLE && (deviceObj?.bleModel || formatDeviceIdAsMac(deviceObj?.deviceId))) {
226
+ return 'BLE'
227
+ }
228
+ return 'OpenAPI'
229
+ }
230
+
156
231
  /**
157
232
  * Map a SwitchBot device object to a MatterAccessory using the device-specific
158
233
  * Matter accessory classes in `src/devices-matter`.
@@ -218,11 +293,11 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
218
293
  throw new Error('BLE operation failed')
219
294
  }
220
295
 
221
- const makeOnOffHandlers = (uuid: string) => ({
296
+ const makeOnOffHandlers = (uuid: string, connectionType: 'BLE' | 'OpenAPI') => ({
222
297
  onOff: {
223
298
  on: async () => {
224
299
  try {
225
- if (this.config.options?.BLE && this.switchBotBLE) {
300
+ if (connectionType === 'BLE' && this.switchBotBLE) {
226
301
  await sendBLE('turnOn')
227
302
  } else {
228
303
  await sendOpenAPI('turnOn')
@@ -234,7 +309,7 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
234
309
  },
235
310
  off: async () => {
236
311
  try {
237
- if (this.config.options?.BLE && this.switchBotBLE) {
312
+ if (connectionType === 'BLE' && this.switchBotBLE) {
238
313
  await sendBLE('turnOff')
239
314
  } else {
240
315
  await sendOpenAPI('turnOff')
@@ -301,12 +376,12 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
301
376
  // Misc
302
377
  'Hub 2': undefined,
303
378
  'Hub 3': undefined,
304
- 'Bot': undefined,
305
- 'Humidifier': undefined,
306
- 'Humidifier2': undefined,
307
- 'Air Purifier Table PM2.5': undefined,
308
- 'Air Purifier VOC': undefined,
309
- 'Air Purifier Table VOC': undefined,
379
+ 'Bot': OnOffSwitchAccessory,
380
+ 'Humidifier': HumiditySensorAccessory,
381
+ 'Humidifier2': HumiditySensorAccessory,
382
+ 'Air Purifier Table PM2.5': HumiditySensorAccessory,
383
+ 'Air Purifier VOC': HumiditySensorAccessory,
384
+ 'Air Purifier Table VOC': HumiditySensorAccessory,
310
385
  }
311
386
 
312
387
  const Ctor = mapping[dev.deviceType ?? '']
@@ -319,8 +394,11 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
319
394
  const uuid = baseOpts.uuid
320
395
  const handlers: Record<string, any> = {}
321
396
 
397
+ // Choose connection type for this device (BLE vs OpenAPI)
398
+ const connectionType = this.chooseConnectionType(dev)
399
+
322
400
  // On/Off common
323
- handlers.onOff = makeOnOffHandlers(uuid).onOff
401
+ handlers.onOff = makeOnOffHandlers(uuid, connectionType).onOff
324
402
 
325
403
  // If this is a light, add brightness and color handlers
326
404
  if (['Color Bulb', 'Ceiling Light', 'Ceiling Light Pro', 'Strip Light', 'Dimmable Light'].includes(dev.deviceType ?? '')) {
@@ -330,7 +408,7 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
330
408
  try {
331
409
  const level = request.level as number
332
410
  const percent = Math.round((level / 254) * 100)
333
- if (this.config.options?.BLE && this.switchBotBLE) {
411
+ if (connectionType === 'BLE' && this.switchBotBLE) {
334
412
  await sendBLE('setBrightness', percent)
335
413
  } else {
336
414
  await sendOpenAPI('setBrightness', `${percent}`)
@@ -349,7 +427,7 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
349
427
  const hue = request.hue as number
350
428
  const saturation = request.saturation as number
351
429
  const [r, g, b] = hs2rgb(Math.round((hue / 254) * 360), Math.round((saturation / 254) * 100))
352
- if (this.config.options?.BLE && this.switchBotBLE) {
430
+ if (connectionType === 'BLE' && this.switchBotBLE) {
353
431
  await sendBLE('setRGB', Number(request.level ?? 100), r, g, b)
354
432
  } else {
355
433
  await sendOpenAPI('setColor', `${r}:${g}:${b}`)
@@ -368,7 +446,7 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
368
446
  const hueApprox = Math.round((colorX / 65535) * 360)
369
447
  const satApprox = Math.round((colorY / 65535) * 100)
370
448
  const [r, g, b] = hs2rgb(hueApprox, satApprox)
371
- if (this.config.options?.BLE && this.switchBotBLE) {
449
+ if (connectionType === 'BLE' && this.switchBotBLE) {
372
450
  await sendBLE('setRGB', Number(request.level ?? 100), r, g, b)
373
451
  } else {
374
452
  await sendOpenAPI('setColor', `${r}:${g}:${b}`)
@@ -385,7 +463,7 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
385
463
  moveToColorTemperature: async (request: any) => {
386
464
  try {
387
465
  const kelvin = Math.round(1000000 / Number(request.colorTemperature))
388
- if (this.config.options?.BLE && this.switchBotBLE) {
466
+ if (connectionType === 'BLE' && this.switchBotBLE) {
389
467
  await sendBLE('setColorTemperature', kelvin)
390
468
  } else {
391
469
  await sendOpenAPI('setColorTemperature', `${kelvin}`)
@@ -647,7 +725,11 @@ export class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
647
725
  if (this.discoveredDevices && this.discoveredDevices.length > 0) {
648
726
  this.log.info(`Registering ${this.discoveredDevices.length} discovered SwitchBot device(s) as Matter accessories`)
649
727
  const accessories: Array<MatterAccessory<Record<string, unknown>>> = []
650
- for (const dev of this.discoveredDevices) {
728
+
729
+ // Merge device config (deviceConfig per deviceType and per-device overrides) to match HAP behavior
730
+ const devicesToProcess = await this.mergeDiscoveredDevices(this.discoveredDevices)
731
+
732
+ for (const dev of devicesToProcess) {
651
733
  try {
652
734
  const acc = await this.createAccessoryFromDevice(dev)
653
735
  if (acc) {