@switchbot/homebridge-switchbot 3.5.0 → 3.5.1-beta.1

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 (137) hide show
  1. package/.github/npm-version-script.cjs +81 -0
  2. package/config.schema.json +4 -4
  3. package/dist/device/blindtilt.d.ts.map +1 -1
  4. package/dist/device/blindtilt.js +64 -189
  5. package/dist/device/blindtilt.js.map +1 -1
  6. package/dist/device/bot.d.ts.map +1 -1
  7. package/dist/device/bot.js +34 -68
  8. package/dist/device/bot.js.map +1 -1
  9. package/dist/device/ceilinglight.d.ts +1 -1
  10. package/dist/device/ceilinglight.d.ts.map +1 -1
  11. package/dist/device/ceilinglight.js +65 -158
  12. package/dist/device/ceilinglight.js.map +1 -1
  13. package/dist/device/colorbulb.d.ts +1 -1
  14. package/dist/device/colorbulb.d.ts.map +1 -1
  15. package/dist/device/colorbulb.js +47 -159
  16. package/dist/device/colorbulb.js.map +1 -1
  17. package/dist/device/contact.d.ts.map +1 -1
  18. package/dist/device/contact.js +42 -105
  19. package/dist/device/contact.js.map +1 -1
  20. package/dist/device/curtain.d.ts +1 -0
  21. package/dist/device/curtain.d.ts.map +1 -1
  22. package/dist/device/curtain.js +61 -182
  23. package/dist/device/curtain.js.map +1 -1
  24. package/dist/device/device.d.ts +41 -2
  25. package/dist/device/device.d.ts.map +1 -1
  26. package/dist/device/device.js +182 -5
  27. package/dist/device/device.js.map +1 -1
  28. package/dist/device/fan.d.ts.map +1 -1
  29. package/dist/device/fan.js +76 -145
  30. package/dist/device/fan.js.map +1 -1
  31. package/dist/device/hub.d.ts +7 -1
  32. package/dist/device/hub.d.ts.map +1 -1
  33. package/dist/device/hub.js +54 -17
  34. package/dist/device/hub.js.map +1 -1
  35. package/dist/device/humidifier.d.ts.map +1 -1
  36. package/dist/device/humidifier.js +55 -104
  37. package/dist/device/humidifier.js.map +1 -1
  38. package/dist/device/iosensor.d.ts.map +1 -1
  39. package/dist/device/iosensor.js +27 -46
  40. package/dist/device/iosensor.js.map +1 -1
  41. package/dist/device/lightstrip.d.ts +1 -1
  42. package/dist/device/lightstrip.d.ts.map +1 -1
  43. package/dist/device/lightstrip.js +56 -120
  44. package/dist/device/lightstrip.js.map +1 -1
  45. package/dist/device/lock.d.ts +1 -1
  46. package/dist/device/lock.d.ts.map +1 -1
  47. package/dist/device/lock.js +36 -66
  48. package/dist/device/lock.js.map +1 -1
  49. package/dist/device/meter.d.ts.map +1 -1
  50. package/dist/device/meter.js +27 -46
  51. package/dist/device/meter.js.map +1 -1
  52. package/dist/device/meterplus.d.ts.map +1 -1
  53. package/dist/device/meterplus.js +26 -45
  54. package/dist/device/meterplus.js.map +1 -1
  55. package/dist/device/motion.d.ts.map +1 -1
  56. package/dist/device/motion.js +24 -43
  57. package/dist/device/motion.js.map +1 -1
  58. package/dist/device/plug.d.ts.map +1 -1
  59. package/dist/device/plug.js +32 -66
  60. package/dist/device/plug.js.map +1 -1
  61. package/dist/device/robotvacuumcleaner.d.ts +1 -1
  62. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  63. package/dist/device/robotvacuumcleaner.js +43 -88
  64. package/dist/device/robotvacuumcleaner.js.map +1 -1
  65. package/dist/device/waterdetector.d.ts.map +1 -1
  66. package/dist/device/waterdetector.js +23 -43
  67. package/dist/device/waterdetector.js.map +1 -1
  68. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  69. package/dist/irdevice/airconditioner.js +10 -28
  70. package/dist/irdevice/airconditioner.js.map +1 -1
  71. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  72. package/dist/irdevice/airpurifier.js +8 -20
  73. package/dist/irdevice/airpurifier.js.map +1 -1
  74. package/dist/irdevice/camera.d.ts.map +1 -1
  75. package/dist/irdevice/camera.js +8 -20
  76. package/dist/irdevice/camera.js.map +1 -1
  77. package/dist/irdevice/fan.d.ts.map +1 -1
  78. package/dist/irdevice/fan.js +8 -20
  79. package/dist/irdevice/fan.js.map +1 -1
  80. package/dist/irdevice/irdevice.d.ts +7 -0
  81. package/dist/irdevice/irdevice.d.ts.map +1 -1
  82. package/dist/irdevice/irdevice.js +28 -0
  83. package/dist/irdevice/irdevice.js.map +1 -1
  84. package/dist/irdevice/light.d.ts.map +1 -1
  85. package/dist/irdevice/light.js +8 -20
  86. package/dist/irdevice/light.js.map +1 -1
  87. package/dist/irdevice/other.d.ts.map +1 -1
  88. package/dist/irdevice/other.js +8 -20
  89. package/dist/irdevice/other.js.map +1 -1
  90. package/dist/irdevice/tv.d.ts.map +1 -1
  91. package/dist/irdevice/tv.js +8 -20
  92. package/dist/irdevice/tv.js.map +1 -1
  93. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  94. package/dist/irdevice/vacuumcleaner.js +8 -20
  95. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  96. package/dist/irdevice/waterheater.d.ts.map +1 -1
  97. package/dist/irdevice/waterheater.js +8 -20
  98. package/dist/irdevice/waterheater.js.map +1 -1
  99. package/dist/settings.d.ts +4 -2
  100. package/dist/settings.d.ts.map +1 -1
  101. package/dist/settings.js.map +1 -1
  102. package/dist/utils.d.ts +19 -1
  103. package/dist/utils.d.ts.map +1 -1
  104. package/dist/utils.js +20 -1
  105. package/dist/utils.js.map +1 -1
  106. package/package.json +8 -8
  107. package/src/device/blindtilt.ts +71 -186
  108. package/src/device/bot.ts +32 -68
  109. package/src/device/ceilinglight.ts +67 -153
  110. package/src/device/colorbulb.ts +51 -155
  111. package/src/device/contact.ts +49 -104
  112. package/src/device/curtain.ts +70 -177
  113. package/src/device/device.ts +207 -8
  114. package/src/device/fan.ts +75 -147
  115. package/src/device/hub.ts +55 -19
  116. package/src/device/humidifier.ts +52 -104
  117. package/src/device/iosensor.ts +25 -46
  118. package/src/device/lightstrip.ts +54 -121
  119. package/src/device/lock.ts +35 -67
  120. package/src/device/meter.ts +25 -46
  121. package/src/device/meterplus.ts +24 -45
  122. package/src/device/motion.ts +22 -43
  123. package/src/device/plug.ts +30 -66
  124. package/src/device/robotvacuumcleaner.ts +40 -89
  125. package/src/device/waterdetector.ts +22 -43
  126. package/src/irdevice/airconditioner.ts +10 -26
  127. package/src/irdevice/airpurifier.ts +8 -20
  128. package/src/irdevice/camera.ts +8 -20
  129. package/src/irdevice/fan.ts +8 -20
  130. package/src/irdevice/irdevice.ts +29 -0
  131. package/src/irdevice/light.ts +8 -20
  132. package/src/irdevice/other.ts +8 -20
  133. package/src/irdevice/tv.ts +8 -20
  134. package/src/irdevice/vacuumcleaner.ts +8 -20
  135. package/src/irdevice/waterheater.ts +8 -20
  136. package/src/settings.ts +4 -2
  137. package/src/utils.ts +20 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fan.d.ts","sourceRoot":"","sources":["../../src/device/fan.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAgD,MAAM,MAAM,CAAC;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvF,qBAAa,GAAI,SAAQ,UAAU;IA8B/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IA5BtC,OAAO,CAAC,GAAG,CAMT;IAEF,OAAO,CAAC,OAAO,CAMb;IAEF,OAAO,CAAC,SAAS,CAKf;IAGF,mBAAmB,EAAG,OAAO,CAAC;IAC9B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGjB,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IA2I1B,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD,kBAAkB,CAAC,YAAY,EAAE,YAAY;IAiDnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrC,eAAe,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAkDlF;;;;;;;;OAQG;IAEG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD/B,kBAAkB;IAsDlB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCzC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C3C;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD7C,iBAAiB;IAOjB,oBAAoB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtC"}
