@switchbot/homebridge-switchbot 2.0.0-beta.19 → 2.0.0-beta.20

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 (112) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/README.md +1 -2
  3. package/config.schema.json +51 -32
  4. package/dist/device/bot.d.ts +32 -29
  5. package/dist/device/bot.d.ts.map +1 -1
  6. package/dist/device/bot.js +549 -575
  7. package/dist/device/bot.js.map +1 -1
  8. package/dist/device/colorbulb.d.ts +33 -15
  9. package/dist/device/colorbulb.d.ts.map +1 -1
  10. package/dist/device/colorbulb.js +426 -341
  11. package/dist/device/colorbulb.js.map +1 -1
  12. package/dist/device/contact.d.ts +16 -9
  13. package/dist/device/contact.d.ts.map +1 -1
  14. package/dist/device/contact.js +246 -208
  15. package/dist/device/contact.js.map +1 -1
  16. package/dist/device/curtain.d.ts +21 -18
  17. package/dist/device/curtain.d.ts.map +1 -1
  18. package/dist/device/curtain.js +449 -449
  19. package/dist/device/curtain.js.map +1 -1
  20. package/dist/device/humidifier.d.ts +22 -20
  21. package/dist/device/humidifier.d.ts.map +1 -1
  22. package/dist/device/humidifier.js +346 -324
  23. package/dist/device/humidifier.js.map +1 -1
  24. package/dist/device/lock.d.ts +22 -10
  25. package/dist/device/lock.d.ts.map +1 -1
  26. package/dist/device/lock.js +257 -178
  27. package/dist/device/lock.js.map +1 -1
  28. package/dist/device/meter.d.ts +21 -14
  29. package/dist/device/meter.d.ts.map +1 -1
  30. package/dist/device/meter.js +287 -239
  31. package/dist/device/meter.js.map +1 -1
  32. package/dist/device/meterplus.d.ts +23 -10
  33. package/dist/device/meterplus.d.ts.map +1 -1
  34. package/dist/device/meterplus.js +308 -190
  35. package/dist/device/meterplus.js.map +1 -1
  36. package/dist/device/motion.d.ts +17 -10
  37. package/dist/device/motion.d.ts.map +1 -1
  38. package/dist/device/motion.js +225 -193
  39. package/dist/device/motion.js.map +1 -1
  40. package/dist/device/plug.d.ts +24 -17
  41. package/dist/device/plug.d.ts.map +1 -1
  42. package/dist/device/plug.js +270 -267
  43. package/dist/device/plug.js.map +1 -1
  44. package/dist/device/striplight.d.ts +36 -14
  45. package/dist/device/striplight.d.ts.map +1 -1
  46. package/dist/device/striplight.js +447 -299
  47. package/dist/device/striplight.js.map +1 -1
  48. package/dist/irdevice/airconditioner.d.ts +7 -14
  49. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  50. package/dist/irdevice/airconditioner.js +177 -169
  51. package/dist/irdevice/airconditioner.js.map +1 -1
  52. package/dist/irdevice/airpurifier.d.ts +3 -5
  53. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  54. package/dist/irdevice/airpurifier.js +72 -57
  55. package/dist/irdevice/airpurifier.js.map +1 -1
  56. package/dist/irdevice/camera.d.ts +3 -4
  57. package/dist/irdevice/camera.d.ts.map +1 -1
  58. package/dist/irdevice/camera.js +47 -33
  59. package/dist/irdevice/camera.js.map +1 -1
  60. package/dist/irdevice/fan.d.ts +3 -4
  61. package/dist/irdevice/fan.d.ts.map +1 -1
  62. package/dist/irdevice/fan.js +66 -48
  63. package/dist/irdevice/fan.js.map +1 -1
  64. package/dist/irdevice/light.d.ts +3 -4
  65. package/dist/irdevice/light.d.ts.map +1 -1
  66. package/dist/irdevice/light.js +48 -47
  67. package/dist/irdevice/light.js.map +1 -1
  68. package/dist/irdevice/other.d.ts +3 -4
  69. package/dist/irdevice/other.d.ts.map +1 -1
  70. package/dist/irdevice/other.js +47 -33
  71. package/dist/irdevice/other.js.map +1 -1
  72. package/dist/irdevice/tv.d.ts +10 -11
  73. package/dist/irdevice/tv.d.ts.map +1 -1
  74. package/dist/irdevice/tv.js +64 -48
  75. package/dist/irdevice/tv.js.map +1 -1
  76. package/dist/irdevice/vacuumcleaner.d.ts +7 -12
  77. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  78. package/dist/irdevice/vacuumcleaner.js +52 -41
  79. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  80. package/dist/irdevice/waterheater.d.ts +6 -11
  81. package/dist/irdevice/waterheater.d.ts.map +1 -1
  82. package/dist/irdevice/waterheater.js +52 -42
  83. package/dist/irdevice/waterheater.js.map +1 -1
  84. package/dist/platform.d.ts +0 -4
  85. package/dist/platform.d.ts.map +1 -1
  86. package/dist/platform.js +44 -66
  87. package/dist/platform.js.map +1 -1
  88. package/dist/settings.d.ts +3 -3
  89. package/dist/settings.d.ts.map +1 -1
  90. package/package.json +7 -6
  91. package/src/device/bot.ts +551 -589
  92. package/src/device/colorbulb.ts +441 -375
  93. package/src/device/contact.ts +249 -213
  94. package/src/device/curtain.ts +452 -461
  95. package/src/device/humidifier.ts +358 -365
  96. package/src/device/lock.ts +263 -179
  97. package/src/device/meter.ts +302 -253
  98. package/src/device/meterplus.ts +319 -194
  99. package/src/device/motion.ts +230 -199
  100. package/src/device/plug.ts +273 -274
  101. package/src/device/striplight.ts +460 -316
  102. package/src/irdevice/airconditioner.ts +181 -183
  103. package/src/irdevice/airpurifier.ts +70 -60
  104. package/src/irdevice/camera.ts +46 -36
  105. package/src/irdevice/fan.ts +64 -49
  106. package/src/irdevice/light.ts +47 -51
  107. package/src/irdevice/other.ts +46 -36
  108. package/src/irdevice/tv.ts +64 -51
  109. package/src/irdevice/vacuumcleaner.ts +52 -45
  110. package/src/irdevice/waterheater.ts +50 -45
  111. package/src/platform.ts +44 -68
  112. package/src/settings.ts +3 -3
