homebridge-melcloud-control 4.6.7-beta.6 → 4.6.7-beta.8
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 +10 -0
- package/package.json +1 -1
- package/src/deviceatw.js +62 -55
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.
|
|
4
|
+
"version": "4.6.7-beta.8",
|
|
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
|
@@ -1718,9 +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;
|
|
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
|
|
1724
1724
|
|
|
1725
1725
|
//zone 1
|
|
1726
1726
|
const zone1Name = deviceData.Zone1Name ?? 'Zone 1';
|
|
@@ -1731,8 +1731,8 @@ class DeviceAtw extends EventEmitter {
|
|
|
1731
1731
|
const setCoolFlowTemperatureZone1 = deviceData.Device.SetCoolFlowTemperatureZone1 ?? setTemperatureZone1;
|
|
1732
1732
|
const prohibitZone1 = deviceData.Device.ProhibitZone1 ?? false;
|
|
1733
1733
|
const idleZone1 = deviceData.Device.IdleZone1 ?? false;
|
|
1734
|
-
const flowTemperatureZone1 = deviceData.Device.FlowTemperatureZone1 ?? roomTemperatureZone1; // fallback to
|
|
1735
|
-
const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1 ?? null;
|
|
1734
|
+
const flowTemperatureZone1 = deviceData.Device.FlowTemperatureZone1 ?? roomTemperatureZone1; // fallback to room temperature melcloud home
|
|
1735
|
+
const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1 ?? null; // only sensor
|
|
1736
1736
|
|
|
1737
1737
|
//hot water
|
|
1738
1738
|
const hotWaterName = 'Hot Water';
|
|
@@ -1741,8 +1741,8 @@ class DeviceAtw extends EventEmitter {
|
|
|
1741
1741
|
const forcedHotWaterMode = deviceData.Device.ForcedHotWaterMode ? 1 : 0;
|
|
1742
1742
|
const ecoHotWater = deviceData.Device.EcoHotWater ?? false;
|
|
1743
1743
|
const prohibitHotWater = deviceData.Device.ProhibitHotWater ?? false;
|
|
1744
|
-
const flowTemperatureWaterTank = deviceData.Device.FlowTemperatureBoiler ?? null;
|
|
1745
|
-
const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler ?? null;
|
|
1744
|
+
const flowTemperatureWaterTank = deviceData.Device.FlowTemperatureBoiler ?? null; // only sensor
|
|
1745
|
+
const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler ?? null; // only sensor
|
|
1746
1746
|
|
|
1747
1747
|
//zone 2
|
|
1748
1748
|
const zone2Name = deviceData.Zone2Name ?? 'Zone 2';
|
|
@@ -1753,8 +1753,8 @@ class DeviceAtw extends EventEmitter {
|
|
|
1753
1753
|
const setCoolFlowTemperatureZone2 = deviceData.Device.SetCoolFlowTemperatureZone2 ?? setTemperatureZone2;
|
|
1754
1754
|
const prohibitZone2 = deviceData.Device.ProhibitZone2 ?? false;
|
|
1755
1755
|
const idleZone2 = deviceData.Device.IdleZone2 ?? false;
|
|
1756
|
-
const flowTemperatureZone2 = deviceData.Device.FlowTemperatureZone2 ?? roomTemperatureZone2; // fallback to
|
|
1757
|
-
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
1758
|
|
|
1759
1759
|
//device
|
|
1760
1760
|
const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
|
|
@@ -1798,26 +1798,24 @@ class DeviceAtw extends EventEmitter {
|
|
|
1798
1798
|
zonesSensors: []
|
|
1799
1799
|
};
|
|
1800
1800
|
|
|
1801
|
-
//characteristics array
|
|
1802
|
-
const characteristics = [];
|
|
1803
|
-
|
|
1804
|
-
//default values
|
|
1805
|
-
let name = 'Heat Pump'
|
|
1806
|
-
let operationModeZone = 0;
|
|
1807
|
-
let currentOperationMode = 0;
|
|
1808
|
-
let targetOperationMode = 0;
|
|
1809
|
-
let roomTemperature = 20;
|
|
1810
|
-
let setTemperature = 20;
|
|
1811
|
-
let lockPhysicalControl = 0;
|
|
1812
|
-
let flowTemperature = 0;
|
|
1813
|
-
let returnTemperature = 0;
|
|
1814
|
-
let operationModeSetPropsMinValue = 0;
|
|
1815
|
-
let operationModeSetPropsMaxValue = 3;
|
|
1816
|
-
let operationModeSetPropsValidValues = [0];
|
|
1817
|
-
let temperatureSetPropsMinValue = -35;
|
|
1818
|
-
let temperatureSetPropsMaxValue = 100;
|
|
1819
|
-
|
|
1820
1801
|
for (let i = 0; i < zonesCount; i++) {
|
|
1802
|
+
//characteristics array
|
|
1803
|
+
const characteristics = [];
|
|
1804
|
+
|
|
1805
|
+
let name = '';
|
|
1806
|
+
let operationModeZone = 0;
|
|
1807
|
+
let currentOperationMode = 0;
|
|
1808
|
+
let targetOperationMode = 0;
|
|
1809
|
+
let roomTemperature = null;
|
|
1810
|
+
let setTemperature = 0;
|
|
1811
|
+
let lockPhysicalControl = 0;
|
|
1812
|
+
let operationModeSetPropsMinValue = 0;
|
|
1813
|
+
let operationModeSetPropsMaxValue = 0;
|
|
1814
|
+
let operationModeSetPropsValidValues = [];
|
|
1815
|
+
let temperatureSetPropsMinValue = 0;
|
|
1816
|
+
let temperatureSetPropsMaxValue = 0;
|
|
1817
|
+
|
|
1818
|
+
|
|
1821
1819
|
switch (this.displayType) {
|
|
1822
1820
|
case 1: //Heater Cooler
|
|
1823
1821
|
switch (i) {
|
|
@@ -2034,6 +2032,12 @@ class DeviceAtw extends EventEmitter {
|
|
|
2034
2032
|
break;
|
|
2035
2033
|
};
|
|
2036
2034
|
|
|
2035
|
+
//update services
|
|
2036
|
+
for (const { type, value } of characteristics) {
|
|
2037
|
+
if (!this.functions.isValidValue(value)) continue;
|
|
2038
|
+
this.melCloudServices?.[i]?.updateCharacteristic(type, value);
|
|
2039
|
+
}
|
|
2040
|
+
|
|
2037
2041
|
//add every zone to array
|
|
2038
2042
|
const zone = {
|
|
2039
2043
|
name: name,
|
|
@@ -2093,52 +2097,61 @@ class DeviceAtw extends EventEmitter {
|
|
|
2093
2097
|
|
|
2094
2098
|
//update sensors characteristics
|
|
2095
2099
|
for (let i = 0; i < zonesSensorsCount; i++) {
|
|
2100
|
+
|
|
2101
|
+
// helper function to update sensor characteristics
|
|
2102
|
+
const updateSensorCharacteristics = (service, value) => {
|
|
2103
|
+
if (this.functions.isValidValue(value)) service?.updateCharacteristic(Characteristic.CurrentTemperature, value);
|
|
2104
|
+
};
|
|
2105
|
+
|
|
2106
|
+
// default values
|
|
2107
|
+
let name = '';
|
|
2108
|
+
let roomTemperature = null;
|
|
2109
|
+
let flowTemperature = null;
|
|
2110
|
+
let returnTemperature = null;
|
|
2111
|
+
|
|
2096
2112
|
switch (i) {
|
|
2097
|
-
case caseHeatPumpSensor: //Heat Pump
|
|
2113
|
+
case caseHeatPumpSensor: // Heat Pump
|
|
2098
2114
|
name = heatPumpName;
|
|
2099
2115
|
roomTemperature = outdoorTemperature;
|
|
2100
2116
|
flowTemperature = flowTemperatureHeatPump;
|
|
2101
2117
|
returnTemperature = returnTemperatureHeatPump;
|
|
2102
2118
|
|
|
2103
|
-
|
|
2104
|
-
this.
|
|
2105
|
-
this.
|
|
2106
|
-
this.returnTemperatureSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureHeatPump);
|
|
2119
|
+
updateSensorCharacteristics(this.roomTemperatureSensorService, outdoorTemperature);
|
|
2120
|
+
updateSensorCharacteristics(this.flowTemperatureSensorService, flowTemperatureHeatPump);
|
|
2121
|
+
updateSensorCharacteristics(this.returnTemperatureSensorService, returnTemperatureHeatPump);
|
|
2107
2122
|
break;
|
|
2108
|
-
case caseZone1Sensor: //Zone 1
|
|
2123
|
+
case caseZone1Sensor: // Zone 1
|
|
2109
2124
|
name = zone1Name;
|
|
2110
2125
|
roomTemperature = roomTemperatureZone1;
|
|
2111
2126
|
flowTemperature = flowTemperatureZone1;
|
|
2112
2127
|
returnTemperature = returnTemperatureZone1;
|
|
2113
2128
|
|
|
2114
|
-
|
|
2115
|
-
this.
|
|
2116
|
-
this.
|
|
2117
|
-
this.returnTemperatureZone1SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureZone1);
|
|
2129
|
+
updateSensorCharacteristics(this.roomTemperatureZone1SensorService, roomTemperatureZone1);
|
|
2130
|
+
updateSensorCharacteristics(this.flowTemperatureZone1SensorService, flowTemperatureZone1);
|
|
2131
|
+
updateSensorCharacteristics(this.returnTemperatureZone1SensorService, returnTemperatureZone1);
|
|
2118
2132
|
break;
|
|
2119
|
-
case caseHotWaterSensor: //Hot Water
|
|
2133
|
+
case caseHotWaterSensor: // Hot Water
|
|
2120
2134
|
name = hotWaterName;
|
|
2121
2135
|
roomTemperature = tankWaterTemperature;
|
|
2122
2136
|
flowTemperature = flowTemperatureWaterTank;
|
|
2123
2137
|
returnTemperature = returnTemperatureWaterTank;
|
|
2124
2138
|
|
|
2125
|
-
|
|
2126
|
-
this.
|
|
2127
|
-
this.
|
|
2128
|
-
this.returnTemperatureWaterTankSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureWaterTank);
|
|
2139
|
+
updateSensorCharacteristics(this.roomTemperatureWaterTankSensorService, tankWaterTemperature);
|
|
2140
|
+
updateSensorCharacteristics(this.flowTemperatureWaterTankSensorService, flowTemperatureWaterTank);
|
|
2141
|
+
updateSensorCharacteristics(this.returnTemperatureWaterTankSensorService, returnTemperatureWaterTank);
|
|
2129
2142
|
break;
|
|
2130
|
-
case caseZone2Sensor: //Zone 2
|
|
2143
|
+
case caseZone2Sensor: // Zone 2
|
|
2131
2144
|
name = zone2Name;
|
|
2132
2145
|
roomTemperature = roomTemperatureZone2;
|
|
2133
2146
|
flowTemperature = flowTemperatureZone2;
|
|
2134
2147
|
returnTemperature = returnTemperatureZone2;
|
|
2135
2148
|
|
|
2136
|
-
|
|
2137
|
-
this.
|
|
2138
|
-
this.
|
|
2139
|
-
this.returnTemperatureZone2SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureZone2);
|
|
2149
|
+
updateSensorCharacteristics(this.roomTemperatureZone2SensorService, roomTemperatureZone2);
|
|
2150
|
+
updateSensorCharacteristics(this.flowTemperatureZone2SensorService, flowTemperatureZone2);
|
|
2151
|
+
updateSensorCharacteristics(this.returnTemperatureZone2SensorService, returnTemperatureZone2);
|
|
2140
2152
|
break;
|
|
2141
|
-
}
|
|
2153
|
+
}
|
|
2154
|
+
|
|
2142
2155
|
|
|
2143
2156
|
//add every sensor to array
|
|
2144
2157
|
const sensor = {
|
|
@@ -2177,12 +2190,6 @@ class DeviceAtw extends EventEmitter {
|
|
|
2177
2190
|
}
|
|
2178
2191
|
this.accessory = obj;
|
|
2179
2192
|
|
|
2180
|
-
//update services
|
|
2181
|
-
for (const { type, value } of characteristics) {
|
|
2182
|
-
if (!this.functions.isValidValue(value)) continue;
|
|
2183
|
-
this.melCloudService?.[i]?.updateCharacteristic(type, value);
|
|
2184
|
-
}
|
|
2185
|
-
|
|
2186
2193
|
//other sensors
|
|
2187
2194
|
this.inStandbyService?.updateCharacteristic(Characteristic.ContactSensorState, inStandbyMode);
|
|
2188
2195
|
this.connectService?.updateCharacteristic(Characteristic.ContactSensorState, isConnected);
|