@switchbot/homebridge-switchbot 3.5.0 → 3.5.1-beta.1

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 (137) hide show
  1. package/.github/npm-version-script.cjs +81 -0
  2. package/config.schema.json +4 -4
  3. package/dist/device/blindtilt.d.ts.map +1 -1
  4. package/dist/device/blindtilt.js +64 -189
  5. package/dist/device/blindtilt.js.map +1 -1
  6. package/dist/device/bot.d.ts.map +1 -1
  7. package/dist/device/bot.js +34 -68
  8. package/dist/device/bot.js.map +1 -1
  9. package/dist/device/ceilinglight.d.ts +1 -1
  10. package/dist/device/ceilinglight.d.ts.map +1 -1
  11. package/dist/device/ceilinglight.js +65 -158
  12. package/dist/device/ceilinglight.js.map +1 -1
  13. package/dist/device/colorbulb.d.ts +1 -1
  14. package/dist/device/colorbulb.d.ts.map +1 -1
  15. package/dist/device/colorbulb.js +47 -159
  16. package/dist/device/colorbulb.js.map +1 -1
  17. package/dist/device/contact.d.ts.map +1 -1
  18. package/dist/device/contact.js +42 -105
  19. package/dist/device/contact.js.map +1 -1
  20. package/dist/device/curtain.d.ts +1 -0
  21. package/dist/device/curtain.d.ts.map +1 -1
  22. package/dist/device/curtain.js +61 -182
  23. package/dist/device/curtain.js.map +1 -1
  24. package/dist/device/device.d.ts +41 -2
  25. package/dist/device/device.d.ts.map +1 -1
  26. package/dist/device/device.js +182 -5
  27. package/dist/device/device.js.map +1 -1
  28. package/dist/device/fan.d.ts.map +1 -1
  29. package/dist/device/fan.js +76 -145
  30. package/dist/device/fan.js.map +1 -1
  31. package/dist/device/hub.d.ts +7 -1
  32. package/dist/device/hub.d.ts.map +1 -1
  33. package/dist/device/hub.js +54 -17
  34. package/dist/device/hub.js.map +1 -1
  35. package/dist/device/humidifier.d.ts.map +1 -1
  36. package/dist/device/humidifier.js +55 -104
  37. package/dist/device/humidifier.js.map +1 -1
  38. package/dist/device/iosensor.d.ts.map +1 -1
  39. package/dist/device/iosensor.js +27 -46
  40. package/dist/device/iosensor.js.map +1 -1
  41. package/dist/device/lightstrip.d.ts +1 -1
  42. package/dist/device/lightstrip.d.ts.map +1 -1
  43. package/dist/device/lightstrip.js +56 -120
  44. package/dist/device/lightstrip.js.map +1 -1
  45. package/dist/device/lock.d.ts +1 -1
  46. package/dist/device/lock.d.ts.map +1 -1
  47. package/dist/device/lock.js +36 -66
  48. package/dist/device/lock.js.map +1 -1
  49. package/dist/device/meter.d.ts.map +1 -1
  50. package/dist/device/meter.js +27 -46
  51. package/dist/device/meter.js.map +1 -1
  52. package/dist/device/meterplus.d.ts.map +1 -1
  53. package/dist/device/meterplus.js +26 -45
  54. package/dist/device/meterplus.js.map +1 -1
  55. package/dist/device/motion.d.ts.map +1 -1
  56. package/dist/device/motion.js +24 -43
  57. package/dist/device/motion.js.map +1 -1
  58. package/dist/device/plug.d.ts.map +1 -1
  59. package/dist/device/plug.js +32 -66
  60. package/dist/device/plug.js.map +1 -1
  61. package/dist/device/robotvacuumcleaner.d.ts +1 -1
  62. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  63. package/dist/device/robotvacuumcleaner.js +43 -88
  64. package/dist/device/robotvacuumcleaner.js.map +1 -1
  65. package/dist/device/waterdetector.d.ts.map +1 -1
  66. package/dist/device/waterdetector.js +23 -43
  67. package/dist/device/waterdetector.js.map +1 -1
  68. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  69. package/dist/irdevice/airconditioner.js +10 -28
  70. package/dist/irdevice/airconditioner.js.map +1 -1
  71. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  72. package/dist/irdevice/airpurifier.js +8 -20
  73. package/dist/irdevice/airpurifier.js.map +1 -1
  74. package/dist/irdevice/camera.d.ts.map +1 -1
  75. package/dist/irdevice/camera.js +8 -20
  76. package/dist/irdevice/camera.js.map +1 -1
  77. package/dist/irdevice/fan.d.ts.map +1 -1
  78. package/dist/irdevice/fan.js +8 -20
  79. package/dist/irdevice/fan.js.map +1 -1
  80. package/dist/irdevice/irdevice.d.ts +7 -0
  81. package/dist/irdevice/irdevice.d.ts.map +1 -1
  82. package/dist/irdevice/irdevice.js +28 -0
  83. package/dist/irdevice/irdevice.js.map +1 -1
  84. package/dist/irdevice/light.d.ts.map +1 -1
  85. package/dist/irdevice/light.js +8 -20
  86. package/dist/irdevice/light.js.map +1 -1
  87. package/dist/irdevice/other.d.ts.map +1 -1
  88. package/dist/irdevice/other.js +8 -20
  89. package/dist/irdevice/other.js.map +1 -1
  90. package/dist/irdevice/tv.d.ts.map +1 -1
  91. package/dist/irdevice/tv.js +8 -20
  92. package/dist/irdevice/tv.js.map +1 -1
  93. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  94. package/dist/irdevice/vacuumcleaner.js +8 -20
  95. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  96. package/dist/irdevice/waterheater.d.ts.map +1 -1
  97. package/dist/irdevice/waterheater.js +8 -20
  98. package/dist/irdevice/waterheater.js.map +1 -1
  99. package/dist/settings.d.ts +4 -2
  100. package/dist/settings.d.ts.map +1 -1
  101. package/dist/settings.js.map +1 -1
  102. package/dist/utils.d.ts +19 -1
  103. package/dist/utils.d.ts.map +1 -1
  104. package/dist/utils.js +20 -1
  105. package/dist/utils.js.map +1 -1
  106. package/package.json +8 -8
  107. package/src/device/blindtilt.ts +71 -186
  108. package/src/device/bot.ts +32 -68
  109. package/src/device/ceilinglight.ts +67 -153
  110. package/src/device/colorbulb.ts +51 -155
  111. package/src/device/contact.ts +49 -104
  112. package/src/device/curtain.ts +70 -177
  113. package/src/device/device.ts +207 -8
  114. package/src/device/fan.ts +75 -147
  115. package/src/device/hub.ts +55 -19
  116. package/src/device/humidifier.ts +52 -104
  117. package/src/device/iosensor.ts +25 -46
  118. package/src/device/lightstrip.ts +54 -121
  119. package/src/device/lock.ts +35 -67
  120. package/src/device/meter.ts +25 -46
  121. package/src/device/meterplus.ts +24 -45
  122. package/src/device/motion.ts +22 -43
  123. package/src/device/plug.ts +30 -66
  124. package/src/device/robotvacuumcleaner.ts +40 -89
  125. package/src/device/waterdetector.ts +22 -43
  126. package/src/irdevice/airconditioner.ts +10 -26
  127. package/src/irdevice/airpurifier.ts +8 -20
  128. package/src/irdevice/camera.ts +8 -20
  129. package/src/irdevice/fan.ts +8 -20
  130. package/src/irdevice/irdevice.ts +29 -0
  131. package/src/irdevice/light.ts +8 -20
  132. package/src/irdevice/other.ts +8 -20
  133. package/src/irdevice/tv.ts +8 -20
  134. package/src/irdevice/vacuumcleaner.ts +8 -20
  135. package/src/irdevice/waterheater.ts +8 -20
  136. package/src/settings.ts +4 -2
  137. package/src/utils.ts +20 -1
