homebridge-melcloud-control 4.7.5-beta.3 → 4.7.5-beta.5

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.7.5-beta.3",
4
+ "version": "4.7.5-beta.5",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
@@ -37,8 +37,6 @@ class MelCloudAta extends EventEmitter {
37
37
  const messageType = message.messageType;
38
38
  const messageData = message.Data;
39
39
  const settings = this.functions.parseArrayNameValue(messageData.settings);
40
-
41
- let updateState = false;
42
40
  switch (messageType) {
43
41
  case 'unitStateChanged':
44
42
 
@@ -57,8 +55,6 @@ class MelCloudAta extends EventEmitter {
57
55
  deviceData.Device[key] = value;
58
56
  }
59
57
  }
60
-
61
- updateState = true;
62
58
  break;
63
59
  case 'ataUnitFrostProtectionTriggered':
64
60
  deviceData.FrostProtection.Active = messageData.active;
@@ -71,8 +67,6 @@ class MelCloudAta extends EventEmitter {
71
67
  deviceData.Device[key] = value;
72
68
  }
73
69
  }
74
-
75
- updateState = true;
76
70
  break;
77
71
  case 'ataUnitOverheatProtectionTriggered':
78
72
  deviceData.OverheatProtection.Active = messageData.active;
@@ -85,18 +79,14 @@ class MelCloudAta extends EventEmitter {
85
79
  deviceData.Device[key] = value;
86
80
  }
87
81
  }
88
-
89
- updateState = true;
90
82
  break;
91
83
  case 'unitHolidayModeTriggered':
92
84
  deviceData.Device.Power = settings.Power;
93
85
  deviceData.HolidayMode.Enabled = settings.HolidayMode;
94
86
  deviceData.HolidayMode.Active = messageData.active;
95
- updateState = true;
96
87
  break;
97
88
  case 'unitWifiSignalChanged':
98
89
  deviceData.Rssi = messageData.rssi;
99
- updateState = true;
100
90
  break;
101
91
  case 'unitCommunicationRestored':
102
92
  deviceData.Device.IsConnected = true;
@@ -107,20 +97,27 @@ class MelCloudAta extends EventEmitter {
107
97
  }
108
98
 
109
99
  //update state
110
- if (updateState) await this.updateState('ws', deviceData);
100
+ if (!this.logDebug) this.emit('debug', `Web socket update unit ${this.deviceId}settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
101
+ await this.updateState('ws', deviceData);
111
102
  } catch (error) {
112
- if (this.logError) this.emit('error', `Web socket process message error: ${error}`);
103
+ if (this.logError) this.emit('error', `Web socket unit ${this.deviceId} process message error: ${error}`);
113
104
  }
114
105
  break;
115
106
  case 'request':
116
107
  try {
108
+ //update device data
109
+ deviceData = message;
110
+
117
111
  //update state
118
- if (this.logDebug) this.emit('debug', `Request update settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
112
+ if (!this.logDebug) this.emit('debug', `Request update unit ${this.deviceId} settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
119
113
  await this.updateState('request', deviceData);
120
114
  } catch (error) {
121
- if (this.logError) this.emit('error', `Request process message error: ${error}`);
115
+ if (this.logError) this.emit('error', `Request unit ${this.deviceId} process message error: ${error}`);
122
116
  }
123
117
  break;
118
+ default:
119
+ if (this.logDebug) this.emit('debug', `Unit ${this.deviceId}, received unknown type: ${type}`);
120
+ return;
124
121
  }
125
122
  });
126
123
  }
@@ -36,8 +36,6 @@ class MelCloudAtw extends EventEmitter {
36
36
  const messageType = message.messageType;
37
37
  const messageData = message.Data;
38
38
  const settings = this.functions.parseArrayNameValue(messageData.settings);
39
-
40
- let updateState = false;
41
39
  switch (messageType) {
42
40
  case 'unitStateChanged':
43
41
 
@@ -56,8 +54,6 @@ class MelCloudAtw extends EventEmitter {
56
54
  deviceData.Device[key] = value;
57
55
  }
58
56
  }
59
-
60
- updateState = true;
61
57
  break;
62
58
  case 'atwUnitFrostProtectionTriggered':
63
59
  deviceData.FrostProtection.Active = messageData.active;
@@ -70,17 +66,14 @@ class MelCloudAtw extends EventEmitter {
70
66
  deviceData.Device[key] = value;
71
67
  }
72
68
  }
73
- updateState = true;
74
69
  break;
75
70
  case 'unitHolidayModeTriggered':
76
71
  deviceData.Device.Power = settings.Power;
77
72
  deviceData.HolidayMode.Enabled = settings.HolidayMode;
78
73
  deviceData.HolidayMode.Active = messageData.active;
79
- updateState = true;
80
74
  break;
81
75
  case 'unitWifiSignalChanged':
82
76
  deviceData.Rssi = messageData.rssi;
83
- updateState = true;
84
77
  break;
85
78
  case 'unitCommunicationRestored':
86
79
  deviceData.Device.IsConnected = true;
@@ -91,20 +84,27 @@ class MelCloudAtw extends EventEmitter {
91
84
  }
92
85
 
93
86
  //update state
94
- if (updateState) await this.updateState('ws', deviceData);
87
+ if (this.logDebug) this.emit('debug', `Web socket update unit ${this.deviceId} settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
88
+ await this.updateState('ws', deviceData);
95
89
  } catch (error) {
96
- if (this.logError) this.emit('error', `Web socket process message error: ${error}`);
90
+ if (this.logError) this.emit('error', `Web socket unit ${this.deviceId} process message error: ${error}`);
97
91
  }
98
92
  break;
99
93
  case 'request':
100
94
  try {
95
+ //update device data
96
+ deviceData = message;
97
+
101
98
  //update state
102
- if (this.logDebug) this.emit('debug', `Request update settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
99
+ if (this.logDebug) this.emit('debug', `Request update unit ${this.deviceId} settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
103
100
  await this.updateState('request', deviceData);
104
101
  } catch (error) {
105
- if (this.logError) this.emit('error', `Request process message error: ${error}`);
102
+ if (this.logError) this.emit('error', `Request unit ${this.deviceId} process message error: ${error}`);
106
103
  }
107
104
  break;
105
+ default:
106
+ if (this.logDebug) this.emit('debug', `Unit ${this.deviceId}, received unknown type: ${type}`);
107
+ return;
108
108
  }
109
109
  });
