@switchbot/homebridge-switchbot 1.4.1-beta.1 → 1.4.1-beta.5
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.
- package/CHANGELOG.md +20 -0
- package/config.schema.json +83 -11
- package/dist/devices/bots.d.ts +13 -3
- package/dist/devices/bots.d.ts.map +1 -1
- package/dist/devices/bots.js +172 -106
- package/dist/devices/bots.js.map +1 -1
- package/dist/devices/colorbulb.d.ts +13 -3
- package/dist/devices/colorbulb.d.ts.map +1 -1
- package/dist/devices/colorbulb.js +166 -92
- package/dist/devices/colorbulb.js.map +1 -1
- package/dist/devices/contact.d.ts +13 -3
- package/dist/devices/contact.d.ts.map +1 -1
- package/dist/devices/contact.js +131 -56
- package/dist/devices/contact.js.map +1 -1
- package/dist/devices/curtains.d.ts +14 -5
- package/dist/devices/curtains.d.ts.map +1 -1
- package/dist/devices/curtains.js +208 -131
- package/dist/devices/curtains.js.map +1 -1
- package/dist/devices/humidifiers.d.ts +13 -3
- package/dist/devices/humidifiers.d.ts.map +1 -1
- package/dist/devices/humidifiers.js +191 -117
- package/dist/devices/humidifiers.js.map +1 -1
- package/dist/devices/meters.d.ts +13 -3
- package/dist/devices/meters.d.ts.map +1 -1
- package/dist/devices/meters.js +125 -53
- package/dist/devices/meters.js.map +1 -1
- package/dist/devices/motion.d.ts +13 -3
- package/dist/devices/motion.d.ts.map +1 -1
- package/dist/devices/motion.js +111 -41
- package/dist/devices/motion.js.map +1 -1
- package/dist/devices/plugs.d.ts +13 -3
- package/dist/devices/plugs.d.ts.map +1 -1
- package/dist/devices/plugs.js +100 -35
- package/dist/devices/plugs.js.map +1 -1
- package/dist/irdevices/airconditioners.d.ts +11 -6
- package/dist/irdevices/airconditioners.d.ts.map +1 -1
- package/dist/irdevices/airconditioners.js +91 -85
- package/dist/irdevices/airconditioners.js.map +1 -1
- package/dist/irdevices/airpurifiers.d.ts +11 -3
- package/dist/irdevices/airpurifiers.d.ts.map +1 -1
- package/dist/irdevices/airpurifiers.js +72 -28
- package/dist/irdevices/airpurifiers.js.map +1 -1
- package/dist/irdevices/cameras.d.ts +11 -3
- package/dist/irdevices/cameras.d.ts.map +1 -1
- package/dist/irdevices/cameras.js +65 -24
- package/dist/irdevices/cameras.js.map +1 -1
- package/dist/irdevices/fans.d.ts +11 -3
- package/dist/irdevices/fans.d.ts.map +1 -1
- package/dist/irdevices/fans.js +77 -33
- package/dist/irdevices/fans.js.map +1 -1
- package/dist/irdevices/lights.d.ts +11 -3
- package/dist/irdevices/lights.d.ts.map +1 -1
- package/dist/irdevices/lights.js +66 -25
- package/dist/irdevices/lights.js.map +1 -1
- package/dist/irdevices/others.d.ts +11 -3
- package/dist/irdevices/others.d.ts.map +1 -1
- package/dist/irdevices/others.js +72 -31
- package/dist/irdevices/others.js.map +1 -1
- package/dist/irdevices/tvs.d.ts +11 -3
- package/dist/irdevices/tvs.d.ts.map +1 -1
- package/dist/irdevices/tvs.js +83 -41
- package/dist/irdevices/tvs.js.map +1 -1
- package/dist/irdevices/vacuumcleaners.d.ts +11 -3
- package/dist/irdevices/vacuumcleaners.d.ts.map +1 -1
- package/dist/irdevices/vacuumcleaners.js +65 -24
- package/dist/irdevices/vacuumcleaners.js.map +1 -1
- package/dist/irdevices/waterheaters.d.ts +11 -3
- package/dist/irdevices/waterheaters.d.ts.map +1 -1
- package/dist/irdevices/waterheaters.js +65 -24
- package/dist/irdevices/waterheaters.js.map +1 -1
- package/dist/platform.d.ts +9 -10
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +264 -285
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +4 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/nodemon.json +1 -1
- package/package.json +10 -6
- package/src/devices/bots.ts +178 -107
- package/src/devices/colorbulb.ts +175 -95
- package/src/devices/contact.ts +138 -57
- package/src/devices/curtains.ts +216 -135
- package/src/devices/humidifiers.ts +198 -119
- package/src/devices/meters.ts +132 -54
- package/src/devices/motion.ts +117 -41
- package/src/devices/plugs.ts +105 -36
- package/src/irdevices/airconditioners.ts +96 -89
- package/src/irdevices/airpurifiers.ts +77 -28
- package/src/irdevices/cameras.ts +70 -24
- package/src/irdevices/fans.ts +82 -34
- package/src/irdevices/lights.ts +71 -25
- package/src/irdevices/others.ts +76 -30
- package/src/irdevices/tvs.ts +88 -41
- package/src/irdevices/vacuumcleaners.ts +70 -24
- package/src/irdevices/waterheaters.ts +70 -24
- package/src/platform.ts +267 -290
- package/src/settings.ts +4 -1
- package/dist/devices/indoorcam.d.ts +0 -64
- package/dist/devices/indoorcam.d.ts.map +0 -1
- package/dist/devices/indoorcam.js +0 -249
- package/dist/devices/indoorcam.js.map +0 -1
- package/src/devices/indoorcam.ts +0 -309
package/src/devices/meters.ts
CHANGED
|
@@ -2,7 +2,7 @@ import Switchbot from 'node-switchbot';
|
|
|
2
2
|
import { interval, Subject } from 'rxjs';
|
|
3
3
|
import { skipWhile } from 'rxjs/operators';
|
|
4
4
|
import { SwitchBotPlatform } from '../platform';
|
|
5
|
-
import { Service, PlatformAccessory, Units, CharacteristicValue
|
|
5
|
+
import { Service, PlatformAccessory, Units, CharacteristicValue } from 'homebridge';
|
|
6
6
|
import { DeviceURL, device, devicesConfig, serviceData, ad, switchbot, deviceStatusResponse, temperature } from '../settings';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -40,8 +40,8 @@ export class Meter {
|
|
|
40
40
|
humidity!: serviceData['humidity'];
|
|
41
41
|
|
|
42
42
|
// Config
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
deviceLogging!: string;
|
|
44
|
+
deviceRefreshRate!: number;
|
|
45
45
|
|
|
46
46
|
// Updates
|
|
47
47
|
meterUpdateInProgress!: boolean;
|
|
@@ -52,11 +52,9 @@ export class Meter {
|
|
|
52
52
|
private accessory: PlatformAccessory,
|
|
53
53
|
public device: device & devicesConfig,
|
|
54
54
|
) {
|
|
55
|
-
// Meter Config
|
|
56
|
-
this.platform.device(`Meter: ${this.accessory.displayName} Config: (ble: ${device.ble}, hide_temperature: ${device.meter?.hide_temperature},`
|
|
57
|
-
+ ` hide_humidity: ${device.meter?.hide_humidity})`);
|
|
58
|
-
|
|
59
55
|
// default placeholders
|
|
56
|
+
this.refreshRate();
|
|
57
|
+
this.logs();
|
|
60
58
|
if (this.BatteryLevel === undefined) {
|
|
61
59
|
this.BatteryLevel = 100;
|
|
62
60
|
} else {
|
|
@@ -79,6 +77,10 @@ export class Meter {
|
|
|
79
77
|
this.CurrentTemperature = this.accessory.context.CurrentTemperature;
|
|
80
78
|
}
|
|
81
79
|
|
|
80
|
+
// Meter Config
|
|
81
|
+
this.debugLog(`Meter: ${this.accessory.displayName} Config: (ble: ${device.ble}, hide_temperature: ${device.meter?.hide_temperature},`
|
|
82
|
+
+ ` hide_humidity: ${device.meter?.hide_humidity})`);
|
|
83
|
+
|
|
82
84
|
// this is subject we use to track when we need to POST changes to the SwitchBot API
|
|
83
85
|
this.doMeterUpdate = new Subject();
|
|
84
86
|
this.meterUpdateInProgress = false;
|
|
@@ -115,11 +117,11 @@ export class Meter {
|
|
|
115
117
|
|
|
116
118
|
// Temperature Sensor Service
|
|
117
119
|
if (device.meter?.hide_temperature) {
|
|
118
|
-
this.
|
|
120
|
+
this.debugLog(`Meter: ${accessory.displayName} Removing Temperature Sensor Service`);
|
|
119
121
|
this.temperatureservice = this.accessory.getService(this.platform.Service.TemperatureSensor);
|
|
120
122
|
accessory.removeService(this.temperatureservice!);
|
|
121
123
|
} else if (!this.temperatureservice) {
|
|
122
|
-
this.
|
|
124
|
+
this.debugLog(`Meter: ${accessory.displayName} Add Temperature Sensor Service`);
|
|
123
125
|
(this.temperatureservice =
|
|
124
126
|
this.accessory.getService(this.platform.Service.TemperatureSensor) ||
|
|
125
127
|
this.accessory.addService(this.platform.Service.TemperatureSensor)), `${accessory.displayName} Temperature Sensor`;
|
|
@@ -139,16 +141,16 @@ export class Meter {
|
|
|
139
141
|
return this.CurrentTemperature;
|
|
140
142
|
});
|
|
141
143
|
} else {
|
|
142
|
-
this.
|
|
144
|
+
this.debugLog(`Meter: ${accessory.displayName} Temperature Sensor Service Not Added`);
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
// Humidity Sensor Service
|
|
146
148
|
if (device.meter?.hide_humidity) {
|
|
147
|
-
this.
|
|
149
|
+
this.debugLog(`Meter: ${accessory.displayName} Removing Humidity Sensor Service`);
|
|
148
150
|
this.humidityservice = this.accessory.getService(this.platform.Service.HumiditySensor);
|
|
149
151
|
accessory.removeService(this.humidityservice!);
|
|
150
152
|
} else if (!this.humidityservice) {
|
|
151
|
-
this.
|
|
153
|
+
this.debugLog(`Meter: ${accessory.displayName} Add Humidity Sensor Service`);
|
|
152
154
|
(this.humidityservice =
|
|
153
155
|
this.accessory.getService(this.platform.Service.HumiditySensor) ||
|
|
154
156
|
this.accessory.addService(this.platform.Service.HumiditySensor)), `${accessory.displayName} Humidity Sensor`;
|
|
@@ -164,20 +166,53 @@ export class Meter {
|
|
|
164
166
|
return this.CurrentRelativeHumidity;
|
|
165
167
|
});
|
|
166
168
|
} else {
|
|
167
|
-
this.
|
|
169
|
+
this.debugLog(`Meter: ${accessory.displayName} Humidity Sensor Service Not Added`);
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
// Retrieve initial values and updateHomekit
|
|
171
173
|
this.updateHomeKitCharacteristics();
|
|
172
174
|
|
|
173
175
|
// Start an update interval
|
|
174
|
-
interval(this.
|
|
176
|
+
interval(this.deviceRefreshRate * 1000)
|
|
175
177
|
.pipe(skipWhile(() => this.meterUpdateInProgress))
|
|
176
178
|
.subscribe(() => {
|
|
177
179
|
this.refreshStatus();
|
|
178
180
|
});
|
|
179
181
|
}
|
|
180
182
|
|
|
183
|
+
refreshRate() {
|
|
184
|
+
if (this.device.refreshRate) {
|
|
185
|
+
this.deviceRefreshRate = this.accessory.context.refreshRate = this.device.refreshRate;
|
|
186
|
+
if (this.platform.debugMode) {
|
|
187
|
+
this.warnLog(`Using Device Config refreshRate: ${this.deviceRefreshRate}`);
|
|
188
|
+
}
|
|
189
|
+
} else if (this.platform.config.options!.refreshRate) {
|
|
190
|
+
this.deviceRefreshRate = this.accessory.context.refreshRate = this.platform.config.options!.refreshRate;
|
|
191
|
+
if (this.platform.debugMode) {
|
|
192
|
+
this.warnLog(`Using Platform Config refreshRate: ${this.deviceRefreshRate}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
logs() {
|
|
198
|
+
if (this.device.logging) {
|
|
199
|
+
this.deviceLogging = this.accessory.context.logging = this.device.logging;
|
|
200
|
+
if (this.platform.debugMode) {
|
|
201
|
+
this.warnLog(`Using Device Config Logging: ${this.deviceLogging}`);
|
|
202
|
+
}
|
|
203
|
+
} else if (this.platform.config.options?.logging) {
|
|
204
|
+
this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
|
|
205
|
+
if (this.platform.debugMode) {
|
|
206
|
+
this.warnLog(`Using Platform Config Logging: ${this.deviceLogging}`);
|
|
207
|
+
}
|
|
208
|
+
} else {
|
|
209
|
+
this.deviceLogging = this.accessory.context.logging = 'standard';
|
|
210
|
+
if (this.platform.debugMode) {
|
|
211
|
+
this.warnLog('Using Device Standard Logging');
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
181
216
|
/**
|
|
182
217
|
* Parse the device status from the SwitchBot api
|
|
183
218
|
*/
|
|
@@ -190,7 +225,7 @@ export class Meter {
|
|
|
190
225
|
}
|
|
191
226
|
|
|
192
227
|
private async BLEparseStatus() {
|
|
193
|
-
this.
|
|
228
|
+
this.debugLog(`Meter: ${this.accessory.displayName} BLE parseStatus`);
|
|
194
229
|
|
|
195
230
|
// Battery
|
|
196
231
|
this.BatteryLevel = Number(this.battery);
|
|
@@ -199,25 +234,25 @@ export class Meter {
|
|
|
199
234
|
} else {
|
|
200
235
|
this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
|
|
201
236
|
}
|
|
202
|
-
this.
|
|
237
|
+
this.debugLog(`${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}, StatusLowBattery: ${this.StatusLowBattery}`);
|
|
203
238
|
|
|
204
239
|
if (!this.device.meter?.hide_humidity) {
|
|
205
240
|
// Humidity
|
|
206
241
|
this.CurrentRelativeHumidity = Number(this.humidity);
|
|
207
|
-
this.
|
|
242
|
+
this.debugLog(`Meter: ${this.accessory.displayName} Humidity: ${this.CurrentRelativeHumidity}%`);
|
|
208
243
|
}
|
|
209
244
|
|
|
210
245
|
// Current Temperature
|
|
211
246
|
if (!this.device.meter?.hide_temperature) {
|
|
212
247
|
this.temperature < 0 ? 0 : this.temperature > 100 ? 100 : this.temperature;
|
|
213
248
|
this.CurrentTemperature = this.temperature;
|
|
214
|
-
this.
|
|
249
|
+
this.debugLog(`Meter: ${this.accessory.displayName} Temperature: ${this.CurrentTemperature}°c`);
|
|
215
250
|
}
|
|
216
251
|
}
|
|
217
252
|
|
|
218
253
|
private async openAPIparseStatus() {
|
|
219
254
|
if (this.platform.config.credentials?.openToken) {
|
|
220
|
-
this.
|
|
255
|
+
this.debugLog(`Meter: ${this.accessory.displayName} OpenAPI parseStatus`);
|
|
221
256
|
if (this.deviceStatus.body) {
|
|
222
257
|
this.BatteryLevel = 100;
|
|
223
258
|
} else {
|
|
@@ -231,13 +266,13 @@ export class Meter {
|
|
|
231
266
|
// Current Relative Humidity
|
|
232
267
|
if (!this.device.meter?.hide_humidity) {
|
|
233
268
|
this.CurrentRelativeHumidity = this.deviceStatus.body.humidity!;
|
|
234
|
-
this.
|
|
269
|
+
this.debugLog(`Meter: ${this.accessory.displayName} Humidity: ${this.CurrentRelativeHumidity}%`);
|
|
235
270
|
}
|
|
236
271
|
|
|
237
272
|
// Current Temperature
|
|
238
273
|
if (!this.device.meter?.hide_temperature) {
|
|
239
274
|
this.CurrentTemperature = Number(this.deviceStatus.body.temperature);
|
|
240
|
-
this.
|
|
275
|
+
this.debugLog(`Meter: ${this.accessory.displayName} Temperature: ${this.CurrentTemperature}°c`);
|
|
241
276
|
}
|
|
242
277
|
}
|
|
243
278
|
}
|
|
@@ -256,12 +291,12 @@ export class Meter {
|
|
|
256
291
|
private connectBLE() {
|
|
257
292
|
const switchbot = new Switchbot();
|
|
258
293
|
this.device.bleMac = ((this.device.deviceId!.match(/.{1,2}/g))!.join(':')).toLowerCase();
|
|
259
|
-
this.
|
|
294
|
+
this.debugLog(`Meter: ${this.accessory.displayName} BLE Address: ${this.device.bleMac}`);
|
|
260
295
|
return switchbot;
|
|
261
296
|
}
|
|
262
297
|
|
|
263
298
|
private BLErefreshStatus() {
|
|
264
|
-
this.
|
|
299
|
+
this.debugLog(`Meter: ${this.accessory.displayName} BLE RefreshStatus`);
|
|
265
300
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
266
301
|
const switchbot = this.connectBLE();
|
|
267
302
|
// Start to monitor advertisement packets
|
|
@@ -275,17 +310,17 @@ export class Meter {
|
|
|
275
310
|
this.temperature = ad.serviceData.temperature!.c;
|
|
276
311
|
this.humidity = ad.serviceData.humidity;
|
|
277
312
|
this.battery = ad.serviceData.battery;
|
|
278
|
-
this.
|
|
279
|
-
this.
|
|
313
|
+
this.debugLog(`Meter: ${this.accessory.displayName} serviceData: ${JSON.stringify(ad.serviceData)}`);
|
|
314
|
+
this.debugLog(`Meter: ${this.accessory.displayName} model: ${ad.serviceData.model}, modelName: ${ad.serviceData.modelName}, `
|
|
280
315
|
+ `temperature: ${JSON.stringify(ad.serviceData.temperature?.c)}, humidity: ${ad.serviceData.humidity}, `
|
|
281
316
|
+ `battery: ${ad.serviceData.battery}`);
|
|
282
317
|
|
|
283
318
|
if (this.serviceData) {
|
|
284
319
|
this.connected = true;
|
|
285
|
-
this.
|
|
320
|
+
this.debugLog(`Meter: ${this.accessory.displayName} connected: ${this.connected}`);
|
|
286
321
|
} else {
|
|
287
322
|
this.connected = false;
|
|
288
|
-
this.
|
|
323
|
+
this.debugLog(`Meter: ${this.accessory.displayName} connected: ${this.connected}`);
|
|
289
324
|
}
|
|
290
325
|
};
|
|
291
326
|
// Wait 10 seconds
|
|
@@ -303,36 +338,36 @@ export class Meter {
|
|
|
303
338
|
this.parseStatus();
|
|
304
339
|
this.updateHomeKitCharacteristics();
|
|
305
340
|
} else {
|
|
306
|
-
this.
|
|
341
|
+
this.errorLog(`Meter: ${this.accessory.displayName} wasn't able to establish BLE Connection`);
|
|
307
342
|
if (this.platform.config.credentials?.openToken) {
|
|
308
|
-
this.
|
|
343
|
+
this.warnLog(`Meter: ${this.accessory.displayName} Using OpenAPI Connection`);
|
|
309
344
|
this.openAPIRefreshStatus();
|
|
310
345
|
}
|
|
311
346
|
}
|
|
312
347
|
}).catch(async (e: any) => {
|
|
313
|
-
this.
|
|
314
|
-
if (this.
|
|
315
|
-
this.
|
|
348
|
+
this.errorLog(`Meter: ${this.accessory.displayName} failed refreshStatus with BLE Connection`);
|
|
349
|
+
if (this.deviceLogging === 'debug') {
|
|
350
|
+
this.errorLog(`Meter: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
|
|
316
351
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
317
352
|
}
|
|
318
|
-
if (this.
|
|
319
|
-
this.
|
|
353
|
+
if (this.platform.debugMode) {
|
|
354
|
+
this.errorLog(`Meter: ${this.accessory.displayName} failed refreshStatus with BLE Connection,`
|
|
320
355
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
321
356
|
}
|
|
322
357
|
if (this.platform.config.credentials?.openToken) {
|
|
323
|
-
this.
|
|
358
|
+
this.warnLog(`Meter: ${this.accessory.displayName} Using OpenAPI Connection`);
|
|
324
359
|
this.openAPIRefreshStatus();
|
|
325
360
|
}
|
|
326
|
-
this.apiError();
|
|
361
|
+
this.apiError(e);
|
|
327
362
|
});
|
|
328
363
|
}
|
|
329
364
|
|
|
330
365
|
private async openAPIRefreshStatus() {
|
|
331
366
|
if (this.platform.config.credentials?.openToken) {
|
|
332
|
-
this.
|
|
367
|
+
this.debugLog(`Meter: ${this.accessory.displayName} OpenAPI RefreshStatus`);
|
|
333
368
|
try {
|
|
334
369
|
this.deviceStatus = (await this.platform.axios.get(`${DeviceURL}/${this.device.deviceId}/status`)).data;
|
|
335
|
-
this.
|
|
370
|
+
this.debugLog(`Meter: ${this.accessory.displayName} openAPIRefreshStatus: ${JSON.stringify(this.deviceStatus)}`);
|
|
336
371
|
this.CurrentTemperatureCached = this.deviceStatus.body.humidity!;
|
|
337
372
|
this.accessory.context.CurrentTemperature = this.CurrentTemperatureCached;
|
|
338
373
|
this.CurrentRelativeHumidityCached = this.deviceStatus.body.humidity!;
|
|
@@ -342,16 +377,16 @@ export class Meter {
|
|
|
342
377
|
this.parseStatus();
|
|
343
378
|
this.updateHomeKitCharacteristics();
|
|
344
379
|
} catch (e: any) {
|
|
345
|
-
this.
|
|
346
|
-
if (this.
|
|
347
|
-
this.
|
|
380
|
+
this.errorLog(`Meter: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
|
|
381
|
+
if (this.deviceLogging === 'debug') {
|
|
382
|
+
this.errorLog(`Meter: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
|
|
348
383
|
+ ` Error Message: ${JSON.stringify(e.message)}`);
|
|
349
384
|
}
|
|
350
|
-
if (this.
|
|
351
|
-
this.
|
|
385
|
+
if (this.platform.debugMode) {
|
|
386
|
+
this.errorLog(`Meter: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
|
|
352
387
|
+ ` Error: ${JSON.stringify(e)}`);
|
|
353
388
|
}
|
|
354
|
-
this.apiError();
|
|
389
|
+
this.apiError(e);
|
|
355
390
|
}
|
|
356
391
|
}
|
|
357
392
|
}
|
|
@@ -361,36 +396,79 @@ export class Meter {
|
|
|
361
396
|
*/
|
|
362
397
|
updateHomeKitCharacteristics() {
|
|
363
398
|
if (this.StatusLowBattery === undefined) {
|
|
364
|
-
this.
|
|
399
|
+
this.debugLog(`Meter: ${this.accessory.displayName} StatusLowBattery: ${this.StatusLowBattery}`);
|
|
365
400
|
} else {
|
|
366
401
|
this.service.updateCharacteristic(this.platform.Characteristic.StatusLowBattery, this.StatusLowBattery);
|
|
367
|
-
this.
|
|
402
|
+
this.debugLog(`Meter: ${this.accessory.displayName} updateCharacteristic StatusLowBattery: ${this.StatusLowBattery}`);
|
|
368
403
|
}
|
|
369
404
|
if (this.BatteryLevel === undefined) {
|
|
370
|
-
this.
|
|
405
|
+
this.debugLog(`Meter: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
|
|
371
406
|
} else {
|
|
372
407
|
this.service.updateCharacteristic(this.platform.Characteristic.BatteryLevel, this.BatteryLevel);
|
|
373
|
-
this.
|
|
408
|
+
this.debugLog(`Meter: ${this.accessory.displayName} updateCharacteristic BatteryLevel: ${this.BatteryLevel}`);
|
|
374
409
|
}
|
|
375
410
|
if (!this.device.meter?.hide_humidity) {
|
|
376
411
|
if (this.CurrentRelativeHumidity === undefined) {
|
|
377
|
-
this.
|
|
412
|
+
this.debugLog(`Meter: ${this.accessory.displayName} CurrentRelativeHumidity: ${this.CurrentRelativeHumidity}`);
|
|
378
413
|
} else {
|
|
379
414
|
this.humidityservice?.updateCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, this.CurrentRelativeHumidity);
|
|
380
|
-
this.
|
|
415
|
+
this.debugLog(`Meter: ${this.accessory.displayName} updateCharacteristic CurrentRelativeHumidity: ${this.CurrentRelativeHumidity}`);
|
|
381
416
|
}
|
|
382
417
|
}
|
|
383
418
|
if (!this.device.meter?.hide_temperature) {
|
|
384
419
|
if (this.CurrentTemperature === undefined) {
|
|
385
|
-
this.
|
|
420
|
+
this.debugLog(`Meter: ${this.accessory.displayName} CurrentTemperature: ${this.CurrentTemperature}`);
|
|
386
421
|
} else {
|
|
387
422
|
this.temperatureservice?.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.CurrentTemperature);
|
|
388
|
-
this.
|
|
423
|
+
this.debugLog(`Meter: ${this.accessory.displayName} updateCharacteristic CurrentTemperature: ${this.CurrentTemperature}`);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
public apiError(e: any) {
|
|
429
|
+
this.service.updateCharacteristic(this.platform.Characteristic.StatusLowBattery, e);
|
|
430
|
+
this.service.updateCharacteristic(this.platform.Characteristic.BatteryLevel, e);
|
|
431
|
+
if (!this.device.meter?.hide_humidity) {
|
|
432
|
+
this.humidityservice?.updateCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, e);
|
|
433
|
+
}
|
|
434
|
+
if (!this.device.meter?.hide_temperature) {
|
|
435
|
+
this.temperatureservice?.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, e);
|
|
436
|
+
}
|
|
437
|
+
//throw new this.platform.api.hap.HapStatusError(HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Logging for Device
|
|
442
|
+
*/
|
|
443
|
+
infoLog(...log: any[]) {
|
|
444
|
+
if (this.enablingDeviceLogging()) {
|
|
445
|
+
this.platform.log.info(String(...log));
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
warnLog(...log: any[]) {
|
|
450
|
+
if (this.enablingDeviceLogging()) {
|
|
451
|
+
this.platform.log.warn(String(...log));
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
errorLog(...log: any[]) {
|
|
456
|
+
if (this.enablingDeviceLogging()) {
|
|
457
|
+
this.platform.log.error(String(...log));
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
debugLog(...log: any[]) {
|
|
462
|
+
if (this.enablingDeviceLogging()) {
|
|
463
|
+
if (this.deviceLogging === 'debug') {
|
|
464
|
+
this.platform.log.info('[DEBUG]', String(...log));
|
|
465
|
+
} else {
|
|
466
|
+
this.platform.log.debug(String(...log));
|
|
389
467
|
}
|
|
390
468
|
}
|
|
391
469
|
}
|
|
392
470
|
|
|
393
|
-
|
|
394
|
-
|
|
471
|
+
enablingDeviceLogging(): boolean {
|
|
472
|
+
return this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
|
|
395
473
|
}
|
|
396
474
|
}
|