@@ -1,8 +1,8 @@
1
1
  import { SwitchBotModel, SwitchBotBLEModel } from '../utils.js';
2
2
  import type { MqttClient } from 'mqtt';
3
3
  import type { SwitchBotPlatform } from '../platform.js';
4
- import type { API, HAP, Logging, PlatformAccessory } from 'homebridge';
5
- import type { SwitchBotPlatformConfig, device, devicesConfig } from '../settings.js';
4
+ import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge';
5
+ import type { device, serviceData, SwitchBotPlatformConfig, devicesConfig, deviceStatus } from '../settings.js';
6
6
  export declare abstract class deviceBase {
7
7
  protected readonly platform: SwitchBotPlatform;
8
8
  protected accessory: PlatformAccessory;
@@ -41,7 +41,46 @@ export declare abstract class deviceBase {
41
41
  mqttPublish(message: string, topic?: string): void;
42
42
  setupMqtt(accessory: PlatformAccessory, device: device & devicesConfig): Promise<void>;
43
43
  setupHistoryService(accessory: PlatformAccessory, device: device & devicesConfig): Promise<void>;
44
+ switchbotBLE(): Promise<any>;
45
+ convertBLEAddress(): Promise<void>;
46
+ monitorAdvertisementPackets(switchbot: any): Promise<serviceData>;
44
47
  getCustomBLEAddress(switchbot: any): Promise<void>;
48
+ successfulPushChange_BLE(Characteristic: string, CharacteristicValue: CharacteristicValue, Connection: string): Promise<void>;
49
+ successfulPushChange(statusCode: any, deviceStatus: any, bodyChange: string): Promise<void>;
50
+ failedBLEChanges(e: Error): Promise<void>;
51
+ bodyChange(bodyChange: string, Connection: string): Promise<void>;
52
+ pushChangeDisabled(): Promise<void>;
53
+ pushChangeRequest(bodyChange: string): Promise<{
54
+ body: any;
55
+ statusCode: any;
56
+ }>;
57
+ pushChange(pushChange: string): Promise<void>;
58
+ pushChangeError(Change: string, e: Error): Promise<void>;
59
+ noChanges(Change: string, CharacteristicValue: CharacteristicValue, CharacteristicValueCached: CharacteristicValue): Promise<void>;
60
+ successfulRefreshStatus(statusCode: any, deviceStatus: any): Promise<void>;
61
+ openAPIRefreshError(e: Error): Promise<void>;
62
+ statusCodes(statusCode: any, deviceStatus: any): Promise<void>;
63
+ refreshStatusCodes(statusCode: number, deviceStatus: deviceStatus): Promise<void>;
64
+ pushStatusCodes(statusCode: number, deviceStatus: any): Promise<void>;
65
+ deviceRefreshStatus(): Promise<{
66
+ body: any;
67
+ statusCode: any;
68
+ }>;
69
+ /**
70
+ * Update the characteristic value and log the change.
71
+ * params: Service, Characteristic, CharacteristicValue, CharacteristicName, history
72
+ * @param Service: Service
73
+ * @param Characteristic: Characteristic
74
+ * @param CharacteristicValue: CharacteristicValue | undefined
75
+ * @param CharacteristicName: string
76
+ * @param history: object
77
+ * @return: void
78
+ *
79
+ */
80
+ updateCharacteristic(Service: Service, Characteristic: any, CharacteristicValue: CharacteristicValue | undefined, CharacteristicName: string, history?: object): Promise<void>;
81
+ mqtt(CharacteristicName: string, CharacteristicValue: CharacteristicValue): Promise<void>;
82
+ noChangeSet(value: CharacteristicValue, CharacteristicName: string): Promise<void>;
83
+ changeSet(value: CharacteristicValue, CharacteristicName: string): Promise<void>;
45
84
  getDeviceContext(accessory: PlatformAccessory, device: device & devicesConfig): Promise<void>;
46
85
  statusCode(statusCode: number): Promise<void>;
47
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device/device.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@
3
3
  * device.ts: @switchbot/homebridge-switchbot.
4
4
  */
5
5
  import { hostname } from 'os';
6
+ import { request } from 'undici';
6
7
  import asyncmqtt from 'async-mqtt';
7
- import { BlindTiltMappingMode, SwitchBotModel, SwitchBotBLEModel, sleep } from '../utils.js';
8
+ import { Devices } from '../settings.js';
9
+ import { BlindTiltMappingMode, SwitchBotModel, SwitchBotBLEModel, SwitchBotBLEModelName, sleep } from '../utils.js';
8
10
  export class deviceBase {
9
11
  platform;
10
12
  accessory;
@@ -354,6 +356,44 @@ export class deviceBase {
354
356
  })
355
357
  : null;
356
358
  }
359
+ async switchbotBLE() {
360
+ const switchbot = await this.platform.connectBLE();
361
+ // Convert to BLE Address
362
+ await this.convertBLEAddress();
363
+ await this.getCustomBLEAddress(switchbot);
364
+ return switchbot;
365
+ }
366
+ async convertBLEAddress() {
367
+ this.device.bleMac = this.device
368
+ .deviceId.match(/.{1,2}/g)
369
+ .join(':')
370
+ .toLowerCase();
371
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
372
+ }
373
+ async monitorAdvertisementPackets(switchbot) {
374
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Scanning for ${this.device.bleModelName} devices...`);
375
+ await switchbot.startScan({ model: this.device.bleModel, id: this.device.bleMac });
376
+ // Set an event handler
377
+ let serviceData = { model: this.device.bleModel, modelName: this.device.bleModelName };
378
+ switchbot.onadvertisement = async (ad) => {
379
+ this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
380
+ if (this.device.bleMac === ad.address && ad.serviceData.model === this.device.bleModel) {
381
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${JSON.stringify(ad, null, ' ')}`);
382
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} address: ${ad.address}, model: ${ad.serviceData.model}`);
383
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
384
+ serviceData = ad.serviceData;
385
+ }
386
+ else {
387
+ serviceData = { model: '', modelName: '' };
388
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
389
+ }
390
+ };
391
+ // Wait 10 seconds
392
+ await switchbot.wait(this.scanDuration * 1000);
393
+ // Stop to monitor
394
+ await switchbot.stopScan();
395
+ return serviceData;
396
+ }
357
397
  async getCustomBLEAddress(switchbot) {
358
398
  if (this.device.customBLEaddress && this.deviceLogging.includes('debug')) {
359
399
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} customBLEaddress: ${this.device.customBLEaddress}`);
@@ -361,7 +401,7 @@ export class deviceBase {
361
401
  // Start to monitor advertisement packets
362
402
  await switchbot.startScan({ model: this.device.bleModel });
363
403
  // Set an event handler
364
- switchbot.onadvertisement = (ad) => {
404
+ switchbot.onadvertisement = async (ad) => {
365
405
  this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} ad: ${JSON.stringify(ad, null, ' ')}`);
366
406
  };
367
407
  await sleep(10000);
@@ -370,27 +410,135 @@ export class deviceBase {
370
410
  })();
371
411
  }
372
412
  }
413
+ async successfulPushChange_BLE(Characteristic, CharacteristicValue, Connection) {
414
+ this.successLog(`${this.device.deviceType}: ${this.accessory.displayName} ${Characteristic}: ${CharacteristicValue}`
415
+ + ` sent over ${Connection}, sent successfully`);
416
+ }
417
+ async successfulPushChange(statusCode, deviceStatus, bodyChange) {
418
+ this.debugSuccessLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode} & deviceStatus`
419
+ + ` StatusCode: ${deviceStatus.statusCode}`);
420
+ this.successLog(`${this.device.deviceType}: ${this.accessory.displayName} request to SwitchBot API,`
421
+ + ` body: ${JSON.stringify(JSON.parse(bodyChange))} sent successfully`);
422
+ }
423
+ async failedBLEChanges(e) {
424
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed BLEpushChanges with ${this.device.connectionType}`
425
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
426
+ }
427
+ async bodyChange(bodyChange, Connection) {
428
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Sending request to ${Connection}, body: ${bodyChange},`);
429
+ }
430
+ async pushChangeDisabled() {
431
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} Connection Type:`
432
+ + ` ${this.device.connectionType}, pushChanges will not happen.`);
433
+ }
434
+ async pushChangeRequest(bodyChange) {
435
+ return await request(`${Devices}/${this.device.deviceId}/commands`, {
436
+ body: bodyChange,
437
+ method: 'POST',
438
+ headers: this.platform.generateHeaders(),
439
+ });
440
+ }
441
+ async pushChange(pushChange) {
442
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${pushChange}`);
443
+ }
444
+ async pushChangeError(Change, e) {
445
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed ${Change} with ${this.device.connectionType}`
446
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
447
+ }
448
+ async noChanges(Change, CharacteristicValue, CharacteristicValueCached) {
449
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, ${Change}: ${CharacteristicValue}, `
450
+ + `${Change}Cached: ${CharacteristicValueCached}`);
451
+ }
452
+ async successfulRefreshStatus(statusCode, deviceStatus) {
453
+ this.debugSuccessLog(`${this.device.deviceType}: ${this.accessory.displayName} `
454
+ + `statusCode: ${statusCode} & deviceStatus StatusCode: ${deviceStatus.statusCode}`);
455
+ }
456
+ async openAPIRefreshError(e) {
457
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} failed openAPIRefreshStatus with ${this.device.connectionType}`
458
+ + ` Connection, Error Message: ${JSON.stringify(e.message)}`);
459
+ }
460
+ async statusCodes(statusCode, deviceStatus) {
461
+ this.statusCode(statusCode);
462
+ this.statusCode(deviceStatus.statusCode);
463
+ }
464
+ async refreshStatusCodes(statusCode, deviceStatus) {
465
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode}`);
466
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus: ${JSON.stringify(deviceStatus)}`);
467
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus statusCode: ${deviceStatus.statusCode}`);
468
+ }
469
+ async pushStatusCodes(statusCode, deviceStatus) {
470
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} statusCode: ${statusCode}`);
471
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus: ${JSON.stringify(deviceStatus)}`);
472
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus body: ${JSON.stringify(deviceStatus.body)}`);
473
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} deviceStatus statusCode: ${deviceStatus.statusCode}`);
474
+ }
475
+ async deviceRefreshStatus() {
476
+ return await this.platform.retryRequest(this.deviceMaxRetries, this.deviceDelayBetweenRetries, `${Devices}/${this.device.deviceId}/status`, { headers: this.platform.generateHeaders() });
477
+ }
478
+ /**
479
+ * Update the characteristic value and log the change.
480
+ * params: Service, Characteristic, CharacteristicValue, CharacteristicName, history
481
+ * @param Service: Service
482
+ * @param Characteristic: Characteristic
483
+ * @param CharacteristicValue: CharacteristicValue | undefined
484
+ * @param CharacteristicName: string
485
+ * @param history: object
486
+ * @return: void
487
+ *
488
+ */
489
+ async updateCharacteristic(Service, Characteristic, CharacteristicValue, CharacteristicName, history) {
490
+ if (CharacteristicValue === undefined) {
491
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} ${CharacteristicName}: ${CharacteristicValue}`);
492
+ }
493
+ else {
494
+ await this.mqtt(CharacteristicName, CharacteristicValue);
495
+ if (this.device.history) {
496
+ this.historyService?.addEntry(history);
497
+ }
498
+ Service.updateCharacteristic(Characteristic, CharacteristicValue);
499
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} updateCharacteristic`
500
+ + ` ${CharacteristicName}: ${CharacteristicValue}`);
501
+ this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} context before: ${this.accessory.context[CharacteristicName]}`);
502
+ this.accessory.context[CharacteristicName] = CharacteristicValue;
503
+ this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} context after: ${this.accessory.context[CharacteristicName]}`);
504
+ }
505
+ }
506
+ async mqtt(CharacteristicName, CharacteristicValue) {
507
+ if (this.device.mqttURL) {
508
+ this.mqttPublish(CharacteristicName, CharacteristicValue.toString());
509
+ }
510
+ }
511
+ async noChangeSet(value, CharacteristicName) {
512
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} No Changes, Set ${CharacteristicName}: ${value}`);
513
+ }
514
+ async changeSet(value, CharacteristicName) {
515
+ this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set ${CharacteristicName}: ${value}`);
516
+ }
373
517
  async getDeviceContext(accessory, device) {
374
518
  // Set the accessory context
375
519
  switch (device.deviceType) {
376
520
  case 'Humidifier':
377
521
  device.model = SwitchBotModel.Humidifier;
378
522
  device.bleModel = SwitchBotBLEModel.Humidifier;
523
+ device.bleModelName = SwitchBotBLEModelName.Humidifier;
379
524
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
380
525
  break;
381
526
  case 'Hub Mini':
382
527
  device.model = SwitchBotModel.HubMini;
383
528
  device.bleModel = SwitchBotBLEModel.Unknown;
529
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
384
530
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
385
531
  break;
386
532
  case 'Hub Plus':
387
533
  device.model = SwitchBotModel.HubPlus;
388
534
  device.bleModel = SwitchBotBLEModel.Unknown;
535
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
389
536
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
390
537
  break;
391
538
  case 'Hub 2':
392
539
  device.model = SwitchBotModel.Hub2;
393
- device.bleModel = SwitchBotBLEModel.Unknown;
540
+ device.bleModel = SwitchBotBLEModel.Hub2;
541
+ device.bleModelName = SwitchBotBLEModelName.Hub2;
394
542
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
395
543
  break;
396
544
  case 'Bot':
@@ -401,96 +549,115 @@ export class deviceBase {
401
549
  case 'Meter':
402
550
  device.model = SwitchBotModel.Meter;
403
551
  device.bleModel = SwitchBotBLEModel.Meter;
552
+ device.bleModelName = SwitchBotBLEModelName.Meter;
404
553
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
405
554
  break;
406
555
  case 'MeterPlus':
407
556
  device.model = SwitchBotModel.MeterPlusUS;
408
557
  device.bleModel = SwitchBotBLEModel.MeterPlus;
558
+ device.bleModelName = SwitchBotBLEModelName.MeterPlus;
409
559
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
410
560
  break;
411
561
  case 'Meter Plus (JP)':
412
562
  device.model = SwitchBotModel.MeterPlusJP;
413
563
  device.bleModel = SwitchBotBLEModel.MeterPlus;
564
+ device.bleModelName = SwitchBotBLEModelName.MeterPlus;
414
565
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
415
566
  break;
416
567
  case 'WoIOSensor':
417
568
  device.model = SwitchBotModel.OutdoorMeter;
418
569
  device.bleModel = SwitchBotBLEModel.OutdoorMeter;
570
+ device.bleModelName = SwitchBotBLEModelName.OutdoorMeter;
419
571
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
420
572
  break;
421
573
  case 'Water Detector':
422
574
  device.model = SwitchBotModel.WaterDetector;
423
575
  device.bleModel = SwitchBotBLEModel.Unknown;
576
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
424
577
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
425
578
  break;
426
579
  case 'Motion Sensor':
427
580
  device.model = SwitchBotModel.MotionSensor;
428
581
  device.bleModel = SwitchBotBLEModel.MotionSensor;
582
+ device.bleModelName = SwitchBotBLEModelName.MotionSensor;
429
583
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
430
584
  break;
431
585
  case 'Contact Sensor':
432
586
  device.model = SwitchBotModel.ContactSensor;
433
587
  device.bleModel = SwitchBotBLEModel.ContactSensor;
588
+ device.bleModelName = SwitchBotBLEModelName.ContactSensor;
434
589
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
435
590
  break;
436
591
  case 'Curtain':
437
592
  device.model = SwitchBotModel.Curtain;
438
593
  device.bleModel = SwitchBotBLEModel.Curtain;
594
+ device.bleModelName = SwitchBotBLEModelName.Curtain;
439
595
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
440
596
  break;
441
597
  case 'Curtain3':
442
598
  device.model = SwitchBotModel.Curtain3;
443
599
  device.bleModel = SwitchBotBLEModel.Curtain3;
600
+ device.bleModelName = SwitchBotBLEModelName.Curtain3;
444
601
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
445
602
  break;
446
603
  case 'Blind Tilt':
447
604
  device.model = SwitchBotModel.BlindTilt;
448
605
  device.bleModel = SwitchBotBLEModel.BlindTilt;
606
+ device.bleModelName = SwitchBotBLEModelName.BlindTilt;
449
607
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
450
608
  break;
451
609
  case 'Plug':
452
610
  device.model = SwitchBotModel.Plug;
453
611
  device.bleModel = SwitchBotBLEModel.PlugMiniUS;
612
+ device.bleModelName = SwitchBotBLEModelName.PlugMini;
454
613
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
455
614
  break;
456
615
  case 'Plug Mini (US)':
457
616
  device.model = SwitchBotModel.PlugMiniUS;
458
617
  device.bleModel = SwitchBotBLEModel.PlugMiniUS;
618
+ device.bleModelName = SwitchBotBLEModelName.PlugMini;
459
619
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
460
620
  break;
461
621
  case 'Plug Mini (JP)':
462
622
  device.model = SwitchBotModel.PlugMiniJP;
463
623
  device.bleModel = SwitchBotBLEModel.PlugMiniJP;
624
+ device.bleModelName = SwitchBotBLEModelName.PlugMini;
464
625
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
465
626
  break;
466
627
  case 'Smart Lock':
467
628
  device.model = SwitchBotModel.Lock;
468
629
  device.bleModel = SwitchBotBLEModel.Lock;
630
+ device.bleModelName = SwitchBotBLEModelName.Lock;
469
631
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
470
632
  break;
471
633
  case 'Smart Lock Pro':
472
634
  device.model = SwitchBotModel.LockPro;
473
- device.bleModel = SwitchBotBLEModel.Unknown;
635
+ device.bleModel = SwitchBotBLEModel.Lock;
636
+ device.bleModelName = SwitchBotBLEModelName.Lock;
474
637
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
475
638
  break;
476
639
  case 'Color Bulb':
477
640
  device.model = SwitchBotModel.ColorBulb;
478
641
  device.bleModel = SwitchBotBLEModel.ColorBulb;
642
+ device.bleModelName = SwitchBotBLEModelName.ColorBulb;
479
643
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
480
644
  break;
481
645
  case 'K10+':
482
646
  device.model = SwitchBotModel.K10;
483
647
  device.bleModel = SwitchBotBLEModel.Unknown;
648
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
484
649
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
485
650
  break;
486
651
  case 'WoSweeper':
487
652
  device.model = SwitchBotModel.WoSweeper;
488
653
  device.bleModel = SwitchBotBLEModel.Unknown;
654
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
489
655
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
490
656
  break;
491
657
  case 'WoSweeperMini':
492
658
  device.model = SwitchBotModel.WoSweeperMini;
493
659
  device.bleModel = SwitchBotBLEModel.Unknown;
660
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
494
661
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
495
662
  break;
496
663
  case 'Robot Vacuum Cleaner S1':
@@ -501,51 +668,61 @@ export class deviceBase {
501
668
  case 'Robot Vacuum Cleaner S1 Plus':
502
669
  device.model = SwitchBotModel.RobotVacuumCleanerS1Plus;
503
670
  device.bleModel = SwitchBotBLEModel.Unknown;
671
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
504
672
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
505
673
  break;
506
674
  case 'Robot Vacuum Cleaner S10':
507
675
  device.model = SwitchBotModel.RobotVacuumCleanerS10;
508
676
  device.bleModel = SwitchBotBLEModel.Unknown;
677
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
509
678
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
510
679
  break;
511
680
  case 'Ceiling Light':
512
681
  device.model = SwitchBotModel.CeilingLight;
513
682
  device.bleModel = SwitchBotBLEModel.CeilingLight;
683
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
514
684
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
515
685
  break;
516
686
  case 'Ceiling Light Pro':
517
687
  device.model = SwitchBotModel.CeilingLightPro;
518
688
  device.bleModel = SwitchBotBLEModel.CeilingLightPro;
689
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
519
690
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
520
691
  break;
521
692
  case 'Strip Light':
522
693
  device.model = SwitchBotModel.StripLight;
523
694
  device.bleModel = SwitchBotBLEModel.StripLight;
695
+ device.bleModelName = SwitchBotBLEModelName.StripLight;
524
696
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
525
697
  break;
526
698
  case 'Indoor Cam':
527
699
  device.model = SwitchBotModel.IndoorCam;
528
700
  device.bleModel = SwitchBotBLEModel.Unknown;
701
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
529
702
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
530
703
  break;
531
704
  case 'Remote':
532
705
  device.model = SwitchBotModel.Remote;
533
- device.bleModel = SwitchBotBLEModel.Remote;
706
+ device.bleModel = SwitchBotBLEModel.Unknown;
707
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
534
708
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
535
709
  break;
536
710
  case 'remote with screen+':
537
711
  device.model = SwitchBotModel.UniversalRemote;
538
712
  device.bleModel = SwitchBotBLEModel.Unknown;
713
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
539
714
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
540
715
  break;
541
716
  case 'Battery Circulator Fan':
542
717
  device.model = SwitchBotModel.BatteryCirculatorFan;
543
718
  device.bleModel = SwitchBotBLEModel.Unknown;
719
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
544
720
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
545
721
  break;
546
722
  default:
547
723
  device.model = SwitchBotModel.Unknown;
548
724
  device.bleModel = SwitchBotBLEModel.Unknown;
725
+ device.bleModelName = SwitchBotBLEModelName.Unknown;
549
726
  this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Model: ${device.model}, BLE Model: ${device.bleModel}`);
550
727
  }
551
728
  accessory.context.model = device.model;
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/device/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/device/device.ts"],"names":[],"mappings":"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"}