@switchbot/homebridge-switchbot 2.6.0-beta.4 → 2.6.0

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 (143) hide show
  1. package/.vscode/tasks.json +13 -0
  2. package/CHANGELOG.md +4 -2
  3. package/README.md +18 -9
  4. package/dist/device/blindtilt.d.ts +1 -5
  5. package/dist/device/blindtilt.d.ts.map +1 -1
  6. package/dist/device/blindtilt.js +80 -140
  7. package/dist/device/blindtilt.js.map +1 -1
  8. package/dist/device/bot.d.ts +1 -5
  9. package/dist/device/bot.d.ts.map +1 -1
  10. package/dist/device/bot.js +79 -138
  11. package/dist/device/bot.js.map +1 -1
  12. package/dist/device/ceilinglight.d.ts +2 -6
  13. package/dist/device/ceilinglight.d.ts.map +1 -1
  14. package/dist/device/ceilinglight.js +157 -304
  15. package/dist/device/ceilinglight.js.map +1 -1
  16. package/dist/device/colorbulb.d.ts +2 -6
  17. package/dist/device/colorbulb.d.ts.map +1 -1
  18. package/dist/device/colorbulb.js +164 -311
  19. package/dist/device/colorbulb.js.map +1 -1
  20. package/dist/device/contact.d.ts +1 -5
  21. package/dist/device/contact.d.ts.map +1 -1
  22. package/dist/device/contact.js +36 -72
  23. package/dist/device/contact.js.map +1 -1
  24. package/dist/device/curtain.d.ts +1 -5
  25. package/dist/device/curtain.d.ts.map +1 -1
  26. package/dist/device/curtain.js +78 -138
  27. package/dist/device/curtain.js.map +1 -1
  28. package/dist/device/hub.d.ts +2 -6
  29. package/dist/device/hub.d.ts.map +1 -1
  30. package/dist/device/hub.js +30 -63
  31. package/dist/device/hub.js.map +1 -1
  32. package/dist/device/humidifier.d.ts +1 -5
  33. package/dist/device/humidifier.d.ts.map +1 -1
  34. package/dist/device/humidifier.js +115 -228
  35. package/dist/device/humidifier.js.map +1 -1
  36. package/dist/device/iosensor.d.ts +1 -5
  37. package/dist/device/iosensor.d.ts.map +1 -1
  38. package/dist/device/iosensor.js +38 -74
  39. package/dist/device/iosensor.js.map +1 -1
  40. package/dist/device/{striplight.d.ts → lightstrip.d.ts} +2 -10
  41. package/dist/device/lightstrip.d.ts.map +1 -0
  42. package/dist/device/{striplight.js → lightstrip.js} +138 -194
  43. package/dist/device/lightstrip.js.map +1 -0
  44. package/dist/device/lock.d.ts +1 -5
  45. package/dist/device/lock.d.ts.map +1 -1
  46. package/dist/device/lock.js +66 -126
  47. package/dist/device/lock.js.map +1 -1
  48. package/dist/device/meter.d.ts +1 -5
  49. package/dist/device/meter.d.ts.map +1 -1
  50. package/dist/device/meter.js +38 -74
  51. package/dist/device/meter.js.map +1 -1
  52. package/dist/device/meterplus.d.ts +1 -5
  53. package/dist/device/meterplus.d.ts.map +1 -1
  54. package/dist/device/meterplus.js +39 -75
  55. package/dist/device/meterplus.js.map +1 -1
  56. package/dist/device/motion.d.ts +1 -5
  57. package/dist/device/motion.d.ts.map +1 -1
  58. package/dist/device/motion.js +35 -72
  59. package/dist/device/motion.js.map +1 -1
  60. package/dist/device/plug.d.ts +1 -5
  61. package/dist/device/plug.d.ts.map +1 -1
  62. package/dist/device/plug.js +65 -126
  63. package/dist/device/plug.js.map +1 -1
  64. package/dist/device/robotvacuumcleaner.d.ts +1 -5
  65. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  66. package/dist/device/robotvacuumcleaner.js +79 -151
  67. package/dist/device/robotvacuumcleaner.js.map +1 -1
  68. package/dist/irdevice/airconditioner.d.ts +3 -7
  69. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  70. package/dist/irdevice/airconditioner.js +34 -62
  71. package/dist/irdevice/airconditioner.js.map +1 -1
  72. package/dist/irdevice/airpurifier.d.ts +3 -7
  73. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  74. package/dist/irdevice/airpurifier.js +31 -59
  75. package/dist/irdevice/airpurifier.js.map +1 -1
  76. package/dist/irdevice/camera.d.ts +1 -5
  77. package/dist/irdevice/camera.d.ts.map +1 -1
  78. package/dist/irdevice/camera.js +30 -57
  79. package/dist/irdevice/camera.js.map +1 -1
  80. package/dist/irdevice/fan.d.ts +2 -6
  81. package/dist/irdevice/fan.d.ts.map +1 -1
  82. package/dist/irdevice/fan.js +39 -66
  83. package/dist/irdevice/fan.js.map +1 -1
  84. package/dist/irdevice/light.d.ts +1 -5
  85. package/dist/irdevice/light.d.ts.map +1 -1
  86. package/dist/irdevice/light.js +32 -59
  87. package/dist/irdevice/light.js.map +1 -1
  88. package/dist/irdevice/other.d.ts +1 -5
  89. package/dist/irdevice/other.d.ts.map +1 -1
  90. package/dist/irdevice/other.js +30 -57
  91. package/dist/irdevice/other.js.map +1 -1
  92. package/dist/irdevice/tv.d.ts +3 -7
  93. package/dist/irdevice/tv.d.ts.map +1 -1
  94. package/dist/irdevice/tv.js +46 -76
  95. package/dist/irdevice/tv.js.map +1 -1
  96. package/dist/irdevice/vacuumcleaner.d.ts +2 -6
  97. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  98. package/dist/irdevice/vacuumcleaner.js +30 -58
  99. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  100. package/dist/irdevice/waterheater.d.ts +7 -23
  101. package/dist/irdevice/waterheater.d.ts.map +1 -1
  102. package/dist/irdevice/waterheater.js +41 -74
  103. package/dist/irdevice/waterheater.js.map +1 -1
  104. package/dist/platform.d.ts +14 -5
  105. package/dist/platform.d.ts.map +1 -1
  106. package/dist/platform.js +156 -149
  107. package/dist/platform.js.map +1 -1
  108. package/dist/settings.d.ts +4 -0
  109. package/dist/settings.d.ts.map +1 -1
  110. package/dist/settings.js +5 -1
  111. package/dist/settings.js.map +1 -1
  112. package/nodemon.json +1 -1
  113. package/package.json +10 -10
  114. package/src/device/blindtilt.ts +122 -181
  115. package/src/device/bot.ts +96 -149
  116. package/src/device/ceilinglight.ts +172 -315
  117. package/src/device/colorbulb.ts +178 -324
  118. package/src/device/contact.ts +48 -78
  119. package/src/device/curtain.ts +93 -148
  120. package/src/device/hub.ts +34 -63
  121. package/src/device/humidifier.ts +135 -243
  122. package/src/device/iosensor.ts +49 -79
  123. package/src/device/{striplight.ts → lightstrip.ts} +148 -200
  124. package/src/device/lock.ts +78 -134
  125. package/src/device/meter.ts +48 -78
  126. package/src/device/meterplus.ts +50 -80
  127. package/src/device/motion.ts +46 -77
  128. package/src/device/plug.ts +76 -134
  129. package/src/device/robotvacuumcleaner.ts +91 -159
  130. package/src/irdevice/airconditioner.ts +56 -81
  131. package/src/irdevice/airpurifier.ts +41 -67
  132. package/src/irdevice/camera.ts +35 -60
  133. package/src/irdevice/fan.ts +46 -71
  134. package/src/irdevice/light.ts +38 -63
  135. package/src/irdevice/other.ts +35 -60
  136. package/src/irdevice/tv.ts +52 -80
  137. package/src/irdevice/vacuumcleaner.ts +36 -62
  138. package/src/irdevice/waterheater.ts +46 -76
  139. package/src/platform.ts +144 -158
  140. package/src/settings.ts +5 -0
  141. package/.github/npm-version-script.js +0 -81
  142. package/dist/device/striplight.d.ts.map +0 -1
  143. package/dist/device/striplight.js.map +0 -1
