homebridge-tasmota-control 1.6.0 → 1.6.1-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/sensors.js +56 -31
package/package.json
CHANGED
package/src/sensors.js
CHANGED
|
@@ -114,7 +114,7 @@ class Sensors extends EventEmitter {
|
|
|
114
114
|
carbonDioxyde: sensorData.CarbonDioxyde,
|
|
115
115
|
ambientLight: sensorData.Ambient,
|
|
116
116
|
motion: sensorData.Motion
|
|
117
|
-
}
|
|
117
|
+
};
|
|
118
118
|
if (obj.tempUnit === 'C') {
|
|
119
119
|
obj.tempUnit = '°C';
|
|
120
120
|
}
|
|
@@ -134,7 +134,7 @@ class Sensors extends EventEmitter {
|
|
|
134
134
|
factor: sensorData.Factor,
|
|
135
135
|
frequency: sensorData.Frequency,
|
|
136
136
|
load: sensorData.Load,
|
|
137
|
-
}
|
|
137
|
+
};
|
|
138
138
|
const sensor = key === 'ENERGY' ? { ...obj, ...obj1 } : obj;
|
|
139
139
|
const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(sensor, null, 2)}`) : false;
|
|
140
140
|
|
|
@@ -148,32 +148,57 @@ class Sensors extends EventEmitter {
|
|
|
148
148
|
for (let i = 0; i < this.sensorsCount; i++) {
|
|
149
149
|
const sensor = this.sensors[i];
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
151
|
+
const update = (service, charName, value) => {
|
|
152
|
+
const characteristic = service?.[i]?.Characteristic?.[charName];
|
|
153
|
+
if (characteristic && Characteristic?.[charName]) {
|
|
154
|
+
characteristic.updateCharacteristic(Characteristic[charName], value);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
|
|
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);
|
|
157
164
|
|
|
165
|
+
//humidity
|
|
166
|
+
update(this.sensorHumidityServices, 'CurrentRelativeHumidity', sensor.humidity);
|
|
167
|
+
|
|
168
|
+
//co₂
|
|
158
169
|
const co2Service = this.sensorCarbonDioxydeServices?.[i];
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
170
|
+
update(this.sensorCarbonDioxydeServices, 'CarbonDioxideDetected', sensor.carbonDioxyde > 1000);
|
|
171
|
+
update(this.sensorCarbonDioxydeServices, 'CarbonDioxideLevel', sensor.carbonDioxyde);
|
|
172
|
+
update(this.sensorCarbonDioxydeServices, 'CarbonDioxidePeakLevel', sensor.carbonDioxyde);
|
|
162
173
|
|
|
163
|
-
|
|
164
|
-
this.
|
|
174
|
+
//ambient light
|
|
175
|
+
update(this.sensorAmbientLightServices, 'CurrentAmbientLightLevel', sensor.ambientLight);
|
|
165
176
|
|
|
177
|
+
//motion
|
|
178
|
+
update(this.sensorMotionServices, 'MotionDetected', sensor.motion);
|
|
166
179
|
|
|
167
180
|
//energy
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
+
}
|
|
175
201
|
}
|
|
176
|
-
|
|
177
202
|
}
|
|
178
203
|
}
|
|
179
204
|
}
|
|
@@ -249,6 +274,16 @@ class Sensors extends EventEmitter {
|
|
|
249
274
|
//Prepare services
|
|
250
275
|
if (this.sensorsCount > 0) {
|
|
251
276
|
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 = [];
|
|
252
287
|
|
|
253
288
|
//temperature
|
|
254
289
|
let i = 0;
|
|
@@ -256,7 +291,6 @@ class Sensors extends EventEmitter {
|
|
|
256
291
|
const sensorName = sensor.name;
|
|
257
292
|
if (sensor.temperature) {
|
|
258
293
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Temperature Sensor Services`) : false;
|
|
259
|
-
this.sensorTemperatureServices = [];
|
|
260
294
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Temperature` : `${sensorName} Temperature`;
|
|
261
295
|
const sensorTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Temperature Sensor ${i}`);
|
|
262
296
|
sensorTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -273,7 +307,6 @@ class Sensors extends EventEmitter {
|
|
|
273
307
|
//reference temperature
|
|
274
308
|
if (sensor.referenceTemperature) {
|
|
275
309
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Reference Temperature Sensor Services`) : false;
|
|
276
|
-
this.sensorReferenceTemperatureServices = [];
|
|
277
310
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Reference Temperature` : `${sensorName} Reference Temperature`;
|
|
278
311
|
const sensorReferenceTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Reference Temperature Sensor ${i}`);
|
|
279
312
|
sensorReferenceTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -290,7 +323,6 @@ class Sensors extends EventEmitter {
|
|
|
290
323
|
//object temperature
|
|
291
324
|
if (sensor.objTemperature) {
|
|
292
325
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Obj Temperature Sensor Services`) : false;
|
|
293
|
-
this.sensorObjTemperatureServices = [];
|
|
294
326
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Obj Temperature` : `${sensorName} Obj Temperature`;
|
|
295
327
|
const sensorObjTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Obj Temperature Sensor ${i}`);
|
|
296
328
|
sensorObjTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -307,7 +339,6 @@ class Sensors extends EventEmitter {
|
|
|
307
339
|
//ambient temperature
|
|
308
340
|
if (sensor.ambTemperature) {
|
|
309
341
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Amb Temperature Sensor Services`) : false;
|
|
310
|
-
this.sensorAmbTemperatureServices = [];
|
|
311
342
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Amb Temperature` : `${sensorName} Amb Temperature`;
|
|
312
343
|
const sensorAmbTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Amb Temperature Sensor ${i}`);
|
|
313
344
|
sensorAmbTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -324,7 +355,6 @@ class Sensors extends EventEmitter {
|
|
|
324
355
|
//dew point temperature
|
|
325
356
|
if (sensor.dewPointTemperature) {
|
|
326
357
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Dew Point Temperature Sensor Services`) : false;
|
|
327
|
-
this.sensorDewPointTemperatureServices = [];
|
|
328
358
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Dew Point` : `${sensorName} Dew Point`;
|
|
329
359
|
const sensorDewPointTemperatureService = accessory.addService(Service.TemperatureSensor, serviceName, `Dew Point Temperature Sensor ${i}`);
|
|
330
360
|
sensorDewPointTemperatureService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -341,7 +371,6 @@ class Sensors extends EventEmitter {
|
|
|
341
371
|
//humidity
|
|
342
372
|
if (sensor.humidity) {
|
|
343
373
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Humidity Sensor Services`) : false;
|
|
344
|
-
this.sensorHumidityServices = [];
|
|
345
374
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Humidity` : `${sensorName} Humidity`;
|
|
346
375
|
const sensorHumidityService = accessory.addService(Service.HumiditySensor, serviceName, `Humidity Sensor ${i}`);
|
|
347
376
|
sensorHumidityService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -362,7 +391,6 @@ class Sensors extends EventEmitter {
|
|
|
362
391
|
//carbon dioxyde
|
|
363
392
|
if (sensor.carbonDioxyde) {
|
|
364
393
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Carbon Dioxyde Sensor Services`) : false;
|
|
365
|
-
this.sensorCarbonDioxydeServices = [];
|
|
366
394
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Carbon Dioxyde` : `${sensorName} Carbon Dioxyde`;
|
|
367
395
|
const sensorCarbonDioxydeService = accessory.addService(Service.CarbonDioxideSensor, serviceName, `Carbon Dioxyde Sensor ${i}`);
|
|
368
396
|
sensorCarbonDioxydeService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -391,7 +419,6 @@ class Sensors extends EventEmitter {
|
|
|
391
419
|
//ambient light
|
|
392
420
|
if (sensor.ambientLight) {
|
|
393
421
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Ambient Light Sensor Services`) : false;
|
|
394
|
-
this.sensorAmbientLightServices = [];
|
|
395
422
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Ambient Light` : `${sensorName} Ambient Light`;
|
|
396
423
|
const sensorAmbientLightService = accessory.addService(Service.LightSensor, serviceName, `Ambient Light Sensor ${i}`);
|
|
397
424
|
sensorAmbientLightService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -408,7 +435,6 @@ class Sensors extends EventEmitter {
|
|
|
408
435
|
//motion
|
|
409
436
|
if (sensor.motion) {
|
|
410
437
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare Motion Sensor Services`) : false;
|
|
411
|
-
this.sensorMotionServices = [];
|
|
412
438
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName} Motion` : `${sensorName} Motion`;
|
|
413
439
|
const sensorMotionService = accessory.addService(Service.MotionSensor, serviceName, `Motion Sensor ${i}`);
|
|
414
440
|
sensorMotionService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -425,7 +451,6 @@ class Sensors extends EventEmitter {
|
|
|
425
451
|
//energy
|
|
426
452
|
if (sensor.name === 'ENERGY') {
|
|
427
453
|
const debug4 = this.enableDebugMode ? this.emit('debug', `Prepare Power And Energy Service`) : false;
|
|
428
|
-
this.sensorEnergyServices = [];
|
|
429
454
|
const serviceName = this.sensorsNamePrefix ? `${accessoryName} ${sensorName}` : `${sensorName} Sensor`;
|
|
430
455
|
const energyService = accessory.addService(Service.PowerAndEnergyService, serviceName, `Energy Sensor ${i}`);
|
|
431
456
|
energyService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|