1
+ {"version":3,"file":"fan.d.ts","sourceRoot":"","sources":["../../src/device/fan.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAgD,MAAM,MAAM,CAAC;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvF,qBAAa,GAAI,SAAQ,UAAU;IA8B/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IA5BtC,OAAO,CAAC,GAAG,CAMT;IAEF,OAAO,CAAC,OAAO,CAMb;IAEF,OAAO,CAAC,SAAS,CAKf;IAGF,mBAAmB,EAAG,OAAO,CAAC;IAC9B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGjB,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IA2I1B,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD,kBAAkB,CAAC,YAAY,EAAE,YAAY;IA+CnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrC,eAAe,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAkDlF;;;;;;;;OAQG;IAEG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC/B,kBAAkB;IA4ClB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BzC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3C;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD7C,iBAAiB;IAOjB,oBAAoB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtC"}
@@ -2,9 +2,7 @@
2
2
  *
3
3
  * plug.ts: @switchbot/homebridge-switchbot.
4
4
  */
5
- import { request } from 'undici';
6
5
  import { deviceBase } from './device.js';
7
- import { Devices } from '../settings.js';
8
6
  import { Subject, debounceTime, interval, skipWhile, take, tap } from 'rxjs';
9
7
  export class Fan extends deviceBase {
10
8
  platform;
@@ -209,64 +207,46 @@ export class Fan extends deviceBase {
209
207
  }
210
208
  async BLERefreshStatus() {
211
209
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BLERefreshStatus`);
212
- const switchbot = await this.platform.connectBLE();
213
- // Convert to BLE Address
214
- this.device.bleMac = this.device
215
- .deviceId.match(/.{1,2}/g)
216
- .join(':')
217
- .toLowerCase();
218
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
219
- this.getCustomBLEAddress(switchbot);
220
- // Start to monitor advertisement packets
221
- (async () => {
210
+ const switchbot = await this.switchbotBLE();
211
+ if (switchbot === undefined) {
212
+ await this.BLERefreshConnection(switchbot);
213
+ }
214
+ else {
222
215
  // Start to monitor advertisement packets
223
- await switchbot.startScan({ model: this.device.bleModel, id: this.device.bleMac });
224
- // Set an event handler
225
- switchbot.onadvertisement = (ad) => {
226
- if (this.device.bleMac === ad.address && ad.model === this.device.bleModel) {
227
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${JSON.stringify(ad, null, ' ')}`);
228
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} address: ${ad.address}, model: ${ad.model}`);
229
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
216
+ (async () => {
217
+ // Start to monitor advertisement packets
218
+ const serviceData = await this.monitorAdvertisementPackets(switchbot);
219
+ // Update HomeKit
220
+ if (serviceData.model !== '' && serviceData.modelName !== '') {
221
+ await this.BLEparseStatus(serviceData);
222
+ await this.updateHomeKitCharacteristics();
230
223
  }
231
224
  else {
232
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
225
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed to get serviceData, serviceData: ${serviceData}`);
226
+ await this.BLERefreshConnection(switchbot);
233
227
  }