@@ -1,16 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.StripLight = void 0;
7
- const https_1 = __importDefault(require("https"));
8
- const crypto_1 = __importDefault(require("crypto"));
4
+ const undici_1 = require("undici");
5
+ const utils_1 = require("../utils");
9
6
  const rxjs_1 = require("rxjs");
10
- const super_stringify_1 = __importDefault(require("super-stringify"));
11
7
  const operators_1 = require("rxjs/operators");
12
8
  const settings_1 = require("../settings");
13
- const utils_1 = require("../utils");
14
9
  /**
15
10
  * Platform Accessory
16
11
  * An instance of this class is created for each accessory your platform registers
@@ -145,7 +140,7 @@ class StripLight {
145
140
  catch (e) {
146
141
  this.apiError(e);
147
142
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed pushChanges with ${this.device.connectionType} Connection,`
148
- + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
143
+ + ` Error Message: ${JSON.stringify(e.message)}`);
149
144
  }
150
145
  this.stripLightUpdateInProgress = false;
151
146
  });
@@ -196,14 +191,14 @@ class StripLight {
196
191
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
197
192
  // Color, Hue & Brightness
198
193
  if (this.color) {
199
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} color: ${(0, super_stringify_1.default)(this.color)}`);
194
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} color: ${JSON.stringify(this.color)}`);
200
195
  const [red, green, blue] = this.color.split(':');
201
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} red: ${(0, super_stringify_1.default)(red)}`);
202
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} green: ${(0, super_stringify_1.default)(green)}`);
203
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} blue: ${(0, super_stringify_1.default)(blue)}`);
196
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} red: ${JSON.stringify(red)}`);
197
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} green: ${JSON.stringify(green)}`);
198
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} blue: ${JSON.stringify(blue)}`);
204
199
  const [hue, saturation] = (0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue));
205
200
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName}`
206
- + ` hs: ${(0, super_stringify_1.default)((0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue)))}`);
201
+ + ` hs: ${JSON.stringify((0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue)))}`);
207
202
  // Hue
208
203
  this.Hue = hue;
209
204
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Hue: ${this.Hue}`);
@@ -254,7 +249,7 @@ class StripLight {
254
249
  this.address = ad.address;
255
250
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Config BLE Address: ${this.device.bleMac},`
256
251
  + ` BLE Address Found: ${this.address}`);
257
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${(0, super_stringify_1.default)(ad.serviceData)}`);
252
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
258
253
  this.serviceData = ad.serviceData;
259
254
  //this.state = ad.serviceData.state;
260
255
  //this.delay = ad.serviceData.delay;
@@ -263,7 +258,7 @@ class StripLight {
263
258
  //this.wifiRssi = ad.serviceData.wifiRssi;
264
259
  //this.overload = ad.serviceData.overload;
265
260
  //this.currentPower = ad.serviceData.currentPower;
266
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${(0, super_stringify_1.default)(ad.serviceData)}`);
261
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
267
262
  /*this.debugLog(
268
263
  `${this.device.deviceType}: ${this.accessory.displayName} state: ${ad.serviceData.state}, ` +
269
264
  `delay: ${ad.serviceData.delay}, timer: ${ad.serviceData.timer}, syncUtcTime: ${ad.serviceData.syncUtcTime} ` +
@@ -289,7 +284,7 @@ class StripLight {
289
284
  .catch(async (e) => {
290
285
  this.apiError(e);
291
286
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed BLERefreshStatus with ${this.device.connectionType}`
292
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
287
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
293
288
  await this.BLERefreshConnection(switchbot);
294
289
  });
295
290
  }
@@ -300,57 +295,24 @@ class StripLight {
300
295
  async openAPIRefreshStatus() {
301
296
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIRefreshStatus`);
302
297
  try {
303
- const t = Date.now();
304
- const nonce = 'requestID';
305
- const data = this.platform.config.credentials?.token + t + nonce;
306
- const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret).update(Buffer.from(data, 'utf-8')).digest();
307
- const sign = signTerm.toString('base64');
308
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} sign: ${sign}`);
309
- const options = {
310
- hostname: settings_1.HostDomain,
311
- port: 443,
312
- path: `${settings_1.DevicePath}/${this.device.deviceId}/status`,
313
- method: 'GET',
314
- headers: {
315
- Authorization: this.platform.config.credentials?.token,
316
- sign: sign,
317
- nonce: nonce,
318
- t: t,
319
- 'Content-Type': 'application/json',
320
- },
321
- };
322
- const req = https_1.default.request(options, (res) => {
323
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIRefreshStatus statusCode: ${res.statusCode}`);
324
- this.statusCode({ res });
325
- let rawData = '';
326
- res.on('data', (d) => {
327
- rawData += d;
328
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} d: ${d}`);
329
- });
330
- res.on('end', () => {
331
- try {
332
- this.deviceStatus = JSON.parse(rawData);
333
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIRefreshStatus: ${(0, super_stringify_1.default)(this.deviceStatus)}`);
334
- this.power = this.deviceStatus.body.power;
335
- this.color = this.deviceStatus.body.color;
336
- this.brightness = this.deviceStatus.body.brightness;
337
- this.openAPIparseStatus();
338
- this.updateHomeKitCharacteristics();
339
- }
340
- catch (e) {
341
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} error message: ${e.message}`);
342
- }
343
- });
344
- });
345
- req.on('error', (e) => {
346
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} error message: ${e.message}`);
298
+ const { body, statusCode, headers } = await (0, undici_1.request)(`${settings_1.Devices}/${this.device.deviceId}/status`, {
299
+ headers: this.platform.generateHeaders(),
347
300
  });
348
- req.end();
301
+ const deviceStatus = await body.json();
302
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Devices: ${JSON.stringify(deviceStatus.body)}`);
303
+ this.statusCode(statusCode);
304
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Headers: ${JSON.stringify(headers)}`);
305
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(deviceStatus)}`);
306
+ this.power = deviceStatus.body.power;
307
+ this.color = deviceStatus.body.color;
308
+ this.brightness = deviceStatus.body.brightness;
309
+ this.openAPIparseStatus();
310
+ this.updateHomeKitCharacteristics();
349
311
  }
350
312
  catch (e) {
351
313
  this.apiError(e);
352
314
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed openAPIRefreshStatus with ${this.device.connectionType}`
353
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
315
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
354
316
  }
355
317
  }
356
318
  /**
@@ -422,7 +384,7 @@ class StripLight {
422
384
  .catch(async (e) => {
423
385
  this.apiError(e);
424
386
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed BLEpushChanges with ${this.device.connectionType}`
425
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
387
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
426
388
  await this.BLEPushConnection();
427
389
  });
428
390
  // Push Brightness Update
@@ -465,7 +427,7 @@ class StripLight {
465
427
  .catch(async (e) => {
466
428
  this.apiError(e);
467
429
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed BLEpushBrightnessChanges with ${this.device.connectionType}`
468
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
430
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
469
431
  await this.BLEPushConnection();
470
432
  });
471
433
  }
@@ -477,10 +439,10 @@ class StripLight {
477
439
  async BLEpushRGBChanges() {
478
440
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BLEpushRGBChanges`);
479
441
  if (this.Hue !== this.accessory.context.Hue || this.Saturation !== this.accessory.context.Saturation) {
480
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Hue: ${(0, super_stringify_1.default)(this.Hue)}`);
481
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Saturation: ${(0, super_stringify_1.default)(this.Saturation)}`);
442
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Hue: ${JSON.stringify(this.Hue)}`);
443
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Saturation: ${JSON.stringify(this.Saturation)}`);
482
444
  const [red, green, blue] = (0, settings_1.hs2rgb)(Number(this.Hue), Number(this.Saturation));
483
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} rgb: ${(0, super_stringify_1.default)([red, green, blue])}`);
445
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} rgb: ${JSON.stringify([red, green, blue])}`);
484
446
  const switchbot = await this.platform.connectBLE();
485
447
  // Convert to BLE Address
486
448
  this.device.bleMac = this.device
@@ -504,7 +466,7 @@ class StripLight {
504
466
  .catch(async (e) => {
505
467
  this.apiError(e);
506
468
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed BLEpushRGBChanges with ${this.device.connectionType}`
507
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
469
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
508
470
  await this.BLEPushConnection();
509
471
  });
510
472
  }
@@ -514,133 +476,114 @@ class StripLight {
514
476
  }
515
477
  }
516
478
  async openAPIpushChanges() {
517
- const change = 'openAPIpushChanges';
518
- try {
519
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${change}`);
520
- if (this.On !== this.accessory.context.On) {
521
- // Make Push On request to the API
522
- const command = this.On ? 'turnOn' : 'turnOff';
523
- /*if (this.On) {
524
- command = 'turnOn';
525
- } else {
526
- command = 'turnOff';
527
- }*/
528
- const body = (0, super_stringify_1.default)({
529
- 'command': `${command}`,
530
- 'parameter': 'default',
531
- 'commandType': 'command',
479
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} openAPIpushChanges`);
480
+ if (this.On !== this.accessory.context.On) {
481
+ const command = this.On ? 'turnOn' : 'turnOff';
482
+ /*if (this.On) {
483
+ command = 'turnOn';
484
+ } else {
485
+ command = 'turnOff';
486
+ }*/
487
+ const body = JSON.stringify({
488
+ 'command': `${command}`,
489
+ 'parameter': 'default',
490
+ 'commandType': 'command',
491
+ });
492
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${body},`);
493
+ try {
494
+ const { body, statusCode, headers } = await (0, undici_1.request)(`${settings_1.Devices}/${this.device.deviceId}/commands`, {
495
+ method: 'POST',
496
+ headers: this.platform.generateHeaders(),
532
497
  });
533
- await this.request({ body, change });
498
+ const deviceStatus = await body.json();
499
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Devices: ${JSON.stringify(deviceStatus.body)}`);
500
+ this.statusCode(statusCode);
501
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Headers: ${JSON.stringify(headers)}`);
534
502
  }
