@switchbot/homebridge-switchbot 1.15.1-beta.10 → 1.15.1-beta.12

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 (75) hide show
  1. package/dist/device/bot.js +1 -1
  2. package/dist/device/bot.js.map +1 -1
  3. package/dist/device/colorbulb.d.ts +1 -1
  4. package/dist/device/colorbulb.d.ts.map +1 -1
  5. package/dist/device/colorbulb.js +78 -68
  6. package/dist/device/colorbulb.js.map +1 -1
  7. package/dist/device/contact.js +1 -1
  8. package/dist/device/contact.js.map +1 -1
  9. package/dist/device/curtain.js +1 -1
  10. package/dist/device/curtain.js.map +1 -1
  11. package/dist/device/humidifier.js +1 -1
  12. package/dist/device/humidifier.js.map +1 -1
  13. package/dist/device/meter.js +1 -1
  14. package/dist/device/meter.js.map +1 -1
  15. package/dist/device/meterplus.js +1 -1
  16. package/dist/device/meterplus.js.map +1 -1
  17. package/dist/device/motion.js +1 -1
  18. package/dist/device/motion.js.map +1 -1
  19. package/dist/device/plug.js +1 -1
  20. package/dist/device/plug.js.map +1 -1
  21. package/dist/irdevice/airconditioner.d.ts +1 -1
  22. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  23. package/dist/irdevice/airconditioner.js +35 -32
  24. package/dist/irdevice/airconditioner.js.map +1 -1
  25. package/dist/irdevice/airpurifier.d.ts +1 -1
  26. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  27. package/dist/irdevice/airpurifier.js +30 -28
  28. package/dist/irdevice/airpurifier.js.map +1 -1
  29. package/dist/irdevice/camera.d.ts +1 -1
  30. package/dist/irdevice/camera.d.ts.map +1 -1
  31. package/dist/irdevice/camera.js +28 -26
  32. package/dist/irdevice/camera.js.map +1 -1
  33. package/dist/irdevice/fan.d.ts +1 -1
  34. package/dist/irdevice/fan.d.ts.map +1 -1
  35. package/dist/irdevice/fan.js +47 -45
  36. package/dist/irdevice/fan.js.map +1 -1
  37. package/dist/irdevice/light.d.ts +1 -1
  38. package/dist/irdevice/light.d.ts.map +1 -1
  39. package/dist/irdevice/light.js +40 -38
  40. package/dist/irdevice/light.js.map +1 -1
  41. package/dist/irdevice/other.d.ts +1 -1
  42. package/dist/irdevice/other.d.ts.map +1 -1
  43. package/dist/irdevice/other.js +28 -26
  44. package/dist/irdevice/other.js.map +1 -1
  45. package/dist/irdevice/tv.d.ts +1 -1
  46. package/dist/irdevice/tv.d.ts.map +1 -1
  47. package/dist/irdevice/tv.js +82 -80
  48. package/dist/irdevice/tv.js.map +1 -1
  49. package/dist/irdevice/vacuumcleaner.d.ts +1 -1
  50. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  51. package/dist/irdevice/vacuumcleaner.js +24 -22
  52. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  53. package/dist/irdevice/waterheater.d.ts +1 -1
  54. package/dist/irdevice/waterheater.d.ts.map +1 -1
  55. package/dist/irdevice/waterheater.js +28 -26
  56. package/dist/irdevice/waterheater.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/device/bot.ts +1 -1
  59. package/src/device/colorbulb.ts +81 -71
  60. package/src/device/contact.ts +1 -1
  61. package/src/device/curtain.ts +1 -1
  62. package/src/device/humidifier.ts +1 -1
  63. package/src/device/meter.ts +1 -1
  64. package/src/device/meterplus.ts +1 -1
  65. package/src/device/motion.ts +1 -1
  66. package/src/device/plug.ts +1 -1
  67. package/src/irdevice/airconditioner.ts +35 -40
  68. package/src/irdevice/airpurifier.ts +30 -37
  69. package/src/irdevice/camera.ts +28 -33
  70. package/src/irdevice/fan.ts +47 -52
  71. package/src/irdevice/light.ts +40 -45
  72. package/src/irdevice/other.ts +28 -33
  73. package/src/irdevice/tv.ts +82 -87
  74. package/src/irdevice/vacuumcleaner.ts +24 -29
  75. package/src/irdevice/waterheater.ts +28 -33
