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