homebridge-tasmota-control 1.6.2-beta.9 → 1.6.3-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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/sensors.js +41 -42
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.9",
4
+ "version": "1.6.3-beta.0",
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,59 +130,56 @@ 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);
138
-
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],
135
+ const isEnergy = key === 'ENERGY';
136
+ const sensor = isEnergy ? { ...obj, ...energy } : obj;
137
+ this.sensors.push(sensor);
138
+
139
+ // update characteristics
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?.updateCharacteristic(charType, value);
156
156
  }
157
157
 
158
- //energy
159
- const isEnergy = key === 'ENERGY';
158
+ // 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);
178
- this.emit('warn', `Power: ${JSON.stringify(obj, null, 2)}`)
174
+ for (const [service, charType, value] of energyMap) {
175
+ service?.updateCharacteristic(charType, value);
179
176
  }
180
177
  }
181
- const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(obj, null, 2)}`) : false;
178
+
179
+ const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(sensor, null, 2)}`) : false;
182
180
  i++;
183
181
  }
182
+
184
183
  this.sensorsCount = this.sensors.length;
185
184
  }
186
185