homebridge-melcloud-control 4.3.5-beta.25 → 4.3.5-beta.27

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.3.5-beta.25",
4
+ "version": "4.3.5-beta.27",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
package/src/deviceata.js CHANGED
@@ -1877,6 +1877,9 @@ class DeviceAta extends EventEmitter {
1877
1877
  //start external integrations
1878
1878
  if (this.restFul.enable || this.mqtt.enable) await this.externalIntegrations();
1879
1879
 
1880
+ //check state
1881
+ await this.melCloudAta.checkState();
1882
+
1880
1883
  //prepare accessory
1881
1884
  await new Promise(r => setTimeout(r, 5000));
1882
1885
  const accessory = await this.prepareAccessory();
@@ -16,6 +16,7 @@ class MelCloudAta extends EventEmitter {
16
16
  this.deviceId = device.id;
17
17
  this.defaultTempsFile = defaultTempsFile;
18
18
  this.accountFile = accountFile;
19
+ this.melcloudDevicesList = melcloudDevicesList;
19
20
  this.functions = new Functions(this.logWarn, this.logError, this.logDebug)
20
21
  .on('warn', warn => this.emit('warn', warn))
21
22
  .on('error', error => this.emit('error', error))
@@ -28,12 +29,10 @@ class MelCloudAta extends EventEmitter {
28
29
  let deviceData = null;
29
30
  melcloud.on('devicesList', async (devicesData) => {
30
31
  this.headers = devicesData.Headers;
31
- deviceData = devicesData.Devices.find(device => device.DeviceID === device.id);
32
+ deviceData = devicesData.Devices.find(device => device.DeviceID === this.deviceId);
32
33
  if (!deviceData) return;
33
34
  deviceData.Scenes = devicesData.Scenes ?? [];
34
35
 
35
- if (!this.logDebug) this.emit('debug', `MELCloud: ${JSON.stringify(melcloudDevices, null, 2)}`);
36
-
37
36
  //update state
38
37
  await this.updateState(deviceData);
39
38
  }).on('webSocket', async (parsedMessage) => {
@@ -93,12 +92,6 @@ class MelCloudAta extends EventEmitter {
93
92
  if (this.logError) this.emit('error', `Web socket process message error: ${error}`);
94
93
  }
95
94
  });
96
-
97
- //only update state once at the beginning
98
- const deviceInMelcloud = melcloudDevicesList.Devices.find(device => device.DeviceID === this.deviceId)
99
- deviceInMelcloud.Scenes = melcloudDevicesList.Scenes ?? [];
100
- this.headers = melcloudDevicesList.Headers;
101
- this.updateState(deviceInMelcloud);
102
95
  }
103
96
 
104
97
  async updateState(deviceData) {
@@ -174,6 +167,19 @@ class MelCloudAta extends EventEmitter {
174
167
  };
175
168
  };
176
169
 
170
+ async checkState() {
171
+ try {
172
+ const deviceInMelcloud = this.melcloudDevicesList.Devices.find(device => device.DeviceID === this.deviceId);
173
+ deviceInMelcloud.Scenes = this.melcloudDevicesList.Scenes ?? [];
174
+ this.headers = melcloudDevicesList.Headers;
175
+ this.updateState(deviceInMelcloud);
176
+
177
+ return true;
178
+ } catch (error) {
179
+ throw new Error(`Chaeck state error: ${error.message}`);
180
+ };
181
+ }
182
+
177
183
  async send(accountType, displayType, deviceData, flag, flagData) {
178
184
  try {
179
185
  let method = null