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