homebridge-melcloud-control 4.3.3-beta.14 → 4.3.3-beta.16

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/CHANGELOG.md CHANGED
@@ -22,6 +22,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
22
 
23
23
  - Do not use Homebridge UI > v5.5.0 because of break config.json
24
24
 
25
+ # [4.3.2] - (xx.11.2025)
26
+
27
+ ## Changes
28
+
29
+ - fix presets report wrong state
30
+ - stability improvements
31
+ - bump dependencies
32
+ - cleanup
33
+
25
34
  # [4.3.2] - (21.11.2025)
26
35
 
27
36
  ## Changes
package/index.js CHANGED
@@ -195,6 +195,7 @@ class MelCloudPlatform {
195
195
  //start impulse generators\
196
196
  await configuredDevice.startStopImpulseGenerator(true, [{ name: 'checkState', sampling: deviceRefreshInterval }]);
197
197
  const timmers = accountType === 'melcloudhome' ? [{ name: 'connect', sampling: 3300000 }, { name: 'checkDevicesList', sampling: 3000 }] : [{ name: 'checkDevicesList', sampling: refreshInterval }];
198
+ await new Promise(r => setTimeout(r, 1000));
198
199
  await melCloud.impulseGenerator.state(true, timmers, false);
199
200
 
200
201
  //stop impulse generator
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.3-beta.14",
4
+ "version": "4.3.3-beta.16",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
@@ -35,7 +35,7 @@
35
35
  "node": "^20 || ^22 || ^24 || ^25"
36
36
  },
37
37
  "dependencies": {
38
- "@homebridge/plugin-ui-utils": "^2.1.1",
38
+ "@homebridge/plugin-ui-utils": "^2.1.2",
39
39
  "async-mqtt": "^2.6.3",
40
40
  "axios": "^1.13.2",
41
41
  "express": "^5.1.0",
package/src/functions.js CHANGED
@@ -167,5 +167,13 @@ class Functions extends EventEmitter {
167
167
  else if (!isNaN(v) && v !== "") parsedValue = Number(v);
168
168
  return parsedValue;
169
169
  }
170
+
171
+ parseArrayNameValue(data) {
172
+ Object.fromEntries(
173
+ data.map(({ name, value }) => {
174
+ let parsedValue = this.convertValue(value);
175
+ return [name, parsedValue];
176
+ }));
177
+ }
170
178
  }
171
179
  export default Functions
@@ -76,8 +76,8 @@ class MelCloudAta extends EventEmitter {
76
76
  deviceData.Device.OperationMode = AirConditioner.OperationModeMapStringToEnum[deviceData.Device.OperationMode] ?? deviceData.Device.OperationMode;
77
77
  deviceData.Device.ActualFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.ActualFanSpeed] ?? deviceData.Device.ActualFanSpeed;
78
78
  deviceData.Device.SetFanSpeed = AirConditioner.FanSpeedMapStringToEnum[deviceData.Device.SetFanSpeed] ?? deviceData.Device.SetFanSpeed;
79
- deviceData.Device.VaneVerticalDirection = AirConditioner.VaneVerticalDirectionMapStringToEnum[deviceData.Device.VaneVerticalDirection] ?? deviceData.Device.VaneVerticalDirection;
80
79
  deviceData.Device.VaneHorizontalDirection = AirConditioner.VaneHorizontalDirectionMapStringToEnum[deviceData.Device.VaneHorizontalDirection] ?? deviceData.Device.VaneHorizontalDirection
80
+ deviceData.Device.VaneVerticalDirection = AirConditioner.VaneVerticalDirectionMapStringToEnum[deviceData.Device.VaneVerticalDirection] ?? deviceData.Device.VaneVerticalDirection;
81
81
 
82
82
  //read default temps
83
83
  const temps = await this.functions.readData(this.defaultTempsFile, true);
@@ -201,30 +201,20 @@ class MelCloudAta extends EventEmitter {
201
201
  const messageType = parsedMessage[0].messageType;
202
202
  switch (messageType) {
203
203
  case 'unitStateChanged':
204
- const deviceSettings = Object.fromEntries(
205
- messageData.settings.map(({ name, value }) => {
206
- let parsedValue = this.functions.convertValue(value);
207
- return [name, parsedValue];
208
- })
209
- );
210
-
204
+ const deviceSettings = this.functions.parseArrayNameValue(messageData.settings);
211
205
  deviceData.Device.Power = deviceSettings.Power ?? deviceData.Device.Power;
212
206
  deviceData.Device.OperationMode = deviceSettings.OperationMode ?? deviceData.Device.OperationMode;
213
207
  deviceData.Device.RoomTemperature = deviceSettings.RoomTemperature ?? deviceData.Device.RoomTemperature;
214
208
  deviceData.Device.SetTemperature = deviceSettings.SetTemperature ?? deviceData.Device.SetTemperature;
215
209
  deviceData.Device.ActualFanSpeed = deviceSettings.ActualFanSpeed ?? deviceData.Device.ActualFanSpeed;
216
210
  deviceData.Device.SetFanSpeed = deviceSettings.SetFanSpeed ?? deviceData.Device.SetFanSpeed;
217
- deviceData.Device.VaneVerticalDirection = deviceSettings.VaneVerticalDirection ?? deviceData.Device.VaneVerticalDirection;
218
211
  deviceData.Device.VaneHorizontalDirection = deviceSettings.VaneHorizontalDirection ?? deviceData.Device.VaneHorizontalDirection;
212
+ deviceData.Device.VaneVerticalDirection = deviceSettings.VaneVerticalDirection ?? deviceData.Device.VaneVerticalDirection;
219
213
  deviceData.HolidayMode.Enabled = deviceSettings.HolidayMode ?? deviceData.HolidayMode.Enabled;
220
214
  updateState = true;
221
215
  break;
222
216
  case 'unitHolidayModeTriggered':
223
- const holidayModeSettings = Object.fromEntries(
224
- messageData.settings.map(({ name, value }) => {
225
- let parsedValue = this.functions.convertValue(value);
226
- return [name, parsedValue];
227
- }));
217
+ const holidayModeSettings = this.functions.parseArrayNameValue(messageData.settings);
228
218
  deviceData.Device.Power = holidayModeSettings.Power;
229
219
  deviceData.HolidayMode.Enabled = holidayModeSettings.HolidayMode;
230
220
  deviceData.HolidayMode.Active = messageData.active;
@@ -142,7 +142,6 @@ class MelCloudHome extends EventEmitter {
142
142
  const createDevice = (device, type) => {
143
143
  // Settings już kapitalizowane w nazwach
144
144
  const settingsArray = device.Settings || [];
145
-
146
145
  const settingsObject = Object.fromEntries(
147
146
  settingsArray.map(({ name, value }) => {
148
147
  let parsedValue = this.functions.convertValue(value);