234
- };
235
- // Wait 10 seconds
236
- await switchbot.wait(this.scanDuration * 1000);
237
- // Stop to monitor
238
- await switchbot.stopScan();
239
- // Update HomeKit
240
- await this.BLEparseStatus(switchbot.onadvertisement.serviceData);
241
- await this.updateHomeKitCharacteristics();
242
- })();
243
- if (switchbot === undefined) {
244
- await this.BLERefreshConnection(switchbot);
228
+ })();
245
229
  }
246
230
  }
247
231
  async openAPIRefreshStatus() {
248
232
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIRefreshStatus`);
249
233
  try {
250
- const { body, statusCode } = await this.platform.retryRequest(this.deviceMaxRetries, this.deviceDelayBetweenRetries, `${Devices}/${this.device.deviceId}/status`, { headers: this.platform.generateHeaders() });
251
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode}`);
234
+ const { body, statusCode } = await this.deviceRefreshStatus();
252
235
  const deviceStatus = await body.json();
253
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus: ${JSON.stringify(deviceStatus)}`);
254
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus statusCode: ${deviceStatus.statusCode}`);
236
+ await this.refreshStatusCodes(statusCode, deviceStatus);
237
+ ;
255
238
  if ((statusCode === 200 || statusCode === 100) && (deviceStatus.statusCode === 200 || deviceStatus.statusCode === 100)) {
256
- this.debugSuccessLog(`${this.device.deviceType}: ${this.accessory.displayName} `
257
- + `statusCode: ${statusCode} & deviceStatus StatusCode: ${deviceStatus.statusCode}`);
258
- this.openAPIparseStatus(deviceStatus);
259
- this.updateHomeKitCharacteristics();
239
+ await this.successfulRefreshStatus(statusCode, deviceStatus);
240
+ await this.openAPIparseStatus(deviceStatus);
241
+ await this.updateHomeKitCharacteristics();
260
242
  }
