homebridge-tasmota-control 1.6.2-beta.8 → 1.6.2

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 +37 -43
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.2-beta.8",
4
+ "version": "1.6.2",
5
5
  "description": "Homebridge plugin to control Tasmota flashed devices.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
package/src/sensors.js CHANGED
@@ -98,11 +98,10 @@ class Sensors extends EventEmitter {
98
98
  for (const [key, value] of Object.entries(sensorData)) {
99
99
  const sensorData = value;
100
100
 
101
- //sensor
102
101
  const obj = {
103
102
  name: key,
104
103
  time: statusSns.Time,
105
- tempUnit: statusSns.TempUnit,
104
+ tempUnit: statusSns.TempUnit === 'C' ? '°C' : statusSns.TempUnit,
106
105
  pressureUnit: statusSns.PressureUnit,
107
106
  temperature: sensorData.Temperature,
108
107
  referenceTemperature: sensorData.ReferenceTemperature,
@@ -115,6 +114,9 @@ class Sensors extends EventEmitter {
115
114
  carbonDioxyde: sensorData.CarbonDioxyde,
116
115
  ambientLight: sensorData.Ambient,
117
116
  motion: sensorData.Motion,
117
+ };
118
+
119
+ const energy = {
118
120
  power: sensorData.Power,
119
121
  apparentPower: sensorData.ApparentPower,
120
122
  reactivePower: sensorData.ReactivePower,
@@ -128,63 +130,55 @@ class Sensors extends EventEmitter {
128
130
  factor: sensorData.Factor,
129
131
  frequency: sensorData.Frequency,
130
132
  load: sensorData.Load
131
- }
132
- if (obj.tempUnit === 'C') {
133
- obj.tempUnit = '°C';
134
- }
133
+ };
135
134
 
136
- //push to array
137
- this.sensors.push(obj);
135
+ const isEnergy = key === 'ENERGY';
136
+ const sensor = isEnergy ? { ...obj, ...energy } : obj;
137
+ this.sensors.push(sensor);
138
138
 
139
139
  //update characteristics
140
- const charMap = [
141
- [this.sensorTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.temperature],
142
- [this.sensorReferenceTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.referenceTemperature],
143
- [this.sensorObjTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.objTemperature],
144
- [this.sensorAmbTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.ambTemperature],
145
- [this.sensorDewPointTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.dewPointTemperature],
146
- [this.sensorHumidityServices?.[i], Characteristic.CurrentRelativeHumidity, obj.humidity],
147
- [this.sensorCarbonDioxydeServices?.[i], Characteristic.CarbonDioxideDetected, obj.carbonDioxyde > 1000],
148
- [this.sensorCarbonDioxydeServices?.[i], Characteristic.CarbonDioxideLevel, obj.carbonDioxyde],
149
- [this.sensorCarbonDioxydeServices?.[i], Characteristic.CarbonDioxidePeakLevel, obj.carbonDioxyde],
150
- [this.sensorAmbientLightServices?.[i], Characteristic.CurrentAmbientLightLevel, obj.ambientLight],
151
- [this.sensorMotionServices?.[i], Characteristic.MotionDetected, obj.motion],
140
+ const servicesMap = [
141
+ [this.sensorTemperatureServices?.[i], Characteristic.CurrentTemperature, sensor.temperature],
142
+ [this.sensorReferenceTemperatureServices?.[i], Characteristic.CurrentTemperature, sensor.referenceTemperature],
143
+ [this.sensorObjTemperatureServices?.[i], Characteristic.CurrentTemperature, sensor.objTemperature],
144
+ [this.sensorAmbTemperatureServices?.[i], Characteristic.CurrentTemperature, sensor.ambTemperature],
145
+ [this.sensorDewPointTemperatureServices?.[i], Characteristic.CurrentTemperature, sensor.dewPointTemperature],
146
+ [this.sensorHumidityServices?.[i], Characteristic.CurrentRelativeHumidity, sensor.humidity],
147
+ [this.sensorCarbonDioxydeServices?.[i], Characteristic.CarbonDioxideDetected, sensor.carbonDioxyde > 1000],
148
+ [this.sensorCarbonDioxydeServices?.[i], Characteristic.CarbonDioxideLevel, sensor.carbonDioxyde],
149
+ [this.sensorCarbonDioxydeServices?.[i], Characteristic.CarbonDioxidePeakLevel, sensor.carbonDioxyde],
150
+ [this.sensorAmbientLightServices?.[i], Characteristic.CurrentAmbientLightLevel, sensor.ambientLight],
151
+ [this.sensorMotionServices?.[i], Characteristic.MotionDetected, sensor.motion],
152
152
  ];
153
153
 
154
- for (const [service, charType, value] of charMap) {
155
- service?.Characteristic?.[charType]?.updateCharacteristic?.(charType, value);
154
+ for (const [service, charType, value] of servicesMap) {
155
+ service?.getCharacteristic(charType)?.updateValue(value);
156
156
  }
157
157
 
158
158
  //energy
159
- const isEnergy = key === 'ENERGY';
160
159
  if (isEnergy) {
161
160
  const energyMap = [
162
- [Characteristic.Power, obj.power],
163
- [Characteristic.ApparentPower, obj.apparentPower],
164
- [Characteristic.ReactivePower, obj.reactivePower],
165
- [Characteristic.EnergyToday, obj.energyToday],
166
- [Characteristic.EnergyLastDay, obj.energyLastDay],
167
- [Characteristic.EnergyLifetime, obj.energyLifetime],
168
- [Characteristic.Current, obj.current],
169
- [Characteristic.Voltage, obj.voltage],
170
- [Characteristic.Factor, obj.factor],
171
- [Characteristic.Frequency, obj.frequency],
172
- [Characteristic.ReadingTime, obj.time],
161
+ [this.sensorEnergyServices?.[i], Characteristic.Power, sensor.power],
162
+ [this.sensorEnergyServices?.[i], Characteristic.ApparentPower, sensor.apparentPower],
163
+ [this.sensorEnergyServices?.[i], Characteristic.ReactivePower, sensor.reactivePower],
164
+ [this.sensorEnergyServices?.[i], Characteristic.EnergyToday, sensor.energyToday],
165
+ [this.sensorEnergyServices?.[i], Characteristic.EnergyLastDay, sensor.energyLastDay],
166
+ [this.sensorEnergyServices?.[i], Characteristic.EnergyLifetime, sensor.energyLifetime],
167
+ [this.sensorEnergyServices?.[i], Characteristic.Current, sensor.current],
168
+ [this.sensorEnergyServices?.[i], Characteristic.Voltage, sensor.voltage],
169
+ [this.sensorEnergyServices?.[i], Characteristic.Factor, sensor.factor],
170
+ [this.sensorEnergyServices?.[i], Characteristic.Frequency, sensor.frequency],
171
+ [this.sensorEnergyServices?.[i], Characteristic.ReadingTime, sensor.time],
173
172
  ];
174
173
 
175
- const energyService = this.sensorEnergyServices?.[i];
176
- for (const [charType, value] of energyMap) {
177
- energyService?.Characteristic?.[charType]?.updateCharacteristic?.(charType, value);
174
+ for (const [service, charType, value] of energyMap) {
175
+ service?.getCharacteristic(charType)?.updateValue(value);
178
176
  }
179
177
  }
180
-
181
- const emit = this.sensorEnergyServices?.[i]?.Characteristic?.Power ? this.emit('warn', `Power: ${JSON.stringify(obj, null, 2)}`) : false;
182
-
183
-
184
- const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(obj, null, 2)}`) : false;
185
- this.emit('warn', `Sensor: ${JSON.stringify(obj, null, 2)}`)
178
+ const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(sensor, null, 2)}`) : false;
186
179
  i++;
187
180
  }
181
+
188
182
  this.sensorsCount = this.sensors.length;
189
183
  }
190
184