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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/sensors.js +83 -107
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.1",
4
+ "version": "1.6.1-beta.11",
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;
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
- //energy
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
- //push to array
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
- //update characteristics
147
- if (this.sensorsCount > 0) {
148
- for (let i = 0; i < this.sensorsCount; i++) {
149
- const sensor = this.sensors[i];
150
-
151
- const update = (service, charName, value) => {
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
+ 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.sensorTemperatureServices, 'CurrentTemperature', sensor.temperature);
160
- update(this.sensorReferenceTemperatureServices, 'CurrentTemperature', sensor.referenceTemperature);
161
- update(this.sensorObjTemperatureServices, 'CurrentTemperature', sensor.objTemperature);
162
- update(this.sensorAmbTemperatureServices, 'CurrentTemperature', sensor.ambTemperature);
163
- update(this.sensorDewPointTemperatureServices, 'CurrentTemperature', sensor.dewPointTemperature);
164
-
165
- //humidity
166
- update(this.sensorHumidityServices, 'CurrentRelativeHumidity', sensor.humidity);
167
-
168
- //co
169
- const co2Service = this.sensorCarbonDioxydeServices?.[i];
170
- update(this.sensorCarbonDioxydeServices, 'CarbonDioxideDetected', sensor.carbonDioxyde > 1000);
171
- update(this.sensorCarbonDioxydeServices, 'CarbonDioxideLevel', sensor.carbonDioxyde);
172
- update(this.sensorCarbonDioxydeServices, 'CarbonDioxidePeakLevel', sensor.carbonDioxyde);
173
-
174
- //ambient light
175
- update(this.sensorAmbientLightServices, 'CurrentAmbientLightLevel', sensor.ambientLight);
176
-
177
- //motion
178
- update(this.sensorMotionServices, 'MotionDetected', sensor.motion);
179
-
180
- //energy
181
- const energyFields = {
182
- Power: 'power',
183
- ApparentPower: 'apparentpower',
184
- ReactivePower: 'reactivepower',
185
- EnergyToday: 'energytoday',
186
- EnergyLastDay: 'energylastday',
187
- EnergyLifetime: 'energylifetime',
188
- Current: 'current',
189
- Voltage: 'voltage',
190
- Factor: 'factor',
191
- Frequency: 'frequency',
192
- ReadingTime: 'readingtime'
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.sensorTemperatureServices = [];
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, `Temperature Sensor ${i}`);
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
- this.sensorTemperatureServices.push(sensorTemperatureService);
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, `Reference Temperature Sensor ${i}`);
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
- this.sensorReferenceTemperatureServices.push(sensorReferenceTemperatureService);
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, `Obj Temperature Sensor ${i}`);
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
- this.sensorObjTemperatureServices.push(sensorObjTemperatureService);
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, `Amb Temperature Sensor ${i}`);
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
- this.sensorAmbTemperatureServices.push(sensorAmbTemperatureService);
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, `Dew Point Temperature Sensor ${i}`);
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
- this.sensorDewPointTemperatureServices.push(sensorDewPointTemperatureService);
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, `Humidity Sensor ${i}`);
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
- this.sensorHumidityServices.push(sensorHumidityService);
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, `Carbon Dioxyde Sensor ${i}`);
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
- this.sensorCarbonDioxydeServices.push(sensorCarbonDioxydeService);
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, `Ambient Light Sensor ${i}`);
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
- this.sensorAmbientLightServices.push(sensorAmbientLightService);
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, `Motion Sensor ${i}`);
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
- this.sensorMotionServices.push(sensorMotionService);
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 energyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `Energy Sensor ${i}`);
456
- energyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
430
+ const sensorEnergyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `sensorEnergyService${i}`);
431
+ sensorEnergyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
457
432
  if (sensor.power) {
458
- energyService.getCharacteristic(Characteristic.Power)
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
- energyService.getCharacteristic(Characteristic.ApparentPower)
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
- energyService.getCharacteristic(Characteristic.ReactivePower)
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
- energyService.getCharacteristic(Characteristic.EnergyToday)
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
- energyService.getCharacteristic(Characteristic.EnergyLastDay)
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
- energyService.getCharacteristic(Characteristic.EnergyLifetime)
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
- energyService.getCharacteristic(Characteristic.Current)
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
- energyService.getCharacteristic(Characteristic.Voltage)
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
- energyService.getCharacteristic(Characteristic.Factor)
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
- energyService.getCharacteristic(Characteristic.Freqency)
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
- energyService.getCharacteristic(Characteristic.ReadingTime)
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
- this.sensorEnergyServices.push(energyService);
520
+ service.sensorEnergyService = sensorEnergyService;
546
521
  }
522
+ this.sensorServices.push(service);
547
523
  i++;
548
524
  }
549
525
  }