261
243
  else {
262
- this.statusCode(statusCode);
263
- this.statusCode(deviceStatus.statusCode);
244
+ await this.statusCodes(statusCode, deviceStatus);
264
245
  }
265
246
  }
266
247
  catch (e) {
267
- this.apiError(e);
268
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed openAPIRefreshStatus with ${this.device.connectionType}`
269
- + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
248
+ await this.apiError(e);
249
+ await this.openAPIRefreshError(e);
270
250
  }
271
251
  }
272
252
  async registerWebhook(accessory, device) {
@@ -335,8 +315,7 @@ export class Fan extends deviceBase {
335
315
  }
336
316
  else {
337
317
  await this.offlineOff();
338
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} Connection Type:`
339
- + ` ${this.device.connectionType}, pushChanges will not happen.`);
318
+ await this.pushChangeDisabled();
340
319
  }
341
320
  // Refresh the status from the API
342
321
  interval(15000)
@@ -353,16 +332,9 @@ export class Fan extends deviceBase {
353
332
  + ` On: ${this.Fan.Active} OnCached: ${this.accessory.context.Active}`);
354
333
  const switchbot = await this.platform.connectBLE();
355
334
  // Convert to BLE Address
356
- this.device.bleMac = this.device
357
- .deviceId.match(/.{1,2}/g)
358
- .join(':')
359
- .toLowerCase();
360
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
335
+ await this.convertBLEAddress();
361
336
  switchbot
362
- .discover({
363
- model: this.device.bleModel,
364
- id: this.device.bleMac,
365
- })
337
+ .discover({ model: this.device.bleModel, id: this.device.bleMac })
366
338
  .then(async (device_list) => {
367
339
  this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.Fan.Active}`);
368
340
  return await this.retryBLE({
@@ -377,16 +349,13 @@ export class Fan extends deviceBase {
377
349
  },
378
350
  });
379
351
  })
380
- .then(() => {
381
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Done.`);
382
- this.successLog(`${this.device.deviceType}: ${this.accessory.displayName} `
383
- + `Active: ${this.Fan.Active} sent over BLE, sent successfully`);
384
- this.Fan.Active = false;
352
+ .then(async () => {
353
+ await this.successfulPushChange_BLE('Active', this.Fan.Active, 'BLE API');
354
+ await this.updateHomeKitCharacteristics();
385
355
  })
