homebridge-melcloud-control 4.3.0-beta.13 → 4.3.0-beta.14
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 +18 -17
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.14",
|
|
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
|
@@ -27,8 +27,8 @@ class MelCloudAta extends EventEmitter {
|
|
|
27
27
|
this.deviceData = {};
|
|
28
28
|
this.headers = {};
|
|
29
29
|
this.hash = null;
|
|
30
|
-
this.start = true;
|
|
31
30
|
this.socket = null;
|
|
31
|
+
this.socketConnected = false;
|
|
32
32
|
|
|
33
33
|
//lock flag
|
|
34
34
|
this.locks = false;
|
|
@@ -75,18 +75,15 @@ class MelCloudAta extends EventEmitter {
|
|
|
75
75
|
const deviceData = devicesData.Devices.find(device => device.DeviceID === this.deviceId);
|
|
76
76
|
if (this.accountType === 'melcloudhome') {
|
|
77
77
|
deviceData.Scenes = devicesData.Scenes ?? [];
|
|
78
|
-
deviceData.Device.OperationMode = AirConditioner.OperationModeMapStringToEnum[deviceData.Device.OperationMode] ?? deviceData.Device.OperationMode;
|
|
79
|
-
deviceData.Device.ActualFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.ActualFanSpeed] ?? deviceData.Device.ActualFanSpeed;
|
|
80
|
-
deviceData.Device.SetFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.SetFanSpeed] ?? deviceData.Device.SetFanSpeed;
|
|
81
|
-
deviceData.Device.VaneVerticalDirection = AirConditioner.VaneVerticalDirectionMapStringToEnum[deviceData.Device.VaneVerticalDirection] ?? deviceData.Device.VaneVerticalDirection;
|
|
82
|
-
deviceData.Device.VaneHorizontalDirection = AirConditioner.VaneHorizontalDirectionMapStringToEnum[deviceData.Device.VaneHorizontalDirection] ?? deviceData.Device.VaneHorizontalDirection;
|
|
83
78
|
|
|
84
|
-
//read default temps
|
|
85
|
-
const temps = await this.functions.readData(this.defaultTempsFile, true);
|
|
86
|
-
deviceData.Device.DefaultHeatingSetTemperature = temps?.defaultHeatingSetTemperature ?? 20;
|
|
87
|
-
deviceData.Device.DefaultCoolingSetTemperature = temps?.defaultCoolingSetTemperature ?? 24;
|
|
88
79
|
|
|
89
|
-
if (this.
|
|
80
|
+
if (!this.socketConnected) {
|
|
81
|
+
deviceData.Device.OperationMode = AirConditioner.OperationModeMapStringToEnum[deviceData.Device.OperationMode] ?? deviceData.Device.OperationMode;
|
|
82
|
+
deviceData.Device.ActualFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.ActualFanSpeed] ?? deviceData.Device.ActualFanSpeed;
|
|
83
|
+
deviceData.Device.SetFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.SetFanSpeed] ?? deviceData.Device.SetFanSpeed;
|
|
84
|
+
deviceData.Device.VaneVerticalDirection = AirConditioner.VaneVerticalDirectionMapStringToEnum[deviceData.Device.VaneVerticalDirection] ?? deviceData.Device.VaneVerticalDirection;
|
|
85
|
+
deviceData.Device.VaneHorizontalDirection = AirConditioner.VaneHorizontalDirectionMapStringToEnum[deviceData.Device.VaneHorizontalDirection] ?? deviceData.Device.VaneHorizontalDirection;
|
|
86
|
+
|
|
90
87
|
const socket = new WebSocket(`wss://ws.melcloudhome.com/?hash=${devicesData.Hash}`, {
|
|
91
88
|
headers: {
|
|
92
89
|
'Origin': 'https://melcloudhome.com',
|
|
@@ -107,7 +104,6 @@ class MelCloudAta extends EventEmitter {
|
|
|
107
104
|
this.socket = socket;
|
|
108
105
|
this.socketConnected = true;
|
|
109
106
|
this.emit('success', `Socket Connect Success`);
|
|
110
|
-
this.start = false;
|
|
111
107
|
|
|
112
108
|
// start heartbeat
|
|
113
109
|
this.heartbeat = setInterval(() => {
|
|
@@ -124,22 +120,27 @@ class MelCloudAta extends EventEmitter {
|
|
|
124
120
|
const parsedMessage = JSON.parse(message);
|
|
125
121
|
const messageType = parsedMessage[0].messageType;
|
|
126
122
|
const messageData = parsedMessage[0].Data;
|
|
123
|
+
const unitId = messageData.id;
|
|
124
|
+
const unitType = messageData.unitType;
|
|
127
125
|
const stringifyMessage = JSON.stringify(parsedMessage, null, 2);
|
|
128
126
|
if (!this.logDebug) this.emit('warn', `Incoming message:', ${stringifyMessage}`);
|
|
129
127
|
|
|
130
|
-
switch (
|
|
131
|
-
case
|
|
132
|
-
const unitId = messageData.id;
|
|
133
|
-
const unitType = messageData.unitType;
|
|
128
|
+
switch (unitId) {
|
|
129
|
+
case this.deviceId:
|
|
134
130
|
const settings = messageData.settings[0];
|
|
135
131
|
const name = settings.name;
|
|
136
132
|
const value = settings.value;
|
|
137
|
-
|
|
133
|
+
deviceData.Device[name] = value;
|
|
138
134
|
break;
|
|
139
135
|
}
|
|
140
136
|
});
|
|
141
137
|
}
|
|
142
138
|
|
|
139
|
+
//read default temps
|
|
140
|
+
const temps = await this.functions.readData(this.defaultTempsFile, true);
|
|
141
|
+
deviceData.Device.DefaultHeatingSetTemperature = temps?.defaultHeatingSetTemperature ?? 20;
|
|
142
|
+
deviceData.Device.DefaultCoolingSetTemperature = temps?.defaultCoolingSetTemperature ?? 24;
|
|
143
|
+
|
|
143
144
|
}
|
|
144
145
|
if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
|
|
145
146
|
|