535
- else {
536
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No ${change}.` + `On: ${this.On}, `
537
- + `OnCached: ${this.accessory.context.On}`);
538
- }
539
- // Push Brightness Update
540
- if (this.On) {
541
- await this.pushBrightnessChanges();
542
- }
543
- // Push Hue & Saturation Update
544
- if (this.On) {
545
- await this.pushHueSaturationChanges();
503
+ catch (e) {
504
+ this.apiError(e);
505
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed openAPIpushChanges with ${this.device.connectionType}`
506
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
546
507
  }
547
508
  }
548
- catch (e) {
549
- this.apiError(e);
550
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed ${change} with ${this.device.connectionType}`
551
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
509
+ else {
510
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No openAPIpushChanges.` + `On: ${this.On}, `
511
+ + `OnCached: ${this.accessory.context.On}`);
512
+ }
513
+ // Push Hue & Saturation Update
514
+ if (this.On) {
515
+ await this.pushHueSaturationChanges();
516
+ }
517
+ // Push Brightness Update
518
+ if (this.On) {
519
+ await this.pushBrightnessChanges();
552
520
  }
553
521
  }
554
522
  async pushHueSaturationChanges() {
555
- const change = 'pushHueSaturationChanges';
556
- try {
557
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${change}`);
558
- if (this.Hue !== this.accessory.context.Hue || this.Saturation !== this.accessory.context.Saturation) {
559
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Hue: ${(0, super_stringify_1.default)(this.Hue)}`);
560
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Saturation: ${(0, super_stringify_1.default)(this.Saturation)}`);
561
- const [red, green, blue] = (0, settings_1.hs2rgb)(Number(this.Hue), Number(this.Saturation));
562
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} rgb: ${(0, super_stringify_1.default)([red, green, blue])}`);
563
- // Make Push On request to the API
564
- const body = (0, super_stringify_1.default)({
565
- 'command': 'setColor',
566
- 'parameter': `${red}:${green}:${blue}`,
567
- 'commandType': 'command',
523
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} pushHueSaturationChanges`);
524
+ if (this.Hue !== this.accessory.context.Hue || this.Saturation !== this.accessory.context.Saturation) {
525
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Hue: ${JSON.stringify(this.Hue)}`);
526
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Saturation: ${JSON.stringify(this.Saturation)}`);
527
+ const [red, green, blue] = (0, settings_1.hs2rgb)(Number(this.Hue), Number(this.Saturation));
528
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} rgb: ${JSON.stringify([red, green, blue])}`);
529
+ // Make Push On request to the API
530
+ const body = JSON.stringify({
531
+ 'command': 'setColor',
532
+ 'parameter': `${red}:${green}:${blue}`,
533
+ 'commandType': 'command',
534
+ });
535
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${body},`);
536
+ try {
537
+ const { body, statusCode, headers } = await (0, undici_1.request)(`${settings_1.Devices}/${this.device.deviceId}/commands`, {
538
+ method: 'POST',
539
+ headers: this.platform.generateHeaders(),
568
540
  });
569
- await this.request({ body, change });
541
+ const deviceStatus = await body.json();
542
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Devices: ${JSON.stringify(deviceStatus.body)}`);
543
+ this.statusCode(statusCode);
544
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Headers: ${JSON.stringify(headers)}`);
570
545
  }
571
- else {
572
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No ${change}. Hue: ${this.Hue}, `
573
- + `HueCached: ${this.accessory.context.Hue}, Saturation: ${this.Saturation}, SaturationCached: ${this.accessory.context.Saturation}`);
546
+ catch (e) {
547
+ this.apiError(e);
548
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed pushHueSaturationChanges with ${this.device.connectionType}`
549
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
574
550
  }
575
551
  }
576
- catch (e) {
577
- this.apiError(e);
578
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed ${change} with ${this.device.connectionType}`
579
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
552
+ else {
553
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No pushHueSaturationChanges. Hue: ${this.Hue}, `
554
+ + `HueCached: ${this.accessory.context.Hue}, Saturation: ${this.Saturation}, SaturationCached: ${this.accessory.context.Saturation}`);
580
555
  }
581
556
  }
582
557
  async pushBrightnessChanges() {
583
- const change = 'pushBrightnessChanges';
584
- try {
585
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${change}`);
586
- if (this.Brightness !== this.accessory.context.Brightness) {
587
- // Make Push On request to the API
588
- const body = (0, super_stringify_1.default)({
589
- 'command': 'setBrightness',
590
- 'parameter': `${this.Brightness}`,
591
- 'commandType': 'command',
558
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} pushBrightnessChanges`);
559
+ if (this.Brightness !== this.accessory.context.Brightness) {
560
+ const body = JSON.stringify({
561
+ 'command': 'setBrightness',
562
+ 'parameter': `${this.Brightness}`,
563
+ 'commandType': 'command',
564
+ });
565
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${body},`);
566
+ try {
567
+ const { body, statusCode, headers } = await (0, undici_1.request)(`${settings_1.Devices}/${this.device.deviceId}/commands`, {
568
+ method: 'POST',
569
+ headers: this.platform.generateHeaders(),
592
570
  });
593
- await this.request({ body, change });
571
+ const deviceStatus = await body.json();
572
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Devices: ${JSON.stringify(deviceStatus.body)}`);
573
+ this.statusCode(statusCode);
574
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Headers: ${JSON.stringify(headers)}`);
594
575
  }
595
- else {
596
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No ${change},` + `Brightness: ${this.Brightness}, `
597
- + `BrightnessCached: ${this.accessory.context.Brightness}`);
576
+ catch (e) {
577
+ this.apiError(e);
578
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed pushBrightnessChanges with ${this.device.connectionType}`
579
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
598
580
  }
599
581
  }
