@switchbot/homebridge-switchbot 2.9.0-beta.9 → 2.9.1-beta.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 (132) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/config.schema.json +11 -5
  3. package/dist/device/blindtilt.d.ts +1 -1
  4. package/dist/device/blindtilt.d.ts.map +1 -1
  5. package/dist/device/blindtilt.js +38 -17
  6. package/dist/device/blindtilt.js.map +1 -1
  7. package/dist/device/bot.d.ts +1 -1
  8. package/dist/device/bot.d.ts.map +1 -1
  9. package/dist/device/bot.js +64 -17
  10. package/dist/device/bot.js.map +1 -1
  11. package/dist/device/ceilinglight.d.ts +1 -1
  12. package/dist/device/ceilinglight.d.ts.map +1 -1
  13. package/dist/device/ceilinglight.js +34 -17
  14. package/dist/device/ceilinglight.js.map +1 -1
  15. package/dist/device/colorbulb.d.ts +1 -1
  16. package/dist/device/colorbulb.d.ts.map +1 -1
  17. package/dist/device/colorbulb.js +31 -17
  18. package/dist/device/colorbulb.js.map +1 -1
  19. package/dist/device/contact.d.ts +1 -1
  20. package/dist/device/contact.d.ts.map +1 -1
  21. package/dist/device/contact.js +41 -17
  22. package/dist/device/contact.js.map +1 -1
  23. package/dist/device/curtain.d.ts +1 -1
  24. package/dist/device/curtain.d.ts.map +1 -1
  25. package/dist/device/curtain.js +38 -17
  26. package/dist/device/curtain.js.map +1 -1
  27. package/dist/device/hub.d.ts +8 -9
  28. package/dist/device/hub.d.ts.map +1 -1
  29. package/dist/device/hub.js +172 -55
  30. package/dist/device/hub.js.map +1 -1
  31. package/dist/device/humidifier.d.ts +1 -1
  32. package/dist/device/humidifier.d.ts.map +1 -1
  33. package/dist/device/humidifier.js +37 -17
  34. package/dist/device/humidifier.js.map +1 -1
  35. package/dist/device/iosensor.d.ts +1 -1
  36. package/dist/device/iosensor.d.ts.map +1 -1
  37. package/dist/device/iosensor.js +41 -18
  38. package/dist/device/iosensor.js.map +1 -1
  39. package/dist/device/lightstrip.d.ts +1 -1
  40. package/dist/device/lightstrip.d.ts.map +1 -1
  41. package/dist/device/lightstrip.js +34 -17
  42. package/dist/device/lightstrip.js.map +1 -1
  43. package/dist/device/lock.d.ts +1 -1
  44. package/dist/device/lock.d.ts.map +1 -1
  45. package/dist/device/lock.js +38 -17
  46. package/dist/device/lock.js.map +1 -1
  47. package/dist/device/meter.d.ts +1 -9
  48. package/dist/device/meter.d.ts.map +1 -1
  49. package/dist/device/meter.js +47 -32
  50. package/dist/device/meter.js.map +1 -1
  51. package/dist/device/meterplus.d.ts +4 -7
  52. package/dist/device/meterplus.d.ts.map +1 -1
  53. package/dist/device/meterplus.js +69 -50
  54. package/dist/device/meterplus.js.map +1 -1
  55. package/dist/device/motion.d.ts +1 -1
  56. package/dist/device/motion.d.ts.map +1 -1
  57. package/dist/device/motion.js +38 -17
  58. package/dist/device/motion.js.map +1 -1
  59. package/dist/device/plug.d.ts +1 -1
  60. package/dist/device/plug.d.ts.map +1 -1
  61. package/dist/device/plug.js +35 -17
  62. package/dist/device/plug.js.map +1 -1
  63. package/dist/device/robotvacuumcleaner.d.ts +1 -1
  64. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  65. package/dist/device/robotvacuumcleaner.js +35 -17
  66. package/dist/device/robotvacuumcleaner.js.map +1 -1
  67. package/dist/irdevice/airconditioner.d.ts +1 -1
  68. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  69. package/dist/irdevice/airconditioner.js +28 -14
  70. package/dist/irdevice/airconditioner.js.map +1 -1
  71. package/dist/irdevice/airpurifier.d.ts +1 -1
  72. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  73. package/dist/irdevice/airpurifier.js +28 -14
  74. package/dist/irdevice/airpurifier.js.map +1 -1
  75. package/dist/irdevice/camera.d.ts +1 -1
  76. package/dist/irdevice/camera.d.ts.map +1 -1
  77. package/dist/irdevice/camera.js +28 -14
  78. package/dist/irdevice/camera.js.map +1 -1
  79. package/dist/irdevice/fan.d.ts +1 -1
  80. package/dist/irdevice/fan.d.ts.map +1 -1
  81. package/dist/irdevice/fan.js +28 -14
  82. package/dist/irdevice/fan.js.map +1 -1
  83. package/dist/irdevice/light.d.ts +1 -1
  84. package/dist/irdevice/light.d.ts.map +1 -1
  85. package/dist/irdevice/light.js +28 -14
  86. package/dist/irdevice/light.js.map +1 -1
  87. package/dist/irdevice/other.d.ts +1 -1
  88. package/dist/irdevice/other.d.ts.map +1 -1
  89. package/dist/irdevice/other.js +35 -14
  90. package/dist/irdevice/other.js.map +1 -1
  91. package/dist/irdevice/tv.d.ts +1 -1
  92. package/dist/irdevice/tv.d.ts.map +1 -1
  93. package/dist/irdevice/tv.js +28 -14
  94. package/dist/irdevice/tv.js.map +1 -1
  95. package/dist/irdevice/vacuumcleaner.d.ts +1 -1
  96. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  97. package/dist/irdevice/vacuumcleaner.js +28 -14
  98. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  99. package/dist/irdevice/waterheater.d.ts +1 -1
  100. package/dist/irdevice/waterheater.d.ts.map +1 -1
  101. package/dist/irdevice/waterheater.js +28 -14
  102. package/dist/irdevice/waterheater.js.map +1 -1
  103. package/dist/platform.d.ts.map +1 -1
  104. package/dist/platform.js +4 -0
  105. package/dist/platform.js.map +1 -1
  106. package/package.json +11 -11
  107. package/src/device/blindtilt.ts +38 -18
  108. package/src/device/bot.ts +55 -18
  109. package/src/device/ceilinglight.ts +34 -19
  110. package/src/device/colorbulb.ts +31 -18
  111. package/src/device/contact.ts +41 -19
  112. package/src/device/curtain.ts +38 -18
  113. package/src/device/hub.ts +188 -65
  114. package/src/device/humidifier.ts +37 -19
  115. package/src/device/iosensor.ts +41 -20
  116. package/src/device/lightstrip.ts +34 -18
  117. package/src/device/lock.ts +39 -20
  118. package/src/device/meter.ts +48 -40
  119. package/src/device/meterplus.ts +74 -60
  120. package/src/device/motion.ts +38 -20
  121. package/src/device/plug.ts +35 -19
  122. package/src/device/robotvacuumcleaner.ts +35 -18
  123. package/src/irdevice/airconditioner.ts +28 -15
  124. package/src/irdevice/airpurifier.ts +30 -15
  125. package/src/irdevice/camera.ts +30 -15
  126. package/src/irdevice/fan.ts +30 -15
  127. package/src/irdevice/light.ts +30 -15
  128. package/src/irdevice/other.ts +37 -15
  129. package/src/irdevice/tv.ts +30 -15
  130. package/src/irdevice/vacuumcleaner.ts +30 -15
  131. package/src/irdevice/waterheater.ts +30 -15
  132. package/src/platform.ts +4 -0
