homebridge-melcloud-control 4.3.0-beta.52 → 4.3.0-beta.54
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 +1 -1
- package/src/melcloudata.js +12 -11
- package/src/melcloudhome.js +5 -5
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.0-beta.
|
|
4
|
+
"version": "4.3.0-beta.54",
|
|
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/melcloudata.js
CHANGED
|
@@ -30,7 +30,6 @@ class MelCloudAta extends EventEmitter {
|
|
|
30
30
|
this.connecting = false;
|
|
31
31
|
this.socketConnected = false;
|
|
32
32
|
this.heartbeat = null;
|
|
33
|
-
this.reconnectDelay = 1000;
|
|
34
33
|
|
|
35
34
|
//lock flag
|
|
36
35
|
this.locks = false;
|
|
@@ -79,9 +78,9 @@ class MelCloudAta extends EventEmitter {
|
|
|
79
78
|
|
|
80
79
|
this.headers = devicesData.Headers;
|
|
81
80
|
const deviceData = devicesData.Devices.find(device => device.DeviceID === this.deviceId);
|
|
81
|
+
deviceData.Scenes = devicesData.Scenes ?? [];
|
|
82
82
|
|
|
83
83
|
if (this.accountType === 'melcloudhome') {
|
|
84
|
-
deviceData.Scenes = devicesData.Scenes ?? [];
|
|
85
84
|
deviceData.Device.OperationMode = AirConditioner.OperationModeMapStringToEnum[deviceData.Device.OperationMode] ?? deviceData.Device.OperationMode;
|
|
86
85
|
deviceData.Device.ActualFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.ActualFanSpeed] ?? deviceData.Device.ActualFanSpeed;
|
|
87
86
|
deviceData.Device.SetFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.SetFanSpeed] ?? deviceData.Device.SetFanSpeed;
|
|
@@ -96,9 +95,9 @@ class MelCloudAta extends EventEmitter {
|
|
|
96
95
|
if (!this.connecting && !this.socketConnected) {
|
|
97
96
|
this.connecting = true;
|
|
98
97
|
|
|
99
|
-
const url = `${ApiUrlsHome.WebSocketURL}${devicesData.
|
|
98
|
+
const url = `${ApiUrlsHome.WebSocketURL}${devicesData.WebSocketOptions.Hash}`;
|
|
100
99
|
try {
|
|
101
|
-
const socket = new WebSocket(url, { headers: devicesData.
|
|
100
|
+
const socket = new WebSocket(url, { headers: devicesData.WebSocketOptions.Headers })
|
|
102
101
|
.on('error', (error) => {
|
|
103
102
|
if (this.logError) this.emit('error', `Socket error: ${error}`);
|
|
104
103
|
socket.close();
|
|
@@ -140,13 +139,15 @@ class MelCloudAta extends EventEmitter {
|
|
|
140
139
|
const messageType = parsedMessage[0].messageType;
|
|
141
140
|
switch (messageType) {
|
|
142
141
|
case 'unitStateChanged':
|
|
143
|
-
const settings = Object.fromEntries(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
142
|
+
const settings = Object.fromEntries(
|
|
143
|
+
messageData.settings.map(({ name, value }) => {
|
|
144
|
+
let parsedValue = value;
|
|
145
|
+
if (value === "True") parsedValue = true;
|
|
146
|
+
else if (value === "False") parsedValue = false;
|
|
147
|
+
else if (!isNaN(value) && value !== "") parsedValue = Number(value);
|
|
148
|
+
return [name, parsedValue];
|
|
149
|
+
})
|
|
150
|
+
);
|
|
150
151
|
Object.assign(deviceData.Device, settings);
|
|
151
152
|
updateDeviceState = true;
|
|
152
153
|
break;
|
package/src/melcloudhome.js
CHANGED
|
@@ -23,7 +23,7 @@ class MelCloudHome extends EventEmitter {
|
|
|
23
23
|
this.buildingsFile = buildingsFile;
|
|
24
24
|
this.devicesFile = devicesFile;
|
|
25
25
|
this.headers = {};
|
|
26
|
-
this.
|
|
26
|
+
this.webSocketOptions = {};
|
|
27
27
|
|
|
28
28
|
this.functions = new Functions(this.logWarn, this.logError, this.logDebug)
|
|
29
29
|
.on('warn', warn => this.emit('warn', warn))
|
|
@@ -209,7 +209,7 @@ class MelCloudHome extends EventEmitter {
|
|
|
209
209
|
devicesList.Devices = devices;
|
|
210
210
|
devicesList.Scenes = scenes;
|
|
211
211
|
devicesList.Headers = this.headers;
|
|
212
|
-
devicesList.
|
|
212
|
+
devicesList.WebSocketOptions = this.webSocketOptions;
|
|
213
213
|
|
|
214
214
|
await this.functions.saveData(this.devicesFile, devicesList);
|
|
215
215
|
if (this.logDebug) this.emit('debug', `${devicesCount} devices saved`);
|
|
@@ -374,9 +374,9 @@ class MelCloudHome extends EventEmitter {
|
|
|
374
374
|
headers: headers
|
|
375
375
|
})
|
|
376
376
|
|
|
377
|
-
this.
|
|
378
|
-
|
|
379
|
-
|
|
377
|
+
this.webSocketOptions = {
|
|
378
|
+
Hash: hash,
|
|
379
|
+
Headers: {
|
|
380
380
|
'Origin': ApiUrlsHome.BaseURL,
|
|
381
381
|
'Pragma': 'no-cache',
|
|
382
382
|
'Cache-Control': 'no-cache'
|