homebridge-tasmota-control 1.6.1-beta.12 → 1.6.1-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/sensors.js +87 -89
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Tasmota Control",
3
3
  "name": "homebridge-tasmota-control",
4
- "version": "1.6.1-beta.12",
4
+ "version": "1.6.1-beta.13",
5
5
  "description": "Homebridge plugin to control Tasmota flashed devices.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
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;
98
97
  for (const [key, value] of Object.entries(sensorData)) {
99
98
  const sensorData = value;
100
99
 
100
+ //sensor
101
101
  const obj = {
102
102
  name: key,
103
103
  time: statusSns.Time,
104
- tempUnit: statusSns.TempUnit === 'C' ? '°C' : statusSns.TempUnit,
104
+ tempUnit: statusSns.TempUnit,
105
105
  pressureUnit: statusSns.PressureUnit,
106
106
  temperature: sensorData.Temperature,
107
107
  referenceTemperature: sensorData.ReferenceTemperature,
@@ -114,9 +114,13 @@ class Sensors extends EventEmitter {
114
114
  carbonDioxyde: sensorData.CarbonDioxyde,
115
115
  ambientLight: sensorData.Ambient,
116
116
  motion: sensorData.Motion
117
- };
117
+ }
118
+ if (obj.tempUnit === 'C') {
119
+ obj.tempUnit = '°C';
120
+ }
118
121
 
119
- const energy = {
122
+ //energy
123
+ const obj1 = {
120
124
  power: sensorData.Power,
121
125
  apparentPower: sensorData.ApparentPower,
122
126
  reactivePower: sensorData.ReactivePower,
@@ -130,61 +134,48 @@ class Sensors extends EventEmitter {
130
134
  factor: sensorData.Factor,
131
135
  frequency: sensorData.Frequency,
132
136
  load: sensorData.Load,
133
- };
134
-
135
- const sensor = key === 'ENERGY' ? { ...obj, ...energy } : obj;
137
+ }
138
+ const sensor = key === 'ENERGY' ? { ...obj, ...obj1 } : obj;
136
139
  const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(sensor, null, 2)}`) : false;
140
+
141
+ //push to array
137
142
  this.sensors.push(sensor);
143
+ }
144
+ this.sensorsCount = this.sensors.length;
145
+
146
+ //update characteristics
147
+ if (this.sensorsCount > 0) {
148
+ for (let i = 0; i < this.sensorsCount; i++) {
149
+ const sensor = this.sensors[i];
150
+ this.sensorTemperatureServices?.[i]?.Characteristic.CurrentTemperature?.updateCharacteristic(Characteristic.CurrentTemperature, sensor.temperature);
151
+ this.sensorReferenceTemperatureServices?.[i]?.Characteristic.CurrentTemperature?.updateCharacteristic(Characteristic.CurrentTemperature, sensor.referenceTemperature);
152
+ this.sensorObjTemperatureServices?.[i]?.Characteristic.CurrentTemperature?.updateCharacteristic(Characteristic.CurrentTemperature, sensor.objTemperature);
153
+ this.sensorAmbTemperatureServices?.[i]?.Characteristic.CurrentTemperature?.updateCharacteristic(Characteristic.CurrentTemperature, sensor.ambTemperature);
154
+ this.sensorDewPointTemperatureServices?.[i]?.Characteristic.CurrentTemperature?.updateCharacteristic(Characteristic.CurrentTemperature, sensor.dewPointTemperature);
155
+ this.sensorHumidityServices?.[i]?.Characteristic.CurrentRelativeHumidity?.updateCharacteristic(Characteristic.CurrentRelativeHumidity, sensor.humidity);
156
+
157
+ const co2Service = this.sensorCarbonDioxydeServices?.[i];
158
+ co2Service?.Characteristic.CarbonDioxideDetected?.updateCharacteristic(Characteristic.CarbonDioxideDetected, sensor.carbonDioxyde > 1000);
159
+ co2Service?.Characteristic.CarbonDioxideLevel?.updateCharacteristic(Characteristic.CarbonDioxideLevel, sensor.carbonDioxyde);
160
+ co2Service?.Characteristic.CarbonDioxidePeakLevel?.updateCharacteristic(Characteristic.CarbonDioxidePeakLevel, sensor.carbonDioxyde);
161
+
162
+ this.sensorAmbientLightServices?.[i]?.Characteristic.CurrentAmbientLightLevel?.updateCharacteristic(Characteristic.CurrentAmbientLightLevel, sensor.ambientLight);
163
+ this.sensorMotionServices?.[i]?.Characteristic.MotionDetected?.updateCharacteristic(Characteristic.MotionDetected, sensor.motion);
164
+
165
+
166
+ //energy
167
+ const fields = [
168
+ 'Power', 'ApparentPower', 'ReactivePower', 'EnergyToday', 'EnergyLastDay',
169
+ 'EnergyLifetime', 'Current', 'Voltage', 'Factor', 'Frequency', 'ReadingTime'
170
+ ];
171
+ const characteristic = this.sensorEnergyServices?.[i]?.Characteristic;
172
+ for (const key of fields) {
173
+ characteristic?.[key]?.updateCharacteristic(Characteristic[key], sensor[key.toLowerCase()]);
174
+ }
138
175
 
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, value);
146
- }
147
- };
148
-
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++;
184
176
  }
185
177
  }
186
178
  }
187
- this.sensorsCount = this.sensors.length;
188
179
 
189
180
  return true;
190
181
  } catch (error) {
@@ -257,17 +248,25 @@ class Sensors extends EventEmitter {
257
248
  //Prepare services
258
249
  if (this.sensorsCount > 0) {
259
250
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Sensor Services`) : false;
260
- this.sensorServices = [];
251
+ this.sensorTemperatureServices = [];
252
+ this.sensorReferenceTemperatureServices = [];
253
+ this.sensorObjTemperatureServices = [];
254
+ this.sensorAmbTemperatureServices = [];
255
+ this.sensorDewPointTemperatureServices = [];
256
+ this.sensorHumidityServices = [];
257
+ this.sensorCarbonDioxydeServices = [];
258
+ this.sensorAmbientLightServices = [];
259
+ this.sensorMotionServices = [];
260
+ this.sensorEnergyServices = [];
261
261
 
