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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/config.schema.json +49 -36
  3. package/dist/devices/bots.d.ts +7 -5
  4. package/dist/devices/bots.d.ts.map +1 -1
  5. package/dist/devices/bots.js +72 -66
  6. package/dist/devices/bots.js.map +1 -1
  7. package/dist/devices/colorbulb.d.ts +9 -4
  8. package/dist/devices/colorbulb.d.ts.map +1 -1
  9. package/dist/devices/colorbulb.js +50 -37
  10. package/dist/devices/colorbulb.js.map +1 -1
  11. package/dist/devices/contact.d.ts +9 -10
  12. package/dist/devices/contact.d.ts.map +1 -1
  13. package/dist/devices/contact.js +105 -137
  14. package/dist/devices/contact.js.map +1 -1
  15. package/dist/devices/curtains.d.ts +11 -4
  16. package/dist/devices/curtains.d.ts.map +1 -1
  17. package/dist/devices/curtains.js +70 -44
  18. package/dist/devices/curtains.js.map +1 -1
  19. package/dist/devices/humidifiers.d.ts +8 -2
  20. package/dist/devices/humidifiers.d.ts.map +1 -1
  21. package/dist/devices/humidifiers.js +42 -36
  22. package/dist/devices/humidifiers.js.map +1 -1
  23. package/dist/devices/meters.d.ts +17 -15
  24. package/dist/devices/meters.d.ts.map +1 -1
  25. package/dist/devices/meters.js +99 -133
  26. package/dist/devices/meters.js.map +1 -1
  27. package/dist/devices/motion.d.ts +8 -9
  28. package/dist/devices/motion.d.ts.map +1 -1
  29. package/dist/devices/motion.js +97 -120
  30. package/dist/devices/motion.js.map +1 -1
  31. package/dist/devices/plugs.d.ts +6 -4
  32. package/dist/devices/plugs.d.ts.map +1 -1
  33. package/dist/devices/plugs.js +44 -31
  34. package/dist/devices/plugs.js.map +1 -1
  35. package/dist/irdevices/airconditioners.d.ts +2 -1
  36. package/dist/irdevices/airconditioners.d.ts.map +1 -1
  37. package/dist/irdevices/airconditioners.js +19 -12
  38. package/dist/irdevices/airconditioners.js.map +1 -1
  39. package/dist/irdevices/airpurifiers.d.ts +4 -3
  40. package/dist/irdevices/airpurifiers.d.ts.map +1 -1
  41. package/dist/irdevices/airpurifiers.js +23 -16
  42. package/dist/irdevices/airpurifiers.js.map +1 -1
  43. package/dist/irdevices/cameras.d.ts +2 -1
  44. package/dist/irdevices/cameras.d.ts.map +1 -1
  45. package/dist/irdevices/cameras.js +19 -12
  46. package/dist/irdevices/cameras.js.map +1 -1
  47. package/dist/irdevices/fans.d.ts +2 -1
  48. package/dist/irdevices/fans.d.ts.map +1 -1
  49. package/dist/irdevices/fans.js +19 -12
  50. package/dist/irdevices/fans.js.map +1 -1
  51. package/dist/irdevices/lights.d.ts +2 -1
  52. package/dist/irdevices/lights.d.ts.map +1 -1
  53. package/dist/irdevices/lights.js +19 -12
  54. package/dist/irdevices/lights.js.map +1 -1
  55. package/dist/irdevices/others.d.ts +3 -2
  56. package/dist/irdevices/others.d.ts.map +1 -1
  57. package/dist/irdevices/others.js +23 -16
  58. package/dist/irdevices/others.js.map +1 -1
  59. package/dist/irdevices/tvs.d.ts +2 -1
  60. package/dist/irdevices/tvs.d.ts.map +1 -1
  61. package/dist/irdevices/tvs.js +19 -12
  62. package/dist/irdevices/tvs.js.map +1 -1
  63. package/dist/irdevices/vacuumcleaners.d.ts +2 -1
  64. package/dist/irdevices/vacuumcleaners.d.ts.map +1 -1
  65. package/dist/irdevices/vacuumcleaners.js +19 -12
  66. package/dist/irdevices/vacuumcleaners.js.map +1 -1
  67. package/dist/irdevices/waterheaters.d.ts +2 -1
  68. package/dist/irdevices/waterheaters.d.ts.map +1 -1
  69. package/dist/irdevices/waterheaters.js +19 -12
  70. package/dist/irdevices/waterheaters.js.map +1 -1
  71. package/dist/platform.d.ts +2 -1
  72. package/dist/platform.d.ts.map +1 -1
  73. package/dist/platform.js +14 -1
  74. package/dist/platform.js.map +1 -1
  75. package/dist/settings.d.ts +7 -1
  76. package/dist/settings.d.ts.map +1 -1
  77. package/dist/settings.js.map +1 -1
  78. package/package.json +5 -5
  79. package/src/devices/bots.ts +75 -70
  80. package/src/devices/colorbulb.ts +56 -40
  81. package/src/devices/contact.ts +108 -138
  82. package/src/devices/curtains.ts +79 -48
  83. package/src/devices/humidifiers.ts +50 -37
  84. package/src/devices/meters.ts +115 -143
  85. package/src/devices/motion.ts +102 -121
  86. package/src/devices/plugs.ts +47 -32
  87. package/src/irdevices/airconditioners.ts +20 -12
  88. package/src/irdevices/airpurifiers.ts +24 -16
  89. package/src/irdevices/cameras.ts +20 -12
  90. package/src/irdevices/fans.ts +20 -12
  91. package/src/irdevices/lights.ts +20 -12
  92. package/src/irdevices/others.ts +24 -16
  93. package/src/irdevices/tvs.ts +20 -12
  94. package/src/irdevices/vacuumcleaners.ts +20 -12
  95. package/src/irdevices/waterheaters.ts +20 -12
  96. package/src/platform.ts +14 -1
  97. package/src/settings.ts +7 -1