386
356
  .catch(async (e) => {
387
- this.apiError(e);
388
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed BLEpushChanges with ${this.device.connectionType}`
389
- + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
357
+ await this.apiError(e);
358
+ await this.pushChangeError('BLEpushChanges', e);
390
359
  await this.BLEPushConnection();
391
360
  });
392
361
  }
@@ -412,31 +381,21 @@ export class Fan extends deviceBase {
412
381
  });
413
382
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${bodyChange},`);
414
383
  try {
415
- const { body, statusCode } = await request(`${Devices}/${this.device.deviceId}/commands`, {
416
- body: bodyChange,
417
- method: 'POST',
418
- headers: this.platform.generateHeaders(),
419
- });
420
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode}`);
384
+ const { body, statusCode } = await this.pushChangeRequest(bodyChange);
421
385
  const deviceStatus = await body.json();
422
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus: ${JSON.stringify(deviceStatus)}`);
423
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus body: ${JSON.stringify(deviceStatus.body)}`);
424
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus statusCode: ${deviceStatus.statusCode}`);
386
+ await this.pushStatusCodes(statusCode, deviceStatus);
425
387
  if ((statusCode === 200 || statusCode === 100) && (deviceStatus.statusCode === 200 || deviceStatus.statusCode === 100)) {
426
- this.debugErrorLog(`${this.device.deviceType}: ${this.accessory.displayName} `
427
- + `statusCode: ${statusCode} & deviceStatus StatusCode: ${deviceStatus.statusCode}`);
428
- this.successLog(`${this.device.deviceType}: ${this.accessory.displayName} `
429
- + `request to SwitchBot API, body: ${JSON.stringify(JSON.parse(bodyChange))} sent successfully`);
388
+ await this.successfulPushChange(statusCode, deviceStatus, bodyChange);
389
+ await this.updateHomeKitCharacteristics();
430
390
  }
431
391
  else {
432
- this.statusCode(statusCode);
433
- this.statusCode(deviceStatus.statusCode);
392
+ await this.statusCode(statusCode);
393
+ await this.statusCode(deviceStatus.statusCode);
434
394
  }
435
395
  }
436
396
  catch (e) {
437
397
  this.apiError(e);
438
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed openAPIpushChanges with ${this.device.connectionType}`
439
- + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
398
+ await this.pushChangeError('openAPIpushChanges', e);
440
399
  }
441
400
  }
442
401
  else {
@@ -453,105 +412,77 @@ export class Fan extends deviceBase {
453
412
  }
454
413
  }
455
414
  async pushRotationSpeedChanges() {
456
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} pushRotationSpeedChanges`);
415
+ await this.pushChange('pushRotationSpeedChanges');
457
416
  if (this.Fan.SwingMode !== this.accessory.context.SwingMode) {
458
417
  const bodyChange = JSON.stringify({
459
418
  command: 'setWindSpeed',
460
419
  parameter: `${this.Fan.RotationSpeed}`,
461
420
  commandType: 'command',
462
421
  });
463
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${bodyChange},`);
422
+ await this.bodyChange(bodyChange, 'SwitchBot OpenAPI');
464
423
  try {
465
- const { body, statusCode } = await request(`${Devices}/${this.device.deviceId}/commands`, {
466
- body: bodyChange,
467
- method: 'POST',
468
- headers: this.platform.generateHeaders(),
469
- });
470
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode}`);
424
+ const { body, statusCode } = await this.pushChangeRequest(bodyChange);
471
425
  const deviceStatus = await body.json();