@@ -25,32 +25,16 @@ class AirConditioner {
25
25
  this.logs(device);
26
26
  this.config(device);
27
27
  this.pushOnChanges(device);
28
- if (this.Active === undefined) {
29
- this.Active = this.platform.Characteristic.Active.INACTIVE;
30
- }
31
- else {
32
- this.Active = this.accessory.context.Active;
33
- }
34
- if (this.CurrentTemperature === undefined) {
35
- this.CurrentTemperature = 24;
36
- }
37
- else {
38
- this.CurrentTemperature = this.accessory.context.CurrentTemperature;
39
- }
40
- if (device.irair?.hide_automode) {
41
- this.hide_automode = device.irair?.hide_automode;
42
- this.accessory.context.hide_automode = this.hide_automode;
43
- }
44
- else {
45
- this.hide_automode = device.irair?.hide_automode;
46
- this.accessory.context.hide_automode = this.hide_automode;
47
- }
28
+ this.context(device);
48
29
  // set accessory information
49
30
  accessory
50
31
  .getService(this.platform.Service.AccessoryInformation)
51
32
  .setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
52
33
  .setCharacteristic(this.platform.Characteristic.Model, device.remoteType)
53
- .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId);
34
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId)
35
+ .setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.FirmwareRevision(accessory, device))
36
+ .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
37
+ .updateValue(this.FirmwareRevision(accessory, device));
54
38
  // get the Television service if it exists, otherwise create a new Television service
55
39
  // you can create multiple services for each accessory
56
40
  (this.coolerService = accessory.getService(this.platform.Service.HeaterCooler) || accessory.addService(this.platform.Service.HeaterCooler)),
