@switchbot/homebridge-switchbot 1.4.1-beta.1 → 1.4.1-beta.2

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 (103) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/config.schema.json +82 -10
  3. package/dist/devices/bots.d.ts +12 -2
  4. package/dist/devices/bots.d.ts.map +1 -1
  5. package/dist/devices/bots.js +140 -89
  6. package/dist/devices/bots.js.map +1 -1
  7. package/dist/devices/colorbulb.d.ts +12 -2
  8. package/dist/devices/colorbulb.d.ts.map +1 -1
  9. package/dist/devices/colorbulb.js +138 -84
  10. package/dist/devices/colorbulb.js.map +1 -1
  11. package/dist/devices/contact.d.ts +12 -2
  12. package/dist/devices/contact.d.ts.map +1 -1
  13. package/dist/devices/contact.js +101 -52
  14. package/dist/devices/contact.js.map +1 -1
  15. package/dist/devices/curtains.d.ts +13 -4
  16. package/dist/devices/curtains.d.ts.map +1 -1
  17. package/dist/devices/curtains.js +173 -124
  18. package/dist/devices/curtains.js.map +1 -1
  19. package/dist/devices/humidifiers.d.ts +12 -2
  20. package/dist/devices/humidifiers.d.ts.map +1 -1
  21. package/dist/devices/humidifiers.js +156 -108
  22. package/dist/devices/humidifiers.js.map +1 -1
  23. package/dist/devices/meters.d.ts +12 -2
  24. package/dist/devices/meters.d.ts.map +1 -1
  25. package/dist/devices/meters.js +98 -49
  26. package/dist/devices/meters.js.map +1 -1
  27. package/dist/devices/motion.d.ts +12 -2
  28. package/dist/devices/motion.d.ts.map +1 -1
  29. package/dist/devices/motion.js +86 -37
  30. package/dist/devices/motion.js.map +1 -1
  31. package/dist/devices/plugs.d.ts +12 -2
  32. package/dist/devices/plugs.d.ts.map +1 -1
  33. package/dist/devices/plugs.js +80 -31
  34. package/dist/devices/plugs.js.map +1 -1
  35. package/dist/irdevices/airconditioners.d.ts +10 -2
  36. package/dist/irdevices/airconditioners.d.ts.map +1 -1
  37. package/dist/irdevices/airconditioners.js +77 -37
  38. package/dist/irdevices/airconditioners.js.map +1 -1
  39. package/dist/irdevices/airpurifiers.d.ts +10 -2
  40. package/dist/irdevices/airpurifiers.d.ts.map +1 -1
  41. package/dist/irdevices/airpurifiers.js +65 -25
  42. package/dist/irdevices/airpurifiers.js.map +1 -1
  43. package/dist/irdevices/cameras.d.ts +10 -2
  44. package/dist/irdevices/cameras.d.ts.map +1 -1
  45. package/dist/irdevices/cameras.js +61 -21
  46. package/dist/irdevices/cameras.js.map +1 -1
  47. package/dist/irdevices/fans.d.ts +10 -2
  48. package/dist/irdevices/fans.d.ts.map +1 -1
  49. package/dist/irdevices/fans.js +71 -30
  50. package/dist/irdevices/fans.js.map +1 -1
  51. package/dist/irdevices/lights.d.ts +10 -2
  52. package/dist/irdevices/lights.d.ts.map +1 -1
  53. package/dist/irdevices/lights.js +62 -22
  54. package/dist/irdevices/lights.js.map +1 -1
  55. package/dist/irdevices/others.d.ts +10 -2
  56. package/dist/irdevices/others.d.ts.map +1 -1
  57. package/dist/irdevices/others.js +68 -28
  58. package/dist/irdevices/others.js.map +1 -1
  59. package/dist/irdevices/tvs.d.ts +10 -2
  60. package/dist/irdevices/tvs.d.ts.map +1 -1
  61. package/dist/irdevices/tvs.js +78 -38
  62. package/dist/irdevices/tvs.js.map +1 -1
  63. package/dist/irdevices/vacuumcleaners.d.ts +10 -2
  64. package/dist/irdevices/vacuumcleaners.d.ts.map +1 -1
  65. package/dist/irdevices/vacuumcleaners.js +61 -21
  66. package/dist/irdevices/vacuumcleaners.js.map +1 -1
  67. package/dist/irdevices/waterheaters.d.ts +10 -2
  68. package/dist/irdevices/waterheaters.d.ts.map +1 -1
  69. package/dist/irdevices/waterheaters.js +61 -21
  70. package/dist/irdevices/waterheaters.js.map +1 -1
  71. package/dist/platform.d.ts +9 -10
  72. package/dist/platform.d.ts.map +1 -1
  73. package/dist/platform.js +264 -285
  74. package/dist/platform.js.map +1 -1
  75. package/dist/settings.d.ts +4 -1
  76. package/dist/settings.d.ts.map +1 -1
  77. package/dist/settings.js.map +1 -1
  78. package/nodemon.json +1 -1
  79. package/package.json +1 -1
  80. package/src/devices/bots.ts +146 -89
  81. package/src/devices/colorbulb.ts +146 -86
  82. package/src/devices/contact.ts +107 -52
  83. package/src/devices/curtains.ts +182 -129
  84. package/src/devices/humidifiers.ts +162 -109
  85. package/src/devices/meters.ts +104 -49
  86. package/src/devices/motion.ts +91 -36
  87. package/src/devices/plugs.ts +84 -31
  88. package/src/irdevices/airconditioners.ts +81 -36
  89. package/src/irdevices/airpurifiers.ts +69 -24
  90. package/src/irdevices/cameras.ts +65 -20
  91. package/src/irdevices/fans.ts +75 -30
  92. package/src/irdevices/lights.ts +66 -21
  93. package/src/irdevices/others.ts +72 -27
  94. package/src/irdevices/tvs.ts +82 -37
  95. package/src/irdevices/vacuumcleaners.ts +65 -20
  96. package/src/irdevices/waterheaters.ts +65 -20
  97. package/src/platform.ts +267 -290
  98. package/src/settings.ts +4 -1
  99. package/dist/devices/indoorcam.d.ts +0 -64
  100. package/dist/devices/indoorcam.d.ts.map +0 -1
  101. package/dist/devices/indoorcam.js +0 -249
  102. package/dist/devices/indoorcam.js.map +0 -1
  103. package/src/devices/indoorcam.ts +0 -309
