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

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.
@@ -63,6 +63,8 @@ export declare class SwitchBotPlatform implements DynamicPlatformPlugin {
63
63
  private createVacuumCleaner;
64
64
  private createCamera;
65
65
  private createOthers;
66
+ private connectionTypeNew;
67
+ private connectionTypeExisting;
66
68
  private registerDevice;
67
69
  externalOrPlatform(device: device & devicesConfig, accessory: PlatformAccessory): Promise<void>;
68
70
  externalAccessory(accessory: PlatformAccessory): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAA8B,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AAE1I;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;aAejC,GAAG,EAAE,MAAM;aAAkB,MAAM,EAAE,uBAAuB;aAAkB,GAAG,EAAE,GAAG;IAdlH,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,MAAkD;IACzD,YAAY,EAAG,GAAG,CAAC;IACnB,iBAAiB,EAAG,OAAO,CAAC;IAC5B,SAAS,EAAG,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAgB,WAAW,EAAE,GAAG,CAAC;gBAEL,GAAG,EAAE,MAAM,EAAkB,MAAM,EAAE,uBAAuB,EAAkB,GAAG,EAAE,GAAG;IAsDlH,IAAI;IAoBJ;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IAwFlB;;;;OAIG;IACG,WAAW;IAoDjB;;OAEG;IACG,eAAe;IAgJrB,WAAW,CAAC,CAAC,EAAE,GAAG;IA0ClB,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,cAAc;YA+DR,gBAAgB;YAsDhB,SAAS;YA2DT,WAAW;YAsDX,eAAe;YAsDf,YAAY;YAsDZ,aAAa;YAsDb,aAAa;IAiE3B,OAAO,CAAC,gBAAgB;YAeV,UAAU;YAsDV,UAAU;YAsDV,eAAe;YAsDf,gBAAgB;YAsDhB,QAAQ;YAqDR,SAAS;YAsDT,WAAW;YAsDX,oBAAoB;YAsDpB,iBAAiB;YAsDjB,iBAAiB;YAsDjB,mBAAmB;YAsDnB,YAAY;YAsDZ,YAAY;IAsD1B,OAAO,CAAC,cAAc;IAkBT,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,SAAS,EAAE,iBAAiB;IAU/E,iBAAiB,CAAC,SAAS,EAAE,iBAAiB;IAIpD,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMlE,cAAc,CAAC,OAAO,KAAA;IAMhB,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC;IA6CrF,UAAU;IAaV;;;OAGG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,uBAAuB,IAAI,OAAO;CAGnC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAA8B,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AAE1I;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;aAejC,GAAG,EAAE,MAAM;aAAkB,MAAM,EAAE,uBAAuB;aAAkB,GAAG,EAAE,GAAG;IAdlH,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,MAAkD;IACzD,YAAY,EAAG,GAAG,CAAC;IACnB,iBAAiB,EAAG,OAAO,CAAC;IAC5B,SAAS,EAAG,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAgB,WAAW,EAAE,GAAG,CAAC;gBAEL,GAAG,EAAE,MAAM,EAAkB,MAAM,EAAE,uBAAuB,EAAkB,GAAG,EAAE,GAAG;IAsDlH,IAAI;IAoBJ;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IAwFlB;;;;OAIG;IACG,WAAW;IAoDjB;;OAEG;IACG,eAAe;IAgJrB,WAAW,CAAC,CAAC,EAAE,GAAG;IA0ClB,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,cAAc;YA+DR,gBAAgB;YAsDhB,SAAS;YA2DT,WAAW;YAsDX,eAAe;YAsDf,YAAY;YAsDZ,aAAa;YAsDb,aAAa;IAiE3B,OAAO,CAAC,gBAAgB;YAeV,UAAU;YAsDV,UAAU;YAsDV,eAAe;YAsDf,gBAAgB;YAsDhB,QAAQ;YAqDR,SAAS;YAsDT,WAAW;YAsDX,oBAAoB;YAsDpB,iBAAiB;YAsDjB,iBAAiB;YAsDjB,mBAAmB;YAsDnB,YAAY;YAsDZ,YAAY;IAsD1B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,cAAc;IA2BT,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,SAAS,EAAE,iBAAiB;IAU/E,iBAAiB,CAAC,SAAS,EAAE,iBAAiB;IAIpD,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMlE,cAAc,CAAC,OAAO,KAAA;IAMhB,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC;IA6CrF,UAAU;IAaV;;;OAGG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,uBAAuB,IAAI,OAAO;CAGnC"}
package/dist/platform.js CHANGED
@@ -595,7 +595,7 @@ class SwitchBotPlatform {
595
595
  existingAccessory.context.firmwareRevision = device.firmware;
596
596
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
597
597
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
598
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
598
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
599
599
  this.api.updatePlatformAccessories([existingAccessory]);
600
600
  // create the accessory handler for the restored accessory
601
601
  // this is imported from `platformAccessory.ts`
@@ -618,7 +618,7 @@ class SwitchBotPlatform {
618
618
  accessory.context.deviceID = device.deviceId;
619
619
  accessory.context.firmwareRevision = device.firmware;
620
620
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
621
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
621
+ accessory.context.connectionType = await this.connectionTypeNew(device);
622
622
  // create the accessory handler for the newly create accessory
623
623
  // this is imported from `platformAccessory.ts`
624
624
  new humidifier_1.Humidifier(this, accessory, device);
@@ -647,7 +647,7 @@ class SwitchBotPlatform {
647
647
  existingAccessory.context.firmwareRevision = device.firmware;
648
648
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
649
649
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
650
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
650
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
651
651
  this.api.updatePlatformAccessories([existingAccessory]);
652
652
  // create the accessory handler for the restored accessory
653
653
  // this is imported from `platformAccessory.ts`
@@ -671,7 +671,7 @@ class SwitchBotPlatform {
671
671
  accessory.context.deviceID = device.deviceId;
672
672
  accessory.context.firmwareRevision = device.firmware;
673
673
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
674
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
674
+ accessory.context.connectionType = await this.connectionTypeNew(device);
675
675
  // accessory.context.firmwareRevision = findaccessories.accessoryAttribute.softwareRevision;
676
676
  // create the accessory handler for the newly create accessory
677
677
  // this is imported from `platformAccessory.ts`
@@ -700,7 +700,7 @@ class SwitchBotPlatform {
700
700
  existingAccessory.context.firmwareRevision = device.firmware;
701
701
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
702
702
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
703
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
703
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
704
704
  this.api.updatePlatformAccessories([existingAccessory]);
705
705
  // create the accessory handler for the restored accessory
706
706
  // this is imported from `platformAccessory.ts`
@@ -723,7 +723,7 @@ class SwitchBotPlatform {
723
723
  accessory.context.deviceID = device.deviceId;
724
724
  accessory.context.firmwareRevision = device.firmware;
725
725
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
726
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
726
+ accessory.context.connectionType = await this.connectionTypeNew(device);
727
727
  // create the accessory handler for the newly create accessory
728
728
  // this is imported from `platformAccessory.ts`
729
729
  new meter_1.Meter(this, accessory, device);
@@ -751,7 +751,7 @@ class SwitchBotPlatform {
751
751
  existingAccessory.context.firmwareRevision = device.firmware;
752
752
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
753
753
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
754
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
754
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
755
755
  this.api.updatePlatformAccessories([existingAccessory]);
756
756
  // create the accessory handler for the restored accessory
757
757
  // this is imported from `platformAccessory.ts`
@@ -774,7 +774,7 @@ class SwitchBotPlatform {
774
774
  accessory.context.deviceID = device.deviceId;
775
775
  accessory.context.firmwareRevision = device.firmware;
776
776
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
777
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
777
+ accessory.context.connectionType = await this.connectionTypeNew(device);
778
778
  // create the accessory handler for the newly create accessory
779
779
  // this is imported from `platformAccessory.ts`
780
780
  new meterplus_1.MeterPlus(this, accessory, device);
@@ -802,7 +802,7 @@ class SwitchBotPlatform {
802
802
  existingAccessory.context.firmwareRevision = device.firmware;
803
803
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
804
804
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
805
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
805
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
806
806
  this.api.updatePlatformAccessories([existingAccessory]);
807
807
  // create the accessory handler for the restored accessory
808
808
  // this is imported from `platformAccessory.ts`
@@ -825,7 +825,7 @@ class SwitchBotPlatform {
825
825
  accessory.context.deviceID = device.deviceId;
826
826
  accessory.context.firmwareRevision = device.firmware;
827
827
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
828
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
828
+ accessory.context.connectionType = await this.connectionTypeNew(device);
829
829
  // create the accessory handler for the newly create accessory
830
830
  // this is imported from `platformAccessory.ts`
831
831
  new motion_1.Motion(this, accessory, device);
@@ -853,7 +853,7 @@ class SwitchBotPlatform {
853
853
  existingAccessory.context.firmwareRevision = device.firmware;
854
854
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
855
855
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
856
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
856
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
857
857
  this.api.updatePlatformAccessories([existingAccessory]);
858
858
  // create the accessory handler for the restored accessory
859
859
  // this is imported from `platformAccessory.ts`
@@ -876,7 +876,7 @@ class SwitchBotPlatform {
876
876
  accessory.context.deviceID = device.deviceId;
877
877
  accessory.context.firmwareRevision = device.firmware;
878
878
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
879
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
879
+ accessory.context.connectionType = await this.connectionTypeNew(device);
880
880
  // create the accessory handler for the newly create accessory
881
881
  // this is imported from `platformAccessory.ts`
882
882
  new contact_1.Contact(this, accessory, device);
@@ -904,7 +904,7 @@ class SwitchBotPlatform {
904
904
  existingAccessory.context.firmwareRevision = device.firmware;
905
905
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
906
906
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
907
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
907
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
908
908
  this.api.updatePlatformAccessories([existingAccessory]);
909
909
  // create the accessory handler for the restored accessory
910
910
  // this is imported from `platformAccessory.ts`
@@ -939,7 +939,7 @@ class SwitchBotPlatform {
939
939
  accessory.context.deviceID = device.deviceId;
940
940
  accessory.context.firmwareRevision = device.firmware;
941
941
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
942
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
942
+ accessory.context.connectionType = await this.connectionTypeNew(device);
943
943
  // create the accessory handler for the newly create accessory
944
944
  // this is imported from `platformAccessory.ts`
945
945
  new curtain_1.Curtain(this, accessory, device);
@@ -979,7 +979,7 @@ class SwitchBotPlatform {
979
979
  existingAccessory.context.firmwareRevision = device.firmware;
980
980
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
981
981
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
982
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
982
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
983
983
  this.api.updatePlatformAccessories([existingAccessory]);
984
984
  // create the accessory handler for the restored accessory
985
985
  // this is imported from `platformAccessory.ts`
@@ -1002,7 +1002,7 @@ class SwitchBotPlatform {
1002
1002
  accessory.context.deviceID = device.deviceId;
1003
1003
  accessory.context.firmwareRevision = device.firmware;
1004
1004
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1005
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1005
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1006
1006
  // create the accessory handler for the newly create accessory
1007
1007
  // this is imported from `platformAccessory.ts`
1008
1008
  new plug_1.Plug(this, accessory, device);
@@ -1030,7 +1030,7 @@ class SwitchBotPlatform {
1030
1030
  existingAccessory.context.firmwareRevision = device.firmware;
1031
1031
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1032
1032
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1033
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1033
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1034
1034
  this.api.updatePlatformAccessories([existingAccessory]);
1035
1035
  // create the accessory handler for the restored accessory
1036
1036
  // this is imported from `platformAccessory.ts`
@@ -1053,7 +1053,7 @@ class SwitchBotPlatform {
1053
1053
  accessory.context.deviceID = device.deviceId;
1054
1054
  accessory.context.firmwareRevision = device.firmware;
1055
1055
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1056
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1056
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1057
1057
  // create the accessory handler for the newly create accessory
1058
1058
  // this is imported from `platformAccessory.ts`
1059
1059
  new lock_1.Lock(this, accessory, device);
@@ -1081,7 +1081,7 @@ class SwitchBotPlatform {
1081
1081
  existingAccessory.context.firmwareRevision = device.firmware;
1082
1082
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1083
1083
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1084
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1084
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1085
1085
  this.api.updatePlatformAccessories([existingAccessory]);
1086
1086
  // create the accessory handler for the restored accessory
1087
1087
  // this is imported from `platformAccessory.ts`
@@ -1104,7 +1104,7 @@ class SwitchBotPlatform {
1104
1104
  accessory.context.deviceID = device.deviceId;
1105
1105
  accessory.context.firmwareRevision = device.firmware;
1106
1106
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1107
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1107
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1108
1108
  // create the accessory handler for the newly create accessory
1109
1109
  // this is imported from `platformAccessory.ts`
1110
1110
  new colorbulb_1.ColorBulb(this, accessory, device);
@@ -1132,7 +1132,7 @@ class SwitchBotPlatform {
1132
1132
  existingAccessory.context.firmwareRevision = device.firmware;
1133
1133
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1134
1134
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1135
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1135
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1136
1136
  this.api.updatePlatformAccessories([existingAccessory]);
1137
1137
  // create the accessory handler for the restored accessory
1138
1138
  // this is imported from `platformAccessory.ts`
@@ -1155,7 +1155,7 @@ class SwitchBotPlatform {
1155
1155
  accessory.context.deviceID = device.deviceId;
1156
1156
  accessory.context.firmwareRevision = device.firmware;
1157
1157
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1158
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1158
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1159
1159
  // create the accessory handler for the newly create accessory
1160
1160
  // this is imported from `platformAccessory.ts`
1161
1161
  new striplight_1.StripLight(this, accessory, device);
@@ -1181,7 +1181,7 @@ class SwitchBotPlatform {
1181
1181
  existingAccessory.context.firmwareRevision = device.firmware;
1182
1182
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1183
1183
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1184
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1184
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1185
1185
  this.api.updatePlatformAccessories([existingAccessory]);
1186
1186
  // create the accessory handler for the restored accessory
1187
1187
  // this is imported from `platformAccessory.ts`
@@ -1200,7 +1200,7 @@ class SwitchBotPlatform {
1200
1200
  accessory.context.deviceID = device.deviceId;
1201
1201
  accessory.context.firmwareRevision = device.firmware;
1202
1202
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1203
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1203
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1204
1204
  // create the accessory handler for the newly create accessory
1205
1205
  // this is imported from `platformAccessory.ts`
1206
1206
  new tv_1.TV(this, accessory, device);
@@ -1232,7 +1232,7 @@ class SwitchBotPlatform {
1232
1232
  existingAccessory.context.firmwareRevision = device.firmware;
1233
1233
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1234
1234
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1235
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1235
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1236
1236
  this.api.updatePlatformAccessories([existingAccessory]);
1237
1237
  // create the accessory handler for the restored accessory
1238
1238
  // this is imported from `platformAccessory.ts`
@@ -1255,7 +1255,7 @@ class SwitchBotPlatform {
1255
1255
  accessory.context.deviceID = device.deviceId;
1256
1256
  accessory.context.firmwareRevision = device.firmware;
1257
1257
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1258
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1258
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1259
1259
  // create the accessory handler for the newly create accessory
1260
1260
  // this is imported from `platformAccessory.ts`
1261
1261
  new fan_1.Fan(this, accessory, device);
@@ -1283,7 +1283,7 @@ class SwitchBotPlatform {
1283
1283
  existingAccessory.context.firmwareRevision = device.firmware;
1284
1284
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1285
1285
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1286
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1286
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1287
1287
  this.api.updatePlatformAccessories([existingAccessory]);
1288
1288
  // create the accessory handler for the restored accessory
1289
1289
  // this is imported from `platformAccessory.ts`
@@ -1306,7 +1306,7 @@ class SwitchBotPlatform {
1306
1306
  accessory.context.deviceID = device.deviceId;
1307
1307
  accessory.context.firmwareRevision = device.firmware;
1308
1308
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1309
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1309
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1310
1310
  // create the accessory handler for the newly create accessory
1311
1311
  // this is imported from `platformAccessory.ts`
1312
1312
  new light_1.Light(this, accessory, device);
@@ -1334,7 +1334,7 @@ class SwitchBotPlatform {
1334
1334
  existingAccessory.context.firmwareRevision = device.firmware;
1335
1335
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1336
1336
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1337
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1337
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1338
1338
  this.api.updatePlatformAccessories([existingAccessory]);
1339
1339
  // create the accessory handler for the restored accessory
1340
1340
  // this is imported from `platformAccessory.ts`
@@ -1357,7 +1357,7 @@ class SwitchBotPlatform {
1357
1357
  accessory.context.deviceID = device.deviceId;
1358
1358
  accessory.context.firmwareRevision = device.firmware;
1359
1359
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1360
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1360
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1361
1361
  // create the accessory handler for the newly create accessory
1362
1362
  // this is imported from `platformAccessory.ts`
1363
1363
  new airconditioner_1.AirConditioner(this, accessory, device);
@@ -1385,7 +1385,7 @@ class SwitchBotPlatform {
1385
1385
  existingAccessory.context.firmwareRevision = device.firmware;
1386
1386
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1387
1387
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1388
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1388
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1389
1389
  this.api.updatePlatformAccessories([existingAccessory]);
1390
1390
  // create the accessory handler for the restored accessory
1391
1391
  // this is imported from `platformAccessory.ts`
@@ -1408,7 +1408,7 @@ class SwitchBotPlatform {
1408
1408
  accessory.context.deviceID = device.deviceId;
1409
1409
  accessory.context.firmwareRevision = device.firmware;
1410
1410
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1411
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1411
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1412
1412
  // create the accessory handler for the newly create accessory
1413
1413
  // this is imported from `platformAccessory.ts`
1414
1414
  new airpurifier_1.AirPurifier(this, accessory, device);
@@ -1436,7 +1436,7 @@ class SwitchBotPlatform {
1436
1436
  existingAccessory.context.firmwareRevision = device.firmware;
1437
1437
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1438
1438
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1439
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1439
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1440
1440
  this.api.updatePlatformAccessories([existingAccessory]);
1441
1441
  // create the accessory handler for the restored accessory
1442
1442
  // this is imported from `platformAccessory.ts`
@@ -1459,7 +1459,7 @@ class SwitchBotPlatform {
1459
1459
  accessory.context.deviceID = device.deviceId;
1460
1460
  accessory.context.firmwareRevision = device.firmware;
1461
1461
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1462
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1462
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1463
1463
  // create the accessory handler for the newly create accessory
1464
1464
  // this is imported from `platformAccessory.ts`
1465
1465
  new waterheater_1.WaterHeater(this, accessory, device);
@@ -1487,7 +1487,7 @@ class SwitchBotPlatform {
1487
1487
  existingAccessory.context.firmwareRevision = device.firmware;
1488
1488
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1489
1489
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1490
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1490
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1491
1491
  this.api.updatePlatformAccessories([existingAccessory]);
1492
1492
  // create the accessory handler for the restored accessory
1493
1493
  // this is imported from `platformAccessory.ts`
@@ -1510,7 +1510,7 @@ class SwitchBotPlatform {
1510
1510
  accessory.context.deviceID = device.deviceId;
1511
1511
  accessory.context.firmwareRevision = device.firmware;
1512
1512
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1513
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1513
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1514
1514
  // create the accessory handler for the newly create accessory
1515
1515
  // this is imported from `platformAccessory.ts`
1516
1516
  new vacuumcleaner_1.VacuumCleaner(this, accessory, device);
@@ -1538,7 +1538,7 @@ class SwitchBotPlatform {
1538
1538
  existingAccessory.context.firmwareRevision = device.firmware;
1539
1539
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1540
1540
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1541
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1541
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1542
1542
  this.api.updatePlatformAccessories([existingAccessory]);
1543
1543
  // create the accessory handler for the restored accessory
1544
1544
  // this is imported from `platformAccessory.ts`
@@ -1561,7 +1561,7 @@ class SwitchBotPlatform {
1561
1561
  accessory.context.deviceID = device.deviceId;
1562
1562
  accessory.context.firmwareRevision = device.firmware;
1563
1563
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1564
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1564
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1565
1565
  // create the accessory handler for the newly create accessory
1566
1566
  // this is imported from `platformAccessory.ts`
1567
1567
  new camera_1.Camera(this, accessory, device);
@@ -1589,7 +1589,7 @@ class SwitchBotPlatform {
1589
1589
  existingAccessory.context.firmwareRevision = device.firmware;
1590
1590
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1591
1591
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1592
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1592
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1593
1593
  this.api.updatePlatformAccessories([existingAccessory]);
1594
1594
  // create the accessory handler for the restored accessory
1595
1595
  // this is imported from `platformAccessory.ts`
@@ -1612,7 +1612,7 @@ class SwitchBotPlatform {
1612
1612
  accessory.context.deviceID = device.deviceId;
1613
1613
  accessory.context.firmwareRevision = device.firmware;
1614
1614
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1615
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1615
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1616
1616
  // create the accessory handler for the newly create accessory
1617
1617
  // this is imported from `platformAccessory.ts`
1618
1618
  new other_1.Others(this, accessory, device);
@@ -1625,8 +1625,21 @@ class SwitchBotPlatform {
1625
1625
  this.debugLog(`Unable to Register new device: ${device.deviceName} ${device.remoteType} - ${device.deviceId}`);
1626
1626
  }
1627
1627
  }
1628
+ connectionTypeNew(device) {
1629
+ let connectionType = '';
1630
+ if (!device.connectionType && this.config.credentials?.token && this.config.credentials.secret) {
1631
+ connectionType = 'OpenAPI';
1632
+ }
1633
+ else {
1634
+ connectionType = device.connectionType;
1635
+ }
1636
+ return connectionType;
1637
+ }
1638
+ connectionTypeExisting(device) {
1639
+ return device.connectionType || 'OpenAPI';
1640
+ }
1628
1641
  registerDevice(device) {
1629
- if (!device.hide_device && device.enableCloudService && device.connectionType === 'Both') {
1642
+ if (!device.hide_device && device.enableCloudService && device.connectionType === 'OpenAPI & BLE') {
1630
1643
  this.registeringDevice = true;
1631
1644
  this.debugLog(`Device: ${device.deviceName} Both OpenAPI and BLE Connections Enabled`);
1632
1645
  }
@@ -1639,6 +1652,18 @@ class SwitchBotPlatform {
1639
1652
  this.registeringDevice = true;
1640
1653
  this.debugLog(`Device: ${device.deviceName} OpenAPI Connection Enabled`);
1641
1654
  }
1655
+ else if (!device.hide_device && device.enableCloudService && device.connectionType === 'Disable') {
1656
+ this.registeringDevice = true;
1657
+ this.debugLog(`Device: ${device.deviceName} Device connection Disabled, will continue to display in HomeKit`);
1658
+ }
1659
+ else if (!device.connectionType) {
1660
+ this.registeringDevice = false;
1661
+ this.debugLog(`Device: ${device.deviceName} Connection Type not Set, will not display in HomeKit`);
1662
+ }
1663
+ else if (device.hide_device) {
1664
+ this.registeringDevice = false;
1665
+ this.debugLog(`Device: ${device.deviceName} Device Set to Hidden, will not display in HomeKit`);
1666
+ }
1642
1667
  else {
1643
1668
  this.registeringDevice = false;
1644
1669
  this.debugLog(`Device: ${device.deviceName} OpenAPI and BLE Are Not Enabled`);
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge SwitchBot",
3
3
  "name": "@switchbot/homebridge-switchbot",
4
- "version": "2.0.0-beta.20",
4
+ "version": "2.0.0-beta.21",
5
5
  "description": "The [Homebridge](https://homebridge.io) SwitchBot plugin allows you to access your [SwitchBot](https://www.switch-bot.com) device(s) from HomeKit.",
6
6
  "author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
7
7
  "license": "ISC",
package/src/platform.ts CHANGED
@@ -618,7 +618,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
618
618
  existingAccessory.context.firmwareRevision = device.firmware;
619
619
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
620
620
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
621
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
621
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
622
622
  this.api.updatePlatformAccessories([existingAccessory]);
623
623
  // create the accessory handler for the restored accessory
624
624
  // this is imported from `platformAccessory.ts`
@@ -641,7 +641,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
641
641
  accessory.context.deviceID = device.deviceId;
642
642
  accessory.context.firmwareRevision = device.firmware;
643
643
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
644
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
644
+ accessory.context.connectionType = await this.connectionTypeNew(device);
645
645
  // create the accessory handler for the newly create accessory
646
646
  // this is imported from `platformAccessory.ts`
647
647
  new Humidifier(this, accessory, device);
@@ -674,7 +674,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
674
674
  existingAccessory.context.firmwareRevision = device.firmware;
675
675
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
676
676
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
677
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
677
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
678
678
  this.api.updatePlatformAccessories([existingAccessory]);
679
679
  // create the accessory handler for the restored accessory
680
680
  // this is imported from `platformAccessory.ts`
@@ -699,7 +699,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
699
699
  accessory.context.deviceID = device.deviceId;
700
700
  accessory.context.firmwareRevision = device.firmware;
701
701
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
702
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
702
+ accessory.context.connectionType = await this.connectionTypeNew(device);
703
703
  // accessory.context.firmwareRevision = findaccessories.accessoryAttribute.softwareRevision;
704
704
  // create the accessory handler for the newly create accessory
705
705
  // this is imported from `platformAccessory.ts`
@@ -731,7 +731,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
731
731
  existingAccessory.context.firmwareRevision = device.firmware;
732
732
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
733
733
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
734
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
734
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
735
735
  this.api.updatePlatformAccessories([existingAccessory]);
736
736
  // create the accessory handler for the restored accessory
737
737
  // this is imported from `platformAccessory.ts`
@@ -754,7 +754,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
754
754
  accessory.context.deviceID = device.deviceId;
755
755
  accessory.context.firmwareRevision = device.firmware;
756
756
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
757
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
757
+ accessory.context.connectionType = await this.connectionTypeNew(device);
758
758
  // create the accessory handler for the newly create accessory
759
759
  // this is imported from `platformAccessory.ts`
760
760
  new Meter(this, accessory, device);
@@ -785,7 +785,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
785
785
  existingAccessory.context.firmwareRevision = device.firmware;
786
786
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
787
787
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
788
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
788
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
789
789
  this.api.updatePlatformAccessories([existingAccessory]);
790
790
  // create the accessory handler for the restored accessory
791
791
  // this is imported from `platformAccessory.ts`
@@ -808,7 +808,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
808
808
  accessory.context.deviceID = device.deviceId;
809
809
  accessory.context.firmwareRevision = device.firmware;
810
810
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
811
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
811
+ accessory.context.connectionType = await this.connectionTypeNew(device);
812
812
  // create the accessory handler for the newly create accessory
813
813
  // this is imported from `platformAccessory.ts`
814
814
  new MeterPlus(this, accessory, device);
@@ -839,7 +839,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
839
839
  existingAccessory.context.firmwareRevision = device.firmware;
840
840
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
841
841
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
842
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
842
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
843
843
  this.api.updatePlatformAccessories([existingAccessory]);
844
844
  // create the accessory handler for the restored accessory
845
845
  // this is imported from `platformAccessory.ts`
@@ -862,7 +862,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
862
862
  accessory.context.deviceID = device.deviceId;
863
863
  accessory.context.firmwareRevision = device.firmware;
864
864
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
865
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
865
+ accessory.context.connectionType = await this.connectionTypeNew(device);
866
866
  // create the accessory handler for the newly create accessory
867
867
  // this is imported from `platformAccessory.ts`
868
868
  new Motion(this, accessory, device);
@@ -893,7 +893,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
893
893
  existingAccessory.context.firmwareRevision = device.firmware;
894
894
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
895
895
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
896
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
896
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
897
897
  this.api.updatePlatformAccessories([existingAccessory]);
898
898
  // create the accessory handler for the restored accessory
899
899
  // this is imported from `platformAccessory.ts`
@@ -916,7 +916,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
916
916
  accessory.context.deviceID = device.deviceId;
917
917
  accessory.context.firmwareRevision = device.firmware;
918
918
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
919
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
919
+ accessory.context.connectionType = await this.connectionTypeNew(device);
920
920
  // create the accessory handler for the newly create accessory
921
921
  // this is imported from `platformAccessory.ts`
922
922
  new Contact(this, accessory, device);
@@ -947,7 +947,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
947
947
  existingAccessory.context.firmwareRevision = device.firmware;
948
948
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
949
949
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
950
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
950
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
951
951
  this.api.updatePlatformAccessories([existingAccessory]);
952
952
  // create the accessory handler for the restored accessory
953
953
  // this is imported from `platformAccessory.ts`
@@ -981,7 +981,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
981
981
  accessory.context.deviceID = device.deviceId;
982
982
  accessory.context.firmwareRevision = device.firmware;
983
983
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
984
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
984
+ accessory.context.connectionType = await this.connectionTypeNew(device);
985
985
  // create the accessory handler for the newly create accessory
986
986
  // this is imported from `platformAccessory.ts`
987
987
  new Curtain(this, accessory, device);
@@ -1027,7 +1027,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1027
1027
  existingAccessory.context.firmwareRevision = device.firmware;
1028
1028
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1029
1029
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1030
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1030
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1031
1031
  this.api.updatePlatformAccessories([existingAccessory]);
1032
1032
  // create the accessory handler for the restored accessory
1033
1033
  // this is imported from `platformAccessory.ts`
@@ -1050,7 +1050,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1050
1050
  accessory.context.deviceID = device.deviceId;
1051
1051
  accessory.context.firmwareRevision = device.firmware;
1052
1052
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1053
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1053
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1054
1054
  // create the accessory handler for the newly create accessory
1055
1055
  // this is imported from `platformAccessory.ts`
1056
1056
  new Plug(this, accessory, device);
@@ -1081,7 +1081,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1081
1081
  existingAccessory.context.firmwareRevision = device.firmware;
1082
1082
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1083
1083
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1084
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1084
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1085
1085
  this.api.updatePlatformAccessories([existingAccessory]);
1086
1086
  // create the accessory handler for the restored accessory
1087
1087
  // this is imported from `platformAccessory.ts`
@@ -1104,7 +1104,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1104
1104
  accessory.context.deviceID = device.deviceId;
1105
1105
  accessory.context.firmwareRevision = device.firmware;
1106
1106
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1107
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1107
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1108
1108
  // create the accessory handler for the newly create accessory
1109
1109
  // this is imported from `platformAccessory.ts`
1110
1110
  new Lock(this, accessory, device);
@@ -1135,7 +1135,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1135
1135
  existingAccessory.context.firmwareRevision = device.firmware;
1136
1136
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1137
1137
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1138
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1138
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1139
1139
  this.api.updatePlatformAccessories([existingAccessory]);
1140
1140
  // create the accessory handler for the restored accessory
1141
1141
  // this is imported from `platformAccessory.ts`
@@ -1158,7 +1158,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1158
1158
  accessory.context.deviceID = device.deviceId;
1159
1159
  accessory.context.firmwareRevision = device.firmware;
1160
1160
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1161
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1161
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1162
1162
  // create the accessory handler for the newly create accessory
1163
1163
  // this is imported from `platformAccessory.ts`
1164
1164
  new ColorBulb(this, accessory, device);
@@ -1189,7 +1189,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1189
1189
  existingAccessory.context.firmwareRevision = device.firmware;
1190
1190
  existingAccessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1191
1191
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1192
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1192
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1193
1193
  this.api.updatePlatformAccessories([existingAccessory]);
1194
1194
  // create the accessory handler for the restored accessory
1195
1195
  // this is imported from `platformAccessory.ts`
@@ -1212,7 +1212,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1212
1212
  accessory.context.deviceID = device.deviceId;
1213
1213
  accessory.context.firmwareRevision = device.firmware;
1214
1214
  accessory.context.deviceType = `SwitchBot: ${device.deviceType}`;
1215
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1215
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1216
1216
  // create the accessory handler for the newly create accessory
1217
1217
  // this is imported from `platformAccessory.ts`
1218
1218
  new StripLight(this, accessory, device);
@@ -1241,7 +1241,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1241
1241
  existingAccessory.context.firmwareRevision = device.firmware;
1242
1242
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1243
1243
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1244
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1244
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1245
1245
  this.api.updatePlatformAccessories([existingAccessory]);
1246
1246
  // create the accessory handler for the restored accessory
1247
1247
  // this is imported from `platformAccessory.ts`
@@ -1261,7 +1261,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1261
1261
  accessory.context.deviceID = device.deviceId;
1262
1262
  accessory.context.firmwareRevision = device.firmware;
1263
1263
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1264
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1264
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1265
1265
  // create the accessory handler for the newly create accessory
1266
1266
  // this is imported from `platformAccessory.ts`
1267
1267
  new TV(this, accessory, device);
@@ -1296,7 +1296,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1296
1296
  existingAccessory.context.firmwareRevision = device.firmware;
1297
1297
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1298
1298
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1299
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1299
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1300
1300
  this.api.updatePlatformAccessories([existingAccessory]);
1301
1301
  // create the accessory handler for the restored accessory
1302
1302
  // this is imported from `platformAccessory.ts`
@@ -1319,7 +1319,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1319
1319
  accessory.context.deviceID = device.deviceId;
1320
1320
  accessory.context.firmwareRevision = device.firmware;
1321
1321
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1322
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1322
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1323
1323
  // create the accessory handler for the newly create accessory
1324
1324
  // this is imported from `platformAccessory.ts`
1325
1325
  new Fan(this, accessory, device);
@@ -1350,7 +1350,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1350
1350
  existingAccessory.context.firmwareRevision = device.firmware;
1351
1351
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1352
1352
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1353
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1353
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1354
1354
  this.api.updatePlatformAccessories([existingAccessory]);
1355
1355
  // create the accessory handler for the restored accessory
1356
1356
  // this is imported from `platformAccessory.ts`
@@ -1373,7 +1373,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1373
1373
  accessory.context.deviceID = device.deviceId;
1374
1374
  accessory.context.firmwareRevision = device.firmware;
1375
1375
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1376
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1376
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1377
1377
  // create the accessory handler for the newly create accessory
1378
1378
  // this is imported from `platformAccessory.ts`
1379
1379
  new Light(this, accessory, device);
@@ -1404,7 +1404,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1404
1404
  existingAccessory.context.firmwareRevision = device.firmware;
1405
1405
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1406
1406
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1407
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1407
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1408
1408
  this.api.updatePlatformAccessories([existingAccessory]);
1409
1409
  // create the accessory handler for the restored accessory
1410
1410
  // this is imported from `platformAccessory.ts`
@@ -1427,7 +1427,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1427
1427
  accessory.context.deviceID = device.deviceId;
1428
1428
  accessory.context.firmwareRevision = device.firmware;
1429
1429
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1430
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1430
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1431
1431
  // create the accessory handler for the newly create accessory
1432
1432
  // this is imported from `platformAccessory.ts`
1433
1433
  new AirConditioner(this, accessory, device);
@@ -1458,7 +1458,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1458
1458
  existingAccessory.context.firmwareRevision = device.firmware;
1459
1459
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1460
1460
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1461
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1461
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1462
1462
  this.api.updatePlatformAccessories([existingAccessory]);
1463
1463
  // create the accessory handler for the restored accessory
1464
1464
  // this is imported from `platformAccessory.ts`
@@ -1481,7 +1481,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1481
1481
  accessory.context.deviceID = device.deviceId;
1482
1482
  accessory.context.firmwareRevision = device.firmware;
1483
1483
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1484
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1484
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1485
1485
  // create the accessory handler for the newly create accessory
1486
1486
  // this is imported from `platformAccessory.ts`
1487
1487
  new AirPurifier(this, accessory, device);
@@ -1512,7 +1512,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1512
1512
  existingAccessory.context.firmwareRevision = device.firmware;
1513
1513
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1514
1514
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1515
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1515
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1516
1516
  this.api.updatePlatformAccessories([existingAccessory]);
1517
1517
  // create the accessory handler for the restored accessory
1518
1518
  // this is imported from `platformAccessory.ts`
@@ -1535,7 +1535,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1535
1535
  accessory.context.deviceID = device.deviceId;
1536
1536
  accessory.context.firmwareRevision = device.firmware;
1537
1537
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1538
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1538
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1539
1539
  // create the accessory handler for the newly create accessory
1540
1540
  // this is imported from `platformAccessory.ts`
1541
1541
  new WaterHeater(this, accessory, device);
@@ -1566,7 +1566,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1566
1566
  existingAccessory.context.firmwareRevision = device.firmware;
1567
1567
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1568
1568
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1569
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1569
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1570
1570
  this.api.updatePlatformAccessories([existingAccessory]);
1571
1571
  // create the accessory handler for the restored accessory
1572
1572
  // this is imported from `platformAccessory.ts`
@@ -1589,7 +1589,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1589
1589
  accessory.context.deviceID = device.deviceId;
1590
1590
  accessory.context.firmwareRevision = device.firmware;
1591
1591
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1592
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1592
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1593
1593
  // create the accessory handler for the newly create accessory
1594
1594
  // this is imported from `platformAccessory.ts`
1595
1595
  new VacuumCleaner(this, accessory, device);
@@ -1620,7 +1620,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1620
1620
  existingAccessory.context.firmwareRevision = device.firmware;
1621
1621
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1622
1622
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1623
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1623
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1624
1624
  this.api.updatePlatformAccessories([existingAccessory]);
1625
1625
  // create the accessory handler for the restored accessory
1626
1626
  // this is imported from `platformAccessory.ts`
@@ -1643,7 +1643,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1643
1643
  accessory.context.deviceID = device.deviceId;
1644
1644
  accessory.context.firmwareRevision = device.firmware;
1645
1645
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1646
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1646
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1647
1647
  // create the accessory handler for the newly create accessory
1648
1648
  // this is imported from `platformAccessory.ts`
1649
1649
  new Camera(this, accessory, device);
@@ -1674,7 +1674,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1674
1674
  existingAccessory.context.firmwareRevision = device.firmware;
1675
1675
  existingAccessory.context.deviceType = `IR: ${device.remoteType}`;
1676
1676
  this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName} DeviceID: ${device.deviceId}`);
1677
- existingAccessory.context.connectionType = device.connectionType || 'OpenAPI';
1677
+ existingAccessory.context.connectionType = await this.connectionTypeExisting(device);
1678
1678
  this.api.updatePlatformAccessories([existingAccessory]);
1679
1679
  // create the accessory handler for the restored accessory
1680
1680
  // this is imported from `platformAccessory.ts`
@@ -1697,7 +1697,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1697
1697
  accessory.context.deviceID = device.deviceId;
1698
1698
  accessory.context.firmwareRevision = device.firmware;
1699
1699
  accessory.context.deviceType = `IR: ${device.remoteType}`;
1700
- accessory.context.connectionType = device.connectionType || 'OpenAPI';
1700
+ accessory.context.connectionType = await this.connectionTypeNew(device);
1701
1701
  // create the accessory handler for the newly create accessory
1702
1702
  // this is imported from `platformAccessory.ts`
1703
1703
  new Others(this, accessory, device);
@@ -1711,8 +1711,22 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1711
1711
  }
1712
1712
  }
1713
1713
 
1714
+ private connectionTypeNew(device: device & devicesConfig): any {
1715
+ let connectionType = '';
1716
+ if (!device.connectionType && this.config.credentials?.token && this.config.credentials.secret) {
1717
+ connectionType = 'OpenAPI';
1718
+ } else {
1719
+ connectionType = device.connectionType!;
1720
+ }
1721
+ return connectionType;
1722
+ }
1723
+
1724
+ private connectionTypeExisting(device: device & devicesConfig): any {
1725
+ return device.connectionType || 'OpenAPI';
1726
+ }
1727
+
1714
1728
  private registerDevice(device: device & devicesConfig) {
1715
- if (!device.hide_device && device.enableCloudService && device.connectionType === 'Both') {
1729
+ if (!device.hide_device && device.enableCloudService && device.connectionType === 'OpenAPI & BLE') {
1716
1730
  this.registeringDevice = true;
1717
1731
  this.debugLog(`Device: ${device.deviceName} Both OpenAPI and BLE Connections Enabled`);
1718
1732
  } else if (!device.hide_device && device.deviceId && device.configDeviceType && device.configDeviceName
@@ -1722,6 +1736,15 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
1722
1736
  } else if (!device.hide_device && device.enableCloudService && device.connectionType === 'OpenAPI') {
1723
1737
  this.registeringDevice = true;
1724
1738
  this.debugLog(`Device: ${device.deviceName} OpenAPI Connection Enabled`);
1739
+ } else if (!device.hide_device && device.enableCloudService && device.connectionType === 'Disable') {
1740
+ this.registeringDevice = true;
1741
+ this.debugLog(`Device: ${device.deviceName} Device connection Disabled, will continue to display in HomeKit`);
1742
+ } else if (!device.connectionType){
1743
+ this.registeringDevice = false;
1744
+ this.debugLog(`Device: ${device.deviceName} Connection Type not Set, will not display in HomeKit`);
1745
+ } else if (device.hide_device){
1746
+ this.registeringDevice = false;
1747
+ this.debugLog(`Device: ${device.deviceName} Device Set to Hidden, will not display in HomeKit`);
1725
1748
  } else {
1726
1749
  this.registeringDevice = false;
1727
1750
  this.debugLog(`Device: ${device.deviceName} OpenAPI and BLE Are Not Enabled`);