@@ -189,10 +173,10 @@ class AirConditioner {
189
173
  const parameter = `${this.CurrentTemperature},${this.CurrentMode},${this.CurrentFanSpeed},${this.state}`;
190
174
  if (this.Active === this.platform.Characteristic.Active.ACTIVE) {
191
175
  this.CurrentTemperatureUndefined();
192
- if (this.CurrentTemperature < this.CurrentTemperatureCached) {
176
+ if (this.CurrentTemperature < this.accessory.context.CurrentTemperature) {
193
177
  this.CurrentHeaterCoolerState = this.platform.Characteristic.CurrentHeaterCoolerState.COOLING;
194
178
  }
195
- else if (this.CurrentTemperature > this.CurrentTemperatureCached) {
179
+ else if (this.CurrentTemperature > this.accessory.context.CurrentTemperature) {
196
180
  this.CurrentHeaterCoolerState = this.platform.Characteristic.CurrentHeaterCoolerState.HEATING;
197
181
  }
198
182
  }
@@ -207,7 +191,7 @@ class AirConditioner {
207
191
  await this.pushChanges(body);
208
192
  }
209
193
  async pushChanges(body) {
210
- if (this.OpenAPI) {
194
+ if (this.device.connectionType === 'OpenAPI') {
211
195
  try {
212
196
  // Make Push On request to the API
213
197
  const t = Date.now();
@@ -234,7 +218,7 @@ class AirConditioner {
234
218
  },
235
219
  };
236
220
  const req = https_1.default.request(options, res => {
237
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
221
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} pushchanges statusCode: ${res.statusCode}`);
238
222
  this.statusCode({ res });
239
223
  res.on('data', d => {
240
224
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} d: ${d}`);
@@ -246,128 +230,34 @@ class AirConditioner {
246
230
  req.write(body);
247
231
  req.end();
248
232
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} pushchanges: ${(0, super_stringify_1.default)(req)}`);
249
- this.CurrentTemperatureCached = this.CurrentTemperature;
250
- this.accessory.context.CurrentTemperature = this.CurrentTemperatureCached;
251
- this.HeatingThresholdTemperature = this.CurrentTemperatureCached;
252
- this.HeatingThresholdTemperatureCached = this.CurrentTemperatureCached;
253
- this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperatureCached;
254
- this.CoolingThresholdTemperature = this.CurrentTemperatureCached;
255
- this.CoolingThresholdTemperatureCached = this.CurrentTemperatureCached;
256
- this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperatureCached;
233
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
234
+ this.HeatingThresholdTemperature = this.CurrentTemperature;
235
+ this.CoolingThresholdTemperature = this.CurrentTemperature;
236
+ this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperature;
237
+ this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperature;
257
238
  this.updateHomeKitCharacteristics();
258
239
  }
259
240
  catch (e) {
260
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges`);
261
- if (this.deviceLogging.includes('debug')) {
262
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges,`
263
- + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
264
- }
265
241
  this.apiError(e);
242
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges with ${this.device.connectionType} Connection,`
243
+ + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
266
244
  }
267
245
  }
268
- }
269
- async statusCode({ res }) {
270
- switch (res.statusCode) {
271
- case 151:
272
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command not supported by this device type.`);
273
- break;
274
- case 152:
275
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device not found.`);
276
- break;
277
- case 160:
278
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command is not supported.`);
279
- break;
280
- case 161:
281
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device is offline.`);
282
- break;
283
- case 171:
284
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
285
- break;
286
- case 190:
287
- this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device internal error due to device states not synchronized` +
288
- ` with server, Or command: ${(0, super_stringify_1.default)(res)} format is invalid`);
289
- break;
290
- case 100:
291
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Command successfully sent.`);
292
- break;
293
- default:
294
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Unknown statusCode.`);
295
- }
296
- }
297
- async updateHomeKitCharacteristics() {
298
- if (this.Active === undefined) {
299
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Active: ${this.Active}`);
300
- }
301
246
  else {
302
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.Active, this.Active);
303
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic Active: ${this.Active}`);
304
- }
305
- if (this.RotationSpeed === undefined) {
306
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} RotationSpeed: ${this.RotationSpeed}`);
307
- }
308
- else {
309
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.RotationSpeed, this.RotationSpeed);
310
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic RotationSpeed: ${this.RotationSpeed}`);
311
- }
312
- if (this.CurrentTemperature === undefined) {
313
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CurrentTemperature: ${this.CurrentTemperature}`);
314
- }
315
- else {
316
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.CurrentTemperature);
317
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic CurrentTemperature: ${this.CurrentTemperature}`);
318
- }
319
- if (this.TargetHeaterCoolerState === undefined) {
320
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} TargetHeaterCoolerState: ${this.TargetHeaterCoolerState}`);
321
- }
322
- else {
323
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.TargetHeaterCoolerState, this.TargetHeaterCoolerState);
324
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}` + ` updateCharacteristic TargetHeaterCoolerState: ${this.TargetHeaterCoolerState}`);
325
- }
326
- if (this.CurrentHeaterCoolerState === undefined) {
327
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
328
- }
329
- else {
330
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.CurrentHeaterCoolerState, this.CurrentHeaterCoolerState);
331
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
332
- + ` updateCharacteristic CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
333
- }
334
- if (this.HeatingThresholdTemperature === undefined) {
335
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} HeatingThresholdTemperature: ${this.HeatingThresholdTemperature}`);
336
- }
337
- else {
338
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature, this.HeatingThresholdTemperature);
339
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
340
- + ` updateCharacteristic HeatingThresholdTemperature: ${this.HeatingThresholdTemperature}`);
341
- }
342
- if (this.CoolingThresholdTemperature === undefined) {
343
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CoolingThresholdTemperature: ${this.CoolingThresholdTemperature}`);
344
- }
345
- else {
346
- this.coolerService?.updateCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature, this.CoolingThresholdTemperature);
347
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
348
- + ` updateCharacteristic CoolingThresholdTemperature: ${this.CoolingThresholdTemperature}`);
247
+ this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName}`
248
+ + ` Connection Type: ${this.device.connectionType}, commands will not be sent to OpenAPI`);
349
249
  }
350
250
  }
351
- async apiError(e) {
352
- this.coolerService.updateCharacteristic(this.platform.Characteristic.Active, e);
353
- this.coolerService.updateCharacteristic(this.platform.Characteristic.RotationSpeed, e);
354
- this.coolerService.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, e);
355
- this.coolerService.updateCharacteristic(this.platform.Characteristic.TargetHeaterCoolerState, e);
356
- this.coolerService.updateCharacteristic(this.platform.Characteristic.CurrentHeaterCoolerState, e);
357
- this.coolerService.updateCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature, e);
358
- this.coolerService.updateCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature, e);
359
- //throw new this.platform.api.hap.HapStatusError(HAPStatus.SERVICE_COMMUNICATION_FAILURE);
360
- }
361
251
  async CurrentTemperatureGet() {
362
252
  if (this.CurrentTemperature === undefined) {
363
253
  this.CurrentTemperature = 24;
364
- this.CurrentTemperatureCached = this.CurrentTemperature;
254
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
365
255
  }
366
256
  else {
367
- this.CurrentTemperatureCached = this.CurrentTemperature;
257
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
368
258
  }
369
259
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Get CurrentTemperature: ${this.CurrentTemperature}`);
370
- this.accessory.context.CurrentTemperature = this.CurrentTemperatureCached;
260
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
371
261
  return this.CurrentTemperature;
