homebridge-melcloud-control 3.8.0-beta.8 → 3.8.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/src/deviceerv.js CHANGED
@@ -75,7 +75,6 @@ class DeviceErv extends EventEmitter {
75
75
  const buttonServiceType = ['', Service.Outlet, Service.Switch, Service.MotionSensor, Service.OccupancySensor, Service.ContactSensor][displayType];
76
76
  const buttonCharacteristicType = ['', Characteristic.On, Characteristic.On, Characteristic.MotionDetected, Characteristic.OccupancyDetected, Characteristic.ContactSensorState][displayType];
77
77
  button.name = button.name || 'Button'
78
- button.namePrefix = buttonNamePrefix;
79
78
  button.serviceType = buttonServiceType;
80
79
  button.characteristicType = buttonCharacteristicType;
81
80
  button.state = false;
@@ -237,6 +236,7 @@ class DeviceErv extends EventEmitter {
237
236
  async startImpulseGenerator() {
238
237
  try {
239
238
  //start impule generator
239
+ await new Promise(resolve => setTimeout(resolve, 1000));
240
240
  await this.melCloudErv.impulseGenerator.start([{ name: 'checkState', sampling: this.refreshInterval }]);
241
241
  return true;
242
242
  } catch (error) {
@@ -677,18 +677,16 @@ class DeviceErv extends EventEmitter {
677
677
  if (this.presetsConfiguredCount > 0) {
678
678
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare presets services`) : false;
679
679
  this.presetsServices = [];
680
-
681
- for (let i = 0; i < this.presetsConfiguredCount; i++) {
682
- const preset = this.presetsConfigured[i];
680
+ this.presetsConfigured.forEach((preset, i) => {
683
681
  const presetData = presetsOnServer.find(p => p.ID === preset.Id);
684
682
 
685
683
  //get preset name
686
- const presetName = preset.name;
684
+ const name = preset.name;
687
685
 
688
686
  //get preset name prefix
689
- const presetNamePrefix = preset.namePrefix;
687
+ const namePrefix = preset.namePrefix;
690
688
 
691
- const serviceName = presetNamePrefix ? `${accessoryName} ${presetName}` : presetName;
689
+ const serviceName = namePrefix ? `${accessoryName} ${name}` : name;
692
690
  const serviceType = preset.serviceType;
693
691
  const characteristicType = preset.characteristicType;
694
692
  const presetService = new serviceType(serviceName, `Preset ${deviceId} ${i}`);
@@ -722,12 +720,12 @@ class DeviceErv extends EventEmitter {
722
720
  };
723
721
 
724
722
  await this.melCloudErv.send(deviceData, this.displayMode);
725
- const info = this.disableLogInfo ? false : this.emit('message', `${state ? 'Set:' : 'Unset:'} ${presetName}`);
723
+ const info = this.disableLogInfo ? false : this.emit('message', `${state ? 'Set:' : 'Unset:'} ${name}`);
726
724
  } catch (error) {
727
725
  this.emit('warn', `Set preset error: ${error}`);
728
726
  };
729
727
  });
730
- };
728
+ });
731
729
  this.presetsServices.push(presetService);
732
730
  accessory.addService(presetService);
733
731
  };
@@ -736,10 +734,7 @@ class DeviceErv extends EventEmitter {
736
734
  if (this.buttonsConfiguredCount > 0) {
737
735
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare buttons services`) : false;
738
736
  this.buttonsServices = [];
739
-
740
- for (let i = 0; i < this.buttonsConfiguredCount; i++) {
741
- const button = this.buttonsConfigured[i];
742
-
737
+ this.buttonsConfigured.forEach((button, i) => {
743
738
  //get button mode
744
739
  const mode = button.mode;
745
740
 
@@ -747,9 +742,9 @@ class DeviceErv extends EventEmitter {
747
742
  const buttonName = button.name;
748
743
 
749
744
  //get button name prefix
750
- const buttonNamePrefix = button.namePrefix;
745
+ const namePrefix = button.namePrefix;
751
746
 
752
- const serviceName = buttonNamePrefix ? `${accessoryName} ${buttonName}` : buttonName;
747
+ const serviceName = namePrefix ? `${accessoryName} ${buttonName}` : buttonName;
753
748
  const serviceType = button.serviceType;
754
749
  const characteristicType = button.characteristicType;
755
750
  const buttonService = new serviceType(serviceName, `Button ${deviceId} ${i}`);
@@ -846,7 +841,7 @@ class DeviceErv extends EventEmitter {
846
841
  });
847
842
  this.buttonsServices.push(buttonService);
848
843
  accessory.addService(buttonService);
849
- };
844
+ });
850
845
  };
851
846
 
852
847
  return accessory;
@@ -889,7 +884,7 @@ class DeviceErv extends EventEmitter {
889
884
  this.firmwareRevision = firmwareAppVersion;
890
885
  this.displayDeviceInfo = false;
891
886
  })
892
- .on('deviceState', (deviceData) => {
887
+ .on('deviceState', async (deviceData) => {
893
888
  this.deviceData = deviceData;
894
889
 
895
890
  //presets
@@ -1136,8 +1131,7 @@ class DeviceErv extends EventEmitter {
1136
1131
 
1137
1132
  //update presets state
1138
1133
  if (this.presetsConfigured.length > 0) {
1139
- for (let i = 0; i < this.presetsConfigured.length; i++) {
1140
- const preset = this.presetsConfigured[i];
1134
+ this.presetsConfigured.forEach((preset, i) => {
1141
1135
  const presetData = presetsOnServer.find(p => p.ID === preset.Id);
1142
1136
 
1143
1137
  preset.state = presetData ? (presetData.Power === power
@@ -1151,13 +1145,12 @@ class DeviceErv extends EventEmitter {
1151
1145
  this.presetsServices[i]
1152
1146
  .updateCharacteristic(characteristicType, preset.state)
1153
1147
  };
1154
- };
1148
+ });
1155
1149
  };
1156
1150
 
1157
1151
  //update buttons state
1158
1152
  if (this.buttonsConfiguredCount > 0) {
1159
- for (let i = 0; i < this.buttonsConfiguredCount; i++) {
1160
- const button = this.buttonsConfigured[i];
1153
+ this.buttonsConfigured.forEach((button, i) => {
1161
1154
  const mode = button.mode;;
1162
1155
  switch (mode) {
1163
1156
  case 0: //POWER ON,OFF
@@ -1213,7 +1206,7 @@ class DeviceErv extends EventEmitter {
1213
1206
  this.buttonsServices[i]
1214
1207
  .updateCharacteristic(characteristicType, button.state)
1215
1208
  };
1216
- };
1209
+ });
1217
1210
  };
1218
1211
 
1219
1212
  //log current state
@@ -1234,6 +1227,13 @@ class DeviceErv extends EventEmitter {
1234
1227
  const info7 = hasPM25Sensor ? this.emit('message', `PM2.5 air quality: ${Ventilation.PM25AirQuality[pM25AirQuality]}`) : false;
1235
1228
  const info8 = hasPM25Sensor ? this.emit('message', `PM2.5 level: ${pM25Level} µg/m`) : false;
1236
1229
  };
1230
+
1231
+ //prepare accessory
1232
+ if (this.startPrepareAccessory) {
1233
+ const accessory = await this.prepareAccessory(this.accountInfo, deviceData, this.deviceId, this.deviceTypeText, this.deviceName, this.accountName);
1234
+ this.emit('publishAccessory', accessory);
1235
+ this.startPrepareAccessory = false;
1236
+ }
1237
1237
  })
1238
1238
  .on('success', (success) => {
1239
1239
  this.emit('success', success);
@@ -1261,18 +1261,7 @@ class DeviceErv extends EventEmitter {
1261
1261
  const startExternalIntegrations = this.restFul.enable || this.mqtt.enable ? await this.externalIntegrations() : false;
1262
1262
 
1263
1263
  //check state
1264
- const deviceData = await this.melCloudErv.checkState();
1265
-
1266
- if (deviceData === false) {
1267
- return null;
1268
- }
1269
-
1270
- //prepare accessory
1271
- if (this.startPrepareAccessory) {
1272
- const accessory = await this.prepareAccessory(this.accountInfo, deviceData, this.deviceId, this.deviceTypeText, this.deviceName, this.accountName);
1273
- this.emit('publishAccessory', accessory);
1274
- this.startPrepareAccessory = false;
1275
- }
1264
+ await this.melCloudErv.checkState();
1276
1265
 
1277
1266
  return true;
1278
1267
  } catch (error) {
@@ -354,7 +354,7 @@ class MelCloudAta extends EventEmitter {
354
354
  //emit state
355
355
  this.emit('deviceState', deviceData);
356
356
 
357
- return deviceData;
357
+ return true;
358
358
  } catch (error) {
359
359
  throw new Error(`Check state error: ${error}`);
360
360
  };
@@ -418,7 +418,7 @@ class MelCloudAtw extends EventEmitter {
418
418
  //emit state
419
419
  this.emit('deviceState', deviceData);
420
420
 
421
- return deviceData;
421
+ return true;
422
422
  } catch (error) {
423
423
  throw new Error(`Check state error: ${error}`);
424
424
  };
@@ -342,7 +342,7 @@ class MelCloudErv extends EventEmitter {
342
342
  //emit state
343
343
  this.emit('deviceState', deviceData);
344
344
 
345
- return deviceData;
345
+ return true;
346
346
  } catch (error) {
347
347
  throw new Error(`Check state error: ${error}`);
348
348
  };