@@ -38,10 +38,20 @@ export class VacuumCleaner {
38
38
  .getService(this.platform.Service.AccessoryInformation)!
39
39
  .setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
40
40
  .setCharacteristic(this.platform.Characteristic.Model, device.remoteType)
41
- .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId!)
42
- .setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.setFirmwareRevision(accessory, device))
43
- .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
44
- .updateValue(this.setFirmwareRevision(accessory, device));
41
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId!);
42
+
43
+ if (accessory.context.FirmwareRevision) {
44
+ this.debugWarnLog(`${this.device.remoteType}: ${this.accessory.displayName}`
45
+ + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`);
46
+ accessory
47
+ .getService(this.platform.Service.AccessoryInformation)!
48
+ .setCharacteristic(this.platform.Characteristic.FirmwareRevision, accessory.context.FirmwareRevision)
49
+ .updateCharacteristic(this.platform.Characteristic.FirmwareRevision, accessory.context.FirmwareRevision)
50
+ .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
51
+ .updateValue(accessory.context.FirmwareRevision);
52
+ } else {
53
+ this.setFirmwareRevision(accessory, device);
54
+ }
45
55
 
46
56
  // get the Television service if it exists, otherwise create a new Television service
47
57
  // you can create multiple services for each accessory
@@ -255,21 +265,26 @@ export class VacuumCleaner {
255
265
  this.switchService.updateCharacteristic(this.platform.Characteristic.On, e);
256
266
  }
257
267
 
258
- setFirmwareRevision(accessory: PlatformAccessory, device: irdevice & irDevicesConfig): string {
259
- this.debugLog(
260
- `${this.device.remoteType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`,
261
- );
262
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
263
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
268
+
269
+
270
+ async setFirmwareRevision(accessory: PlatformAccessory, device: irdevice & irDevicesConfig) {
264
271
  if (device.firmware) {
265
- this.FirmwareRevision = device.firmware;
266
- } else if (accessory.context.FirmwareRevision) {
272
+ this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
273
+ accessory.context.FirmwareRevision = device.firmware;
267
274
  this.FirmwareRevision = accessory.context.FirmwareRevision;
275
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware, FirmwareRevision: ${this.FirmwareRevision}`);
268
276
  } else {
269
- this.FirmwareRevision = this.platform.version;
277
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
278
+ accessory.context.FirmwareRevision = this.platform.version;
279
+ this.FirmwareRevision = accessory.context.FirmwareRevision;
280
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version, FirmwareRevision: ${this.FirmwareRevision}`);
270
281
  }
271
- this.debugWarnLog(`${this.device.remoteType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
272
- return String(this.FirmwareRevision);
282
+ this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
283
+ accessory
284
+ .getService(this.platform.Service.AccessoryInformation)!
285
+ .updateCharacteristic(this.platform.Characteristic.FirmwareRevision, accessory.context.FirmwareRevision)
286
+ .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
287
+ .updateValue(this.FirmwareRevision);
273
288
  }
274
289
 
275
290
  async context() {
@@ -38,10 +38,20 @@ export class WaterHeater {
38
38
  .getService(this.platform.Service.AccessoryInformation)!
39
39
  .setCharacteristic(this.platform.Characteristic.Manufacturer, 'SwitchBot')
40
40
  .setCharacteristic(this.platform.Characteristic.Model, device.remoteType)
41
- .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId!)
42
- .setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.setFirmwareRevision(accessory, device))
43
- .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
44
- .updateValue(this.setFirmwareRevision(accessory, device));
41
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, device.deviceId!);
42
+
43
+ if (accessory.context.FirmwareRevision) {
44
+ this.debugWarnLog(`${this.device.remoteType}: ${this.accessory.displayName}`
45
+ + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`);
46
+ accessory
47
+ .getService(this.platform.Service.AccessoryInformation)!
48
+ .setCharacteristic(this.platform.Characteristic.FirmwareRevision, accessory.context.FirmwareRevision)
49
+ .updateCharacteristic(this.platform.Characteristic.FirmwareRevision, accessory.context.FirmwareRevision)
50
+ .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
51
+ .updateValue(accessory.context.FirmwareRevision);
52
+ } else {
53
+ this.setFirmwareRevision(accessory, device);
54
+ }
45
55
 
46
56
  // get the Television service if it exists, otherwise create a new Television service
47
57
  // you can create multiple services for each accessory
@@ -264,21 +274,26 @@ export class WaterHeater {
264
274
  this.valveService.updateCharacteristic(this.platform.Characteristic.Active, e);
265
275
  }
266
276
 
267
- setFirmwareRevision(accessory: PlatformAccessory, device: irdevice & irDevicesConfig): string {
268
- this.debugLog(
269
- `${this.device.remoteType}: ${this.accessory.displayName}` + ` accessory.context.FirmwareRevision: ${accessory.context.FirmwareRevision}`,
270
- );
271
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
272
- this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
277
+
278
+
279
+ async setFirmwareRevision(accessory: PlatformAccessory, device: irdevice & irDevicesConfig) {
273
280
  if (device.firmware) {
274
- this.FirmwareRevision = device.firmware;
275
- } else if (accessory.context.FirmwareRevision) {
281
+ this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware: ${device.firmware}`);
282
+ accessory.context.FirmwareRevision = device.firmware;
276
283
  this.FirmwareRevision = accessory.context.FirmwareRevision;
284
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} device.firmware, FirmwareRevision: ${this.FirmwareRevision}`);
277
285
  } else {
278
- this.FirmwareRevision = this.platform.version;
286
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version: ${this.platform.version}`);
287
+ accessory.context.FirmwareRevision = this.platform.version;
288
+ this.FirmwareRevision = accessory.context.FirmwareRevision;
289
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} this.platform.version, FirmwareRevision: ${this.FirmwareRevision}`);
279
290
  }
280
- this.debugWarnLog(`${this.device.remoteType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
281
- return String(this.FirmwareRevision);
291
+ this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} setFirmwareRevision: ${this.FirmwareRevision}`);
292
+ accessory
293
+ .getService(this.platform.Service.AccessoryInformation)!
294
+ .updateCharacteristic(this.platform.Characteristic.FirmwareRevision, accessory.context.FirmwareRevision)
295
+ .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
296
+ .updateValue(this.FirmwareRevision);
282
297
  }
283
298
 
284
299
  async context(): Promise<void> {
package/src/platform.ts CHANGED
@@ -347,6 +347,10 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
347
347
  const devices = mergeBydeviceId(deviceLists, deviceConfigs);
348
348
  this.debugLog(`SwitchBot Devices: ${JSON.stringify(devices)}`);
349
349
  for (const device of devices) {
350
+ if (!device.deviceType) {
351
+ device.deviceType = device.configDeviceType;
352
+ this.errorLog(`API has displaying no deviceType: ${device.deviceType}, So using configDeviceType: ${device.configDeviceType}`);
353
+ }
350
354
  if (device.deviceType) {
351
355
  if (device.configDeviceName) {
352
356
  device.deviceName = device.configDeviceName;