262
262
  //temperature
263
263
  let i = 0;
264
264
  for (const sensor of this.sensors) {
265
265
  const sensorName = sensor.name;
266
- const service = {};
267
266
  if (sensor.temperature) {
268
267
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Temperature Sensor Services`) : false;
269
268
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Temperature` : `${sensorName} Temperature`;
270
- const sensorTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorTemperatureService${i}`);
269
+ const sensorTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Temperature Sensor ${i}`);
271
270
  sensorTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
272
271
  sensorTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
273
272
  sensorTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -276,14 +275,14 @@ class Sensors extends EventEmitter {
276
275
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} temperature: ${value} °${sensor.tempUnit}`);
277
276
  return value;
278
277
  });
279
- service.sensorTemperatureService = sensorTemperatureService;
278
+ this.sensorTemperatureServices.push(sensorTemperatureService);
280
279
  }
281
280
 
282
281
  //reference temperature
283
282
  if (sensor.referenceTemperature) {
284
283
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Reference Temperature Sensor Services`) : false;
285
284
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Reference Temperature` : `${sensorName} Reference Temperature`;
286
- const sensorReferenceTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorReferenceTemperatureService${i}`);
285
+ const sensorReferenceTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Reference Temperature Sensor ${i}`);
287
286
  sensorReferenceTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
288
287
  sensorReferenceTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
289
288
  sensorReferenceTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -292,14 +291,14 @@ class Sensors extends EventEmitter {
292
291
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} reference temperature: ${value} °${sensor.tempUnit}`);
293
292
  return value;
294
293
  });
295
- service.sensorReferenceTemperatureService = sensorReferenceTemperatureService;
294
+ this.sensorReferenceTemperatureServices.push(sensorReferenceTemperatureService);
296
295
  }
297
296
 
298
297
  //object temperature
299
298
  if (sensor.objTemperature) {
300
299
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Obj Temperature Sensor Services`) : false;
301
300
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Obj Temperature` : `${sensorName} Obj Temperature`;
302
- const sensorObjTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorObjTemperatureService${i}`);
301
+ const sensorObjTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Obj Temperature Sensor ${i}`);
303
302
  sensorObjTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