600
- catch (e) {
601
- this.apiError(e);
602
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed ${change} with ${this.device.connectionType}`
603
- + ` Connection, Error Message: ${(0, super_stringify_1.default)(e.message)}`);
582
+ else {
583
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No pushBrightnessChanges,` + `Brightness: ${this.Brightness}, `
584
+ + `BrightnessCached: ${this.accessory.context.Brightness}`);
604
585
  }
605
586
  }
606
- async request({ body, change }) {
607
- const t = Date.now();
608
- const nonce = 'requestID';
609
- const data = this.platform.config.credentials?.token + t + nonce;
610
- const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret)
611
- .update(Buffer.from(data, 'utf-8'))
612
- .digest();
613
- const sign = signTerm.toString('base64');
614
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} sign: ${sign}`);
615
- const options = {
616
- hostname: settings_1.HostDomain,
617
- port: 443,
618
- path: `${settings_1.DevicePath}/${this.device.deviceId}/commands`,
619
- method: 'POST',
620
- headers: {
621
- 'Authorization': this.platform.config.credentials?.token,
622
- 'sign': sign,
623
- 'nonce': nonce,
624
- 't': t,
625
- 'Content-Type': 'application/json',
626
- 'Content-Length': body.length,
627
- },
628
- };
629
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to SwitchBot API, body: ${body},`);
630
- const req = https_1.default.request(options, res => {
631
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${change} statusCode: ${res.statusCode}`);
632
- this.statusCode({ res });
633
- res.on('data', d => {
634
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} d: ${d}`);
635
- });
636
- });
637
- req.on('error', (e) => {
638
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} error message: ${e.message}`);
639
- });
640
- req.write(body);
641
- req.end();
642
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${change} req: ${(0, super_stringify_1.default)(req)}`);
643
- }
644
587
  /**
645
588
  * Handle requests to set the value of the "On" characteristic
646
589
  */