372
262
  }
373
263
  async RotationSpeedGet() {
@@ -381,8 +271,7 @@ class AirConditioner {
381
271
  this.RotationSpeed = this.CurrentFanSpeed - 1;
382
272
  }
383
273
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Get RotationSpeed: ${this.RotationSpeed}`);
384
- this.RotationSpeedCached = this.RotationSpeed;
385
- this.accessory.context.RotationSpeed = this.RotationSpeedCached;
274
+ this.accessory.context.RotationSpeed = this.RotationSpeed;
386
275
  return this.RotationSpeed;
387
276
  }
388
277
  async RotationSpeedSet(value) {
@@ -393,15 +282,13 @@ class AirConditioner {
393
282
  this.CurrentFanSpeed = Number(value) + 1;
394
283
  }
395
284
  this.RotationSpeed = this.CurrentFanSpeed;
396
- this.RotationSpeedCached = this.RotationSpeed;
397
- this.accessory.context.RotationSpeed = this.RotationSpeedCached;
285
+ this.accessory.context.RotationSpeed = this.RotationSpeed;
398
286
  this.pushAirConditionerStatusChanges();
399
287
  }
400
288
  async ActiveSet(value) {
401
289
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Set Active: ${value}`);
402
290
  this.Active = value;
403
- this.ActiveCached = this.Active;
404
- this.accessory.context.Active = this.ActiveCached;
291
+ this.accessory.context.Active = this.Active;
405
292
  if (value === this.platform.Characteristic.Active.INACTIVE) {
406
293
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} pushAirConditionerOffChanges, Active: ${this.Active}`);
407
294
  this.pushAirConditionerOffChanges();
@@ -432,8 +319,7 @@ class AirConditioner {
432
319
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Get TargetHeaterCoolerState: ${this.CurrentHeaterCoolerState},` +
433
320
  ` ValidValues: ${this.ValidValues}`);
