@switchbot/homebridge-switchbot 1.7.1-beta.1 → 1.7.1-beta.13

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 (97) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/config.schema.json +49 -36
  3. package/dist/devices/bots.d.ts +7 -5
  4. package/dist/devices/bots.d.ts.map +1 -1
  5. package/dist/devices/bots.js +72 -66
  6. package/dist/devices/bots.js.map +1 -1
  7. package/dist/devices/colorbulb.d.ts +9 -4
  8. package/dist/devices/colorbulb.d.ts.map +1 -1
  9. package/dist/devices/colorbulb.js +50 -37
  10. package/dist/devices/colorbulb.js.map +1 -1
  11. package/dist/devices/contact.d.ts +9 -10
  12. package/dist/devices/contact.d.ts.map +1 -1
  13. package/dist/devices/contact.js +105 -137
  14. package/dist/devices/contact.js.map +1 -1
  15. package/dist/devices/curtains.d.ts +11 -4
  16. package/dist/devices/curtains.d.ts.map +1 -1
  17. package/dist/devices/curtains.js +70 -44
  18. package/dist/devices/curtains.js.map +1 -1
  19. package/dist/devices/humidifiers.d.ts +8 -2
  20. package/dist/devices/humidifiers.d.ts.map +1 -1
  21. package/dist/devices/humidifiers.js +42 -36
  22. package/dist/devices/humidifiers.js.map +1 -1
  23. package/dist/devices/meters.d.ts +17 -15
  24. package/dist/devices/meters.d.ts.map +1 -1
  25. package/dist/devices/meters.js +99 -133
  26. package/dist/devices/meters.js.map +1 -1
  27. package/dist/devices/motion.d.ts +8 -9
  28. package/dist/devices/motion.d.ts.map +1 -1
  29. package/dist/devices/motion.js +97 -120
  30. package/dist/devices/motion.js.map +1 -1
  31. package/dist/devices/plugs.d.ts +6 -4
  32. package/dist/devices/plugs.d.ts.map +1 -1
  33. package/dist/devices/plugs.js +44 -31
  34. package/dist/devices/plugs.js.map +1 -1
  35. package/dist/irdevices/airconditioners.d.ts +2 -1
  36. package/dist/irdevices/airconditioners.d.ts.map +1 -1
  37. package/dist/irdevices/airconditioners.js +19 -12
  38. package/dist/irdevices/airconditioners.js.map +1 -1
  39. package/dist/irdevices/airpurifiers.d.ts +4 -3
  40. package/dist/irdevices/airpurifiers.d.ts.map +1 -1
  41. package/dist/irdevices/airpurifiers.js +23 -16
  42. package/dist/irdevices/airpurifiers.js.map +1 -1
  43. package/dist/irdevices/cameras.d.ts +2 -1
  44. package/dist/irdevices/cameras.d.ts.map +1 -1
  45. package/dist/irdevices/cameras.js +19 -12
  46. package/dist/irdevices/cameras.js.map +1 -1
  47. package/dist/irdevices/fans.d.ts +2 -1
  48. package/dist/irdevices/fans.d.ts.map +1 -1
  49. package/dist/irdevices/fans.js +19 -12
  50. package/dist/irdevices/fans.js.map +1 -1
  51. package/dist/irdevices/lights.d.ts +2 -1
  52. package/dist/irdevices/lights.d.ts.map +1 -1
  53. package/dist/irdevices/lights.js +19 -12
  54. package/dist/irdevices/lights.js.map +1 -1
  55. package/dist/irdevices/others.d.ts +3 -2
  56. package/dist/irdevices/others.d.ts.map +1 -1
  57. package/dist/irdevices/others.js +23 -16
  58. package/dist/irdevices/others.js.map +1 -1
  59. package/dist/irdevices/tvs.d.ts +2 -1
  60. package/dist/irdevices/tvs.d.ts.map +1 -1
  61. package/dist/irdevices/tvs.js +19 -12
  62. package/dist/irdevices/tvs.js.map +1 -1
  63. package/dist/irdevices/vacuumcleaners.d.ts +2 -1
  64. package/dist/irdevices/vacuumcleaners.d.ts.map +1 -1
  65. package/dist/irdevices/vacuumcleaners.js +19 -12
  66. package/dist/irdevices/vacuumcleaners.js.map +1 -1
  67. package/dist/irdevices/waterheaters.d.ts +2 -1
  68. package/dist/irdevices/waterheaters.d.ts.map +1 -1
  69. package/dist/irdevices/waterheaters.js +19 -12
  70. package/dist/irdevices/waterheaters.js.map +1 -1
  71. package/dist/platform.d.ts +2 -1
  72. package/dist/platform.d.ts.map +1 -1
  73. package/dist/platform.js +14 -1
  74. package/dist/platform.js.map +1 -1
  75. package/dist/settings.d.ts +7 -1
  76. package/dist/settings.d.ts.map +1 -1
  77. package/dist/settings.js.map +1 -1
  78. package/package.json +5 -5
  79. package/src/devices/bots.ts +75 -70
  80. package/src/devices/colorbulb.ts +56 -40
  81. package/src/devices/contact.ts +108 -138
  82. package/src/devices/curtains.ts +79 -48
  83. package/src/devices/humidifiers.ts +50 -37
  84. package/src/devices/meters.ts +115 -143
  85. package/src/devices/motion.ts +102 -121
  86. package/src/devices/plugs.ts +47 -32
  87. package/src/irdevices/airconditioners.ts +20 -12
  88. package/src/irdevices/airpurifiers.ts +24 -16
  89. package/src/irdevices/cameras.ts +20 -12
  90. package/src/irdevices/fans.ts +20 -12
  91. package/src/irdevices/lights.ts +20 -12
  92. package/src/irdevices/others.ts +24 -16
  93. package/src/irdevices/tvs.ts +20 -12
  94. package/src/irdevices/vacuumcleaners.ts +20 -12
  95. package/src/irdevices/waterheaters.ts +20 -12
  96. package/src/platform.ts +14 -1
  97. package/src/settings.ts +7 -1