@@ -793,7 +736,7 @@ class StripLight {
793
736
  });
794
737
  // Set an event handler
795
738
  switchbot.onadvertisement = (ad) => {
796
- this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} ad: ${(0, super_stringify_1.default)(ad, null, ' ')}`);
739
+ this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
797
740
  };
798
741
  await (0, utils_1.sleep)(10000);
799
742
  // Stop to monitor
@@ -866,38 +809,39 @@ class StripLight {
866
809
  }
867
810
  }
868
811
  }
869
- async statusCode({ res }) {
870
- switch (res.statusCode) {
812
+ async statusCode(statusCode) {
813
+ switch (statusCode) {
871
814
  case 151:
872
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Command not supported by this device type.`);
815
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Command not supported by this deviceType, statusCode: ${statusCode}`);
873
816
  break;
874
817
  case 152:
875
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device not found.`);
818
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device not found, statusCode: ${statusCode}`);
876
819
  break;
877
820
  case 160:
878
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Command is not supported.`);
821
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Command is not supported, statusCode: ${statusCode}`);
879
822
  break;
880
823
  case 161:
881
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device is offline.`);
882
- await this.offlineOff();
824
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device is offline, statusCode: ${statusCode}`);
825
+ this.offlineOff();
883
826
  break;
884
827
  case 171:
885
- this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} is offline. Hub: ${this.device.hubDeviceId}`);
886
- await this.offlineOff();
828
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Hub Device is offline, statusCode: ${statusCode}. `
829
+ + `Hub: ${this.device.hubDeviceId}`);
830
+ this.offlineOff();
887
831
  break;
888
832
  case 190:
889
833
  this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,` +
