homebridge-melcloud-control 4.6.7-beta.5 → 4.6.7-beta.7

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,16 @@ 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.0] - (xx.01.2026)
28
+
29
+ ## Changes
30
+
31
+ - add support for ATW, fix [#233](https://github.com/grzegorz914/homebridge-melcloud-control/issues/233), thanks @bastienb99
32
+ - fix [#232](https://github.com/grzegorz914/homebridge-melcloud-control/issues/232)
33
+ - config schema updated
34
+ - bump dependencies
35
+ - cleanup
36
+
27
37
  # [4.6.6] - (23.01.2026)
28
38
 
29
39
  ## 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.6.7-beta.5",
4
+ "version": "4.6.7-beta.7",
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/constants.js CHANGED
@@ -117,8 +117,8 @@ export const HeatPump = {
117
117
  OperationModeMapEnumToString: { 0: "Idle", 1: "HotWater", 2: "Heating", 3: "Cooling", 4: "HotWaterStorage", 5: "FreezeStat", 6: "Legionella", 7: "HeatEco", 8: "Mode1", 9: "Mode2", 10: "Mode3", 11: "HeatUp" },
118
118
  OperationModeDhwMapStringToEnum: { "Normal": 0, "Eco": 1 },
119
119
  OperationModeDhwMapEnumToString: { 0: "Normal", 1: "Eco" },
120
- ForceDhwMapStringToEnum: { "Normal": 0, "Heat Now": 1 },
121
- ForceDhwMapEnumToString: { 0: "Normal", 1: "Heat Now" },
120
+ ForceDhwMapStringToEnum: { "Normal": 0, "HeatNow": 1 },
121
+ ForceDhwMapEnumToString: { 0: "Normal", 1: "HeatNow" },
122
122
  HolidayMapStringToEnum: { "Normal": 0, "Holiday": 1 },
123
123
  HolidayMapEnumToString: { 0: "Normal", 1: "Holiday" },
124
124
  OperationModeZoneMapStringToEnum: { "HeatThermostat": 0, "HeatFlowTemperature": 1, "HeatCurve": 2, "CoolThermostat": 3, "CoolFlowTemperature": 4, "FlorDryUp": 5, "Idle": 6 },
package/src/deviceatw.js CHANGED
@@ -1718,11 +1718,9 @@ class DeviceAtw extends EventEmitter {
1718
1718
  const inStandbyMode = deviceData.Device.InStandbyMode;
1719
1719
  const unitStatus = deviceData.Device.UnitStatus ?? 0;
1720
1720
  const operationMode = deviceData.Device.OperationMode;
1721
- const outdoorTemperature = deviceData.Device.OutdoorTemperature ?? deviceData.Device.RoomTemperatureZone1;
1722
- const flowTemperatureHeatPump = deviceData.Device.FlowTemperature ?? null;
1723
- const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature ?? null;
1724
- const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
1725
- const isInError = deviceData.Device[errorKey];
1721
+ const outdoorTemperature = deviceData.Device.OutdoorTemperature ?? deviceData.Device.RoomTemperatureZone1; // fallback to room temperature zone 1 melcloud home
1722
+ const flowTemperatureHeatPump = deviceData.Device.FlowTemperature ?? null; // only sensor
1723
+ const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature ?? null; // only sensor
1726
1724
 
1727
1725
  //zone 1
1728
1726
  const zone1Name = deviceData.Zone1Name ?? 'Zone 1';
@@ -1733,8 +1731,8 @@ class DeviceAtw extends EventEmitter {
1733
1731
  const setCoolFlowTemperatureZone1 = deviceData.Device.SetCoolFlowTemperatureZone1 ?? setTemperatureZone1;
1734
1732
  const prohibitZone1 = deviceData.Device.ProhibitZone1 ?? false;
1735
1733
  const idleZone1 = deviceData.Device.IdleZone1 ?? false;
1736
- const flowTemperatureZone1 = deviceData.Device.FlowTemperatureZone1;
1737
- const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1;
1734
+ const flowTemperatureZone1 = deviceData.Device.FlowTemperatureZone1 ?? roomTemperatureZone1; // fallback to room temperature melcloud home
1735
+ const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1 ?? null; // only sensor
1738
1736
 
1739
1737
  //hot water
1740
1738
  const hotWaterName = 'Hot Water';
@@ -1743,8 +1741,8 @@ class DeviceAtw extends EventEmitter {
1743
1741
  const forcedHotWaterMode = deviceData.Device.ForcedHotWaterMode ? 1 : 0;
1744
1742
  const ecoHotWater = deviceData.Device.EcoHotWater ?? false;
1745
1743
  const prohibitHotWater = deviceData.Device.ProhibitHotWater ?? false;
1746
- const flowTemperatureWaterTank = deviceData.Device.FlowTemperatureBoiler ?? null;
1747
- const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler ?? null;
1744
+ const flowTemperatureWaterTank = deviceData.Device.FlowTemperatureBoiler ?? null; // only sensor
1745
+ const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler ?? null; // only sensor
1748
1746
 
1749
1747
  //zone 2
1750
1748
  const zone2Name = deviceData.Zone2Name ?? 'Zone 2';
@@ -1755,8 +1753,12 @@ class DeviceAtw extends EventEmitter {
1755
1753
  const setCoolFlowTemperatureZone2 = deviceData.Device.SetCoolFlowTemperatureZone2 ?? setTemperatureZone2;
1756
1754
  const prohibitZone2 = deviceData.Device.ProhibitZone2 ?? false;
1757
1755
  const idleZone2 = deviceData.Device.IdleZone2 ?? false;
1758
- const flowTemperatureZone2 = deviceData.Device.FlowTemperatureZone2 ?? null;
1759
- const returnTemperatureZone2 = deviceData.Device.ReturnTemperatureZone2 ?? null;
1756
+ const flowTemperatureZone2 = deviceData.Device.FlowTemperatureZone2 ?? roomTemperatureZone2; // fallback to room temperature melcloud home
1757
+ const returnTemperatureZone2 = deviceData.Device.ReturnTemperatureZone2 ?? null; // only sensor
1758
+
1759
+ //device
1760
+ const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
1761
+ const isInError = deviceData.Device[errorKey];
1760
1762
 
1761
1763
  //accessory
1762
1764
  const obj = {
@@ -2178,7 +2180,7 @@ class DeviceAtw extends EventEmitter {
2178
2180
  //update services
2179
2181
  for (const { type, value } of characteristics) {
2180
2182
  if (!this.functions.isValidValue(value)) continue;
2181
- this.melCloudService?.[i]?.updateCharacteristic(type, value);
2183
+ this.melCloudServices?.[i]?.updateCharacteristic(type, value);
2182
2184
  }
2183
2185
 
2184
2186
  //other sensors