304
303
  sensorObjTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
305
304
  sensorObjTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -308,14 +307,14 @@ class Sensors extends EventEmitter {
308
307
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} obj temperature: ${value} °${sensor.tempUnit}`);
309
308
  return value;
310
309
  });
311
- service.sensorObjTemperatureService = sensorObjTemperatureService;
310
+ this.sensorObjTemperatureServices.push(sensorObjTemperatureService);
312
311
  }
313
312
 
314
313
  //ambient temperature
315
314
  if (sensor.ambTemperature) {
316
315
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Amb Temperature Sensor Services`) : false;
317
316
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Amb Temperature` : `${sensorName} Amb Temperature`;
318
- const sensorAmbTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorAmbTemperatureService${i}`);
317
+ const sensorAmbTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Amb Temperature Sensor ${i}`);
319
318
  sensorAmbTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
320
319
  sensorAmbTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
321
320
  sensorAmbTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -324,14 +323,14 @@ class Sensors extends EventEmitter {
324
323
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} amb temperature: ${value} °${sensor.tempUnit}`);
325
324
  return value;
326
325
  });
327
- service.sensorAmbTemperatureService = sensorAmbTemperatureService;
326
+ this.sensorAmbTemperatureServices.push(sensorAmbTemperatureService);
328
327
  }
329
328
 
330
329
  //dew point temperature
331
330
  if (sensor.dewPointTemperature) {
332
331
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Dew Point Temperature Sensor Services`) : false;
333
332
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Dew Point` : `${sensorName} Dew Point`;
334
- const sensorDewPointTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `sensorDewPointTemperatureService${i}`);
333
+ const sensorDewPointTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Dew Point Temperature Sensor ${i}`);
335
334
  sensorDewPointTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
336
335
  sensorDewPointTemperatureService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
337
336
  sensorDewPointTemperatureService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -340,14 +339,14 @@ class Sensors extends EventEmitter {
340
339
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} dew point: ${value} °${sensor.tempUnit}`);
341
340
  return value;
342
341
  });
343
- service.sensorDewPointTemperatureService = sensorDewPointTemperatureService;
342
+ this.sensorDewPointTemperatureServices.push(sensorDewPointTemperatureService);
344
343
  }
345
344
 
346
345
  //humidity
347
346
  if (sensor.humidity) {
348
347
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Humidity Sensor Services`) : false;
349
348
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Humidity` : `${sensorName} Humidity`;
350
- const sensorHumidityService = accessory.addService(Service.HumiditySensor, serviceName, `sensorHumidityService${i}`);
349
+ const sensorHumidityService = accessory.addService(Service.HumiditySensor, serviceName, `Humidity Sensor ${i}`);
351
350
  sensorHumidityService.addOptionalCharacteristic(Characteristic.ConfiguredName);
352
351
  sensorHumidityService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
353
352
  sensorHumidityService.getCharacteristic(Characteristic.CurrentRelativeHumidity)
@@ -356,7 +355,7 @@ class Sensors extends EventEmitter {
356
355
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} humidity: ${value} %`);
357
356
  return value;
358
357
  });
359
- service.sensorHumidityService = sensorHumidityService;
358
+ this.sensorHumidityServices.push(sensorHumidityService);
360
359
  }
361
360
 
362
361
  //pressure
@@ -367,7 +366,7 @@ class Sensors extends EventEmitter {
367
366
  if (sensor.carbonDioxyde) {
368
367
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Carbon Dioxyde Sensor Services`) : false;
369
368
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Carbon Dioxyde` : `${sensorName} Carbon Dioxyde`;
370
- const sensorCarbonDioxydeService = accessory.addService(Service.CarbonDioxideSensor, serviceName, `sensorCarbonDioxydeService${i}`);
369
+ const sensorCarbonDioxydeService = accessory.addService(Service.CarbonDioxideSensor, serviceName, `Carbon Dioxyde Sensor ${i}`);
371
370
  sensorCarbonDioxydeService.addOptionalCharacteristic(Characteristic.ConfiguredName);
372
371
  sensorCarbonDioxydeService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
373
372
  sensorCarbonDioxydeService.getCharacteristic(Characteristic.CarbonDioxideDetected)
@@ -388,14 +387,14 @@ class Sensors extends EventEmitter {
388
387
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} carbon dioxyde peak level: ${value} ppm`);
389
388
  return value;