110
110
  }
@@ -36,8 +36,6 @@ class MelCloudErv extends EventEmitter {
36
36
  const messageType = message.messageType;
37
37
  const messageData = message.Data;
38
38
  const settings = this.functions.parseArrayNameValue(messageData.settings);
39
-
40
- let updateState = false;
41
39
  switch (messageType) {
42
40
  case 'unitStateChanged':
43
41
 
@@ -56,8 +54,6 @@ class MelCloudErv extends EventEmitter {
56
54
  deviceData.Device[key] = value;
57
55
  }
58
56
  }
59
-
60
- updateState = true;
61
57
  break;
62
58
  case 'ervUnitFrostProtectionTriggered':
63
59
  deviceData.FrostProtection.Active = messageData.active;
@@ -70,17 +66,14 @@ class MelCloudErv extends EventEmitter {
70
66
  deviceData.Device[key] = value;
71
67
  }
72
68
  }
73
- updateState = true;
74
69
  break;
75
70
  case 'unitHolidayModeTriggered':
76
71
  deviceData.Device.Power = settings.Power;
77
72
  deviceData.HolidayMode.Enabled = settings.HolidayMode;
78
73
  deviceData.HolidayMode.Active = messageData.active;
79
- updateState = true;
80
74
  break;
81
75
  case 'unitWifiSignalChanged':
82
76
  deviceData.Rssi = messageData.rssi;
83
- updateState = true;
84
77
  break;
85
78
  case 'unitCommunicationRestored':
86
79
  deviceData.Device.IsConnected = true;
@@ -91,20 +84,27 @@ class MelCloudErv extends EventEmitter {
91
84
  }
92
85
 
93
86
  //update state
94
- if (updateState) await this.updateState('ws', deviceData);
87
+ if (this.logDebug) this.emit('debug', `Web socket update unit ${this.deviceId} settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
88
+ await this.updateState('ws', deviceData);
95
89
  } catch (error) {
96
- if (this.logError) this.emit('error', `Web socket process message error: ${error}`);
90
+ if (this.logError) this.emit('error', `Web socket unit ${this.deviceId} process message error: ${error}`);
97
91
  }
98
92
  break;
99
93
  case 'request':
100
94
  try {
95
+ //update device data
96
+ deviceData = message;
97
+
101
98
  //update state
102
- if (this.logDebug) this.emit('debug', `Request update settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
99
+ if (this.logDebug) this.emit('debug', `Request update unit ${this.deviceId} settings: ${JSON.stringify(deviceData.Device, null, 2)}`);
103
100
  await this.updateState('request', deviceData);
104
101
  } catch (error) {
105
- if (this.logError) this.emit('error', `Request process message error: ${error}`);
102
+ if (this.logError) this.emit('error', `Request unit ${this.deviceId} process message error: ${error}`);
106
103
  }
107
104
  break;
105
+ default:
106
+ if (this.logDebug) this.emit('debug', `Unit ${this.deviceId}, received unknown type: ${type}`);
107
+ return;
108
108
  }
109
109
  });
110
110
  }
@@ -335,7 +335,7 @@ class MelCloudHome extends EventEmitter {
335
335
  })
336
336
  .on('message', (message) => {
337
337
  const parsedMessage = JSON.parse(message);
338
- if (!this.logDebug) this.emit('debug', `Web socket incoming message: ${JSON.stringify(parsedMessage, null, 2)}`);
338
+ if (this.logDebug) this.emit('debug', `Web socket incoming message: ${JSON.stringify(parsedMessage, null, 2)}`);
339
339
  const messageData = parsedMessage?.[0]?.Data;
340
340
  if (!messageData || parsedMessage.message === 'Forbidden') return;
341
341