homebridge-tasmota-control 1.6.2-beta.10 → 1.6.2-beta.11

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 +26 -16
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.10",
4
+ "version": "1.6.2-beta.11",
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,
@@ -128,15 +127,10 @@ class Sensors extends EventEmitter {
128
127
  factor: sensorData.Factor,
129
128
  frequency: sensorData.Frequency,
130
129
  load: sensorData.Load
131
- }
132
- if (obj.tempUnit === 'C') {
133
- obj.tempUnit = '°C';
134
- }
130
+ };
135
131
 
136
- //push to array
137
132
  this.sensors.push(obj);
138
133
 
139
- //update characteristics
140
134
  const charMap = [
141
135
  [this.sensorTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.temperature],
142
136
  [this.sensorReferenceTemperatureServices?.[i], Characteristic.CurrentTemperature, obj.referenceTemperature],
@@ -152,12 +146,18 @@ class Sensors extends EventEmitter {
152
146
  ];
153
147
 
154
148
  for (const [service, charType, value] of charMap) {
155
- service?.Characteristic?.[charType]?.updateCharacteristic?.(charType, value);
149
+ try {
150
+ service?.getCharacteristic(charType)?.updateValue(value);
151
+ } catch (err) {
152
+ this.emit?.('warn', `Failed to update ${charType.displayName}: ${err.message}`);
153
+ }
156
154
  }
157
155
 
158
- //energy
156
+ // ENERGY section
159
157
  const isEnergy = key === 'ENERGY';
160
158
  if (isEnergy) {
159
+ const energyService = this.sensorEnergyServices?.[i];
160
+
161
161
  const energyMap = [
162
162
  [Characteristic.Power, obj.power],
163
163
  [Characteristic.ApparentPower, obj.apparentPower],
@@ -172,15 +172,25 @@ class Sensors extends EventEmitter {
172
172
  [Characteristic.ReadingTime, obj.time],
173
173
  ];
174
174
 
175
- const energyService = this.sensorEnergyServices?.[i];
176
- for (const [charType, value] of energyMap) {
177
- energyService?.Characteristic?.[charType]?.updateCharacteristic?.(charType, value);
178
- const emitw = energyService?.Characteristic?.[charType] ? this.emit('warn', `Power: ${JSON.stringify(obj, null, 2)}`) : false
179
- }
175
+ energyMap.forEach(([charType, value]) => {
176
+ try {
177
+ energyService?.getCharacteristic(charType)?.updateValue(value);
178
+ this.emit?.('debug', `Updated ${charType.displayName}: ${value}`);
179
+ } catch (err) {
180
+ this.emit?.('warn', `Failed to update ${charType.displayName}: ${err.message}`);
181
+ }
182
+ });
183
+
184
+ this.emit('warn', `Power: ${JSON.stringify(obj, null, 2)}`);
185
+ }
186
+
187
+ if (this.enableDebugMode) {
188
+ this.emit('debug', `Sensor: ${JSON.stringify(obj, null, 2)}`);
180
189
  }
181
- const debug1 = this.enableDebugMode ? this.emit('debug', `Sensor: ${JSON.stringify(obj, null, 2)}`) : false;
190
+
182
191
  i++;
183
192
  }
193
+
184
194
  this.sensorsCount = this.sensors.length;
185
195
  }
186
196