@@ -1 +1 @@
1
- {"version":3,"file":"waterheater.d.ts","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;GAIG;AACH,qBAAa,WAAW;IAWV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAqB,OAAO,CAAC,SAAS;IAA4B,MAAM,EAAE,QAAQ,GAAG,eAAe;IATzI,YAAY,EAAG,OAAO,CAAC;IAGvB,MAAM,EAAG,mBAAmB,CAAC;IAC7B,YAAY,EAAG,mBAAmB,CAAC;IAGnC,aAAa,EAAG,MAAM,CAAC;gBAEM,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,iBAAiB,EAAS,MAAM,EAAE,QAAQ,GAAG,eAAe;IAqCnI,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IASnD;;;;;;;;;OASG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWzC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C,WAAW,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDnC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5D,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/B,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,qBAAqB,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"waterheater.d.ts","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;GAIG;AACH,qBAAa,WAAW;IAWV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAqB,OAAO,CAAC,SAAS;IAA4B,MAAM,EAAE,QAAQ,GAAG,eAAe;IATzI,YAAY,EAAG,OAAO,CAAC;IAGvB,MAAM,EAAG,mBAAmB,CAAC;IAC7B,YAAY,EAAG,mBAAmB,CAAC;IAGnC,aAAa,EAAG,MAAM,CAAC;gBAEM,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,iBAAiB,EAAS,MAAM,EAAE,QAAQ,GAAG,eAAe;IAqCnI,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IASnD;;;;;;;;;OASG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWzC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C,WAAW,CAAC,IAAI,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDhC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5D,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/B,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,qBAAqB,IAAI,OAAO;CAGjC"}
@@ -82,59 +82,61 @@ class WaterHeater {
82
82
  */
83
83
  async pushWaterHeaterOnChanges() {
84
84
  if (this.Active !== 1) {
85
- const payload = {
86
- commandType: 'command',
87
- parameter: 'default',
88
- command: 'turnOn',
89
- };
90
- await this.pushChanges(payload);
85
+ const body = JSON.stringify({
86
+ 'command': 'turnOn',
87
+ 'parameter': 'default',
88
+ 'commandType': 'command',
89
+ });
90
+ await this.pushChanges(body);
91
91
  }
92
92
  }
93
93
  async pushWaterHeaterOffChanges() {
94
94
  if (this.Active !== 0) {
95
- const payload = {
96
- commandType: 'command',
97
- parameter: 'default',
98
- command: 'turnOff',
99
- };
100
- await this.pushChanges(payload);
95
+ const body = JSON.stringify({
96
+ 'command': 'turnOff',
97
+ 'parameter': 'default',
98
+ 'commandType': 'command',
99
+ });
100
+ await this.pushChanges(body);
101
101
  }
102
102
  }
103
- async pushChanges(payload) {
103
+ async pushChanges(body) {
104
104
  try {
105
- this.infoLog(`Water Heater: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},` +
106
- ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
107
- // Make the API request
105
+ // Make Push On request to the API
108
106
  const t = Date.now();
109
107
  const nonce = 'requestID';
110
108
  const data = this.platform.config.credentials?.token + t + nonce;
111
- const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret).update(Buffer.from(data, 'utf-8')).digest();
109
+ const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret)
110
+ .update(Buffer.from(data, 'utf-8'))
111
+ .digest();
112
112
  const sign = signTerm.toString('base64');
113
113
  this.debugLog(`Water Heater: ${this.accessory.displayName} sign: ${sign}`);
114
+ this.infoLog(`Water Heater: ${this.accessory.displayName} Sending request to SwitchBot API. body: ${body},`);
114
115
  const options = {
115
116
  hostname: settings_1.HostDomain,
116
117
  port: 443,
117
118
  path: `${settings_1.DevicePath}/${this.device.deviceId}/commands`,
118
119
  method: 'POST',
119
120
  headers: {
120
- Authorization: this.platform.config.credentials?.token,
121
- sign: sign,
122
- nonce: nonce,
123
- t: t,
121
+ 'Authorization': this.platform.config.credentials?.token,
122
+ 'sign': sign,
123
+ 'nonce': nonce,
124
+ 't': t,
124
125
  'Content-Type': 'application/json',
126
+ 'Content-Length': body.length,
125
127
  },
126
128
  };
127
- const req = https_1.default.request(options, (res) => {
129
+ const req = https_1.default.request(options, res => {
128
130
  this.debugLog(`Water Heater: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
129
131
  this.statusCode({ res });
130
- res.on('data', (d) => {
132
+ res.on('data', d => {
131
133
  this.debugLog(`Water Heater: ${this.accessory.displayName} d: ${d}`);
132
134
  });
133
135
  });
134
- req.on('error', (error) => {
135
- this.errorLog(`Water Heater: ${this.accessory.displayName} error: ${error}`);
136
+ req.on('error', (e) => {
137
+ this.errorLog(`Water Heater: ${this.accessory.displayName} error message: ${e.message}`);
136
138
  });
137
- req.write(payload);
139
+ req.write(body);
138
140
  req.end();
139
141
  this.debugLog(`Water Heater: ${this.accessory.displayName} pushchanges: ${JSON.stringify(req)}`);
140
142
  this.updateHomeKitCharacteristics();
@@ -1 +1 @@
1
- {"version":3,"file":"waterheater.js","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waterheater.js","sourceRoot":"","sources":["../../src/irdevice/waterheater.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge SwitchBot",
3
3
  "name": "@switchbot/homebridge-switchbot",
4
- "version": "1.15.1-beta.10",
4
+ "version": "1.15.1-beta.12",
5
5
  "description": "The [Homebridge](https://homebridge.io) SwitchBot plugin allows you to access your [SwitchBot](https://www.switch-bot.com) device(s) from HomeKit.",
6
6
  "author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
7
7
  "license": "ISC",
package/src/device/bot.ts CHANGED
@@ -544,7 +544,7 @@ export class Bot {
544
544
  });
545
545
  // Set an event handler
546
546
  switchbot.onadvertisement = (ad: any) => {
547
- this.warnLog(JSON.stringify(ad, null, ' '));
547
+ this.warnLog(`Bot: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
548
548
  };
549
549
  await switchbot.wait(10000);
550
550
  // Stop to monitor
@@ -34,7 +34,7 @@ export class ColorBulb {
34
34
  color: deviceStatus['color'];
35
35
  brightness: deviceStatus['brightness'];
36
36
  colorTemperature?: deviceStatus['colorTemperature'];
37
- deviceStatus!: any; //deviceStatusResponse;
37
+ deviceStatus!: any;
38
38
 
39
39
  // BLE Others
40
40
  connected?: boolean;
@@ -68,6 +68,7 @@ export class ColorBulb {
68
68
  constructor(private readonly platform: SwitchBotPlatform, private accessory: PlatformAccessory, public device: device & devicesConfig) {
69
69
  // default placeholders
70
70
  this.logs(device);
71
+ this.scan(device);
71
72
  this.refreshRate(device);
72
73
  this.adaptiveLighting(device);
73
74
  this.config(device);
@@ -308,75 +309,79 @@ export class ColorBulb {
308
309
  this.debugLog(`Color Bulb: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
309
310
  this.getCustomBLEAddress(switchbot);
310
311
  // Start to monitor advertisement packets
311
- if (switchbot !== false) {
312
- switchbot
313
- .startScan({
314
- model: 'u',
315
- id: this.device.bleMac,
316
- })
317
- .then(() => {
318
- // Set an event hander
319
- switchbot.onadvertisement = (ad: any) => {
320
- this.address = ad.address;
321
- if (this.deviceLogging.includes('debug')) {
322
- this.infoLog(this.address);
323
- this.infoLog(this.device.bleMac);
324
- this.infoLog(`Color Bulb: ${this.accessory.displayName} BLE Address Found: ${this.address}`);
325
- this.infoLog(`Color Bulb: ${this.accessory.displayName} Config BLE Address: ${this.device.bleMac}`);
326
- }
327
- this.serviceData = ad.serviceData;
328
- this.state = ad.serviceData.state;
329
- this.delay = ad.serviceData.delay;
330
- //this.timer = ad.serviceData.timer;
331
- //this.syncUtcTime = ad.serviceData.syncUtcTime;
332
- this.wifiRssi = ad.serviceData.wifiRssi;
333
- //this.overload = ad.serviceData.overload;
334
- //this.currentPower = ad.serviceData.currentPower;
335
- this.debugLog(`Color Bulb: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
336
- this.debugLog(
337
- `Color Bulb: ${this.accessory.displayName} state: ${ad.serviceData.state}, ` +
312
+ if (switchbot === false) {
313
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} wasn't able to establish BLE Connection: ${switchbot}`);
314
+ }
315
+ switchbot
316
+ .startScan({
317
+ model: 'u',
318
+ id: this.device.bleMac,
319
+ })
320
+ .then(() => {
321
+ // Set an event hander
322
+ switchbot.onadvertisement = (ad: any) => {
323
+ //this.address = ad.address;
324
+ if (this.deviceLogging.includes('debug')) {
325
+ this.infoLog(this.address);
326
+ this.infoLog(this.device.bleMac);
327
+ this.infoLog(`Color Bulb: ${this.accessory.displayName} BLE Address Found: ${this.address}`);
328
+ this.infoLog(`Color Bulb: ${this.accessory.displayName} Config BLE Address: ${this.device.bleMac}`);
329
+ }
330
+ this.serviceData = ad.serviceData;
331
+ this.state = ad.serviceData.state;
332
+ this.delay = ad.serviceData.delay;
333
+ //this.timer = ad.serviceData.timer;
334
+ //this.syncUtcTime = ad.serviceData.syncUtcTime;
335
+ this.wifiRssi = ad.serviceData.wifiRssi;
336
+ //this.overload = ad.serviceData.overload;
337
+ //this.currentPower = ad.serviceData.currentPower;
338
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
339
+ this.debugLog(
340
+ `Color Bulb: ${this.accessory.displayName} state: ${ad.serviceData.state}, ` +
338
341
  `delay: ${ad.serviceData.delay}, timer: ${ad.serviceData.timer}, syncUtcTime: ${ad.serviceData.syncUtcTime} ` +
339
342
  `wifiRssi: ${ad.serviceData.wifiRssi}, overload: ${ad.serviceData.overload}, currentPower: ${ad.serviceData.currentPower}`,
340
- );
341
-
342
- if (this.serviceData) {
343
- this.connected = true;
344
- this.debugLog(`Color Bulb: ${this.accessory.displayName} connected: ${this.connected}`);
345
- } else {
346
- this.connected = false;
347
- this.debugLog(`Color Bulb: ${this.accessory.displayName} connected: ${this.connected}`);
348
- }
349
- };
350
- // Wait 2 seconds
351
- return switchbot.wait(this.scanDuration * 1000);
352
- })
353
- .then(async () => {
354
- // Stop to monitor
355
- switchbot.stopScan();
356
- if (this.connected) {
357
- this.parseStatus();
358
- this.updateHomeKitCharacteristics();
343
+ );
344
+
345
+ if (this.serviceData) {
346
+ this.connected = true;
347
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} connected: ${this.connected}`);
359
348
  } else {
360
- await this.BLEconnection(switchbot);
361
- }
362
- })
363
- .catch(async (e: any) => {
364
- this.errorLog(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with BLE Connection`);
365
- if (this.deviceLogging.includes('debug')) {
366
- this.errorLog(
367
- `Color Bulb: ${this.accessory.displayName} failed refreshStatus with BLE Connection,` + ` Error Message: ${JSON.stringify(e.message)}`,
368
- );
349
+ this.connected = false;
350
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} connected: ${this.connected}`);
369
351
  }
352
+ };
353
+ // Wait 2 seconds
354
+ return switchbot.wait(this.scanDuration * 1000);
355
+ })
356
+ .then(async () => {
357
+ // Stop to monitor
358
+ switchbot.stopScan();
359
+ if (this.connected) {
360
+ this.parseStatus();
361
+ this.updateHomeKitCharacteristics();
362
+ } else {
363
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} wasn't able to establish BLE Connection`);
370
364
  if (this.platform.config.credentials?.token) {
371
365
  this.warnLog(`Color Bulb: ${this.accessory.displayName} Using OpenAPI Connection`);
372
366
  this.SwitchToOpenAPI = true;
373
367
  await this.openAPIRefreshStatus();
374
368
  }
375
- this.apiError(e);
376
- });
377
- } else {
378
- await this.BLEconnection(switchbot);
379
- }
369
+ }
370
+ })
371
+ .catch(async (e: any) => {
372
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with BLE Connection`);
373
+ if (this.deviceLogging.includes('debug')) {
374
+ this.errorLog(
375
+ `Color Bulb: ${this.accessory.displayName} failed refreshStatus with BLE Connection,` + ` Error Message: ${JSON.stringify(e.message)}`,
376
+ );
377
+ }
378
+ if (this.platform.config.credentials?.token) {
379
+ this.warnLog(`Color Bulb: ${this.accessory.displayName} Using OpenAPI Connection`);
380
+ this.SwitchToOpenAPI = true;
381
+ await this.openAPIRefreshStatus();
382
+ }
383
+ this.apiError(e);
384
+ });
380
385
  }
381
386
 
382
387
  async getCustomBLEAddress(switchbot: any) {
@@ -388,7 +393,7 @@ export class ColorBulb {
388
393
  });
389
394
  // Set an event handler
390
395
  switchbot.onadvertisement = (ad: any) => {
391
- this.warnLog(JSON.stringify(ad, null, ' '));
396
+ this.warnLog(`Color Bulb: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
392
397
  };
393
398
  await switchbot.wait(10000);
394
399
  // Stop to monitor
@@ -397,15 +402,6 @@ export class ColorBulb {
397
402
  }
398
403
  }
399
404
 
400
- async BLEconnection(switchbot: any): Promise<void> {
401
- this.errorLog(`Color Bulb: ${this.accessory.displayName} wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`);
402
- if (this.platform.config.credentials?.token) {
403
- this.warnLog(`Color Bulb: ${this.accessory.displayName} Using OpenAPI Connection`);
404
- this.SwitchToOpenAPI = true;
405
- await this.openAPIRefreshStatus();
406
- }
407
- }
408
-
409
405
  private async openAPIRefreshStatus() {
410
406
  try {
411
407
  const t = Date.now();
@@ -941,6 +937,20 @@ export class ColorBulb {
941
937
  }
942
938
  }
943
939
 
940
+ async scan(device: device & devicesConfig): Promise<void> {
941
+ if (device.scanDuration) {
942
+ this.scanDuration = this.accessory.context.scanDuration = device.scanDuration;
943
+ if (device.ble) {
944
+ this.debugLog(`Bot: ${this.accessory.displayName} Using Device Config scanDuration: ${this.scanDuration}`);
945
+ }
946
+ } else {
947
+ this.scanDuration = this.accessory.context.scanDuration = 1;
948
+ if (this.device.ble) {
949
+ this.debugLog(`Bot: ${this.accessory.displayName} Using Default scanDuration: ${this.scanDuration}`);
950
+ }
951
+ }
952
+ }
953
+
944
954
  async logs(device: device & devicesConfig): Promise<void> {
945
955
  if (this.platform.debugMode) {
946
956
  this.deviceLogging = this.accessory.context.logging = 'debugMode';
@@ -354,7 +354,7 @@ export class Contact {
354
354
  });
355
355
  // Set an event handler
356
356
  switchbot.onadvertisement = (ad: any) => {
357
- this.warnLog(JSON.stringify(ad, null, ' '));
357
+ this.warnLog(`Contact Sensor: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
358
358
  };
359
359
  await switchbot.wait(10000);
360
360
  // Stop to monitor
@@ -512,7 +512,7 @@ export class Curtain {
512
512
  });
513
513
  // Set an event handler
514
514
  switchbot.onadvertisement = (ad: any) => {
515
- this.warnLog(JSON.stringify(ad, null, ' '));
515
+ this.warnLog(`Curtain: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
516
516
  };
517
517
  await switchbot.wait(10000);
518
518
  // Stop to monitor
@@ -369,7 +369,7 @@ export class Humidifier {
369
369
  });
370
370
  // Set an event handler
371
371
  switchbot.onadvertisement = (ad: any) => {
372
- this.warnLog(JSON.stringify(ad, null, ' '));
372
+ this.warnLog(`Humidifier: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
373
373
  };
374
374
  await switchbot.wait(10000);
375
375
  // Stop to monitor
@@ -387,7 +387,7 @@ export class Meter {
387
387
  });
388
388
  // Set an event handler
389
389
  switchbot.onadvertisement = (ad: any) => {
390
- this.warnLog(JSON.stringify(ad, null, ' '));
390
+ this.warnLog(`Meter: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
391
391
  };
392
392
  await switchbot.wait(10000);
393
393
  // Stop to monitor
@@ -324,7 +324,7 @@ export class MeterPlus {
324
324
  });
325
325
  // Set an event handler
326
326
  switchbot.onadvertisement = (ad: any) => {
327
- this.warnLog(JSON.stringify(ad, null, ' '));
327
+ this.warnLog(`Meter Plus: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
328
328
  };
329
329
  await switchbot.wait(10000);
330
330
  // Stop to monitor
@@ -306,7 +306,7 @@ export class Motion {
306
306
  });
307
307
  // Set an event handler
308
308
  switchbot.onadvertisement = (ad: any) => {
309
- this.warnLog(JSON.stringify(ad, null, ' '));
309
+ this.warnLog(`Motion Sensor: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
310
310
  };
311
311
  await switchbot.wait(10000);
312
312
  // Stop to monitor
@@ -263,7 +263,7 @@ export class Plug {
263
263
  });
264
264
  // Set an event handler
265
265
  switchbot.onadvertisement = (ad: any) => {
266
- this.warnLog(JSON.stringify(ad, null, ' '));
266
+ this.warnLog(`Plug: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
267
267
  };
268
268
  await switchbot.wait(10000);
269
269
  // Stop to monitor
@@ -183,22 +183,22 @@ export class AirConditioner {
183
183
  */
184
184
  async pushAirConditionerOnChanges(): Promise<void> {
185
185
  if (this.Active !== this.platform.Characteristic.Active.ACTIVE || this.pushOn) {
186
- const payload = {
187
- commandType: 'command',
188
- parameter: 'default',
189
- command: 'turnOn',
190
- } as any;
191
- await this.pushChanges(payload);
186
+ const body = JSON.stringify({
187
+ 'command': 'turnOn',
188
+ 'parameter': 'default',
189
+ 'commandType': 'command',
190
+ });
191
+ await this.pushChanges(body);
192
192
  }
193
193
  }
194
194
 
195
195
  async pushAirConditionerOffChanges(): Promise<void> {
196
- const payload = {
197
- commandType: 'command',
198
- parameter: 'default',
199
- command: 'turnOff',
200
- } as any;
201
- await this.pushChanges(payload);
196
+ const body = JSON.stringify({
197
+ 'command': 'turnOff',
198
+ 'parameter': 'default',
199
+ 'commandType': 'command',
200
+ });
201
+ await this.pushChanges(body);
202
202
  }
203
203
 
204
204
  async pushAirConditionerStatusChanges(): Promise<void> {
@@ -213,11 +213,6 @@ export class AirConditioner {
213
213
  }
214
214
 
215
215
  async pushAirConditionerDetailsChanges(): Promise<void> {
216
- const payload = {
217
- commandType: 'command',
218
- command: 'setAll',
219
- } as any;
220
-
221
216
  this.CurrentTemperatureUndefined();
222
217
  if (this.CurrentMode === undefined) {
223
218
  this.CurrentMode = 1;
@@ -236,7 +231,7 @@ export class AirConditioner {
236
231
  `Air Conditioner: ${this.accessory.displayName} CurrentMode: ${this.CurrentMode},` + ` CurrentTemperature: ${this.CurrentTemperature}`,
237
232
  );
238
233
  }
239
- payload.parameter = `${this.CurrentTemperature},${this.CurrentMode},${this.CurrentFanSpeed},${this.state}`;
234
+ const parameter = `${this.CurrentTemperature},${this.CurrentMode},${this.CurrentFanSpeed},${this.state}`;
240
235
 
241
236
  if (this.Active === this.platform.Characteristic.Active.ACTIVE) {
242
237
  this.CurrentTemperatureUndefined();
@@ -248,53 +243,53 @@ export class AirConditioner {
248
243
  } else {
249
244
  this.CurrentHeaterCoolerState = this.platform.Characteristic.CurrentHeaterCoolerState.INACTIVE;
250
245
  }
246
+ const body = JSON.stringify({
247
+ 'command': 'setAll',
248
+ 'parameter': `${parameter}`,
249
+ 'commandType': 'command',
250
+ });
251
251
 
252
- await this.pushChanges(payload);
252
+ await this.pushChanges(body);
253
253
  }
254
254
 
255
- async pushChanges(payload): Promise<void> {
255
+ async pushChanges(body): Promise<void> {
256
256
  try {
257
- this.infoLog(
258
- `Air Conditioner: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},` +
259
- ` parameter: [${payload.parameter}], commandType: ${payload.commandType}`,
260
- );
261
-
262
- // Make the API request
257
+ // Make Push On request to the API
263
258
  const t = Date.now();
264
259
  const nonce = 'requestID';
265
260
  const data = this.platform.config.credentials?.token + t + nonce;
266
- const signTerm = crypto.createHmac('sha256', this.platform.config.credentials?.secret).update(Buffer.from(data, 'utf-8')).digest();
261
+ const signTerm = crypto.createHmac('sha256', this.platform.config.credentials?.secret)
262
+ .update(Buffer.from(data, 'utf-8'))
263
+ .digest();
267
264
  const sign = signTerm.toString('base64');
268
265
  this.debugLog(`Air Conditioner: ${this.accessory.displayName} sign: ${sign}`);
266
+ this.infoLog(`Air Conditioner: ${this.accessory.displayName} Sending request to SwitchBot API. body: ${body},`);
269
267
  const options = {
270
268
  hostname: HostDomain,
271
269
  port: 443,
272
270
  path: `${DevicePath}/${this.device.deviceId}/commands`,
273
271
  method: 'POST',
274
272
  headers: {
275
- Authorization: this.platform.config.credentials?.token,
276
- sign: sign,
277
- nonce: nonce,
278
- t: t,
273
+ 'Authorization': this.platform.config.credentials?.token,
274
+ 'sign': sign,
275
+ 'nonce': nonce,
276
+ 't': t,
279
277
  'Content-Type': 'application/json',
278
+ 'Content-Length': body.length,
280
279
  },
281
280
  };
282
-
283
- const req = https.request(options, (res) => {
281
+ const req = https.request(options, res => {
284
282
  this.debugLog(`Air Conditioner: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
285
283
  this.statusCode({ res });
286
- res.on('data', (d) => {
284
+ res.on('data', d => {
287
285
  this.debugLog(`Air Conditioner: ${this.accessory.displayName} d: ${d}`);
288
286
  });
289
287
  });
290
-
291
- req.on('error', (error) => {
292
- this.errorLog(`Air Conditioner: ${this.accessory.displayName} error: ${error}`);
288
+ req.on('error', (e: any) => {
289
+ this.errorLog(`Air Conditioner: ${this.accessory.displayName} error message: ${e.message}`);
293
290
  });
294
-
295
- req.write(payload);
291
+ req.write(body);
296
292
  req.end();
297
-
298
293
  this.debugLog(`Air Conditioner: ${this.accessory.displayName} pushchanges: ${JSON.stringify(req)}`);
299
294
  this.CurrentTemperatureCached = this.CurrentTemperature;
300
295
  this.accessory.context.CurrentTemperature = this.CurrentTemperatureCached;