@switchbot/homebridge-switchbot 4.1.6-beta.1 → 4.1.6-beta.11

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.
Files changed (52) hide show
  1. package/README.md +1 -0
  2. package/config.schema.json +42 -29
  3. package/dist/device/colorbulb.js +19 -19
  4. package/dist/device/colorbulb.js.map +1 -1
  5. package/dist/device/curtain.d.ts.map +1 -1
  6. package/dist/device/curtain.js +4 -5
  7. package/dist/device/curtain.js.map +1 -1
  8. package/dist/device/device.d.ts +1 -1
  9. package/dist/device/device.d.ts.map +1 -1
  10. package/dist/device/device.js +9 -1
  11. package/dist/device/device.js.map +1 -1
  12. package/dist/device/fan.d.ts.map +1 -1
  13. package/dist/device/fan.js +2 -3
  14. package/dist/device/fan.js.map +1 -1
  15. package/dist/device/humidifier.d.ts +4 -4
  16. package/dist/device/humidifier.d.ts.map +1 -1
  17. package/dist/device/humidifier.js +1 -2
  18. package/dist/device/humidifier.js.map +1 -1
  19. package/dist/device/lightstrip.js +2 -2
  20. package/dist/device/lightstrip.js.map +1 -1
  21. package/dist/device/lock.d.ts.map +1 -1
  22. package/dist/device/lock.js +2 -2
  23. package/dist/device/lock.js.map +1 -1
  24. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  25. package/dist/device/robotvacuumcleaner.js +2 -3
  26. package/dist/device/robotvacuumcleaner.js.map +1 -1
  27. package/dist/platform.d.ts +1 -1
  28. package/dist/platform.d.ts.map +1 -1
  29. package/dist/platform.js +6 -5
  30. package/dist/platform.js.map +1 -1
  31. package/dist/settings.d.ts +2 -1
  32. package/dist/settings.d.ts.map +1 -1
  33. package/dist/settings.js.map +1 -1
  34. package/dist/utils.d.ts +7 -0
  35. package/dist/utils.d.ts.map +1 -1
  36. package/dist/utils.js +18 -0
  37. package/dist/utils.js.map +1 -1
  38. package/docs/assets/main.js +3 -3
  39. package/docs/assets/style.css +14 -0
  40. package/docs/functions/default.html +1 -1
  41. package/package.json +13 -13
  42. package/src/device/colorbulb.ts +19 -19
  43. package/src/device/curtain.ts +4 -5
  44. package/src/device/device.ts +9 -1
  45. package/src/device/fan.ts +2 -3
  46. package/src/device/humidifier.ts +8 -9
  47. package/src/device/lightstrip.ts +2 -2
  48. package/src/device/lock.ts +3 -3
  49. package/src/device/robotvacuumcleaner.ts +2 -3
  50. package/src/platform.ts +13 -12
  51. package/src/settings.ts +2 -1
  52. package/src/utils.ts +19 -0
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEtC,OAAO,KAAK,EAAkC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAarI,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEvH,OAAO,EAAY,YAAY,EAAkB,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAkCzF;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;IAEtD,WAAW,EAAE,iBAAiB,EAAE,CAAK;IAC5C,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAG5B,cAAc,EAAG,uBAAuB,CAAA;IACxC,eAAe,EAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACpC,mBAAmB,EAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,gBAAgB,EAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACtC,kBAAkB,EAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1C,kBAAkB,EAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1C,2BAA2B,EAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC5D,MAAM,EAAG,uBAAuB,CAAA;IAChC,SAAS,EAAG,OAAO,CAAA;IACnB,OAAO,EAAG,MAAM,CAAA;IAGhB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAO;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAO;IAG1C,YAAY,EAAG,gBAAgB,CAAA;IAC/B,YAAY,EAAG,YAAY,CAAA;IAG3B,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,WAAW,EAAE,GAAG,CAAA;IAGhC,SAAgB,mBAAmB,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAK;IACjF,SAAgB,eAAe,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAK;gBAG3E,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,GAAG;IAmHJ,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B1B,YAAY;IA6BZ,QAAQ;IAuEd;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAQrD;;OAEG;IACG,YAAY;IAmDZ,eAAe;YAiCP,kBAAkB;IAsBhC,OAAO,CAAC,oBAAoB;YAId,aAAa;YAqDb,eAAe;IA2C7B,OAAO,CAAC,eAAe;YAQT,mBAAmB;YAQnB,YAAY;YAgDZ,cAAc;YA2Cd,gBAAgB;YA6DhB,SAAS;YA+DT,WAAW;YA8DX,eAAe;YA+Df,cAAc;YA+Dd,UAAU;YA+DV,cAAc;YA8Dd,mBAAmB;YA8DnB,YAAY;YA8DZ,aAAa;YA8Db,eAAe;YA6Ef,aAAa;YA6Eb,UAAU;YAsEV,UAAU;YA8DV,eAAe;YA8Df,kBAAkB;YA8DlB,gBAAgB;YA8DhB,SAAS;YA8DT,wBAAwB;YAkFxB,QAAQ;YAsDR,WAAW;YA4DX,WAAW;YA4DX,oBAAoB;YA4DpB,iBAAiB;YA4DjB,iBAAiB;YA4DjB,mBAAmB;YA4DnB,YAAY;YA4DZ,YAAY;IA4DpB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAclE,sBAAsB,CAAC,MAAM,EAAE,CAAC,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,aAAa;IA8B/E,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAU7F,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAgB7C,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBnE,kBAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,iBAAiB;IAatH,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAOzE;;;;;OAKG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC7C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;IA2B/K,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAWtF,yBAAyB;IAkBzB,uBAAuB;IAuBvB,sBAAsB;IAU5B;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;;OAMG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCpG;;;OAGG;IACG,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlD"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -34,7 +34,7 @@ import { TV } from './irdevice/tv.js';
34
34
  import { VacuumCleaner } from './irdevice/vacuumcleaner.js';