472
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus: ${JSON.stringify(deviceStatus)}`);
473
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus body: ${JSON.stringify(deviceStatus.body)}`);
474
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus statusCode: ${deviceStatus.statusCode}`);
426
+ await this.pushStatusCodes(statusCode, deviceStatus);
475
427
  if ((statusCode === 200 || statusCode === 100) && (deviceStatus.statusCode === 200 || deviceStatus.statusCode === 100)) {
476
- this.debugErrorLog(`${this.device.deviceType}: ${this.accessory.displayName} `
477
- + `statusCode: ${statusCode} & deviceStatus StatusCode: ${deviceStatus.statusCode}`);
478
- this.successLog(`${this.device.deviceType}: ${this.accessory.displayName} `
479
- + `request to SwitchBot API, body: ${JSON.stringify(JSON.parse(bodyChange))} sent successfully`);
428
+ await this.successfulPushChange(statusCode, deviceStatus, bodyChange);
429
+ await this.updateHomeKitCharacteristics();
480
430
  }
481
431
  else {
482
- this.statusCode(statusCode);
483
- this.statusCode(deviceStatus.statusCode);
432
+ await this.statusCode(statusCode);
433
+ await this.statusCode(deviceStatus.statusCode);
484
434
  }
485
435
  }
486
436
  catch (e) {
487
437
  this.apiError(e);
488
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed pushRotationSpeedChanges with ${this.device.connectionType}`
489
- + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
438
+ await this.pushChangeError('pushRotationSpeedChanges', e);
490
439
  }
491
440
  }
492
441
  else {
493
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, pushRotationSpeedChanges: ${this.Fan.RotationSpeed}, `
494
- + `pushRotationSpeedChangesCached: ${this.accessory.context.RotationSpeed}`);
442
+ await this.noChanges('RotationSpeed', this.Fan.RotationSpeed, this.accessory.context.RotationSpeed);
495
443
  }
496
444
  }
497
445
  async pushSwingModeChanges() {
498
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} pushSwingModeChanges`);
446
+ await this.pushChange('pushSwingModeChanges');
499
447
  if (this.Fan.SwingMode !== this.accessory.context.SwingMode) {
500
- let parameter = '';
501
- if (this.Fan.SwingMode === this.hap.Characteristic.SwingMode.SWING_ENABLED) {
502
- parameter = 'on';
503
- }
504
- else {
505
- parameter = 'off';
506
- }
448
+ const parameter = this.Fan.SwingMode === this.hap.Characteristic.SwingMode.SWING_ENABLED ? 'on' : 'off';
507
449
  const bodyChange = JSON.stringify({
508
450
  command: 'setOscillation',
509
451
  parameter: `${parameter}`,
510
452
  commandType: 'command',
511
453
  });
512
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${bodyChange},`);
454
+ await this.bodyChange(bodyChange, 'SwitchBot OpenAPI');
513
455
  try {
514
- const { body, statusCode } = await request(`${Devices}/${this.device.deviceId}/commands`, {
515
- body: bodyChange,
516
- method: 'POST',
517
- headers: this.platform.generateHeaders(),
518
- });
519
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode}`);
456
+ const { body, statusCode } = await this.pushChangeRequest(bodyChange);
520
457
  const deviceStatus = await body.json();
521
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus: ${JSON.stringify(deviceStatus)}`);
522
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus body: ${JSON.stringify(deviceStatus.body)}`);
523
- this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus statusCode: ${deviceStatus.statusCode}`);
458
+ await this.pushStatusCodes(statusCode, deviceStatus);
524
459
  if ((statusCode === 200 || statusCode === 100) && (deviceStatus.statusCode === 200 || deviceStatus.statusCode === 100)) {
525
- this.debugErrorLog(`${this.device.deviceType}: ${this.accessory.displayName} `
526
- + `statusCode: ${statusCode} & deviceStatus StatusCode: ${deviceStatus.statusCode}`);
527
- this.successLog(`${this.device.deviceType}: ${this.accessory.displayName} `
528
- + `request to SwitchBot API, body: ${JSON.stringify(JSON.parse(bodyChange))} sent successfully`);
460
+ await this.successfulPushChange(statusCode, deviceStatus, bodyChange);
461
+ await this.updateHomeKitCharacteristics();
529
462
  }
530
463
  else {
531
- this.statusCode(statusCode);
532
- this.statusCode(deviceStatus.statusCode);
464
+ await this.statusCode(statusCode);
465
+ await this.statusCode(deviceStatus.statusCode);
533
466
  }
534
467
  }
535
468
  catch (e) {
536
469
  this.apiError(e);
537
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed pushSwingModeChanges with ${this.device.connectionType}`
538
- + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
470
+ await this.pushChangeError('pushSwingModeChanges', e);
539
471
  }