@@ -18,12 +18,6 @@ class Bot {
18
18
  this.platform = platform;
19
19
  this.accessory = accessory;
20
20
  this.device = device;
21
- // Config
22
- this.deviceDebug = this.platform.config.options?.debug === 'device' || this.platform.debugMode;
23
- this.debugDebug = this.platform.config.options?.debug === 'debug' || this.platform.debugMode;
24
- // Bot Config
25
- this.platform.device(`Bot: ${this.accessory.displayName} Config: (ble: ${device.ble}, offline: ${device.offline}, mode: ${device.bot?.mode},`
26
- + ` deviceType: ${device.bot?.deviceType})`);
27
21
  // default placeholders
28
22
  if (this.On === undefined) {
29
23
  this.On = false;
@@ -31,8 +25,13 @@ class Bot {
31
25
  else {
32
26
  this.On = this.accessory.context.On;
33
27
  }
28
+ this.refreshRate();
29
+ this.logs();
34
30
  this.BatteryLevel = 100;
35
31
  this.StatusLowBattery = 1;
32
+ // Bot Config
33
+ this.debugLog(`Bot: ${this.accessory.displayName} Config: (ble: ${device.ble}, offline: ${device.offline}, mode: ${device.bot?.mode},`
34
+ + ` deviceType: ${device.bot?.deviceType})`);
36
35
  // this is subject we use to track when we need to POST changes to the SwitchBot API
37
36
  this.doBotUpdate = new rxjs_1.Subject();
38
37
  this.botUpdateInProgress = false;
@@ -49,7 +48,7 @@ class Bot {
49
48
  if (device.bot?.deviceType === 'switch') {
50
49
  // If outletService still pressent, then remove first
51
50
  if (this.outletService) {
52
- this.platform.device(`Bot: ${accessory.displayName} Removing Leftover outletService first`);
51
+ this.debugLog(`Bot: ${accessory.displayName} Removing Leftover outletService first`);
53
52
  }
54
53
  this.outletService = this.accessory.getService(this.platform.Service.Outlet);
55
54
  accessory.removeService(this.outletService);
@@ -57,13 +56,15 @@ class Bot {
57
56
  (this.switchService =
58
57
  accessory.getService(this.platform.Service.Switch) ||
59
58
  accessory.addService(this.platform.Service.Switch)), `${accessory.displayName} Switch`;
60
- this.platform.log.info(`Bot: ${accessory.displayName} Displaying as Switch`);
59
+ if (this.deviceLogging !== 'none') {
60
+ this.infoLog(`Bot: ${accessory.displayName} Displaying as Switch`);
61
+ }
61
62
  this.switchService?.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName);
62
63
  }
63
64
  else {
64
65
  // If switchService still pressent, then remove first
65
66
  if (this.switchService) {
66
- this.platform.device(`Bot: ${accessory.displayName} Removing Leftover switchService first`);
67
+ this.debugLog(`Bot: ${accessory.displayName} Removing Leftover switchService first`);
67
68
  }
68
69
  this.switchService = this.accessory.getService(this.platform.Service.Switch);
69
70
  accessory.removeService(this.switchService);
@@ -71,7 +72,7 @@ class Bot {
71
72
  (this.outletService =
72
73
  accessory.getService(this.platform.Service.Outlet) ||
73
74
  accessory.addService(this.platform.Service.Outlet)), `${accessory.displayName} Outlet`;
74
- this.platform.log.info(`Bot: ${accessory.displayName} Displaying as Outlet`);
75
+ this.infoLog(`Bot: ${accessory.displayName} Displaying as Outlet`);
75
76
  this.outletService?.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName);
76
77
  }
77
78
  if (device.ble) {
@@ -91,7 +92,7 @@ class Bot {
91
92
  // Retrieve initial values and updateHomekit
92
93
  this.updateHomeKitCharacteristics();
93
94
  // Start an update interval
94
- (0, rxjs_1.interval)(this.platform.config.options.refreshRate * 1000)
95
+ (0, rxjs_1.interval)(this.deviceRefreshRate * 1000)
95
96
  .pipe((0, operators_1.skipWhile)(() => this.botUpdateInProgress))
96
97
  .subscribe(() => {
97
98
  this.refreshStatus();
@@ -107,19 +108,38 @@ class Bot {
107
108
  await this.pushChanges();
108
109
  }
109
110
  catch (e) {
110
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges`);
111
- if (this.deviceDebug) {
112
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges,`
111
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges`);
112
+ if (this.deviceLogging === 'debug') {
113
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges,`
113
114
  + ` Error Message: ${JSON.stringify(e.message)}`);
114
115
  }
115
- if (this.debugDebug) {
116
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges,`
116
+ if (this.platform.debugMode) {
117
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges,`
117
118
  + ` Error: ${JSON.stringify(e)}`);
118
119
  }
119
120
  }
120
121
  this.botUpdateInProgress = false;
121
122
  });
122
123
  }
124
+ refreshRate() {
125
+ if (this.device.refreshRate) {
126
+ this.deviceRefreshRate = this.accessory.context.refreshRate = this.device.refreshRate;
127
+ }
128
+ else if (this.platform.config.options.refreshRate) {
129
+ this.deviceRefreshRate = this.accessory.context.refreshRate = this.platform.config.options.refreshRate;
130
+ }
131
+ }
132
+ logs() {
133
+ if (this.device.logging) {
134
+ this.deviceLogging = this.accessory.context.logging = this.device.logging;
135
+ }
136
+ else if (this.platform.config.options?.logging) {
137
+ this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
138
+ }
139
+ else {
140
+ this.deviceLogging = this.accessory.context.logging = 'standard';
141
+ }
142
+ }
123
143
  /**
124
144
  * Parse the device status from the SwitchBot api
125
145
  */
@@ -132,14 +152,14 @@ class Bot {
132
152
  }
133
153
  }
134
154
  async BLEparseStatus() {
135
- this.platform.debug(`Bot: ${this.accessory.displayName} BLE parseStatus`);
155
+ this.debugLog(`Bot: ${this.accessory.displayName} BLE parseStatus`);
136
156
  // BLEmode (true if Switch Mode) | (false if Press Mode)
137
157
  if (this.mode) {
138
158
  this.On = Boolean(this.state);
139
- this.platform.device(`Bot: ${this.accessory.displayName} Switch Mode, mode: ${JSON.stringify(this.mode)}, On: ${JSON.stringify(this.On)}`);
159
+ this.debugLog(`Bot: ${this.accessory.displayName} Switch Mode, mode: ${JSON.stringify(this.mode)}, On: ${JSON.stringify(this.On)}`);
140
160
  }
141
161
  else {
142
- this.platform.device(`Bot: ${this.accessory.displayName} Press Mode, mode: ${JSON.stringify(this.mode)}, On: ${JSON.stringify(this.On)}`);
162
+ this.debugLog(`Bot: ${this.accessory.displayName} Press Mode, mode: ${JSON.stringify(this.mode)}, On: ${JSON.stringify(this.On)}`);
143
163
  }
144
164
  this.BatteryLevel = Number(this.battery);
145
165
  if (this.BatteryLevel < 10) {
@@ -151,11 +171,11 @@ class Bot {
151
171
  if (Number.isNaN(this.BatteryLevel)) {
152
172
  this.BatteryLevel = 100;
153
173
  }
154
- this.platform.debug(`Bot: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
174
+ this.debugLog(`Bot: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
155
175
  }
156
176
  async openAPIparseStatus() {
157
177
  if (this.platform.config.credentials?.openToken) {
158
- this.platform.debug(`Bot: ${this.accessory.displayName} OpenAPI parseStatus`);
178
+ this.debugLog(`Bot: ${this.accessory.displayName} OpenAPI parseStatus`);
159
179
  if (this.device.bot?.mode === 'press') {
160
180
  this.On = false;
161
181
  }
@@ -167,7 +187,7 @@ class Bot {
167
187
  this.On = false;
168
188
  }
169
189
  }
170
- this.platform.debug(`Bot ${this.accessory.displayName} On: ${this.On}`);
190
+ this.debugLog(`Bot ${this.accessory.displayName} On: ${this.On}`);
171
191
  }
172
192
  }
173
193
  /**
@@ -184,11 +204,11 @@ class Bot {
184
204
  connectBLE() {
185
205
  const switchbot = new node_switchbot_1.default();
186
206
  this.device.bleMac = ((this.device.deviceId.match(/.{1,2}/g)).join(':')).toLowerCase();
187
- this.platform.device(`Bot: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
207
+ this.debugLog(`Bot: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
188
208
  return switchbot;
189
209
  }
190
210
  async BLERefreshStatus() {
191
- this.platform.debug(`Bot: ${this.accessory.displayName} BLE refreshStatus`);
211
+ this.debugLog(`Bot: ${this.accessory.displayName} BLE refreshStatus`);
192
212
  // eslint-disable-next-line @typescript-eslint/no-var-requires
193
213
  const switchbot = this.connectBLE();
194
214
  // Start to monitor advertisement packets
@@ -202,16 +222,16 @@ class Bot {
202
222
  this.mode = ad.serviceData.mode;
203
223
  this.state = ad.serviceData.state;
204
224
  this.battery = ad.serviceData.battery;
205
- this.platform.device(`Bot: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
206
- this.platform.device(`Bot: ${this.accessory.displayName}, model: ${ad.serviceData.model}, modelName: ${ad.serviceData.modelName},`
225
+ this.debugLog(`Bot: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
226
+ this.debugLog(`Bot: ${this.accessory.displayName}, model: ${ad.serviceData.model}, modelName: ${ad.serviceData.modelName},`
207
227
  + ` mode: ${ad.serviceData.mode}, state: ${ad.serviceData.state}, battery: ${ad.serviceData.battery}`);
208
228
  if (this.serviceData) {
209
229
  this.connected = true;
210
- this.platform.device(`Bot: ${this.accessory.displayName} connected: ${this.connected}`);
230
+ this.debugLog(`Bot: ${this.accessory.displayName} connected: ${this.connected}`);
211
231
  }
212
232
  else {
213
233
  this.connected = false;
214
- this.platform.device(`Bot: ${this.accessory.displayName} connected: ${this.connected}`);
234
+ this.debugLog(`Bot: ${this.accessory.displayName} connected: ${this.connected}`);
215
235
  }
216
236
  };
217
237
  // Wait 10 seconds
@@ -224,24 +244,24 @@ class Bot {
224
244
  this.updateHomeKitCharacteristics();
225
245
  }
226
246
  else {
227
- this.platform.log.error(`Bot: ${this.accessory.displayName} wasn't able to establish BLE Connection`);
247
+ this.errorLog(`Bot: ${this.accessory.displayName} wasn't able to establish BLE Connection`);
228
248
  if (this.platform.config.credentials?.openToken) {
229
- this.platform.log.warn(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
249
+ this.warnLog(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
230
250
  await this.openAPIRefreshStatus();
231
251
  }
232
252
  }
233
253
  }).catch(async (e) => {
234
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed refreshStatus with BLE Connection`);
235
- if (this.deviceDebug) {
236
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
254
+ this.errorLog(`Bot: ${this.accessory.displayName} failed refreshStatus with BLE Connection`);
255
+ if (this.deviceLogging === 'debug') {
256
+ this.errorLog(`Bot: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
237
257
  + ` Error Message: ${JSON.stringify(e.message)}`);
238
258
  }
239
- if (this.debugDebug) {
240
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
259
+ if (this.platform.debugMode) {
260
+ this.errorLog(`Bot: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
241
261
  + ` Error: ${JSON.stringify(e)}`);
242
262
  }
243
263
  if (this.platform.config.credentials?.openToken) {
244
- this.platform.log.warn(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
264
+ this.warnLog(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
245
265
  await this.openAPIRefreshStatus();
246
266
  }
247
267
  this.apiError();
@@ -249,10 +269,10 @@ class Bot {
249
269
  }
250
270
  async openAPIRefreshStatus() {
251
271
  if (this.platform.config.credentials?.openToken) {
252
- this.platform.debug(`Bot: ${this.accessory.displayName} OpenAPI refreshStatus`);
272
+ this.debugLog(`Bot: ${this.accessory.displayName} OpenAPI refreshStatus`);
253
273
  try {
254
274
  this.deviceStatus = (await this.platform.axios.get(`${settings_1.DeviceURL}/${this.device.deviceId}/status`)).data;
255
- this.platform.device(`Bot: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
275
+ this.debugLog(`Bot: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
256
276
  /*this.deviceStatus = {
257
277
  statusCode: 100,
258
278
  body: {
@@ -267,13 +287,13 @@ class Bot {
267
287
  this.updateHomeKitCharacteristics();
268
288
  }
269
289
  catch (e) {
270
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
271
- if (this.deviceDebug) {
272
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
290
+ this.errorLog(`Bot: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
291
+ if (this.deviceLogging === 'debug') {
292
+ this.errorLog(`Bot: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
273
293
  + ` Error Message: ${JSON.stringify(e.message)}`);
274
294
  }
275
- if (this.debugDebug) {
276
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
295
+ if (this.platform.debugMode) {
296
+ this.errorLog(`Bot: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
277
297
  + ` Error: ${JSON.stringify(e)}`);
278
298
  }
279
299
  this.apiError();
@@ -303,59 +323,59 @@ class Bot {
303
323
  }
304
324
  async BLEpushChanges() {
305
325
  if (this.On !== this.OnCached) {
306
- this.platform.debug(`Bot: ${this.accessory.displayName} BLE pushChanges`);
326
+ this.debugLog(`Bot: ${this.accessory.displayName} BLE pushChanges`);
307
327
  const switchbot = this.connectBLE();
308
328
  if (this.device.bot?.mode === 'press') {
309
- this.platform.device(`Bot: ${this.accessory.displayName} Press Mode: ${this.device.bot?.mode}`);
329
+ this.debugLog(`Bot: ${this.accessory.displayName} Press Mode: ${this.device.bot?.mode}`);
310
330
  switchbot.discover({ model: 'H', quick: true, id: this.device.bleMac })
311
331
  .then((device_list) => {
312
- this.platform.log.info(`Bot: ${this.accessory.displayName}, On: ${this.On}`);
332
+ this.infoLog(`Bot: ${this.accessory.displayName}, On: ${this.On}`);
313
333
  return device_list[0].press({ id: this.device.bleMac });
314
334
  }).then(() => {
315
- this.platform.device(`Bot: ${this.accessory.displayName} Done.`);
335
+ this.debugLog(`Bot: ${this.accessory.displayName} Done.`);
316
336
  }).catch(async (e) => {
317
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection`);
318
- if (this.deviceDebug) {
319
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
337
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection`);
338
+ if (this.deviceLogging === 'debug') {
339
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
320
340
  + ` Error Message: ${JSON.stringify(e.message)}`);
321
341
  }
322
- if (this.debugDebug) {
323
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
342
+ if (this.platform.debugMode) {
343
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
324
344
  + ` Error: ${JSON.stringify(e)}`);
325
345
  }
326
346
  if (this.platform.config.credentials?.openToken) {
327
- this.platform.log.warn(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
347
+ this.warnLog(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
328
348
  await this.openAPIpushChanges();
329
349
  }
330
350
  this.apiError();
331
351
  });
332
352
  }
333
353
  else if (this.device.bot?.mode === 'switch') {
334
- this.platform.device(`Bot: ${this.accessory.displayName} Press Mode: ${this.device.bot?.mode}`);
354
+ this.debugLog(`Bot: ${this.accessory.displayName} Press Mode: ${this.device.bot?.mode}`);
335
355
  switchbot.discover({ model: 'H', quick: true, id: this.device.bleMac }).then((device_list) => {
336
- this.platform.log.info(`Bot: ${this.accessory.displayName} On: ${this.On}`);
356
+ this.infoLog(`Bot: ${this.accessory.displayName} On: ${this.On}`);
337
357
  return this.turnOnOff(device_list);
338
358
  }).then(() => {
339
- this.platform.device(`Bot: ${this.accessory.displayName} Done.`);
359
+ this.debugLog(`Bot: ${this.accessory.displayName} Done.`);
340
360
  }).catch(async (e) => {
341
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection`);
342
- if (this.deviceDebug) {
343
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
361
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection`);
362
+ if (this.deviceLogging === 'debug') {
363
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
344
364
  + ` Error Message: ${JSON.stringify(e.message)}`);
345
365
  }
346
- if (this.debugDebug) {
347
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
366
+ if (this.platform.debugMode) {
367
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with BLE Connection,`
348
368
  + ` Error: ${JSON.stringify(e)}`);
349
369
  }
350
370
  if (this.platform.config.credentials?.openToken) {
351
- this.platform.log.warn(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
371
+ this.warnLog(`Bot: ${this.accessory.displayName} Using OpenAPI Connection`);
352
372
  await this.openAPIpushChanges();
353
373
  }
354
374
  this.apiError();
355
375
  });
356
376
  }
357
377
  else {
358
- this.platform.log.error(`Bot: ${this.accessory.displayName} Mode Not Set, mode: ${this.device.bot?.mode}`);
378
+ this.errorLog(`Bot: ${this.accessory.displayName} Mode Not Set, mode: ${this.device.bot?.mode}`);
359
379
  }
360
380
  }
361
381
  this.OnCached = this.On;
@@ -373,7 +393,7 @@ class Bot {
373
393
  if (this.platform.config.credentials?.openToken) {
374
394
  try {
375
395
  if (this.On !== this.OnCached) {
376
- this.platform.debug(`Bot: ${this.accessory.displayName} OpenAPI pushChanges`);
396
+ this.debugLog(`Bot: ${this.accessory.displayName} OpenAPI pushChanges`);
377
397
  const payload = {
378
398
  commandType: 'command',
379
399
  parameter: 'default',
@@ -381,39 +401,39 @@ class Bot {
381
401
  if (this.device.bot?.mode === 'switch' && this.On) {
382
402
  payload.command = 'turnOn';
383
403
  this.On = true;
384
- this.platform.debug(`Bot: ${this.accessory.displayName} Switch Mode, Turning ${this.On}`);
404
+ this.debugLog(`Bot: ${this.accessory.displayName} Switch Mode, Turning ${this.On}`);
385
405
  }
386
406
  else if (this.device.bot?.mode === 'switch' && !this.On) {
387
407
  payload.command = 'turnOff';
388
408
  this.On = false;
389
- this.platform.debug(`Bot: ${this.accessory.displayName} Switch Mode, Turning ${this.On}`);
409
+ this.debugLog(`Bot: ${this.accessory.displayName} Switch Mode, Turning ${this.On}`);
390
410
  }
391
411
  else if (this.device.bot?.mode === 'press') {
392
412
  payload.command = 'press';
393
- this.platform.debug(`Bot: ${this.accessory.displayName} Press Mode`);
413
+ this.debugLog(`Bot: ${this.accessory.displayName} Press Mode`);
394
414
  this.On = false;
395
415
  }
396
416
  else {
397
417
  throw new Error(`Bot: ${this.accessory.displayName} Device Paramters not set for this Bot.`);
398
418
  }
399
- this.platform.log.info(`Bot: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
419
+ this.infoLog(`Bot: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
400
420
  + ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
401
421
  // Make the API request
402
422
  const push = (await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload));
403
- this.platform.debug(`Bot ${this.accessory.displayName} pushchanges: ${JSON.stringify(push.data)}`);
423
+ this.debugLog(`Bot ${this.accessory.displayName} pushchanges: ${JSON.stringify(push.data)}`);
404
424
  this.statusCode(push);
405
425
  this.OnCached = this.On;
406
426
  this.accessory.context.On = this.OnCached;
407
427
  }
408
428
  }
409
429
  catch (e) {
410
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
411
- if (this.deviceDebug) {
412
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
430
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
431
+ if (this.deviceLogging === 'debug') {
432
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
413
433
  + ` Error Message: ${JSON.stringify(e.message)}`);
414
434
  }
415
- if (this.debugDebug) {
416
- this.platform.log.error(`Bot: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
435
+ if (this.platform.debugMode) {
436
+ this.errorLog(`Bot: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
417
437
  + ` Error: ${JSON.stringify(e)}`);
418
438
  }
419
439
  this.apiError();
@@ -425,7 +445,7 @@ class Bot {
425
445
  */
426
446
  updateHomeKitCharacteristics() {
427
447
  if (this.On === undefined) {
428
- this.platform.debug(`Bot: ${this.accessory.displayName} On: ${this.On}`);
448
+ this.debugLog(`Bot: ${this.accessory.displayName} On: ${this.On}`);
429
449
  }
430
450
  else {
431
451
  if (this.device.bot?.deviceType === 'switch') {
@@ -434,22 +454,22 @@ class Bot {
434
454
  else {
435
455
  this.outletService?.updateCharacteristic(this.platform.Characteristic.On, this.On);
436
456
  }
437
- this.platform.device(`Bot: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
457
+ this.debugLog(`Bot: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
438
458
  }
439
459
  if (this.device.ble) {
440
460
  if (this.BatteryLevel === undefined) {
441
- this.platform.debug(`Bot: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
461
+ this.debugLog(`Bot: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
442
462
  }
443
463
  else {
444
464
  this.batteryService?.updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.BatteryLevel);
445
- this.platform.device(`Bot: ${this.accessory.displayName} updateCharacteristic BatteryLevel: ${this.BatteryLevel}`);
465
+ this.debugLog(`Bot: ${this.accessory.displayName} updateCharacteristic BatteryLevel: ${this.BatteryLevel}`);
446
466
  }
447
467
  if (this.StatusLowBattery === undefined) {
448
- this.platform.debug(`Bot: ${this.accessory.displayName} StatusLowBattery: ${this.StatusLowBattery}`);
468
+ this.debugLog(`Bot: ${this.accessory.displayName} StatusLowBattery: ${this.StatusLowBattery}`);
449
469
  }
450
470
  else {
451
471
  this.batteryService?.updateCharacteristic(this.platform.Characteristic.StatusLowBattery, this.StatusLowBattery);
452
- this.platform.device(`Bot: ${this.accessory.displayName} updateCharacteristic StatusLowBattery: ${this.StatusLowBattery}`);
472
+ this.debugLog(`Bot: ${this.accessory.displayName} updateCharacteristic StatusLowBattery: ${this.StatusLowBattery}`);
453
473
  }
454
474
  }
455
475
  }
@@ -459,31 +479,31 @@ class Bot {
459
479
  statusCode(push) {
460
480
  switch (push.data.statusCode) {
461
481
  case 151:
462
- this.platform.log.error(`Bot: ${this.accessory.displayName} Command not supported by this device type.`);
482
+ this.errorLog(`Bot: ${this.accessory.displayName} Command not supported by this device type.`);
463
483
  break;
464
484
  case 152:
465
- this.platform.log.error(`Bot: ${this.accessory.displayName} Device not found.`);
485
+ this.errorLog(`Bot: ${this.accessory.displayName} Device not found.`);
466
486
  break;
467
487
  case 160:
468
- this.platform.log.error(`Bot: ${this.accessory.displayName} Command is not supported.`);
488
+ this.errorLog(`Bot: ${this.accessory.displayName} Command is not supported.`);
469
489
  break;
470
490
  case 161:
471
- this.platform.log.error(`Bot: ${this.accessory.displayName} Device is offline.`);
491
+ this.errorLog(`Bot: ${this.accessory.displayName} Device is offline.`);
472
492
  this.offlineOff();
473
493
  break;
474
494
  case 171:
475
- this.platform.log.error(`Bot: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
495
+ this.errorLog(`Bot: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
476
496
  this.offlineOff();
477
497
  break;
478
498
  case 190:
479
- this.platform.log.error(`Bot: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,`
499
+ this.errorLog(`Bot: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,`
480
500
  + ` Or command: ${JSON.stringify(push.data)} format is invalid`);
481
501
  break;
482
502
  case 100:
483
- this.platform.debug(`Bot: ${this.accessory.displayName} Command successfully sent.`);
503
+ this.debugLog(`Bot: ${this.accessory.displayName} Command successfully sent.`);
484
504
  break;
485
505
  default:
486
- this.platform.debug(`Bot: ${this.accessory.displayName} Unknown statusCode.`);
506
+ this.debugLog(`Bot: ${this.accessory.displayName} Unknown statusCode.`);
487
507
  }
488
508
  }
489
509
  offlineOff() {
@@ -501,10 +521,41 @@ class Bot {
501
521
  * Handle requests to set the "On" characteristic
502
522
  */
503
523
  handleOnSet(value) {
504
- this.platform.debug(`Bot: ${this.accessory.displayName} On: ${value}`);
524
+ this.debugLog(`Bot: ${this.accessory.displayName} On: ${value}`);
505
525
  this.On = value;
506
526
  this.doBotUpdate.next();
507
527
  }
528
+ /**
529
+ * Logging for Device
530
+ */
531
+ infoLog(...log) {
532
+ if (this.enablingDeviceLogging()) {
533
+ this.platform.log.info(String(...log));
534
+ }
535
+ }
536
+ warnLog(...log) {
537
+ if (this.enablingDeviceLogging()) {
538
+ this.platform.log.warn(String(...log));
539
+ }
540
+ }
541
+ errorLog(...log) {
542
+ if (this.enablingDeviceLogging()) {
543
+ this.platform.log.error(String(...log));
544
+ }
545
+ }
546
+ debugLog(...log) {
547
+ if (this.enablingDeviceLogging()) {
548
+ if (this.deviceLogging === 'debug') {
549
+ this.platform.log.info('[DEBUG]', String(...log));
550
+ }
551
+ else {
552
+ this.platform.log.debug(String(...log));
553
+ }
554
+ }
555
+ }
556
+ enablingDeviceLogging() {
557
+ return this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
558
+ }
508
559
  }
509
560
  exports.Bot = Bot;
510
561
  //# sourceMappingURL=bots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bots.js","sourceRoot":"","sources":["../../src/devices/bots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bots.js","sourceRoot":"","sources":["../../src/devices/bots.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,8 @@ export declare class ColorBulb {
25
25
  deviceStatus: deviceStatusResponse;
26
26
  switchbot: switchbot;
27
27
  set_minStep?: number;
28
- private readonly deviceDebug;
29
- private readonly debugDebug;
28
+ deviceLogging: string;
29
+ deviceRefreshRate: number;
30
30
  AdaptiveLightingController: ControllerConstructor | Controller<ControllerServiceMap>;
31
31
  minKelvin: number;
32
32
  maxKelvin: number;
@@ -34,6 +34,8 @@ export declare class ColorBulb {
34
34
  doColorBulbUpdate: Subject<void>;
35
35
  cacheKelvin: number;
36
36
  constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
37
+ refreshRate(): void;
38
+ logs(): void;
37
39
  private minStep;
38
40
  parseStatus(): void;
39
41
  refreshStatus(): Promise<void>;
@@ -75,5 +77,13 @@ export declare class ColorBulb {
75
77
  * Handle requests to set the value of the "Saturation" characteristic
76
78
  */
77
79
  SaturationSet(value: CharacteristicValue): void;
80
+ /**
81
+ * Logging for Device
82
+ */
83
+ infoLog(...log: any[]): void;
84
+ warnLog(...log: any[]): void;
85
+ errorLog(...log: any[]): void;
86
+ debugLog(...log: any[]): void;
87
+ enablingDeviceLogging(): boolean;
78
88
  }
79
89
  //# sourceMappingURL=colorbulb.d.ts.map