890
- ` Or command: ${(0, super_stringify_1.default)(res)} format is invalid`);
834
+ ` Or command format is invalid, statusCode: ${statusCode}`);
891
835
  break;
892
836
  case 100:
893
- if (this.platform.debugMode) {
894
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Command successfully sent.`);
895
- }
837
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Command successfully sent, statusCode: ${statusCode}`);
838
+ break;
839
+ case 200:
840
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Request successful, statusCode: ${statusCode}`);
896
841
  break;
897
842
  default:
898
- if (this.platform.debugMode) {
899
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Unknown statusCode.`);
900
- }
843
+ this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Unknown statusCode: `
844
+ + `${statusCode}, Submit Bugs Here: ' + 'https://tinyurl.com/SwitchBotBug`);
901
845
  }
902
846
  }
903
847
  async offlineOff() {
@@ -1000,7 +944,7 @@ class StripLight {
1000
944
  config['maxRetry'] = device.maxRetry;
1001
945
  }
1002
946
  if (Object.entries(config).length !== 0) {
1003
- this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Config: ${(0, super_stringify_1.default)(config)}`);
947
+ this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
1004
948
  }
1005
949
  }
1006
950
  async logs(device) {
@@ -1068,4 +1012,4 @@ class StripLight {
1068
1012
  }
1069
1013
  }
1070
1014
  exports.StripLight = StripLight;
1071
- //# sourceMappingURL=striplight.js.map
1015
+ //# sourceMappingURL=lightstrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightstrip.js","sourceRoot":"","sources":["../../src/device/lightstrip.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="node" />
3
2
  import { Context } from 'vm';
4
- import { IncomingMessage } from 'http';
5
3
  import { Subject } from 'rxjs';
6
4
  import { SwitchBotPlatform } from '../platform';
7
5
  import { Service, PlatformAccessory, CharacteristicValue } from 'homebridge';
@@ -70,9 +68,7 @@ export declare class Lock {
70
68
  BLEPushConnection(): Promise<void>;
71
69
  BLERefreshConnection(switchbot: any): Promise<void>;
72
70
  scan(device: device & devicesConfig): Promise<void>;
73
- statusCode({ res }: {
74
- res: IncomingMessage;
75
- }): Promise<void>;
71
+ statusCode(statusCode: number): Promise<void>;
76
72
  offlineOff(): Promise<void>;
77
73
  apiError(e: any): Promise<void>;
78
74
  FirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue;
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/device/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/device/lock.ts"],"names":[],"mappings":"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"}