540
472
  }
541
473
  else {
542
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, SwingMode: ${this.Fan.SwingMode}, `
543
- + `SwingModeCached: ${this.accessory.context.SwingMode}`);
474
+ await this.noChanges('SwingMode', this.Fan.SwingMode, this.accessory.context.SwingMode);
544
475
  }
545
476
  }
546
477
  /**
547
478
  * Handle requests to set the value of the "On" characteristic
548
479
  */
549
480
  async ActiveSet(value) {
550
- if (this.Fan.Active === this.accessory.context.Active) {
551
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, Set Active: ${value}`);
481
+ if (this.Fan.Active !== this.accessory.context.Active) {
482
+ await this.changeSet(value, 'Active');
552
483
  }
553
484
  else {
554
- this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set Active: ${value}`);
485
+ await this.noChangeSet(value, 'Active');
555
486
  }
556
487
  this.Fan.Active = value;
557
488
  this.doFanUpdate.next();
@@ -560,11 +491,11 @@ export class Fan extends deviceBase {
560
491
  * Handle requests to set the value of the "On" characteristic
561
492
  */
562
493
  async RotationSpeedSet(value) {
563
- if (this.Fan.RotationSpeed === this.accessory.context.RotationSpeed) {
564
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, Set RotationSpeed: ${value}`);
494
+ if (this.Fan.RotationSpeed !== this.accessory.context.RotationSpeed) {
495
+ await this.changeSet(value, 'RotationSpeed');
565
496
  }
566
497
  else {
567
- this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set RotationSpeed: ${value}`);
498
+ await this.noChangeSet(value, 'RotationSpeed');
568
499
  }
569
500
  this.Fan.RotationSpeed = value;
570
501
  this.doFanUpdate.next();
@@ -573,11 +504,11 @@ export class Fan extends deviceBase {
573
504
  * Handle requests to set the value of the "On" characteristic
574
505
  */
575
506
  async SwingModeSet(value) {
576
- if (this.Fan.SwingMode === this.accessory.context.SwingMode) {
577
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, Set SwingMode: ${value}`);
507
+ if (this.Fan.SwingMode !== this.accessory.context.SwingMode) {
508
+ await this.changeSet(value, 'SwingMode');
578
509
  }
579
510
  else {
580
- this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set SwingMode: ${value}`);
511
+ await this.noChangeSet(value, 'SwingMode');
581
512
  }
582
513
  this.Fan.SwingMode = value;
583
514
  this.doFanUpdate.next();
@@ -586,11 +517,11 @@ export class Fan extends deviceBase {
586
517
  * Handle requests to set the value of the "On" characteristic
587
518
  */
588
519
  async OnSet(value) {
589
- if (this.LightBulb.On === this.accessory.context.On) {
590
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, Set On: ${value}`);
520
+ if (this.LightBulb.On !== this.accessory.context.On) {
521
+ await this.changeSet(value, 'On');
591
522
  }
592
523
  else {
593
- this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set On: ${value}`);
524
+ await this.noChangeSet(value, 'On');
594
525
  }
595
526
  this.LightBulb.On = value;
596
527
  this.doFanUpdate.next();
@@ -599,14 +530,14 @@ export class Fan extends deviceBase {
599
530
  * Handle requests to set the value of the "Brightness" characteristic
600
531
  */
601
532
  async BrightnessSet(value) {
602
- if (this.LightBulb.Brightness === this.accessory.context.Brightness) {
603
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, Set Brightness: ${value}`);
533
+ if (this.LightBulb.Brightness !== this.accessory.context.Brightness) {
534
+ await this.changeSet(value, 'Brightness');
604
535
  }