390
389
  });
391
- service.sensorCarbonDioxydeService = sensorCarbonDioxydeService;
390
+ this.sensorCarbonDioxydeServices.push(sensorCarbonDioxydeService);
392
391
  }
393
392
 
394
393
  //ambient light
395
394
  if (sensor.ambientLight) {
396
395
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Ambient Light Sensor Services`) : false;
397
396
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Ambient Light` : `${sensorName} Ambient Light`;
398
- const sensorAmbientLightService = accessory.addService(Service.LightSensor, serviceName, `sensorAmbientLightService${i}`);
397
+ const sensorAmbientLightService = accessory.addService(Service.LightSensor, serviceName, `Ambient Light Sensor ${i}`);
399
398
  sensorAmbientLightService.addOptionalCharacteristic(Characteristic.ConfiguredName);
400
399
  sensorAmbientLightService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
401
400
  sensorAmbientLightService.getCharacteristic(Characteristic.CurrentAmbientLightLevel)
@@ -404,14 +403,14 @@ class Sensors extends EventEmitter {
404
403
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} ambient light: ${value} lx`);
405
404
  return value;
406
405
  });
407
- service.sensorAmbientLightService = sensorAmbientLightService;
406
+ this.sensorAmbientLightServices.push(sensorAmbientLightService);
408
407
  }
409
408
 
410
409
  //motion
411
410
  if (sensor.motion) {
412
411
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare Motion Sensor Services`) : false;
413
412
  const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Motion` : `${sensorName} Motion`;
414
- const sensorMotionService = accessory.addService(Service.MotionSensor, serviceName, `sensorMotionService${i}`);
413
+ const sensorMotionService = accessory.addService(Service.MotionSensor, serviceName, `Motion Sensor ${i}`);
415
414
  sensorMotionService.addOptionalCharacteristic(Characteristic.ConfiguredName);
416
415
  sensorMotionService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
417
416
  sensorMotionService.getCharacteristic(Characteristic.MotionDetected)
@@ -420,17 +419,17 @@ class Sensors extends EventEmitter {
420
419
  const logInfo = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} motion: ${state ? 'ON' : 'OFF'}`);
421
420
  return state;
422
421
  });
423
- service.sensorMotionService = sensorMotionService;
422
+ this.sensorMotionServices.push(sensorMotionService);
424
423
  }
425
424
 
426
425
  //energy
427
426
  if (sensor.name === 'ENERGY') {
428
427
  const debug4 = this.enableDebugMode ? this.emit('debug', `Prepare Power And Energy Service`) : false;
429
- const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName}` : `${sensorName}`;
430
- const sensorEnergyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `sensorEnergyService${i}`);
431
- sensorEnergyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
428
+ const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName}` : `${sensorName} Sensor`;
429
+ const energyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `Energy Sensor ${i}`);
430
+ energyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
432
431
  if (sensor.power) {
433
- sensorEnergyService.getCharacteristic(Characteristic.Power)
432
+ energyService.getCharacteristic(Characteristic.Power)
434
433
  .onGet(async () => {
435
434
  const value = sensor.power;
436
435
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} power: ${value} W`);
@@ -438,7 +437,7 @@ class Sensors extends EventEmitter {
438
437
  });
439
438
  }
440
439
  if (sensor.apparentPower) {
441
- sensorEnergyService.getCharacteristic(Characteristic.ApparentPower)
440
+ energyService.getCharacteristic(Characteristic.ApparentPower)
442
441
  .onGet(async () => {
443
442
  const value = sensor.apparentPower;
444
443
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} apparent power: ${value} VA`);
@@ -446,7 +445,7 @@ class Sensors extends EventEmitter {
446
445
  });
447
446
  }
