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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/sensors.js +83 -108
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.0",
4
+ "version": "1.6.1-beta.10",
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,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
- //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
+ if (serviceExist && Characteristic[charName]) {
144
+ service.updateCharacteristic(Characteristic[charName], value);
155
145
  }
156
146
  };
157
147
 
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
- }
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.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 = [];
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, `Temperature Sensor ${i}`);
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
- this.sensorTemperatureServices.push(sensorTemperatureService);
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, `Reference Temperature Sensor ${i}`);
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
- this.sensorReferenceTemperatureServices.push(sensorReferenceTemperatureService);
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, `Obj Temperature Sensor ${i}`);
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
- this.sensorObjTemperatureServices.push(sensorObjTemperatureService);
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, `Amb Temperature Sensor ${i}`);
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
- this.sensorAmbTemperatureServices.push(sensorAmbTemperatureService);
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, `Dew Point Temperature Sensor ${i}`);
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
- this.sensorDewPointTemperatureServices.push(sensorDewPointTemperatureService);
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, `Humidity Sensor ${i}`);
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
- this.sensorHumidityServices.push(sensorHumidityService);
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, `Carbon Dioxyde Sensor ${i}`);
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
- this.sensorCarbonDioxydeServices.push(sensorCarbonDioxydeService);
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, `Ambient Light Sensor ${i}`);
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
- this.sensorAmbientLightServices.push(sensorAmbientLightService);
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, `Motion Sensor ${i}`);
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
- this.sensorMotionServices.push(sensorMotionService);
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} Sensor`;
455
- const energyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `Energy Sensor ${i}`);
456
- energyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
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
- energyService.getCharacteristic(Characteristic.Power)
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
- energyService.getCharacteristic(Characteristic.ApparentPower)
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
- energyService.getCharacteristic(Characteristic.ReactivePower)
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
- energyService.getCharacteristic(Characteristic.EnergyToday)
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
- energyService.getCharacteristic(Characteristic.EnergyLastDay)
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
- energyService.getCharacteristic(Characteristic.EnergyLifetime)
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
- energyService.getCharacteristic(Characteristic.Current)
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
- energyService.getCharacteristic(Characteristic.Voltage)
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
- energyService.getCharacteristic(Characteristic.Factor)
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
- energyService.getCharacteristic(Characteristic.Freqency)
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
- energyService.getCharacteristic(Characteristic.ReadingTime)
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
- this.sensorEnergyServices.push(energyService);
519
+ service.sensorEnergyService = sensorEnergyService;
546
520
  }
521
+ this.sensorServices.push(service);
547
522
  i++;
548
523
  }
549
524
  }