605
536
  else if (this.LightBulb.On) {
606
- this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set Brightness: ${value}`);
537
+ await this.changeSet(value, 'Brightness');
607
538
  }
608
539
  else {
609
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Set Brightness: ${value}`);
540
+ await this.noChangeSet(value, 'Brightness');
610
541
  }
611
542
  this.LightBulb.Brightness = value;
612
543
  this.doFanUpdate.next();
@@ -1 +1 @@
1
- {"version":3,"file":"fan.js","sourceRoot":"","sources":["../../src/device/fan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fan.js","sourceRoot":"","sources":["../../src/device/fan.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { deviceBase } from './device.js';
2
2
  import { Subject } from 'rxjs';
3
3
  import type { SwitchBotPlatform } from '../platform.js';
4
- import type { device, deviceStatus, devicesConfig } from '../settings.js';
5
4
  import type { PlatformAccessory } from 'homebridge';
5
+ import type { device, devicesConfig, serviceData, deviceStatus } from '../settings.js';
6
6
  export declare class Hub extends deviceBase {
7
7
  readonly platform: SwitchBotPlatform;
8
8
  private LightSensor?;
@@ -11,14 +11,20 @@ export declare class Hub extends deviceBase {
11
11
  hubUpdateInProgress: boolean;
12
12
  doHubUpdate: Subject<void>;
13
13
  constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
14
+ BLEparseStatus(serviceData: serviceData): Promise<void>;
14
15
  openAPIparseStatus(deviceStatus: deviceStatus): Promise<void>;
16
+ /**
17
+ * Asks the SwitchBot API for the latest device information
18
+ */
15
19
  refreshStatus(): Promise<void>;
20
+ BLERefreshStatus(): Promise<void>;
16
21
  openAPIRefreshStatus(): Promise<void>;
17
22
  registerWebhook(accessory: PlatformAccessory, device: device & devicesConfig): Promise<void>;
18
23
  /**
19
24
  * Handle requests to set the value of the "Target Position" characteristic
20
25
  */
21
26
  updateHomeKitCharacteristics(): Promise<void>;
27
+ BLERefreshConnection(switchbot: any): Promise<void>;
22
28
  offlineOff(): Promise<void>;
23
29
  apiError(e: any): Promise<void>;
24
30
  getLightLevel(lightLevel: any, set_minLux: number, set_maxLux: number, spaceBetweenLevels: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/device/hub.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,OAAO,EAAuB,MAAM,MAAM,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAElF,qBAAa,GAAI,SAAQ,UAAU;IAyB/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IAvBtC,OAAO,CAAC,WAAW,CAAC,CAIlB;IAEF,OAAO,CAAC,cAAc,CAAC,CAIrB;IAEF,OAAO,CAAC,iBAAiB,CAAC,CAIxB;IAGF,mBAAmB,EAAG,OAAO,CAAC;IAC9B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGjB,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IAiH1B,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrC,eAAe,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAuClF;;OAEG;IAEG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE7C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/B,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM;CAqFxG"}
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/device/hub.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAuB,MAAM,MAAM,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvF,qBAAa,GAAI,SAAQ,UAAU;IAyB/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IAvBtC,OAAO,CAAC,WAAW,CAAC,CAIlB;IAEF,OAAO,CAAC,cAAc,CAAC,CAIrB;IAEF,OAAO,CAAC,iBAAiB,CAAC,CAIxB;IAGF,mBAAmB,EAAG,OAAO,CAAC;IAC9B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGjB,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IAiH1B,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CnE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrC,eAAe,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAuClF;;OAEG;IAEG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE7C,oBAAoB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/B,aAAa,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM;CAqFxG"}