homebridge-tasmota-control 1.6.1-beta.0 → 1.6.1-beta.10
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/package.json +1 -1
- package/src/sensors.js +83 -108
package/package.json
CHANGED
package/src/sensors.js
CHANGED
|
@@ -94,14 +94,14 @@ class Sensors extends EventEmitter {
|
|
|
94
94
|
return obj;
|
|
95
95
|
}, {});
|
|
96
96
|
|
|
97
|
+
let i = 0;
|
|
97
98
|
for (const [key, value] of Object.entries(sensorData)) {
|
|
98
99
|
const sensorData = value;
|
|
99
100
|
|
|
100
|
-
//sensor
|
|
101
101
|
const obj = {
|
|
102
102
|
name: key,
|
|
103
103
|
time: statusSns.Time,
|
|
104
|
-
tempUnit: statusSns.TempUnit,
|
|
104
|
+
tempUnit: statusSns.TempUnit === 'C' ? '°C' : statusSns.TempUnit,
|
|
105
105
|
pressureUnit: statusSns.PressureUnit,
|
|
106
106
|
temperature: sensorData.Temperature,
|
|
107
107
|
referenceTemperature: sensorData.ReferenceTemperature,
|
|
@@ -115,12 +115,8 @@ class Sensors extends EventEmitter {
|
|
|
115
115
|
ambientLight: sensorData.Ambient,
|
|
116
116
|
motion: sensorData.Motion
|
|
117
117
|
};
|
|
118
|
-
if (obj.tempUnit === 'C') {
|
|
119
|
-
obj.tempUnit = '°C';
|
|
120
|
-
}
|
|
121
118
|
|
|
122
|
-
|
|
123
|
-
const obj1 = {
|
|
119
|
+
const energy = {
|
|
124
120
|
power: sensorData.Power,
|
|
125
121
|
apparentPower: sensorData.ApparentPower,
|
|
126
122
|
reactivePower: sensorData.ReactivePower,
|
|
@@ -135,73 +131,59 @@ class Sensors extends EventEmitter {
|
|
|
135
131
|
frequency: sensorData.Frequency,
|
|
136
132
|
load: sensorData.Load,
|
|
137
133
|
};
|
|
138
|
-
const sensor = key === 'ENERGY' ? { ...obj, ...obj1 } : obj;
|
|
139
|
-
const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(sensor, null, 2)}`) : false;
|
|
140
134
|
|
|
141
|
-
|
|
135
|
+
const sensor = key === 'ENERGY' ? { ...obj, ...energy } : obj;
|
|
136
|
+
const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(sensor, null, 2)}`) : false;
|
|
142
137
|
this.sensors.push(sensor);
|
|
143
|
-
}
|
|
144
|
-
this.sensorsCount = this.sensors.length;
|
|
145
138
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const characteristic = service?.[i]?.Characteristic?.[charName];
|
|
153
|
-
if (characteristic && Characteristic?.[charName]) {
|
|
154
|
-
characteristic.updateCharacteristic(Characteristic[charName], value);
|
|
139
|
+
//update characteristics
|
|
140
|
+
if (this.sensorServices?.[i]) {
|
|
141
|
+
const update = (service, subtype, charName, value) => {
|
|
142
|
+
const serviceExist = service.subtype === subtype;
|
|
143
|
+
if (serviceExist && Characteristic[charName]) {
|
|
144
|
+
service.updateCharacteristic(Characteristic[charName], value);
|
|
155
145
|
}
|
|
156
146
|
};
|
|
157
147
|
|
|
158
|
-
//temperature
|
|
159
|
-
update(this.
|
|
160
|
-
update(this.
|
|
161
|
-
update(this.
|
|
162
|
-
update(this.
|
|
163
|
-
update(this.
|
|
164
|
-
|
|
165
|
-
//humidity
|
|
166
|
-
update(this.
|
|
167
|
-
|
|
168
|
-
//
|
|
169
|
-
|
|
170
|
-
update(this.
|
|
171
|
-
update(this.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
const energyService = this.sensorEnergyServices?.[i]?.Characteristic;
|
|
196
|
-
for (const [charName, sensorKey] of Object.entries(energyFields)) {
|
|
197
|
-
const value = sensor[sensorKey];
|
|
198
|
-
if (energyService?.[charName] && Characteristic?.[charName] !== undefined) {
|
|
199
|
-
energyService[charName].updateCharacteristic(Characteristic[charName], value);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
148
|
+
// temperature
|
|
149
|
+
update(this.sensorServices[i], `sensorTemperatureService${i}`, 'CurrentTemperature', sensor.temperature);
|
|
150
|
+
update(this.sensorServices[i], `sensorReferenceTemperatureService${i}`, 'CurrentTemperature', sensor.referenceTemperature);
|
|
151
|
+
update(this.sensorServices[i], `sensorObjTemperatureService${i}`, 'CurrentTemperature', sensor.objTemperature);
|
|
152
|
+
update(this.sensorServices[i], `sensorAmbTemperatureService${i}`, 'CurrentTemperature', sensor.ambTemperature);
|
|
153
|
+
update(this.sensorServices[i], `sensorDewPointTemperatureService${i}`, 'CurrentTemperature', sensor.dewPointTemperature);
|
|
154
|
+
|
|
155
|
+
// humidity
|
|
156
|
+
update(this.sensorServices[i], `sensorHumidityService${i}`, 'CurrentRelativeHumidity', sensor.humidity);
|
|
157
|
+
|
|
158
|
+
// CO₂
|
|
159
|
+
update(this.sensorServices[i], `sensorCarbonDioxydeService${i}`, 'CarbonDioxideDetected', sensor.carbonDioxyde > 1000);
|
|
160
|
+
update(this.sensorServices[i], `sensorCarbonDioxydeService${i}`, 'CarbonDioxideLevel', sensor.carbonDioxyde);
|
|
161
|
+
update(this.sensorServices[i], `sensorCarbonDioxydeService${i}`, 'CarbonDioxidePeakLevel', sensor.carbonDioxyde);
|
|
162
|
+
|
|
163
|
+
// ambient light
|
|
164
|
+
update(this.sensorServices[i], `sensorAmbientLightService${i}`, 'CurrentAmbientLightLevel', sensor.ambientLight);
|
|
165
|
+
|
|
166
|
+
// motion
|
|
167
|
+
update(this.sensorServices[i], `sensorMotionService${i}`, 'MotionDetected', sensor.motion);
|
|
168
|
+
|
|
169
|
+
// energy
|
|
170
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'Power', sensor.power);
|
|
171
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'ApparentPower', sensor.apparentPower);
|
|
172
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'ReactivePower', sensor.reactivePower);
|
|
173
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'EnergyToday', sensor.energyToday);
|
|
174
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'EnergyLastDay', sensor.energyLastDay);
|
|
175
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'EnergyLifetime', sensor.energyLifetime);
|
|
176
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'Current', sensor.current);
|
|
177
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'Voltage', sensor.voltage);
|
|
178
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'Factor', sensor.factor);
|
|
179
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'Frequency', sensor.frequency);
|
|
180
|
+
update(this.sensorServices[i], `sensorEnergyService${i}`, 'ReadingTime', sensor.time);
|
|
181
|
+
|
|
182
|
+
i++;
|
|
202
183
|
}
|
|
203
184
|
}
|
|
204
185
|
}
|
|
186
|
+
this.sensorsCount = this.sensors.length;
|
|
205
187
|
|
|
206
188
|
return true;
|
|
207
189
|
} catch (error) {
|
|
@@ -274,25 +256,17 @@ class Sensors extends EventEmitter {
|
|
|
274
256
|
//Prepare services
|
|
275
257
|
if (this.sensorsCount > 0) {
|
|
276
258
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Sensor Services`) : false;
|
|
277
|
-
this.
|
|
278
|
-
this.sensorReferenceTemperatureServices = [];
|
|
279
|
-
this.sensorObjTemperatureServices = [];
|
|
280
|
-
this.sensorAmbTemperatureServices = [];
|
|
281
|
-
this.sensorDewPointTemperatureServices = [];
|
|
282
|
-
this.sensorHumidityServices = [];
|
|
283
|
-
this.sensorCarbonDioxydeServices = [];
|
|
284
|
-
this.sensorAmbientLightServices = [];
|
|
285
|
-
this.sensorMotionServices = [];
|
|
286
|
-
this.sensorEnergyServices = [];
|
|
259
|
+
this.sensorServices = [];
|
|
287
260
|
|
|
288
261
|
//temperature
|
|
289
262
|
let i = 0;
|
|
290
263
|
for (const sensor of this.sensors) {
|
|
291
264
|
const sensorName = sensor.name;
|
|
265
|
+
const service = {};
|
|
292
266
|
if (sensor.temperature) {
|
|
293
267
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Temperature Sensor Services`) : false;
|
|
294
268
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Temperature` : `${sensorName} Temperature`;
|
|
295
|
-
const sensorTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `
|
|
269
|
+
const sensorTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorTemperatureService${i}`);
|
|
296
270
|
sensorTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
297
271
|
sensorTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
298
272
|
sensorTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
@@ -301,14 +275,14 @@ class Sensors extends EventEmitter {
|
|
|
301
275
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} temperature: ${value} °${sensor.tempUnit}`);
|
|
302
276
|
return value;
|
|
303
277
|
});
|
|
304
|
-
|
|
278
|
+
service.sensorTemperatureService = sensorTemperatureService;
|
|
305
279
|
}
|
|
306
280
|
|
|
307
281
|
//reference temperature
|
|
308
282
|
if (sensor.referenceTemperature) {
|
|
309
283
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Reference Temperature Sensor Services`) : false;
|
|
310
284
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Reference Temperature` : `${sensorName} Reference Temperature`;
|
|
311
|
-
const sensorReferenceTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `
|
|
285
|
+
const sensorReferenceTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorReferenceTemperatureService${i}`);
|
|
312
286
|
sensorReferenceTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
313
287
|
sensorReferenceTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
314
288
|
sensorReferenceTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
@@ -317,14 +291,14 @@ class Sensors extends EventEmitter {
|
|
|
317
291
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} reference temperature: ${value} °${sensor.tempUnit}`);
|
|
318
292
|
return value;
|
|
319
293
|
});
|
|
320
|
-
|
|
294
|
+
service.sensorReferenceTemperatureService = sensorReferenceTemperatureService;
|
|
321
295
|
}
|
|
322
296
|
|
|
323
297
|
//object temperature
|
|
324
298
|
if (sensor.objTemperature) {
|
|
325
299
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Obj Temperature Sensor Services`) : false;
|
|
326
300
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Obj Temperature` : `${sensorName} Obj Temperature`;
|
|
327
|
-
const sensorObjTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `
|
|
301
|
+
const sensorObjTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorObjTemperatureService${i}`);
|
|
328
302
|
sensorObjTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
329
303
|
sensorObjTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
330
304
|
sensorObjTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
@@ -333,14 +307,14 @@ class Sensors extends EventEmitter {
|
|
|
333
307
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} obj temperature: ${value} °${sensor.tempUnit}`);
|
|
334
308
|
return value;
|
|
335
309
|
});
|
|
336
|
-
|
|
310
|
+
service.sensorObjTemperatureService = sensorObjTemperatureService;
|
|
337
311
|
}
|
|
338
312
|
|
|
339
313
|
//ambient temperature
|
|
340
314
|
if (sensor.ambTemperature) {
|
|
341
315
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Amb Temperature Sensor Services`) : false;
|
|
342
316
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Amb Temperature` : `${sensorName} Amb Temperature`;
|
|
343
|
-
const sensorAmbTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `
|
|
317
|
+
const sensorAmbTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorAmbTemperatureService${i}`);
|
|
344
318
|
sensorAmbTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
345
319
|
sensorAmbTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
346
320
|
sensorAmbTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
@@ -349,14 +323,14 @@ class Sensors extends EventEmitter {
|
|
|
349
323
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} amb temperature: ${value} °${sensor.tempUnit}`);
|
|
350
324
|
return value;
|
|
351
325
|
});
|
|
352
|
-
|
|
326
|
+
service.sensorAmbTemperatureService = sensorAmbTemperatureService;
|
|
353
327
|
}
|
|
354
328
|
|
|
355
329
|
//dew point temperature
|
|
356
330
|
if (sensor.dewPointTemperature) {
|
|
357
331
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Dew Point Temperature Sensor Services`) : false;
|
|
358
332
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Dew Point` : `${sensorName} Dew Point`;
|
|
359
|
-
const sensorDewPointTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `
|
|
333
|
+
const sensorDewPointTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorDewPointTemperatureService${i}`);
|
|
360
334
|
sensorDewPointTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
361
335
|
sensorDewPointTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
362
336
|
sensorDewPointTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
@@ -365,14 +339,14 @@ class Sensors extends EventEmitter {
|
|
|
365
339
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} dew point: ${value} °${sensor.tempUnit}`);
|
|
366
340
|
return value;
|
|
367
341
|
});
|
|
368
|
-
|
|
342
|
+
service.sensorDewPointTemperatureService = sensorDewPointTemperatureService;
|
|
369
343
|
}
|
|
370
344
|
|
|
371
345
|
//humidity
|
|
372
346
|
if (sensor.humidity) {
|
|
373
347
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Humidity Sensor Services`) : false;
|
|
374
348
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Humidity` : `${sensorName} Humidity`;
|
|
375
|
-
const sensorHumidityService = accessory.addService(Service.HumiditySensor, serviceName, `
|
|
349
|
+
const sensorHumidityService = accessory.addService(Service.HumiditySensor, serviceName, `sensorHumidityService${i}`);
|
|
376
350
|
sensorHumidityService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
377
351
|
sensorHumidityService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
378
352
|
sensorHumidityService.getCharacteristic(Characteristic.CurrentRelativeHumidity)
|
|
@@ -381,7 +355,7 @@ class Sensors extends EventEmitter {
|
|
|
381
355
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} humidity: ${value} %`);
|
|
382
356
|
return value;
|
|
383
357
|
});
|
|
384
|
-
|
|
358
|
+
service.sensorHumidityService = sensorHumidityService;
|
|
385
359
|
}
|
|
386
360
|
|
|
387
361
|
//pressure
|
|
@@ -392,7 +366,7 @@ class Sensors extends EventEmitter {
|
|
|
392
366
|
if (sensor.carbonDioxyde) {
|
|
393
367
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Carbon Dioxyde Sensor Services`) : false;
|
|
394
368
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Carbon Dioxyde` : `${sensorName} Carbon Dioxyde`;
|
|
395
|
-
const sensorCarbonDioxydeService = accessory.addService(Service.CarbonDioxideSensor, serviceName, `
|
|
369
|
+
const sensorCarbonDioxydeService = accessory.addService(Service.CarbonDioxideSensor, serviceName, `sensorCarbonDioxydeService${i}`);
|
|
396
370
|
sensorCarbonDioxydeService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
397
371
|
sensorCarbonDioxydeService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
398
372
|
sensorCarbonDioxydeService.getCharacteristic(Characteristic.CarbonDioxideDetected)
|
|
@@ -413,14 +387,14 @@ class Sensors extends EventEmitter {
|
|
|
413
387
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} carbon dioxyde peak level: ${value} ppm`);
|
|
414
388
|
return value;
|
|
415
389
|
});
|
|
416
|
-
|
|
390
|
+
service.sensorCarbonDioxydeService = sensorCarbonDioxydeService;
|
|
417
391
|
}
|
|
418
392
|
|
|
419
393
|
//ambient light
|
|
420
394
|
if (sensor.ambientLight) {
|
|
421
395
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Ambient Light Sensor Services`) : false;
|
|
422
396
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Ambient Light` : `${sensorName} Ambient Light`;
|
|
423
|
-
const sensorAmbientLightService = accessory.addService(Service.LightSensor, serviceName, `
|
|
397
|
+
const sensorAmbientLightService = accessory.addService(Service.LightSensor, serviceName, `sensorAmbientLightService${i}`);
|
|
424
398
|
sensorAmbientLightService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
425
399
|
sensorAmbientLightService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
426
400
|
sensorAmbientLightService.getCharacteristic(Characteristic.CurrentAmbientLightLevel)
|
|
@@ -429,14 +403,14 @@ class Sensors extends EventEmitter {
|
|
|
429
403
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} ambient light: ${value} lx`);
|
|
430
404
|
return value;
|
|
431
405
|
});
|
|
432
|
-
|
|
406
|
+
service.sensorAmbientLightService = sensorAmbientLightService;
|
|
433
407
|
}
|
|
434
408
|
|
|
435
409
|
//motion
|
|
436
410
|
if (sensor.motion) {
|
|
437
411
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Motion Sensor Services`) : false;
|
|
438
412
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Motion` : `${sensorName} Motion`;
|
|
439
|
-
const sensorMotionService = accessory.addService(Service.MotionSensor, serviceName, `
|
|
413
|
+
const sensorMotionService = accessory.addService(Service.MotionSensor, serviceName, `sensorMotionService${i}`);
|
|
440
414
|
sensorMotionService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
441
415
|
sensorMotionService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
442
416
|
sensorMotionService.getCharacteristic(Characteristic.MotionDetected)
|
|
@@ -445,17 +419,17 @@ class Sensors extends EventEmitter {
|
|
|
445
419
|
const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} motion: ${state ? 'ON' : 'OFF'}`);
|
|
446
420
|
return state;
|
|
447
421
|
});
|
|
448
|
-
|
|
422
|
+
service.sensorMotionService = sensorMotionService;
|
|
449
423
|
}
|
|
450
424
|
|
|
451
425
|
//energy
|
|
452
426
|
if (sensor.name === 'ENERGY') {
|
|
453
427
|
const debug4 = this.enableDebugMode ? this.emit('debug', `Prepare Power And Energy Service`) : false;
|
|
454
|
-
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName}` : `${sensorName}
|
|
455
|
-
const
|
|
456
|
-
|
|
428
|
+
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName}` : `${sensorName}`;
|
|
429
|
+
const sensorEnergyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `sensorEnergyService${i}`);
|
|
430
|
+
sensorEnergyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
457
431
|
if (sensor.power) {
|
|
458
|
-
|
|
432
|
+
sensorEnergyService.getCharacteristic(Characteristic.Power)
|
|
459
433
|
.onGet(async () => {
|
|
460
434
|
const value = sensor.power;
|
|
461
435
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} power: ${value} W`);
|
|
@@ -463,7 +437,7 @@ class Sensors extends EventEmitter {
|
|
|
463
437
|
});
|
|
464
438
|
}
|
|
465
439
|
if (sensor.apparentPower) {
|
|
466
|
-
|
|
440
|
+
sensorEnergyService.getCharacteristic(Characteristic.ApparentPower)
|
|
467
441
|
.onGet(async () => {
|
|
468
442
|
const value = sensor.apparentPower;
|
|
469
443
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} apparent power: ${value} VA`);
|
|
@@ -471,7 +445,7 @@ class Sensors extends EventEmitter {
|
|
|
471
445
|
});
|
|
472
446
|
}
|
|
473
447
|
if (sensor.reactivePower) {
|
|
474
|
-
|
|
448
|
+
sensorEnergyService.getCharacteristic(Characteristic.ReactivePower)
|
|
475
449
|
.onGet(async () => {
|
|
476
450
|
const value = sensor.reactivePower;
|
|
477
451
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} reactive power: ${value} VAr`);
|
|
@@ -479,7 +453,7 @@ class Sensors extends EventEmitter {
|
|
|
479
453
|
});
|
|
480
454
|
}
|
|
481
455
|
if (sensor.energyToday) {
|
|
482
|
-
|
|
456
|
+
sensorEnergyService.getCharacteristic(Characteristic.EnergyToday)
|
|
483
457
|
.onGet(async () => {
|
|
484
458
|
const value = sensor.energyToday;
|
|
485
459
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} energy today: ${value} kWh`);
|
|
@@ -487,7 +461,7 @@ class Sensors extends EventEmitter {
|
|
|
487
461
|
});
|
|
488
462
|
}
|
|
489
463
|
if (sensor.energyLastDay) {
|
|
490
|
-
|
|
464
|
+
sensorEnergyService.getCharacteristic(Characteristic.EnergyLastDay)
|
|
491
465
|
.onGet(async () => {
|
|
492
466
|
const value = sensor.energyLastDay;
|
|
493
467
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} energy last day: ${value} kWh`);
|
|
@@ -495,7 +469,7 @@ class Sensors extends EventEmitter {
|
|
|
495
469
|
});
|
|
496
470
|
}
|
|
497
471
|
if (sensor.energyLifetime) {
|
|
498
|
-
|
|
472
|
+
sensorEnergyService.getCharacteristic(Characteristic.EnergyLifetime)
|
|
499
473
|
.onGet(async () => {
|
|
500
474
|
const value = sensor.energyLifetime;
|
|
501
475
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} energy lifetime: ${value} kWh`);
|
|
@@ -503,7 +477,7 @@ class Sensors extends EventEmitter {
|
|
|
503
477
|
});
|
|
504
478
|
}
|
|
505
479
|
if (sensor.current) {
|
|
506
|
-
|
|
480
|
+
sensorEnergyService.getCharacteristic(Characteristic.Current)
|
|
507
481
|
.onGet(async () => {
|
|
508
482
|
const value = sensor.current;
|
|
509
483
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} current: ${value} A`);
|
|
@@ -511,7 +485,7 @@ class Sensors extends EventEmitter {
|
|
|
511
485
|
});
|
|
512
486
|
}
|
|
513
487
|
if (sensor.voltage) {
|
|
514
|
-
|
|
488
|
+
sensorEnergyService.getCharacteristic(Characteristic.Voltage)
|
|
515
489
|
.onGet(async () => {
|
|
516
490
|
const value = sensor.voltage;
|
|
517
491
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} voltage: ${value} V`);
|
|
@@ -519,7 +493,7 @@ class Sensors extends EventEmitter {
|
|
|
519
493
|
});
|
|
520
494
|
}
|
|
521
495
|
if (sensor.factor) {
|
|
522
|
-
|
|
496
|
+
sensorEnergyService.getCharacteristic(Characteristic.Factor)
|
|
523
497
|
.onGet(async () => {
|
|
524
498
|
const value = sensor.factor;
|
|
525
499
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} power factor: ${value} cos φ`);
|
|
@@ -527,7 +501,7 @@ class Sensors extends EventEmitter {
|
|
|
527
501
|
});
|
|
528
502
|
}
|
|
529
503
|
if (sensor.frequency) {
|
|
530
|
-
|
|
504
|
+
sensorEnergyService.getCharacteristic(Characteristic.Freqency)
|
|
531
505
|
.onGet(async () => {
|
|
532
506
|
const value = sensor.frequency;
|
|
533
507
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} frequency: ${value} Hz`);
|
|
@@ -535,15 +509,16 @@ class Sensors extends EventEmitter {
|
|
|
535
509
|
});
|
|
536
510
|
}
|
|
537
511
|
if (sensor.time) {
|
|
538
|
-
|
|
512
|
+
sensorEnergyService.getCharacteristic(Characteristic.ReadingTime)
|
|
539
513
|
.onGet(async () => {
|
|
540
514
|
const value = sensor.time;
|
|
541
515
|
const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} last report: ${value}`);
|
|
542
516
|
return value;
|
|
543
517
|
});
|
|
544
518
|
}
|
|
545
|
-
|
|
519
|
+
service.sensorEnergyService = sensorEnergyService;
|
|
546
520
|
}
|
|
521
|
+
this.sensorServices.push(service);
|
|
547
522
|
i++;
|
|
548
523
|
}
|
|
549
524
|
}
|