448
447
  if (sensor.reactivePower) {
449
- sensorEnergyService.getCharacteristic(Characteristic.ReactivePower)
448
+ energyService.getCharacteristic(Characteristic.ReactivePower)
450
449
  .onGet(async () => {
451
450
  const value = sensor.reactivePower;
452
451
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} reactive power: ${value} VAr`);
@@ -454,7 +453,7 @@ class Sensors extends EventEmitter {
454
453
  });
455
454
  }
456
455
  if (sensor.energyToday) {
457
- sensorEnergyService.getCharacteristic(Characteristic.EnergyToday)
456
+ energyService.getCharacteristic(Characteristic.EnergyToday)
458
457
  .onGet(async () => {
459
458
  const value = sensor.energyToday;
460
459
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} energy today: ${value} kWh`);
@@ -462,7 +461,7 @@ class Sensors extends EventEmitter {
462
461
  });
463
462
  }
464
463
  if (sensor.energyLastDay) {
465
- sensorEnergyService.getCharacteristic(Characteristic.EnergyLastDay)
464
+ energyService.getCharacteristic(Characteristic.EnergyLastDay)
466
465
  .onGet(async () => {
467
466
  const value = sensor.energyLastDay;
468
467
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} energy last day: ${value} kWh`);
@@ -470,7 +469,7 @@ class Sensors extends EventEmitter {
470
469
  });
471
470
  }
472
471
  if (sensor.energyLifetime) {
473
- sensorEnergyService.getCharacteristic(Characteristic.EnergyLifetime)
472
+ energyService.getCharacteristic(Characteristic.EnergyLifetime)
474
473
  .onGet(async () => {
475
474
  const value = sensor.energyLifetime;
476
475
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} energy lifetime: ${value} kWh`);
@@ -478,7 +477,7 @@ class Sensors extends EventEmitter {
478
477
  });
479
478
  }
480
479
  if (sensor.current) {
481
- sensorEnergyService.getCharacteristic(Characteristic.Current)
480
+ energyService.getCharacteristic(Characteristic.Current)
482
481
  .onGet(async () => {
483
482
  const value = sensor.current;
484
483
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} current: ${value} A`);
@@ -486,7 +485,7 @@ class Sensors extends EventEmitter {
486
485
  });
487
486
  }
488
487
  if (sensor.voltage) {
489
- sensorEnergyService.getCharacteristic(Characteristic.Voltage)
488
+ energyService.getCharacteristic(Characteristic.Voltage)
490
489
  .onGet(async () => {
491
490
  const value = sensor.voltage;
492
491
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} voltage: ${value} V`);
@@ -494,7 +493,7 @@ class Sensors extends EventEmitter {
494
493
  });
495
494
  }
496
495
  if (sensor.factor) {
497
- sensorEnergyService.getCharacteristic(Characteristic.Factor)
496
+ energyService.getCharacteristic(Characteristic.Factor)
498
497
  .onGet(async () => {
499
498
  const value = sensor.factor;
500
499
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} power factor: ${value} cos φ`);
@@ -502,7 +501,7 @@ class Sensors extends EventEmitter {
502
501
  });
503
502
  }
504
503
  if (sensor.frequency) {
505
- sensorEnergyService.getCharacteristic(Characteristic.Freqency)
504
+ energyService.getCharacteristic(Characteristic.Freqency)
506
505
  .onGet(async () => {
507
506
  const value = sensor.frequency;
508
507
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} frequency: ${value} Hz`);
@@ -510,16 +509,15 @@ class Sensors extends EventEmitter {
510
509
  });
511
510
  }
512
511
  if (sensor.time) {
513
- sensorEnergyService.getCharacteristic(Characteristic.ReadingTime)
512
+ energyService.getCharacteristic(Characteristic.ReadingTime)
514
513
  .onGet(async () => {
515
514
  const value = sensor.time;
516
515
  const info = this.disableLogInfo ? false : this.emit('info', `sensor: ${sensorName} last report: ${value}`);
517
516
  return value;
518
517
  });
519
518
  }
520
- service.sensorEnergyService = sensorEnergyService;
519
+ this.sensorEnergyServices.push(energyService);
521
520
  }
522
- this.sensorServices.push(service);
523
521
  i++;
524
522
  }
525
523
  }