35
35
  import { WaterHeater } from './irdevice/waterheater.js';
36
36
  import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
37
- import { formatDeviceIdAsMac, isBlindTiltDevice, isCurtainDevice, sleep } from './utils.js';
37
+ import { formatDeviceIdAsMac, isBlindTiltDevice, isCurtainDevice, safeStringify, sleep } from './utils.js';
38
38
  /**
39
39
  * HomebridgePlatform
40
40
  * This class is the main constructor for your plugin, this is where you should
@@ -103,7 +103,7 @@ export class SwitchBotPlatform {
103
103
  }
104
104
  // SwitchBot OpenAPI
105
105
  if (this.config.credentials?.token && this.config.credentials?.secret) {
106
- this.switchBotAPI = new SwitchBotOpenAPI(this.config.credentials.token, this.config.credentials.secret);
106
+ this.switchBotAPI = new SwitchBotOpenAPI(this.config.credentials.token, this.config.credentials.secret, this.config.options?.hostname);
107
107
  }
108
108
  else {
109
109
  this.debugErrorLog('Missing SwitchBot API credentials (token or secret).');
@@ -536,6 +536,7 @@ export class SwitchBotPlatform {
536
536
  async createDevice(device) {
537
537
  const deviceTypeHandlers = {
538
538
  'Humidifier': this.createHumidifier.bind(this),
539
+ 'Humidifier2': this.createHumidifier.bind(this),
539
540
  'Hub 2': this.createHub2.bind(this),
540
541
  'Bot': this.createBot.bind(this),
541
542
  'Meter': this.createMeter.bind(this),
@@ -635,7 +636,7 @@ export class SwitchBotPlatform {
635
636
  existingAccessory.context.device = device;
636
637
  existingAccessory.context.deviceId = device.deviceId;
637
638
  existingAccessory.context.deviceType = device.deviceType;
638
- existingAccessory.context.model = SwitchBotModel.Humidifier;
639
+ existingAccessory.context.model = device.deviceType === 'Humidifier2' ? SwitchBotModel.Humidifier2 : SwitchBotModel.Humidifier;
639
640
  existingAccessory.displayName = device.configDeviceName
640
641
  ? await this.validateAndCleanDisplayName(device.configDeviceName, 'configDeviceName', device.configDeviceName)
641
642
  : await this.validateAndCleanDisplayName(device.deviceName, 'deviceName', device.deviceName);
@@ -662,7 +663,7 @@ export class SwitchBotPlatform {
662
663
  accessory.context.device = device;
663
664
  accessory.context.deviceId = device.deviceId;
664
665
  accessory.context.deviceType = device.deviceType;
665
- accessory.context.model = SwitchBotModel.Humidifier;
666
+ accessory.context.model = device.deviceType === 'Humidifier2' ? SwitchBotModel.Humidifier2 : SwitchBotModel.Humidifier;
666
667
  accessory.displayName = device.configDeviceName
667
668
  ? await this.validateAndCleanDisplayName(device.configDeviceName, 'configDeviceName', device.configDeviceName)
668
669
  : await this.validateAndCleanDisplayName(device.deviceName, 'deviceName', device.deviceName);
@@ -2517,7 +2518,7 @@ export class SwitchBotPlatform {
2517
2518
  async connectBLE(accessory, device) {
2518
2519
  try {
2519
2520
  queueScheduler.schedule(async () => this.switchBotBLE);
2520
- this.debugLog(`${device.deviceType}: ${accessory.displayName} 'node-switchbot' found: ${this.switchBotBLE}`);
2521
+ this.debugLog(`${device.deviceType}: ${accessory.displayName} 'node-switchbot' found: ${safeStringify(this.switchBotBLE)}`);
2521
2522
  return this.switchBotBLE;
2522
2523
  }
2523
2524
  catch (e) {