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.
- package/package.json +1 -1
- package/src/sensors.js +84 -86
package/package.json
CHANGED
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
|
|
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
|
-
|
|
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
|
-
//
|
|
140
|
-
|
|
141
|
-
|
|
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.
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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, `
|
|
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
|
-
|
|
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
|
|
430
|
-
|
|
428
|
+
const energyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `Energy Sensor ${i}`);
|
|
429
|
+
energyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
431
430
|
if (sensor.power) {
|
|
432
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
518
|
+
this.sensorEnergyServices.push(energyService);
|
|
520
519
|
}
|
|
521
|
-
this.sensorServices.push(service);
|
|
522
520
|
i++;
|
|
523
521
|
}
|
|
524
522
|
}
|