homebridge-melcloud-control 4.7.3 → 4.7.4

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
@@ -24,6 +24,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
24
24
  - For plugin < v4.6.0 use Homebridge UI <= v5.5.0
25
25
  - For plugin >= v4.6.0 use Homebridge UI >= v5.13.0
26
26
 
27
+ # [4.7.4] - (29.01.2026)
28
+
29
+ ## Changes
30
+
31
+ - fix ATW Zone 2
32
+ - cleanup
33
+
27
34
  # [4.7.3] - (29.01.2026)
28
35
 
29
36
  ## Changes
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.3",
4
+ "version": "4.7.4",
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/deviceatw.js CHANGED
@@ -1792,11 +1792,11 @@ class DeviceAtw extends EventEmitter {
1792
1792
  const holidayMode = deviceData.HolidayMode ?? {};
1793
1793
 
1794
1794
  //device info
1795
- const supportsStanbyMode = deviceData.Device[supportStandbyKey];
1795
+ const supportsStandbyMode = deviceData.Device[supportStandbyKey];
1796
1796
  const supportsHeatPump = ![1, 2, 3, 4, 5, 6, 7, 15].includes(this.hideZone);
1797
1797
  const supportsZone1 = ![2, 3, 4, 8, 9, 10, 11, 15].includes(this.hideZone);
1798
1798
  const supportsHotWaterTank = ![3, 5, 6, 9, 10, 12, 13, 15].includes(this.hideZone) && deviceData.Device[supportHotWaterKey];
1799
- const supportsZone2 = ![4, 6, 7, 10, 11, 13, 14, 15].includes(this.hideZone) && deviceData.Device.HasZone2 !== false && deviceData.Device.HasZone2 !== null;
1799
+ const supportsZone2 = ![4, 6, 7, 10, 11, 13, 14, 15].includes(this.hideZone) && deviceData.Device.HasZone2 === true;
1800
1800
  const supportsHeat = deviceData.Device[supportHeatKey] ?? true;
1801
1801
  const supportsCool = deviceData.Device[supportCoolKey] ?? false;
1802
1802
  const supportsOutdoorTemperature = deviceData.Device.HasOutdoorTemperature;
@@ -1895,7 +1895,7 @@ class DeviceAtw extends EventEmitter {
1895
1895
  supportsHotWaterTank: supportsHotWaterTank,
1896
1896
  supportsZone2: supportsZone2,
1897
1897
  heatCoolModes: heatCoolModes,
1898
- supportsStanbyMode: supportsStanbyMode,
1898
+ supportsStandbyMode: supportsStandbyMode,
1899
1899
  supportsOutdoorTemperature: supportsOutdoorTemperature,
1900
1900
  caseHeatPump: caseHeatPump,
1901
1901
  caseZone1: caseZone1,
@@ -1998,7 +1998,7 @@ class DeviceAtw extends EventEmitter {
1998
1998
  };
1999
1999
  break;
2000
2000
  default:
2001
- if (this.logWarn) this.emit('warn', `${name}, Received unknoen operation mode: ${operationModeZone1}`);
2001
+ if (this.logWarn) this.emit('warn', `${name}, Received unknown operation mode: ${operationModeZone1}`);
2002
2002
  return;
2003
2003
  }
2004
2004
 
@@ -2028,18 +2028,28 @@ class DeviceAtw extends EventEmitter {
2028
2028
  currentOperationMode = !power ? 0 : (idleZone2 ? 1 : [2, 2, 2, 3, 3, 2][operationModeZone2]); //INACTIVE, IDLE, HEATING, COOLING
2029
2029
  targetOperationMode = [1, 2, 0, 1, 2, 1][operationModeZone2]; //AUTO, HEAT, COOL
2030
2030
 
2031
- switch (operationModeZone2) {
2032
- case 1: //HEAT FLOW
2033
- setTemperature = setHeatFlowTemperatureZone2;
2034
- roomTemperature = flowTemperatureZone2;
2035
- temperatureSetPropsMinValue = minSetHeatFlowTemperature;
2036
- temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
2037
- break;
2038
- case 4: //COOL FLOW
2039
- setTemperature = setCoolFlowTemperatureZone2;
2040
- roomTemperature = flowTemperatureZone2;
2041
- temperatureSetPropsMinValue = minSetCoolFlowTemperature;
2042
- temperatureSetPropsMaxValue = maxSetHeatCoolRoomTemperature;
2031
+ switch (accountTypeMelcloud) {
2032
+ case true: //Melcloud
2033
+ switch (operationModeZone2) {
2034
+ case 1: //HEAT FLOW
2035
+ setTemperature = setHeatFlowTemperatureZone2;
2036
+ roomTemperature = flowTemperatureZone2;
2037
+ temperatureSetPropsMinValue = minSetHeatFlowTemperature;
2038
+ temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
2039
+ break;
2040
+ case 4: //COOL FLOW
2041
+ setTemperature = setCoolFlowTemperatureZone2;
2042
+ roomTemperature = flowTemperatureZone2;
2043
+ temperatureSetPropsMinValue = minSetCoolFlowTemperature;
2044
+ temperatureSetPropsMaxValue = maxSetCoolFlowTemperature;
2045
+ break;
2046
+ default:
2047
+ setTemperature = setTemperatureZone2;
2048
+ roomTemperature = roomTemperatureZone2;
2049
+ temperatureSetPropsMinValue = minSetHeatRoomTemperature;
2050
+ temperatureSetPropsMaxValue = maxSetHeatCoolRoomTemperature;
2051
+ break
2052
+ };
2043
2053
  break;
2044
2054
  case false: //Melcloud Home
2045
2055
  switch (operationModeZone2) {
@@ -2175,30 +2185,40 @@ class DeviceAtw extends EventEmitter {
2175
2185
  currentOperationMode = !power ? 0 : (idleZone2 ? 0 : [1, 1, 1, 2, 2, 1][operationModeZone2]); //OFF, HEAT, COOL
2176
2186
  targetOperationMode = [1, 2, 3, 1, 2, 1][operationModeZone2]; //OFF, HEAT, COOL, AUTO
2177
2187
 
2178
- switch (operationModeZone2) {
2179
- case 1: //HEAT FLOW
2180
- setTemperature = setHeatFlowTemperatureZone2;
2181
- roomTemperature = flowTemperatureZone2;
2182
- temperatureSetPropsMinValue = minSetHeatFlowTemperature;
2183
- temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
2184
- break;
2185
- case 4: //COOL FLOW
2186
- setTemperature = setCoolFlowTemperatureZone2;
2187
- roomTemperature = flowTemperatureZone2;
2188
- temperatureSetPropsMinValue = minSetCoolFlowTemperature;
2189
- temperatureSetPropsMaxValue = maxSetHeatCoolRoomTemperature;
2188
+ switch (accountTypeMelcloud) {
2189
+ case true: //Melcloud
2190
+ switch (operationModeZone2) {
2191
+ case 1: //HEAT FLOW
2192
+ setTemperature = setHeatFlowTemperatureZone2;
2193
+ roomTemperature = flowTemperatureZone2;
2194
+ temperatureSetPropsMinValue = minSetHeatFlowTemperature;
2195
+ temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
2196
+ break;
2197
+ case 4: //COOL FLOW
2198
+ setTemperature = setCoolFlowTemperatureZone2;
2199
+ roomTemperature = flowTemperatureZone2;
2200
+ temperatureSetPropsMinValue = minSetCoolFlowTemperature;
2201
+ temperatureSetPropsMaxValue = maxSetCoolFlowTemperature;
2202
+ break;
2203
+ default:
2204
+ setTemperature = setTemperatureZone2;
2205
+ roomTemperature = roomTemperatureZone2;
2206
+ temperatureSetPropsMinValue = minSetHeatRoomTemperature;
2207
+ temperatureSetPropsMaxValue = maxSetHeatCoolRoomTemperature;
2208
+ break
2209
+ };
2190
2210
  break;
2191
2211
  case false: //Melcloud Home
2192
- switch (operationModeZone1) {
2212
+ switch (operationModeZone2) {
2193
2213
  case 3: //COOL THERMOSTAT
2194
- setTemperature = setTemperatureZone1;
2195
- roomTemperature = roomTemperatureZone1;
2214
+ setTemperature = setTemperatureZone2;
2215
+ roomTemperature = roomTemperatureZone2;
2196
2216
  temperatureSetPropsMinValue = minSetCoolRoomTemperature;
2197
2217
  temperatureSetPropsMaxValue = maxSetHeatCoolRoomTemperature;
2198
2218
  break;
2199
2219
  default:
2200
- setTemperature = setTemperatureZone1;
2201
- roomTemperature = roomTemperatureZone1;
2220
+ setTemperature = setTemperatureZone2;
2221
+ roomTemperature = roomTemperatureZone2;
2202
2222
  temperatureSetPropsMinValue = minSetHeatRoomTemperature;
2203
2223
  temperatureSetPropsMaxValue = maxSetHeatCoolRoomTemperature;
2204
2224
  break