434
321
  }
435
- this.TargetHeaterCoolerStateCached = this.TargetHeaterCoolerState;
436
- this.accessory.context.TargetHeaterCoolerState = this.TargetHeaterCoolerStateCached;
322
+ this.accessory.context.TargetHeaterCoolerState = this.TargetHeaterCoolerState;
437
323
  return this.TargetHeaterCoolerState;
438
324
  }
439
325
  async TargetHeaterCoolerStateSet(value) {
@@ -464,8 +350,7 @@ class AirConditioner {
464
350
  ` hide_automode: ${this.hide_automode} `);
465
351
  }
466
352
  }
467
- this.TargetHeaterCoolerStateCached = this.TargetHeaterCoolerState;
468
- this.accessory.context.TargetHeaterCoolerState = this.TargetHeaterCoolerStateCached;
353
+ this.accessory.context.TargetHeaterCoolerState = this.TargetHeaterCoolerState;
469
354
  this.pushAirConditionerStatusChanges();
470
355
  }
471
356
  async TargetHeaterCoolerStateAUTO() {
@@ -489,12 +374,12 @@ class AirConditioner {
489
374
  async CurrentHeaterCoolerStateGet() {
490
375
  if (this.Active === this.platform.Characteristic.Active.ACTIVE) {
491
376
  this.CurrentTemperatureUndefined();
492
- if (this.CurrentTemperature < this.CurrentTemperatureCached) {
377
+ if (this.CurrentTemperature < this.accessory.context.CurrentTemperature) {
493
378
  this.CurrentHeaterCoolerState = this.platform.Characteristic.CurrentHeaterCoolerState.COOLING;
494
379
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
495
380
  + ` Get (COOLLING) CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
496
381
  }
497
- else if (this.CurrentTemperature > this.CurrentTemperatureCached) {
382
+ else if (this.CurrentTemperature > this.accessory.context.CurrentTemperature) {
498
383
  this.CurrentHeaterCoolerState = this.platform.Characteristic.CurrentHeaterCoolerState.HEATING;
499
384
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
500
385
  + ` Get (HEATING) CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
@@ -505,62 +390,185 @@ class AirConditioner {
505
390
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
506
391
  + ` Get (INACTIVE) CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
507
392
  }
508
- this.CurrentHeaterCoolerStateCached = this.CurrentHeaterCoolerState;
509
- this.accessory.context.CurrentHeaterCoolerState = this.CurrentHeaterCoolerStateCached;
393
+ this.accessory.context.CurrentHeaterCoolerState = this.CurrentHeaterCoolerState;
510
394
  return this.CurrentHeaterCoolerState;
511
395
  }
512
396
  async HeatingThresholdTemperatureGet() {
513
397
  this.CurrentTemperatureUndefined;
514
- this.CurrentTemperature = this.CurrentTemperatureCached;
515
- this.HeatingThresholdTemperature = this.CurrentTemperatureCached;
516
- this.HeatingThresholdTemperatureCached = this.HeatingThresholdTemperature;
517
- this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperatureCached;
398
+ this.CurrentTemperature = this.accessory.context.CurrentTemperature;
399
+ this.HeatingThresholdTemperature = this.accessory.context.CurrentTemperature;
400
+ this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperature;
518
401
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Get HeatingThresholdTemperature: ${this.HeatingThresholdTemperature}`);
519
402
  return this.HeatingThresholdTemperature;
520
403
  }
521
404
  async HeatingThresholdTemperatureSet(value) {
522
- this.CurrentTemperatureCached = this.CurrentTemperature;
405
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
523
406
  this.CurrentTemperature = value;
524
- this.HeatingThresholdTemperatureCached = this.HeatingThresholdTemperature;
525
- this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperatureCached;
407
+ this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperature;
526
408
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Set HeatingThresholdTemperature: ${this.HeatingThresholdTemperature},` +
527
- ` CurrentTemperatureCached: ${this.CurrentTemperatureCached}`);
409
+ ` CurrentTemperatureCached: ${this.accessory.context.CurrentTemperature}`);
528
410
  this.pushAirConditionerStatusChanges();
529
411
  }
530
412
  async CoolingThresholdTemperatureGet() {
531
413
  this.CurrentTemperatureUndefined;
532
- this.CurrentTemperature = this.CurrentTemperatureCached;
533
- this.CoolingThresholdTemperature = this.CurrentTemperatureCached;
534
- this.CoolingThresholdTemperatureCached = this.CoolingThresholdTemperature;
535
- this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperatureCached;
414
+ this.CurrentTemperature = this.accessory.context.CurrentTemperature;
415
+ this.CoolingThresholdTemperature = this.accessory.context.CurrentTemperature;
416
+ this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperature;
536
417
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Get CoolingThresholdTemperature: ${this.CoolingThresholdTemperature}`);
537
418
  return this.CoolingThresholdTemperature;
538
419
  }
539
420
  async CoolingThresholdTemperatureSet(value) {
540
- this.CurrentTemperatureCached = this.CurrentTemperature;
421
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
541
422
  this.CurrentTemperature = value;
542
- this.CoolingThresholdTemperatureCached = this.CoolingThresholdTemperature;
543
- this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperatureCached;
423
+ this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperature;
544
424
  this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Set CoolingThresholdTemperature: ${this.CoolingThresholdTemperature},` +
545
- ` CurrentTemperatureCached: ${this.CurrentTemperatureCached}`);
425
+ ` CurrentTemperatureCached: ${this.accessory.context.CurrentTemperature}`);
546
426
  this.pushAirConditionerStatusChanges();
547
427
  }
548
428
  async CurrentTemperatureUndefined() {
549
429
  if (this.CurrentTemperature === undefined) {
550
430
  this.CurrentTemperature = 24;
551
431
  }
552
- if (this.CurrentTemperatureCached === undefined) {
432
+ if (this.accessory.context.CurrentTemperature === undefined) {
553
433
  this.CurrentTemperature = 30;
554
434
  }
555
435
  }
556
- async openAPI() {
557
- if (!this.device.openAPI) {
558
- this.OpenAPI = true;
436
+ async updateHomeKitCharacteristics() {
437
+ if (this.Active === undefined) {
438
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Active: ${this.Active}`);
439
+ }
440
+ else {
441
+ this.accessory.context.Active = this.Active;
442
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.Active, this.Active);
443
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic Active: ${this.Active}`);
444
+ }
445
+ if (this.RotationSpeed === undefined) {
446
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} RotationSpeed: ${this.RotationSpeed}`);
447
+ }
448
+ else {
449
+ this.accessory.context.RotationSpeed = this.RotationSpeed;
450
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.RotationSpeed, this.RotationSpeed);
451
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic RotationSpeed: ${this.RotationSpeed}`);
452
+ }
453
+ if (this.CurrentTemperature === undefined) {
454
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CurrentTemperature: ${this.CurrentTemperature}`);
455
+ }
456
+ else {
457
+ this.accessory.context.CurrentTemperature = this.CurrentTemperature;
458
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.CurrentTemperature);
459
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic CurrentTemperature: ${this.CurrentTemperature}`);
460
+ }
461
+ if (this.TargetHeaterCoolerState === undefined) {
462
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} TargetHeaterCoolerState: ${this.TargetHeaterCoolerState}`);
463
+ }
464
+ else {
465
+ this.accessory.context.TargetHeaterCoolerState = this.TargetHeaterCoolerState;
466
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.TargetHeaterCoolerState, this.TargetHeaterCoolerState);
467
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}` + ` updateCharacteristic TargetHeaterCoolerState: ${this.TargetHeaterCoolerState}`);
468
+ }
469
+ if (this.CurrentHeaterCoolerState === undefined) {
470
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
471
+ }
472
+ else {
473
+ this.accessory.context.CurrentHeaterCoolerState = this.CurrentHeaterCoolerState;
474
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.CurrentHeaterCoolerState, this.CurrentHeaterCoolerState);
475
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
476
+ + ` updateCharacteristic CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
477
+ }
478
+ if (this.HeatingThresholdTemperature === undefined) {
479
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} HeatingThresholdTemperature: ${this.HeatingThresholdTemperature}`);
480
+ }
481
+ else {
482
+ this.accessory.context.HeatingThresholdTemperature = this.HeatingThresholdTemperature;
483
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature, this.HeatingThresholdTemperature);
484
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
485
+ + ` updateCharacteristic HeatingThresholdTemperature: ${this.HeatingThresholdTemperature}`);
486
+ }
487
+ if (this.CoolingThresholdTemperature === undefined) {
488
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CoolingThresholdTemperature: ${this.CoolingThresholdTemperature}`);
489
+ }
490
+ else {
491
+ this.accessory.context.CoolingThresholdTemperature = this.CoolingThresholdTemperature;
492
+ this.coolerService?.updateCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature, this.CoolingThresholdTemperature);
493
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
494
+ + ` updateCharacteristic CoolingThresholdTemperature: ${this.CoolingThresholdTemperature}`);
495
+ }
496
+ }
497
+ async statusCode({ res }) {
498
+ switch (res.statusCode) {
499
+ case 151:
500
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command not supported by this device type.`);
501
+ break;
502
+ case 152:
503
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device not found.`);
504
+ break;
505
+ case 160:
506
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command is not supported.`);
507
+ break;
508
+ case 161:
509
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device is offline.`);
510
+ break;
511
+ case 171:
512
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
513
+ break;
514
+ case 190:
515
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device internal error due to device states not synchronized` +
516
+ ` with server, Or command: ${(0, super_stringify_1.default)(res)} format is invalid`);
517
+ break;
518
+ case 100:
519
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Command successfully sent.`);
520
+ break;
521
+ default:
522
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Unknown statusCode.`);
523
+ }
524
+ }
525
+ async apiError(e) {
526
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.Active, e);
527
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.RotationSpeed, e);
528
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, e);
529
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.TargetHeaterCoolerState, e);
530
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.CurrentHeaterCoolerState, e);
531
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature, e);
532
+ this.coolerService.updateCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature, e);
533
+ }
534
+ FirmwareRevision(accessory, device) {
535
+ let FirmwareRevision;
536
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
537
+ + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`);
538
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
539
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
540
+ if (accessory.context.FirmwareRevision) {
541
+ FirmwareRevision = accessory.context.FirmwareRevision;
542
+ }
543
+ else if (device.firmware) {
544
+ FirmwareRevision = device.firmware;
545
+ }
546
+ else {
547
+ FirmwareRevision = this.platform.version;
548
+ }
549
+ return FirmwareRevision;
550
+ }
551
+ async context(device) {
552
+ if (this.Active === undefined) {
553
+ this.Active = this.platform.Characteristic.Active.INACTIVE;
559
554
  }
560
555
  else {
561
- this.OpenAPI = this.device.openAPI;
556
+ this.Active = this.accessory.context.Active;
557
+ }
558
+ if (this.CurrentTemperature === undefined) {
559
+ this.CurrentTemperature = 24;
560
+ }
561
+ else {
562
+ this.CurrentTemperature = this.accessory.context.CurrentTemperature;
563
+ }
564
+ if (device.irair?.hide_automode) {
565
+ this.hide_automode = device.irair?.hide_automode;
566
+ this.accessory.context.hide_automode = this.hide_automode;
567
+ }
568
+ else {
569
+ this.hide_automode = device.irair?.hide_automode;
570
+ this.accessory.context.hide_automode = this.hide_automode;
562
571
  }
563
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using OpenAPI: ${this.OpenAPI}`);
564
572
  }
565
573
  async config(device) {
566
574
  let config = {};
@@ -570,8 +578,8 @@ class AirConditioner {
570
578
  if (device.logging !== undefined) {
571
579
  config['logging'] = device.logging;
572
580
  }
573
- if (device.openAPI !== undefined) {
574
- config['openAPI'] = device.openAPI;
581
+ if (device.connectionType !== undefined) {
582
+ config['connectionType'] = device.connectionType;
575
583
  }
576
584
  if (Object.entries(config).length !== 0) {
577
585
  this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} Config: ${(0, super_stringify_1.default)(config)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"airconditioner.js","sourceRoot":"","sources":["../../src/irdevice/airconditioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"airconditioner.js","sourceRoot":"","sources":["../../src/irdevice/airconditioner.ts"],"names":[],"mappings":"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"}