homebridge-tasmota-control 1.6.1-beta.9 → 1.6.1

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