@@ -14,14 +14,10 @@ class Curtain {
14
14
  this.scan();
15
15
  this.setMinMax();
16
16
  this.refreshRate();
17
+ this.config(device);
17
18
  this.CurrentPosition = 0;
18
19
  this.TargetPosition = 0;
19
20
  this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
20
- // Curtain Config
21
- this.debugLog(`Curtain: ${this.accessory.displayName} Config: (ble: ${device.ble}, disable_group: ${device.curtain?.disable_group},`
22
- + ` hide_lightsensor: ${device.curtain?.hide_lightsensor}, set_minLux: ${device.curtain?.set_minLux}, set_maxLux: `
23
- + `${device.curtain?.set_maxLux}, refreshRate: ${device.curtain?.refreshRate}, set_max: ${device.curtain?.set_max}, set_min: `
24
- + `${device.curtain?.set_min}, set_minStep: ${device.curtain?.set_minStep})`);
25
21
  // this is subject we use to track when we need to POST changes to the SwitchBot API
26
22
  this.doCurtainUpdate = new rxjs_1.Subject();
27
23
  this.curtainUpdateInProgress = false;
@@ -83,6 +79,22 @@ class Curtain {
83
79
  else {
84
80
  this.debugLog(`Curtain: ${accessory.displayName} Light Sensor Service Not Added`);
85
81
  }
82
+ // Battery Service
83
+ if (!device.ble) {
84
+ this.debugLog(`Curtain: ${accessory.displayName} Removing Battery Service`);
85
+ this.batteryService = this.accessory.getService(this.platform.Service.Battery);
86
+ accessory.removeService(this.batteryService);
87
+ }
88
+ else if (device.ble && !this.batteryService) {
89
+ this.debugLog(`Curtain: ${accessory.displayName} Add Battery Service`);
90
+ (this.batteryService =
91
+ this.accessory.getService(this.platform.Service.Battery) ||
92
+ this.accessory.addService(this.platform.Service.Battery)), `${accessory.displayName} Battery`;
93
+ this.batteryService.setCharacteristic(this.platform.Characteristic.Name, `${accessory.displayName} Battery`);
94
+ }
95
+ else {
96
+ this.debugLog(`Curtain: ${accessory.displayName} Battery Service Not Added`);
97
+ }
86
98
  // Update Homekit
87
99
  this.updateHomeKitCharacteristics();
88
100
  // Start an update interval
@@ -92,7 +104,7 @@ class Curtain {
92
104
  this.refreshStatus();
93
105
  });
94
106
  // update slide progress
95
- (0, rxjs_1.interval)(this.curtainRefreshRate * 1000)
107
+ (0, rxjs_1.interval)(this.updateRate * 1000)
96
108
  .pipe((0, operators_1.skipWhile)(() => this.curtainUpdateInProgress))
97
109
  .subscribe(() => {
98
110
  if (this.PositionState === this.platform.Characteristic.PositionState.STOPPED) {
@@ -126,6 +138,24 @@ class Curtain {
126
138
  this.curtainUpdateInProgress = false;
127
139
  });
128
140
  }
141
+ config(device) {
142
+ const config = device.curtain;
143
+ if (device.ble !== undefined) {
144
+ config['ble'] = device.ble;
145
+ }
146
+ if (device.logging !== undefined) {
147
+ config['logging'] = device.logging;
148
+ }
149
+ if (device.refreshRate !== undefined) {
150
+ config['refreshRate'] = device.refreshRate;
151
+ }
152
+ if (device.scanDuration !== undefined) {
153
+ config['scanDuration'] = device.scanDuration;
154
+ }
155
+ if (config !== undefined) {
156
+ this.warnLog(`Curtain: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
157
+ }
158
+ }
129
159
  refreshRate() {
130
160
  // refreshRate
131
161
  if (this.device.refreshRate) {
@@ -140,15 +170,15 @@ class Curtain {
140
170
  this.warnLog(`Curtain: ${this.accessory.displayName} Using Platform Config refreshRate: ${this.deviceRefreshRate}`);
141
171
  }
142
172
  }
143
- // curtainRefreshRate
144
- if (this.device?.curtain?.refreshRate) {
145
- this.curtainRefreshRate = this.device?.curtain?.refreshRate;
173
+ // updateRate
174
+ if (this.device?.curtain?.updateRate) {
175
+ this.updateRate = this.device?.curtain?.updateRate;
146
176
  if (this.platform.debugMode || (this.deviceLogging === 'debug')) {
147
177
  this.warnLog(`Curtain: ${this.accessory.displayName} Using Device Config Curtain refreshRate: ${this.deviceRefreshRate}`);
148
178
  }
149
179
  }
150
180
  else {
151
- this.curtainRefreshRate = 5;
181
+ this.updateRate = 5;
152
182
  if (this.platform.debugMode || (this.deviceLogging === 'debug')) {
153
183
  this.warnLog(`Curtain: ${this.accessory.displayName} Using Default Curtain Refresh Rate.`);
154
184
  }
@@ -189,30 +219,6 @@ class Curtain {
189
219
  this.deviceLogging = this.accessory.context.logging = 'standard';
190
220
  }
191
221
  }
192
- async connectBLE() {
193
- let switchbot;
194
- try {
195
- // eslint-disable-next-line @typescript-eslint/no-var-requires
196
- const Switchbot = require('node-switchbot');
197
- switchbot = new Switchbot();
198
- // Convert to BLE Address
199
- this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
200
- this.debugLog(`Curtain: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
201
- }
202
- catch (e) {
203
- switchbot = false;
204
- this.errorLog(`Curtain: ${this.accessory.displayName} 'node-switchbot' found: ${switchbot}`);
205
- if (this.deviceLogging === 'debug') {
206
- this.errorLog(`Curtain: ${this.accessory.displayName} 'node-switchbot' found: ${switchbot},`
207
- + ` Error Message: ${JSON.stringify(e.message)}`);
208
- }
209
- if (this.platform.debugMode) {
210
- this.errorLog(`Curtain: ${this.accessory.displayName} 'node-switchbot' found: ${switchbot},`
211
- + ` Error: ${JSON.stringify(e)}`);
212
- }
213
- }
214
- return switchbot;
215
- }
216
222
  minStep() {
217
223
  if (this.device.curtain?.set_minStep) {
218
224
  this.set_minStep = this.device.curtain?.set_minStep;
@@ -240,16 +246,20 @@ class Curtain {
240
246
  }
241
247
  return this.set_maxLux;
242
248
  }
249
+ /**
250
+ * Parse the device status from the SwitchBot api
251
+ */
243
252
  async parseStatus() {
244
- if (this.device.ble) {
245
- await this.BLEparseStatus();
253
+ if (this.SwitchToOpenAPI || !this.device.ble) {
254
+ await this.openAPIparseStatus();
246
255
  }
247
256
  else {
248
- await this.openAPIparseStatus();
257
+ await this.BLEparseStatus();
249
258
  }
250
259
  }
251
260
  async BLEparseStatus() {
252
261
  this.debugLog(`Curtain: ${this.accessory.displayName} BLE parseStatus`);
262
+ // CurrentPosition
253
263
  this.setMinMax();
254
264
  this.CurrentPosition = 100 - Number(this.position);
255
265
  this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition ${this.CurrentPosition}`);
@@ -277,6 +287,7 @@ class Curtain {
277
287
  // If Curtain calibration distance is short, there will be an error between the current percentage and the target percentage.
278
288
  this.TargetPosition = this.CurrentPosition;
279
289
  this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
290
+ this.debugLog(`Curtain: ${this.accessory.displayName} Stopped`);
280
291
  }
281
292
  }
282
293
  this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition},`
@@ -343,16 +354,19 @@ class Curtain {
343
354
  this.debugLog(`Curtain: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}, StatusLowBattery: ${this.StatusLowBattery}`);
344
355
  }
345
356
  async openAPIparseStatus() {
357
+ if (this.device.ble) {
358
+ this.SwitchToOpenAPI = false;
359
+ }
346
360
  if (this.platform.config.credentials?.openToken) {
347
361
  this.debugLog(`Curtain: ${this.accessory.displayName} OpenAPI parseStatus`);
348
362
  // CurrentPosition
349
363
  this.setMinMax();
350
- this.CurrentPosition = 100 - this.deviceStatus.body.slidePosition;
364
+ this.CurrentPosition = 100 - Number(this.slidePosition);
351
365
  this.debugLog(`Curtain ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition}`);
352
366
  if (this.setNewTarget) {
353
- this.infoLog(`Checking ${this.accessory.displayName} Status ...`);
367
+ this.infoLog(`Curtain: ${this.accessory.displayName} Checking Status ...`);
354
368
  }
355
- if (this.deviceStatus.body.moving) {
369
+ if (this.setNewTarget && this.moving) {
356
370
  this.setMinMax();
357
371
  if (this.TargetPosition > this.CurrentPosition) {
358
372
  this.debugLog(`Curtain: ${this.accessory.displayName} Closing, CurrentPosition: ${this.CurrentPosition} `);
@@ -373,6 +387,7 @@ class Curtain {
373
387
  /*If Curtain calibration distance is short, there will be an error between the current percentage and the target percentage.*/
374
388
  this.TargetPosition = this.CurrentPosition;
375
389
  this.PositionState = this.platform.Characteristic.PositionState.STOPPED;
390
+ this.debugLog(`Curtain: ${this.accessory.displayName} Stopped`);
376
391
  }
377
392
  }
378
393
  this.debugLog(`Curtain: ${this.accessory.displayName} CurrentPosition: ${this.CurrentPosition},`
@@ -381,7 +396,7 @@ class Curtain {
381
396
  this.set_minLux = this.minLux();
382
397
  this.set_maxLux = this.maxLux();
383
398
  // Brightness
384
- switch (this.deviceStatus.body.brightness) {
399
+ switch (this.brightness) {
385
400
  case 'dim':
386
401
  this.CurrentAmbientLightLevel = this.set_minLux;
387
402
  break;
@@ -403,8 +418,10 @@ class Curtain {
403
418
  }
404
419
  async BLERefreshStatus() {
405
420
  this.debugLog(`Curtain: ${this.accessory.displayName} BLE refreshStatus`);
406
- // eslint-disable-next-line @typescript-eslint/no-var-requires
407
- const switchbot = await this.connectBLE();
421
+ const switchbot = await this.platform.connectBLE();
422
+ // Convert to BLE Address
423
+ this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
424
+ this.debugLog(`Curtain: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
408
425
  // Start to monitor advertisement packets
409
426
  if (switchbot !== false) {
410
427
  switchbot.startScan({
@@ -443,6 +460,7 @@ class Curtain {
443
460
  this.errorLog(`Curtain: ${this.accessory.displayName} wasn't able to establish BLE Connection`);
444
461
  if (this.platform.config.credentials?.openToken) {
445
462
  this.warnLog(`Curtain: ${this.accessory.displayName} Using OpenAPI Connection`);
463
+ this.SwitchToOpenAPI = true;
446
464
  await this.openAPIRefreshStatus();
447
465
  }
448
466
  }
@@ -458,6 +476,7 @@ class Curtain {
458
476
  }
459
477
  if (this.platform.config.credentials?.openToken) {
460
478
  this.warnLog(`Curtain: ${this.accessory.displayName} Using OpenAPI Connection`);
479
+ this.SwitchToOpenAPI = true;
461
480
  await this.openAPIRefreshStatus();
462
481
  }
463
482
  this.apiError(e);
@@ -471,6 +490,7 @@ class Curtain {
471
490
  this.errorLog(`Curtain: ${this.accessory.displayName} wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`);
472
491
  if (this.platform.config.credentials?.openToken) {
473
492
  this.warnLog(`Curtain: ${this.accessory.displayName} Using OpenAPI Connection`);
493
+ this.SwitchToOpenAPI = true;
474
494
  await this.openAPIRefreshStatus();
475
495
  }
476
496
  }
@@ -480,6 +500,9 @@ class Curtain {
480
500
  try {
481
501
  this.deviceStatus = (await this.platform.axios.get(`${settings_1.DeviceURL}/${this.device.deviceId}/status`)).data;
482
502
  this.debugLog(`Curtain: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
503
+ this.slidePosition = this.deviceStatus.body.slidePosition;
504
+ this.moving = this.deviceStatus.body.moving;
505
+ this.brightness = this.deviceStatus.body.brightness;
483
506
  this.parseStatus();
484
507
  this.updateHomeKitCharacteristics();
485
508
  }
@@ -514,7 +537,10 @@ class Curtain {
514
537
  async BLEpushChanges() {
515
538
  if (this.TargetPosition !== this.CurrentPosition) {
516
539
  this.debugLog(`Curtain: ${this.accessory.displayName} BLE pushChanges`);
517
- const switchbot = await this.connectBLE();
540
+ const switchbot = await this.platform.connectBLE();
541
+ // Convert to BLE Address
542
+ this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
543
+ this.debugLog(`Curtain: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
518
544
  if (switchbot !== false) {
519
545
  switchbot.discover({ model: 'c', quick: true, id: this.device.bleMac }).then((device_list) => {
520
546
  this.infoLog(`${this.accessory.displayName} Target Position: ${this.TargetPosition}`);
@@ -1 +1 @@
1
- {"version":3,"file":"curtains.js","sourceRoot":"","sources":["../../src/devices/curtains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curtains.js","sourceRoot":"","sources":["../../src/devices/curtains.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import { SwitchBotPlatform } from '../platform';
3
3
  import { Service, PlatformAccessory, CharacteristicValue } from 'homebridge';
4
- import { device, devicesConfig, serviceData, deviceStatusResponse } from '../settings';
4
+ import { device, devicesConfig, serviceData, deviceStatusResponse, deviceStatus } from '../settings';
5
5
  /**
6
6
  * Platform Accessory
7
7
  * An instance of this class is created for each accessory your platform registers
@@ -20,6 +20,12 @@ export declare class Humidifier {
20
20
  RelativeHumidityHumidifierThreshold: CharacteristicValue;
21
21
  Active: CharacteristicValue;
22
22
  WaterLevel: CharacteristicValue;
23
+ auto: deviceStatus['auto'];
24
+ power: deviceStatus['power'];
25
+ humidity: deviceStatus['humidity'];
26
+ lackWater: deviceStatus['lackWater'];
27
+ temperature: deviceStatus['temperature'];
28
+ nebulizationEfficiency: deviceStatus['nebulizationEfficiency'];
23
29
  deviceStatus: deviceStatusResponse;
24
30
  connected?: boolean;
25
31
  serviceData: serviceData;
@@ -33,6 +39,7 @@ export declare class Humidifier {
33
39
  humidifierUpdateInProgress: boolean;
34
40
  doHumidifierUpdate: Subject<void>;
35
41
  constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
42
+ config(device: device & devicesConfig): void;
36
43
  refreshRate(): void;
37
44
  scan(): void;
38
45
  logs(): void;
@@ -47,7 +54,6 @@ export declare class Humidifier {
47
54
  * Asks the SwitchBot API for the latest device information
48
55
  */
49
56
  refreshStatus(): Promise<void>;
50
- connectBLE(): Promise<any>;
51
57
  private BLERefreshStatus;
52
58
  BLEconnection(switchbot: any): Promise<void>;
53
59
  private openAPIRefreshStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"humidifiers.d.ts","sourceRoot":"","sources":["../../src/devices/humidifiers.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAa,MAAM,EAAE,aAAa,EAAE,WAAW,EAAM,oBAAoB,EAAW,MAAM,aAAa,CAAC;AAE/G;;;;GAIG;AACH,qBAAa,UAAU;IAmCnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,SAAS;IACV,MAAM,EAAE,MAAM,GAAG,aAAa;IAnCvC,OAAO,CAAC,OAAO,CAAU;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAG7B,uBAAuB,EAAG,mBAAmB,CAAC;IAC9C,kBAAkB,EAAG,mBAAmB,CAAC;IACzC,iCAAiC,EAAG,mBAAmB,CAAC;IACxD,kCAAkC,EAAG,mBAAmB,CAAC;IACzD,mCAAmC,EAAG,mBAAmB,CAAC;IAC1D,MAAM,EAAG,mBAAmB,CAAC;IAC7B,UAAU,EAAG,mBAAmB,CAAC;IAGjC,YAAY,EAAG,oBAAoB,CAAC;IAGpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAG,WAAW,CAAC;IAC1B,OAAO,EAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,UAAU,EAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAGvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;IACvB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,0BAA0B,EAAG,OAAO,CAAC;IACrC,kBAAkB,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGhB,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,GAAG,aAAa;IAgJvC,WAAW;IAcX,IAAI;IAcJ,IAAI;IAmBJ,OAAO,CAAC,OAAO;IASf;;OAEG;IACH,WAAW;IAQX,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,kBAAkB;IAwD1B;;OAEG;IACG,aAAa;IAQN,UAAU;YAwBT,gBAAgB;IA4DjB,aAAa,CAAC,SAAS,EAAE,GAAG;YAQ3B,oBAAoB;IA2BlC;;OAEG;IACG,WAAW;YAcH,cAAc;YAkCd,kBAAkB;IA+ChC;;OAEG;IACG,eAAe;IAoCrB;;OAEG;IACG,iBAAiB;IAgCvB;;OAEG;IACH,4BAA4B;IAsDrB,QAAQ,CAAC,CAAC,EAAE,GAAG;IAetB,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,OAAO,CAAC,0CAA0C;IAOlD;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,4CAA4C;IAWpD;;KAEC;IACD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAMrB,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAMrB,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAMtB,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAUtB,qBAAqB,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"humidifiers.d.ts","sourceRoot":"","sources":["../../src/devices/humidifiers.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ class Humidifier {
18
18
  this.logs();
19
19
  this.scan();
20
20
  this.refreshRate();
21
+ this.config(device);
21
22
  this.CurrentRelativeHumidity = 0;
22
23
  this.TargetHumidifierDehumidifierState = this.platform.Characteristic.TargetHumidifierDehumidifierState.HUMIDIFIER;
23
24
  this.CurrentHumidifierDehumidifierState = this.platform.Characteristic.CurrentHumidifierDehumidifierState.INACTIVE;
@@ -95,7 +96,7 @@ class Humidifier {
95
96
  minStep: 0.1,
96
97
  })
97
98
  .onGet(() => {
98
- return Number.isNaN(this.CurrentTemperature);
99
+ return this.CurrentTemperature;
99
100
  });
100
101
  }
101
102
  else {
@@ -134,6 +135,24 @@ class Humidifier {
134
135
  this.humidifierUpdateInProgress = false;
135
136
  });
136
137
  }
138
+ config(device) {
139
+ const config = device.humidifier;
140
+ if (device.ble !== undefined) {
141
+ config['ble'] = device.ble;
142
+ }
143
+ if (device.logging !== undefined) {
144
+ config['logging'] = device.logging;
145
+ }
146
+ if (device.refreshRate !== undefined) {
147
+ config['refreshRate'] = device.refreshRate;
148
+ }
149
+ if (device.scanDuration !== undefined) {
150
+ config['scanDuration'] = device.scanDuration;
151
+ }
152
+ if (config !== undefined) {
153
+ this.warnLog(`Humidifier: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
154
+ }
155
+ }
137
156
  refreshRate() {
138
157
  if (this.device.refreshRate) {
139
158
  this.deviceRefreshRate = this.accessory.context.refreshRate = this.device.refreshRate;
@@ -221,15 +240,15 @@ class Humidifier {
221
240
  if (this.platform.config.credentials?.openToken) {
222
241
  this.debugLog(`Humidifier: ${this.accessory.displayName} OpenAPI parseStatus`);
223
242
  // Current Relative Humidity
224
- this.CurrentRelativeHumidity = this.deviceStatus.body.humidity;
243
+ this.CurrentRelativeHumidity = this.humidity;
225
244
  this.debugLog(`Humidifier: ${this.accessory.displayName} CurrentRelativeHumidity: ${this.CurrentRelativeHumidity}`);
226
245
  // Current Temperature
227
246
  if (!this.device.humidifier?.hide_temperature) {
228
- this.CurrentTemperature = Number(this.deviceStatus.body.temperature);
247
+ this.CurrentTemperature = this.temperature;
229
248
  this.debugLog(`Humidifier: ${this.accessory.displayName} CurrentTemperature: ${this.CurrentTemperature}`);
230
249
  }
231
250
  // Target Humidifier Dehumidifier State
232
- switch (this.deviceStatus.body.auto) {
251
+ switch (this.auto) {
233
252
  case true:
234
253
  this.TargetHumidifierDehumidifierState = this.platform.Characteristic.TargetHumidifierDehumidifierState.HUMIDIFIER_OR_DEHUMIDIFIER;
235
254
  this.CurrentHumidifierDehumidifierState = this.platform.Characteristic.CurrentHumidifierDehumidifierState.HUMIDIFYING;
@@ -237,11 +256,11 @@ class Humidifier {
237
256
  break;
238
257
  default:
239
258
  this.TargetHumidifierDehumidifierState = this.platform.Characteristic.TargetHumidifierDehumidifierState.HUMIDIFIER;
240
- if (this.deviceStatus.body.nebulizationEfficiency > 100) {
259
+ if (this.nebulizationEfficiency > 100) {
241
260
  this.RelativeHumidityHumidifierThreshold = 100;
242
261
  }
243
262
  else {
244
- this.RelativeHumidityHumidifierThreshold = this.deviceStatus.body.nebulizationEfficiency;
263
+ this.RelativeHumidityHumidifierThreshold = this.nebulizationEfficiency;
245
264
  }
246
265
  if (this.CurrentRelativeHumidity > this.RelativeHumidityHumidifierThreshold) {
247
266
  this.CurrentHumidifierDehumidifierState = this.platform.Characteristic.CurrentHumidifierDehumidifierState.IDLE;
@@ -258,7 +277,7 @@ class Humidifier {
258
277
  + ` RelativeHumidityHumidifierThreshold: ${this.RelativeHumidityHumidifierThreshold}`);
259
278
  this.debugLog(`Humidifier: ${this.accessory.displayName} CurrentHumidifierDehumidifierState: ${this.CurrentHumidifierDehumidifierState}`);
260
279
  // Active
261
- switch (this.deviceStatus.body.power) {
280
+ switch (this.power) {
262
281
  case 'on':
263
282
  this.Active = this.platform.Characteristic.Active.ACTIVE;
264
283
  break;
@@ -267,7 +286,7 @@ class Humidifier {
267
286
  }
268
287
  this.debugLog(`Humidifier: ${this.accessory.displayName} Active: ${this.Active}`);
269
288
  // Water Level
270
- if (this.deviceStatus.body.lackWater) {
289
+ if (this.lackWater) {
271
290
  this.WaterLevel = 0;
272
291
  }
273
292
  else {
@@ -287,34 +306,12 @@ class Humidifier {
287
306
  await this.openAPIRefreshStatus();
288
307
  }
289
308
  }
290
- async connectBLE() {
291
- let switchbot;
292
- try {
293
- // eslint-disable-next-line @typescript-eslint/no-var-requires
294
- const Switchbot = require('node-switchbot');
295
- switchbot = new Switchbot();
296
- // Convert to BLE Address
297
- this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
298
- this.debugLog(`Humidifier: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
299
- }
300
- catch (e) {
301
- switchbot = false;
302
- this.errorLog(`Humidifier: ${this.accessory.displayName} 'node-switchbot' found: ${switchbot}`);
303
- if (this.deviceLogging === 'debug') {
304
- this.errorLog(`Humidifier: ${this.accessory.displayName} 'node-switchbot' found: ${switchbot},`
305
- + ` Error Message: ${JSON.stringify(e.message)}`);
306
- }
307
- if (this.platform.debugMode) {
308
- this.errorLog(`Humidifier: ${this.accessory.displayName} 'node-switchbot' found: ${switchbot},`
309
- + ` Error: ${JSON.stringify(e)}`);
310
- }
311
- }
312
- return switchbot;
313
- }
314
309
  async BLERefreshStatus() {
315
310
  this.debugLog(`Humidifier: ${this.accessory.displayName} BLE refreshStatus`);
316
- // eslint-disable-next-line @typescript-eslint/no-var-requires
317
- const switchbot = await this.connectBLE();
311
+ const switchbot = await this.platform.connectBLE();
312
+ // Convert to BLE Address
313
+ this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
314
+ this.debugLog(`Curtain: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
318
315
  // Start to monitor advertisement packets
319
316
  if (switchbot !== false) {
320
317
  switchbot.startScan({
@@ -386,11 +383,17 @@ class Humidifier {
386
383
  this.deviceStatus = (await this.platform.axios.get(`${settings_1.DeviceURL}/${this.device.deviceId}/status`)).data;
387
384
  if (this.deviceStatus.message === 'success') {
388
385
  this.debugLog(`Humidifier: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
386
+ this.auto = this.deviceStatus.body.auto;
387
+ this.power = this.deviceStatus.body.power;
388
+ this.lackWater = this.deviceStatus.body.lackWater;
389
+ this.humidity = this.deviceStatus.body.humidity;
390
+ this.temperature = this.deviceStatus.body.temperature;
391
+ this.nebulizationEfficiency = this.deviceStatus.body.nebulizationEfficiency;
389
392
  this.parseStatus();
390
393
  this.updateHomeKitCharacteristics();
391
394
  }
392
395
  else {
393
- this.debugLog(this.deviceStatus);
396
+ this.errorLog(`Humidifier: ${this.accessory.displayName} message: ${JSON.stringify(this.deviceStatus.message)}`);
394
397
  }
395
398
  }
396
399
  catch (e) {
@@ -425,7 +428,10 @@ class Humidifier {
425
428
  }
426
429
  async BLEpushChanges() {
427
430
  this.debugLog(`Humidifier: ${this.accessory.displayName} BLE pushChanges`);
428
- const switchbot = await this.connectBLE();
431
+ const switchbot = await this.platform.connectBLE();
432
+ // Convert to BLE Address
433
+ this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
434
+ this.debugLog(`Curtain: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
429
435
  if (switchbot !== false) {
430
436
  switchbot.discover({ model: 'e', quick: true, id: this.device.bleMac }).then((device_list) => {
431
437
  this.infoLog(`${this.accessory.displayName} Target Position: ${this.Active}`);