@@ -25,7 +25,8 @@ export class Camera {
25
25
  public device: irdevice & irDevicesConfig,
26
26
  ) {
27
27
  // default placeholders
28
- this.logs();
28
+ this.logs(device);
29
+ this.config(device);
29
30
  if (this.On === undefined) {
30
31
  this.On = false;
31
32
  } else {
@@ -57,22 +58,29 @@ export class Camera {
57
58
  this.service.getCharacteristic(this.platform.Characteristic.On).onSet(this.OnSet.bind(this));
58
59
  }
59
60
 
60
- logs() {
61
+ config(device: irdevice & irDevicesConfig) {
62
+ const config: any = device.ircam;
63
+ if (device.logging !== undefined) {
64
+ config['logging'] = device.logging;
65
+ }
66
+ if (config !== undefined) {
67
+ this.warnLog(`Camera: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
68
+ }
69
+ }
70
+
71
+ logs(device: irdevice & irDevicesConfig) {
61
72
  if (this.platform.debugMode) {
62
- this.deviceLogging = this.accessory.context.logging = 'debug';
63
- this.warnLog(`Camera: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
64
- } else if (this.device.logging) {
65
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
66
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
67
- this.warnLog(`Camera: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
68
- }
73
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
74
+ this.debugLog(`Camera: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
75
+ } else if (device.logging) {
76
+ this.deviceLogging = this.accessory.context.logging = device.logging;
77
+ this.debugLog(`Camera: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
69
78
  } else if (this.platform.config.options?.logging) {
70
79
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
71
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
72
- this.warnLog(`Camera: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
73
- }
80
+ this.debugLog(`Camera: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
74
81
  } else {
75
82
  this.deviceLogging = this.accessory.context.logging = 'standard';
83
+ this.debugLog(`Camera: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
76
84
  }
77
85
  }
78
86
 
@@ -35,7 +35,8 @@ export class Fan {
35
35
  public device: irdevice & irDevicesConfig,
36
36
  ) {
37
37
  // default placeholders
38
- this.logs();
38
+ this.logs(device);
39
+ this.config(device);
39
40
  if (this.Active === undefined) {
40
41
  this.Active = this.platform.Characteristic.Active.INACTIVE;
41
42
  } else {
@@ -116,22 +117,29 @@ export class Fan {
116
117
  }
117
118
  }
118
119
 
119
- logs() {
120
+ config(device: irdevice & irDevicesConfig) {
121
+ const config: any = device.irfan;
122
+ if (device.logging !== undefined) {
123
+ config['logging'] = device.logging;
124
+ }
125
+ if (config !== undefined) {
126
+ this.warnLog(`Fan: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
127
+ }
128
+ }
129
+
130
+ logs(device: irdevice & irDevicesConfig) {
120
131
  if (this.platform.debugMode) {
121
- this.deviceLogging = this.accessory.context.logging = 'debug';
122
- this.warnLog(`Fan: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
123
- } else if (this.device.logging) {
124
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
125
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
126
- this.warnLog(`Fan: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
127
- }
132
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
133
+ this.debugLog(`Fan: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
134
+ } else if (device.logging) {
135
+ this.deviceLogging = this.accessory.context.logging = device.logging;
136
+ this.debugLog(`Fan: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
128
137
  } else if (this.platform.config.options?.logging) {
129
138
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
130
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
131
- this.warnLog(`Fan: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
132
- }
139
+ this.debugLog(`Fan: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
133
140
  } else {
134
141
  this.deviceLogging = this.accessory.context.logging = 'standard';
142
+ this.debugLog(`Fan: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
135
143
  }
136
144
  }
137
145
 
@@ -25,7 +25,8 @@ export class Light {
25
25
  public device: irdevice & irDevicesConfig,
26
26
  ) {
27
27
  // default placeholders
28
- this.logs();
28
+ this.logs(device);
29
+ this.config(device);
29
30
  if (this.On === undefined) {
30
31
  this.On = false;
31
32
  } else {
@@ -72,22 +73,29 @@ export class Light {
72
73
  });*/
73
74
  }
74
75
 
75
- logs() {
76
+ config(device: irdevice & irDevicesConfig) {
77
+ const config: any = device.irlight;
78
+ if (device.logging !== undefined) {
79
+ config['logging'] = device.logging;
80
+ }
81
+ if (config !== undefined) {
82
+ this.warnLog(`Light: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
83
+ }
84
+ }
85
+
86
+ logs(device: irdevice & irDevicesConfig) {
76
87
  if (this.platform.debugMode) {
77
- this.deviceLogging = this.accessory.context.logging = 'debug';
78
- this.warnLog(`Light: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
79
- } else if (this.device.logging) {
80
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
81
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
82
- this.warnLog(`Light: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
83
- }
88
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
89
+ this.debugLog(`Light: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
90
+ } else if (device.logging) {
91
+ this.deviceLogging = this.accessory.context.logging = device.logging;
92
+ this.debugLog(`Light: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
84
93
  } else if (this.platform.config.options?.logging) {
85
94
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
86
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
87
- this.warnLog(`Light: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
88
- }
95
+ this.debugLog(`Light: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
89
96
  } else {
90
97
  this.deviceLogging = this.accessory.context.logging = 'standard';
98
+ this.debugLog(`Light: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
91
99
  }
92
100
  }
93
101
 
@@ -26,8 +26,9 @@ export class Others {
26
26
  public device: irdevice & irDevicesConfig,
27
27
  ) {
28
28
  // default placeholders
29
- this.logs();
30
- this.deviceType();
29
+ this.logs(device);
30
+ this.deviceType(device);
31
+ this.config(device);
31
32
  if (this.Active === undefined) {
32
33
  this.Active = this.platform.Characteristic.Active.INACTIVE;
33
34
  } else {
@@ -65,9 +66,9 @@ export class Others {
65
66
  }
66
67
  }
67
68
 
68
- deviceType() {
69
- if (this.device?.other?.deviceType) {
70
- this.otherDeviceType = this.accessory.context.deviceType = this.device?.other?.deviceType;
69
+ deviceType(device: irdevice & irDevicesConfig) {
70
+ if (device.other?.deviceType) {
71
+ this.otherDeviceType = this.accessory.context.deviceType = device.other.deviceType;
71
72
  if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
72
73
  this.warnLog(`Other: ${this.accessory.displayName} Using Device Type: ${this.otherDeviceType}`);
73
74
  }
@@ -76,22 +77,29 @@ export class Others {
76
77
  }
77
78
  }
78
79
 
79
- logs() {
80
+ config(device: irdevice & irDevicesConfig) {
81
+ const config: any = device.other;
82
+ if (device.logging !== undefined) {
83
+ config['logging'] = device.logging;
84
+ }
85
+ if (config !== undefined) {
86
+ this.warnLog(`Other: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
87
+ }
88
+ }
89
+
90
+ logs(device: irdevice & irDevicesConfig) {
80
91
  if (this.platform.debugMode) {
81
- this.deviceLogging = this.accessory.context.logging = 'debug';
82
- this.warnLog(`Other: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
83
- } else if (this.device.logging) {
84
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
85
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
86
- this.warnLog(`Other: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
87
- }
92
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
93
+ this.debugLog(`Other: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
94
+ } else if (device.logging) {
95
+ this.deviceLogging = this.accessory.context.logging = device.logging;
96
+ this.debugLog(`Other: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
88
97
  } else if (this.platform.config.options?.logging) {
89
98
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
90
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
91
- this.warnLog(`Other: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
92
- }
99
+ this.debugLog(`Other: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
93
100
  } else {
94
101
  this.deviceLogging = this.accessory.context.logging = 'standard';
102
+ this.debugLog(`Other: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
95
103
  }
96
104
  }
97
105
 
@@ -30,7 +30,8 @@ export class TV {
30
30
  public device: irdevice & irDevicesConfig,
31
31
  ) {
32
32
  // default placeholders
33
- this.logs();
33
+ this.logs(device);
34
+ this.config(device);
34
35
  if (this.Active === undefined) {
35
36
  this.Active = this.platform.Characteristic.Active.INACTIVE;
36
37
  } else {
@@ -128,22 +129,29 @@ export class TV {
128
129
  .onSet(this.VolumeSelectorSet.bind(this));
129
130
  }
130
131
 
131
- logs() {
132
+ config(device: irdevice & irDevicesConfig) {
133
+ const config: any = device.irtv;
134
+ if (device.logging !== undefined) {
135
+ config['logging'] = device.logging;
136
+ }
137
+ if (config !== undefined) {
138
+ this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
139
+ }
140
+ }
141
+
142
+ logs(device: irdevice & irDevicesConfig) {
132
143
  if (this.platform.debugMode) {
133
- this.deviceLogging = this.accessory.context.logging = 'debug';
134
- this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
135
- } else if (this.device.logging) {
136
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
137
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
138
- this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
139
- }
144
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
145
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
146
+ } else if (device.logging) {
147
+ this.deviceLogging = this.accessory.context.logging = device.logging;
148
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
140
149
  } else if (this.platform.config.options?.logging) {
141
150
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
142
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
143
- this.warnLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
144
- }
151
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
145
152
  } else {
146
153
  this.deviceLogging = this.accessory.context.logging = 'standard';
154
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
147
155
  }
148
156
  }
149
157
 
@@ -25,7 +25,8 @@ export class VacuumCleaner {
25
25
  public device: irdevice & irDevicesConfig,
26
26
  ) {
27
27
  // default placeholders
28
- this.logs();
28
+ this.logs(device);
29
+ this.config(device);
29
30
  if (this.On === undefined) {
30
31
  this.On = false;
31
32
  } else {
@@ -57,22 +58,29 @@ export class VacuumCleaner {
57
58
  this.service.getCharacteristic(this.platform.Characteristic.On).onSet(this.OnSet.bind(this));
58
59
  }
59
60
 
60
- logs() {
61
+ config(device: irdevice & irDevicesConfig) {
62
+ const config: any = device.irvc;
63
+ if (device.logging !== undefined) {
64
+ config['logging'] = device.logging;
65
+ }
66
+ if (config !== undefined) {
67
+ this.warnLog(`Vacuum Cleaner: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
68
+ }
69
+ }
70
+
71
+ logs(device: irdevice & irDevicesConfig) {
61
72
  if (this.platform.debugMode) {
62
- this.deviceLogging = this.accessory.context.logging = 'debug';
63
- this.warnLog(`Vacuum Cleaner: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
64
- } else if (this.device.logging) {
65
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
66
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
67
- this.warnLog(`Vacuum Cleaner: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
68
- }
73
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
74
+ this.debugLog(`Vacuum Cleaner: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
75
+ } else if (device.logging) {
76
+ this.deviceLogging = this.accessory.context.logging = device.logging;
77
+ this.debugLog(`Vacuum Cleaner: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
69
78
  } else if (this.platform.config.options?.logging) {
70
79
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
71
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
72
- this.warnLog(`Vacuum Cleaner: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
73
- }
80
+ this.debugLog(`Vacuum Cleaner: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
74
81
  } else {
75
82
  this.deviceLogging = this.accessory.context.logging = 'standard';
83
+ this.debugLog(`Vacuum Cleaner: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
76
84
  }
77
85
  }
78
86
 
@@ -25,7 +25,8 @@ export class WaterHeater {
25
25
  public device: irdevice & irDevicesConfig,
26
26
  ) {
27
27
  // default placeholders
28
- this.logs();
28
+ this.logs(device);
29
+ this.config(device);
29
30
  if (this.Active === undefined) {
30
31
  this.Active = this.platform.Characteristic.Active.INACTIVE;
31
32
  } else {
@@ -66,22 +67,29 @@ export class WaterHeater {
66
67
  this.service.getCharacteristic(this.platform.Characteristic.Active).onSet(this.ActiveSet.bind(this));
67
68
  }
68
69
 
69
- logs() {
70
+ config(device: irdevice & irDevicesConfig) {
71
+ const config: any = device.irwh;
72
+ if (device.logging !== undefined) {
73
+ config['logging'] = device.logging;
74
+ }
75
+ if (config !== undefined) {
76
+ this.warnLog(`Water Heater: ${this.accessory.displayName} Config: ${JSON.stringify(config)}`);
77
+ }
78
+ }
79
+
80
+ logs(device: irdevice & irDevicesConfig) {
70
81
  if (this.platform.debugMode) {
71
- this.deviceLogging = this.accessory.context.logging = 'debug';
72
- this.warnLog(`Water Heater: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
73
- } else if (this.device.logging) {
74
- this.deviceLogging = this.accessory.context.logging = this.device.logging;
75
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
76
- this.warnLog(`Water Heater: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
77
- }
82
+ this.deviceLogging = this.accessory.context.logging = 'debugMode';
83
+ this.debugLog(`Water Heater: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
84
+ } else if (device.logging) {
85
+ this.deviceLogging = this.accessory.context.logging = device.logging;
86
+ this.debugLog(`Water Heater: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
78
87
  } else if (this.platform.config.options?.logging) {
79
88
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
80
- if (this.deviceLogging === 'debug' || this.deviceLogging === 'standard') {
81
- this.warnLog(`Water Heater: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
82
- }
89
+ this.debugLog(`Water Heater: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
83
90
  } else {
84
91
  this.deviceLogging = this.accessory.context.logging = 'standard';
92
+ this.debugLog(`Water Heater: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
85
93
  }
86
94
  }
87
95
 
package/src/platform.ts CHANGED
@@ -192,8 +192,21 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
192
192
  }
193
193
  }
194
194
 
195
+ connectBLE() {
196
+ let Switchbot: new () => any;
197
+ let switchbot: any;
198
+ try {
199
+ Switchbot = require('node-switchbot');
200
+ switchbot = new Switchbot();
201
+ } catch (e) {
202
+ switchbot = false;
203
+ this.errorLog(`Was 'node-switchbot' found: ${switchbot}`);
204
+ }
205
+ return switchbot;
206
+ }
207
+
195
208
  /**
196
- * this method discovers the Locations
209
+ * this method discovers devices
197
210
  */
198
211
  async discoverDevices() {
199
212
  try {
package/src/settings.ts CHANGED
@@ -50,6 +50,7 @@ export interface devicesConfig extends device {
50
50
  contact?: contact;
51
51
  motion?: motion;
52
52
  colorbulb?: colorbulb;
53
+ plug?: Record<any, any>;
53
54
  ble?: string;
54
55
  scanDuration?: number;
55
56
  hide_device?: boolean;
@@ -77,7 +78,7 @@ export type curtain = {
77
78
  hide_lightsensor?: boolean;
78
79
  set_minLux?: number;
79
80
  set_maxLux?: number;
80
- refreshRate?: number;
81
+ updateRate?: number;
81
82
  set_max?: number;
82
83
  set_min?: number;
83
84
  set_minStep?: number;
@@ -107,6 +108,11 @@ export interface irDevicesConfig extends irdevice {
107
108
  logging?: string;
108
109
  irfan?: irfan;
109
110
  irair?: irair;
111
+ irpur?: Record<any, any>;
112
+ ircam?: Record<any, any>;
113
+ irlight?: Record<any, any>;
114
+ irvc?: Record<any, any>;
115
+ irwh?: Record<any, any>;
110
116
  irtv?: irtv;
111
117
  other?: other;
112
118
  hide_device?: boolean;