homebridge-melcloud-control 3.2.5 → 3.3.0
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 +9 -0
- package/README.md +19 -5
- package/package.json +2 -2
- package/src/constants.json +6 -0
- package/src/deviceata.js +108 -49
- package/src/deviceatw.js +4 -4
- package/src/deviceerv.js +3 -4
- package/src/melcloudata.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
- do not configure it manually, always using Config UI X
|
|
17
17
|
- required Homebridge v2.0.0 and above
|
|
18
18
|
|
|
19
|
+
## [3.3.0] - (12.09.2024)
|
|
20
|
+
|
|
21
|
+
## Changes
|
|
22
|
+
|
|
23
|
+
- added full support for AUTO mode with dead band, low and high temperature
|
|
24
|
+
- fix some log info message
|
|
25
|
+
- bump dependencies
|
|
26
|
+
- cleanup
|
|
27
|
+
|
|
19
28
|
## [3.2.0] - (11.09.2024)
|
|
20
29
|
|
|
21
30
|
## Changes
|
package/README.md
CHANGED
|
@@ -25,6 +25,13 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
25
25
|
| [Config UI X](https://github.com/homebridge/homebridge-config-ui-x) | [Config UI X Wiki](https://github.com/homebridge/homebridge-config-ui-x/wiki) | Homebridge Web User Interface | Required ab v3.0.0|
|
|
26
26
|
| [MELCloud](https://github.com/grzegorz914/homebridge-melcloud-control) | [Plug-In Wiki](https://github.com/grzegorz914/homebridge-melcloud-control/wiki) | Homebridge Plug-In | Required |
|
|
27
27
|
|
|
28
|
+
<p align="left">
|
|
29
|
+
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/homekit.png" width="375"></a>
|
|
30
|
+
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings.png" width="132"></a>
|
|
31
|
+
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings1.png" width="132"></a>
|
|
32
|
+
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings2.png" width="132"></a>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
28
35
|
### About The Plugin
|
|
29
36
|
|
|
30
37
|
* All devices are detected automatically.
|
|
@@ -43,7 +50,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
43
50
|
* Heater Cooler:
|
|
44
51
|
* Power `ON/OFF`.
|
|
45
52
|
* Operating mode `AUTO/HEAT/COOL/POWER OFF`.
|
|
46
|
-
* Temperature `HEATING/COOLING`.
|
|
53
|
+
* Temperature `HEATING/COOLING/AUTO`.
|
|
47
54
|
* Fan speed `OFF/1/2/3/4/5/AUTO`.
|
|
48
55
|
* Swing mode `AUTO/SWING`.
|
|
49
56
|
* Physical lock controls `LOCK/UNLOCK`.
|
|
@@ -51,7 +58,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
51
58
|
* Thermostat:
|
|
52
59
|
* Power `ON/OFF`.
|
|
53
60
|
* Operating mode `POWER OFF/HEAT/COOL/AUTO`.
|
|
54
|
-
* Temperature `HEATING/COOLING`.
|
|
61
|
+
* Temperature `HEATING/COOLING/AUTO`.
|
|
55
62
|
* Temperature display unit `°F/°C`.
|
|
56
63
|
* Assign operating mode for `HEAT/AUTO`
|
|
57
64
|
* Buttons:
|
|
@@ -152,10 +159,17 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
152
159
|
* CO2 detected and level.
|
|
153
160
|
* PM2.5 air quality and level.
|
|
154
161
|
|
|
162
|
+
### AUTO Mode
|
|
163
|
+
|
|
164
|
+
* If the room temperature `<` Heating Setpoint, the unit will be set to HEAT with a setpoint of 28°C.
|
|
165
|
+
* In HEAT, if the room temperature `>` Heating Setpoint `+` 1°C, the unit will be set to FAN.
|
|
166
|
+
* In FAN, if the room temperature `>` Cooling Setpoint, the unit will be set to COOL with a setpoint of 19°C.
|
|
167
|
+
* In COOL, if the room temperature `<` Cooling Setpoint `-` 1°C, the unit will be set to FAN.
|
|
168
|
+
* In FAN, if the room temperature `<` Heating Setpoint, the unit will be set to HEAT with a setpoint of 28°C.
|
|
169
|
+
* The image shows Heating Setpoint of 19°C and a Cooling Setpoint of 23°C.
|
|
170
|
+
|
|
155
171
|
<p align="center">
|
|
156
|
-
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/
|
|
157
|
-
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings.png" width="135"></a> <a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings1.png" width="135"></a>
|
|
158
|
-
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/settings2.png" width="135"></a>
|
|
172
|
+
<a href="https://github.com/grzegorz914/homebridge-melcloud-control"><img src="https://raw.githubusercontent.com/grzegorz914/homebridge-melcloud-control/main/graphics/auto.png" width="840"></a>
|
|
159
173
|
</p>
|
|
160
174
|
|
|
161
175
|
### Configuration
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.3.0",
|
|
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
|
"@homebridge/plugin-ui-utils": "^1.0.3",
|
|
36
36
|
"async-mqtt": "^2.6.3",
|
|
37
37
|
"axios": "^1.7.7",
|
|
38
|
-
"express": "^4.
|
|
38
|
+
"express": "^4.21.0"
|
|
39
39
|
},
|
|
40
40
|
"keywords": [
|
|
41
41
|
"homebridge",
|
package/src/constants.json
CHANGED
package/src/deviceata.js
CHANGED
|
@@ -236,6 +236,8 @@ class DeviceAta extends EventEmitter {
|
|
|
236
236
|
const inStandbyMode = deviceData.Device.InStandbyMode ?? false;
|
|
237
237
|
const roomTemperature = deviceData.Device.RoomTemperature;
|
|
238
238
|
const setTemperature = deviceData.Device.SetTemperature;
|
|
239
|
+
const defaultHeatingSetTemperature = deviceData.Device.DefaultHeatingSetTemperature;
|
|
240
|
+
const defaultCoolingSetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
239
241
|
const fanSpeed = deviceData.Device.FanSpeed;
|
|
240
242
|
const operationMode = deviceData.Device.OperationMode;
|
|
241
243
|
const vaneHorizontalDirection = deviceData.Device.VaneHorizontalDirection;
|
|
@@ -253,6 +255,8 @@ class DeviceAta extends EventEmitter {
|
|
|
253
255
|
this.accessory.roomTemperature = roomTemperature;
|
|
254
256
|
this.accessory.outdoorTemperature = outdoorTemperature;
|
|
255
257
|
this.accessory.setTemperature = setTemperature;
|
|
258
|
+
this.accessory.defaultHeatingSetTemperature = defaultHeatingSetTemperature;
|
|
259
|
+
this.accessory.defaultCoolingSetTemperature = defaultCoolingSetTemperature;
|
|
256
260
|
this.accessory.fanSpeed = fanSpeed;
|
|
257
261
|
this.accessory.vaneHorizontal = vaneHorizontalDirection;
|
|
258
262
|
this.accessory.vaneVertical = vaneVerticalDirection;
|
|
@@ -266,6 +270,9 @@ class DeviceAta extends EventEmitter {
|
|
|
266
270
|
this.accessory.hasOutdoorTemperature = hasOutdoorTemperature;
|
|
267
271
|
this.accessory.swingFunction = swingFunction;
|
|
268
272
|
this.accessory.numberOfFanSpeeds = numberOfFanSpeeds;
|
|
273
|
+
this.accessory.modelSupportsHeat = modelSupportsHeat;
|
|
274
|
+
this.accessory.modelSupportsCool = modelSupportsCool;
|
|
275
|
+
this.accessory.modelSupportsAuto = modelSupportsAuto;
|
|
269
276
|
this.accessory.modelSupportsFanSpeed = modelSupportsFanSpeed;
|
|
270
277
|
this.accessory.modelSupportsDry = modelSupportsDry;
|
|
271
278
|
|
|
@@ -295,7 +302,7 @@ class DeviceAta extends EventEmitter {
|
|
|
295
302
|
this.accessory.targetOperationMode = 2;
|
|
296
303
|
break;
|
|
297
304
|
case 8: //AUTO
|
|
298
|
-
this.accessory.currentOperationMode =
|
|
305
|
+
this.accessory.currentOperationMode = roomTemperature >= defaultHeatingSetTemperature && roomTemperature <= defaultCoolingSetTemperature ? 1 : roomTemperature < defaultHeatingSetTemperature ? 2 : roomTemperature > defaultCoolingSetTemperature ? 3 : 0;
|
|
299
306
|
this.accessory.targetOperationMode = 0;
|
|
300
307
|
break;
|
|
301
308
|
case 9: //ISEE HEAT
|
|
@@ -393,7 +400,7 @@ class DeviceAta extends EventEmitter {
|
|
|
393
400
|
this.accessory.targetOperationMode = 2;
|
|
394
401
|
break;
|
|
395
402
|
case 8: //AUTO
|
|
396
|
-
this.accessory.currentOperationMode =
|
|
403
|
+
this.accessory.currentOperationMode = roomTemperature >= defaultHeatingSetTemperature && roomTemperature <= defaultCoolingSetTemperature ? this.accessory.currentOperationMode : roomTemperature < defaultHeatingSetTemperature ? 1 : roomTemperature > defaultCoolingSetTemperature ? 2 : 0;
|
|
397
404
|
this.accessory.targetOperationMode = 3;
|
|
398
405
|
break;
|
|
399
406
|
case 9: //ISEE HEAT
|
|
@@ -601,16 +608,17 @@ class DeviceAta extends EventEmitter {
|
|
|
601
608
|
|
|
602
609
|
//log current state
|
|
603
610
|
if (!this.disableLogInfo) {
|
|
604
|
-
const operationModeText = !power ? CONSTANTS.AirConditioner.System[0] : CONSTANTS.AirConditioner.DriveMode[operationMode];
|
|
605
611
|
this.emit('message', `Power: ${power ? 'ON' : 'OFF'}`);
|
|
606
|
-
this.emit('message', `Operation mode: ${
|
|
612
|
+
this.emit('message', `Operation mode: ${CONSTANTS.AirConditioner.DriveMode[operationMode]}`);
|
|
607
613
|
this.emit('message', `Room temperature: ${roomTemperature}${temperatureUnit}`);
|
|
608
|
-
this.emit('message', `
|
|
609
|
-
const info0 =
|
|
610
|
-
const info1 =
|
|
611
|
-
const info2 =
|
|
614
|
+
const info = hasOutdoorTemperature && this.accessory.outdoorTemperature !== null ? this.emit('message', `Outdoor temperature: ${outdoorTemperature}${temperatureUnit}`) : false;
|
|
615
|
+
const info0 = operationMode !== 8 ? this.emit('message', `Target temperature: ${setTemperature}${temperatureUnit}`) : false;
|
|
616
|
+
const info1 = operationMode === 8 && modelSupportsAuto && modelSupportsHeat ? this.emit('message', `Heating threshold temperature: ${defaultHeatingSetTemperature}${temperatureUnit}`) : false;
|
|
617
|
+
const info2 = operationMode === 8 && modelSupportsAuto && modelSupportsCool ? this.emit('message', `Cooling threshold temperature: ${defaultCoolingSetTemperature}${temperatureUnit}`) : false;
|
|
612
618
|
const info3 = modelSupportsFanSpeed ? this.emit('message', `Fan speed mode: ${CONSTANTS.AirConditioner.FanSpeed[fanSpeed]}`) : false;
|
|
613
|
-
const info4 =
|
|
619
|
+
const info4 = vaneHorizontalDirection !== null ? this.emit('message', `Vane horizontal: ${CONSTANTS.AirConditioner.HorizontalVane[vaneHorizontalDirection]}`) : false;
|
|
620
|
+
const info5 = vaneVerticalDirection !== null ? this.emit('message', `Vane vertical: ${CONSTANTS.AirConditioner.VerticalVane[vaneVerticalDirection]}`) : false;
|
|
621
|
+
const info6 = swingFunction ? this.emit('message', `Vane swing mode: ${CONSTANTS.AirConditioner.AirDirection[this.accessory.swingMode ? 6 : 0]}`) : false;
|
|
614
622
|
this.emit('message', `Temperature display unit: ${temperatureUnit}`);
|
|
615
623
|
this.emit('message', `Lock physical controls: ${this.accessory.lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
616
624
|
};
|
|
@@ -755,6 +763,9 @@ class DeviceAta extends EventEmitter {
|
|
|
755
763
|
const temperatureSensor = this.temperatureSensor;
|
|
756
764
|
const temperatureSensorOutdoor = this.temperatureSensorOutdoor;
|
|
757
765
|
const hasAutomaticFanSpeed = this.accessory.hasAutomaticFanSpeed;
|
|
766
|
+
const modelSupportsHeat = this.accessory.modelSupportsHeat;
|
|
767
|
+
const modelSupportsCool = this.accessory.modelSupportsCool;
|
|
768
|
+
const modelSupportsAuto = this.accessory.modelSupportsAuto;
|
|
758
769
|
const modelSupportsFanSpeed = this.accessory.modelSupportsFanSpeed;
|
|
759
770
|
const modelSupportsDry = this.accessory.modelSupportsDry;
|
|
760
771
|
const numberOfFanSpeeds = this.accessory.numberOfFanSpeeds;
|
|
@@ -893,46 +904,50 @@ class DeviceAta extends EventEmitter {
|
|
|
893
904
|
};
|
|
894
905
|
});
|
|
895
906
|
};
|
|
896
|
-
|
|
897
|
-
.
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
907
|
+
if (modelSupportsAuto && modelSupportsHeat) {
|
|
908
|
+
this.melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
|
|
909
|
+
.setProps({
|
|
910
|
+
minValue: 0,
|
|
911
|
+
maxValue: 31,
|
|
912
|
+
minStep: this.accessory.temperatureIncrement
|
|
913
|
+
})
|
|
914
|
+
.onGet(async () => {
|
|
915
|
+
const value = this.accessory.defaultHeatingSetTemperature;
|
|
916
|
+
return value;
|
|
917
|
+
})
|
|
918
|
+
.onSet(async (value) => {
|
|
919
|
+
try {
|
|
920
|
+
deviceData.Device.DefaultHeatingSetTemperature = value;
|
|
921
|
+
deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
|
|
922
|
+
await this.melCloudAta.send(deviceData);
|
|
923
|
+
const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
924
|
+
} catch (error) {
|
|
925
|
+
this.emit('warn', `Set heating threshold temperature error: ${error}`);
|
|
926
|
+
};
|
|
927
|
+
});
|
|
928
|
+
};
|
|
929
|
+
if (modelSupportsAuto && modelSupportsCool) {
|
|
930
|
+
this.melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
|
|
931
|
+
.setProps({
|
|
932
|
+
minValue: 10,
|
|
933
|
+
maxValue: 31,
|
|
934
|
+
minStep: this.accessory.temperatureIncrement
|
|
935
|
+
})
|
|
936
|
+
.onGet(async () => {
|
|
937
|
+
const value = this.accessory.defaultCoolingSetTemperature;
|
|
938
|
+
return value;
|
|
939
|
+
})
|
|
940
|
+
.onSet(async (value) => {
|
|
941
|
+
try {
|
|
942
|
+
deviceData.Device.DefaultCoolingSetTemperature = value;
|
|
943
|
+
deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
|
|
944
|
+
await this.melCloudAta.send(deviceData);
|
|
945
|
+
const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
946
|
+
} catch (error) {
|
|
947
|
+
this.emit('warn', `Set cooling threshold temperature error: ${error}`);
|
|
948
|
+
};
|
|
949
|
+
});
|
|
950
|
+
};
|
|
936
951
|
this.melCloudService.getCharacteristic(Characteristic.LockPhysicalControls)
|
|
937
952
|
.onGet(async () => {
|
|
938
953
|
const value = this.accessory.lockPhysicalControl;
|
|
@@ -1041,6 +1056,50 @@ class DeviceAta extends EventEmitter {
|
|
|
1041
1056
|
this.emit('warn', `Set temperature error: ${error}`);
|
|
1042
1057
|
};
|
|
1043
1058
|
});
|
|
1059
|
+
if (modelSupportsAuto && modelSupportsHeat) {
|
|
1060
|
+
this.melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
|
|
1061
|
+
.setProps({
|
|
1062
|
+
minValue: 0,
|
|
1063
|
+
maxValue: 31,
|
|
1064
|
+
minStep: this.accessory.temperatureIncrement
|
|
1065
|
+
})
|
|
1066
|
+
.onGet(async () => {
|
|
1067
|
+
const value = this.accessory.defaultHeatingSetTemperature;
|
|
1068
|
+
return value;
|
|
1069
|
+
})
|
|
1070
|
+
.onSet(async (value) => {
|
|
1071
|
+
try {
|
|
1072
|
+
deviceData.Device.DefaultHeatingSetTemperature = value;
|
|
1073
|
+
deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
|
|
1074
|
+
await this.melCloudAta.send(deviceData);
|
|
1075
|
+
const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
1076
|
+
} catch (error) {
|
|
1077
|
+
this.emit('warn', `Set heating threshold temperature error: ${error}`);
|
|
1078
|
+
};
|
|
1079
|
+
});
|
|
1080
|
+
};
|
|
1081
|
+
if (modelSupportsAuto && modelSupportsCool) {
|
|
1082
|
+
this.melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
|
|
1083
|
+
.setProps({
|
|
1084
|
+
minValue: 10,
|
|
1085
|
+
maxValue: 31,
|
|
1086
|
+
minStep: this.accessory.temperatureIncrement
|
|
1087
|
+
})
|
|
1088
|
+
.onGet(async () => {
|
|
1089
|
+
const value = this.accessory.defaultCoolingSetTemperature;
|
|
1090
|
+
return value;
|
|
1091
|
+
})
|
|
1092
|
+
.onSet(async (value) => {
|
|
1093
|
+
try {
|
|
1094
|
+
deviceData.Device.DefaultCoolingSetTemperature = value;
|
|
1095
|
+
deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
|
|
1096
|
+
await this.melCloudAta.send(deviceData);
|
|
1097
|
+
const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
1098
|
+
} catch (error) {
|
|
1099
|
+
this.emit('warn', `Set cooling threshold temperature error: ${error}`);
|
|
1100
|
+
};
|
|
1101
|
+
});
|
|
1102
|
+
};
|
|
1044
1103
|
this.melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
1045
1104
|
.onGet(async () => {
|
|
1046
1105
|
const value = this.accessory.useFahrenheit;
|
package/src/deviceatw.js
CHANGED
|
@@ -560,7 +560,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
560
560
|
switch (i) {
|
|
561
561
|
case 0: //Heat Pump - HEAT, COOL, OFF
|
|
562
562
|
this.emit('message', `${heatPumpName}, Power: ${power ? 'ON' : 'OFF'}`)
|
|
563
|
-
this.emit('message', `${heatPumpName}, Operation mode: ${
|
|
563
|
+
this.emit('message', `${heatPumpName}, Operation mode: ${CONSTANTS.HeatPump.System[unitStatus]}`);
|
|
564
564
|
this.emit('message', `${heatPumpName},'Outdoor temperature: ${roomTemperature}${temperatureUnit}`);
|
|
565
565
|
const info = flowTemperature !== null ? this.emit('message', `${heatPumpName}, Flow temperature: ${flowTemperature}${temperatureUnit}`) : false;
|
|
566
566
|
const info1 = returnTemperature !== null ? this.emit('message', `${heatPumpName}, Return temperature: ${returnTemperature}${temperatureUnit}`) : false;
|
|
@@ -569,7 +569,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
569
569
|
break;
|
|
570
570
|
case 1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
571
571
|
operationModeText = idleZone1 ? CONSTANTS.HeatPump.ZoneOperation[6] : CONSTANTS.HeatPump.ZoneOperation[operationModeZone1];
|
|
572
|
-
this.emit('message', `${zone1Name}, Operation mode: ${
|
|
572
|
+
this.emit('message', `${zone1Name}, Operation mode: ${operationModeText}`);
|
|
573
573
|
this.emit('message', `${zone1Name}, Temperature: ${roomTemperature}${temperatureUnit}`);
|
|
574
574
|
this.emit('message', `${zone1Name}, Target temperature: ${setTemperature}${temperatureUnit}`)
|
|
575
575
|
const info2 = flowTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Flow temperature: ${flowTemperatureZone1}${temperatureUnit}`) : false;
|
|
@@ -579,7 +579,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
579
579
|
break;
|
|
580
580
|
case caseHotWater: //Hot Water - AUTO, HEAT NOW
|
|
581
581
|
operationModeText = operationMode === 1 ? CONSTANTS.HeatPump.ForceDhw[1] : CONSTANTS.HeatPump.ForceDhw[forcedHotWaterMode ? 1 : 0];
|
|
582
|
-
this.emit('message', `${hotWaterName}, Operation mode: ${
|
|
582
|
+
this.emit('message', `${hotWaterName}, Operation mode: ${operationModeText}`);
|
|
583
583
|
this.emit('message', `${hotWaterName}, Temperature: ${roomTemperature}${temperatureUnit}`);
|
|
584
584
|
this.emit('message', `${hotWaterName}, Target temperature: ${setTemperature}${temperatureUnit}`)
|
|
585
585
|
const info4 = flowTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Flow temperature: ${flowTemperatureWaterTank}${temperatureUnit}`) : false;
|
|
@@ -589,7 +589,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
589
589
|
break;
|
|
590
590
|
case caseZone2: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
591
591
|
operationModeText = idleZone2 ? CONSTANTS.HeatPump.ZoneOperation[6] : CONSTANTS.HeatPump.ZoneOperation[operationModeZone2];
|
|
592
|
-
this.emit('message', `${zone2Name}, Operation mode: ${
|
|
592
|
+
this.emit('message', `${zone2Name}, Operation mode: ${operationModeText}`);
|
|
593
593
|
this.emit('message', `${zone2Name}, Temperature: ${roomTemperature}${temperatureUnit}`);
|
|
594
594
|
this.emit('message', `${zone2Name}, Target temperature: ${setTemperature}${temperatureUnit}`)
|
|
595
595
|
const info6 = flowTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Flow temperature: ${flowTemperatureZone2}${temperatureUnit}`) : false;
|
package/src/deviceerv.js
CHANGED
|
@@ -542,15 +542,14 @@ class DeviceErv extends EventEmitter {
|
|
|
542
542
|
|
|
543
543
|
//log current state
|
|
544
544
|
if (!this.disableLogInfo) {
|
|
545
|
-
const operationModeText = !power ? CONSTANTS.Ventilation.System[0] : CONSTANTS.Ventilation.OperationMode[ventilationMode];
|
|
546
545
|
this.emit('message', `Power: ${power ? 'ON' : 'OFF'}`);
|
|
547
|
-
this.emit('message', `Operation mode: ${
|
|
546
|
+
this.emit('message', `Operation mode: ${CONSTANTS.Ventilation.OperationMode[ventilationMode]}`);
|
|
548
547
|
this.emit('message', `Room temperature: ${roomTemperature}${temperatureUnit}`);
|
|
549
548
|
const info = hasCoolOperationMode || hasHeatOperationMode ? this.emit('message', `Target temperature: ${targetTemperature}${temperatureUnit}`) : false;
|
|
550
549
|
const info1 = hasSupplyTemperature && this.accessory.supplyTemperature !== null ? this.emit('message', `Supply temperature: ${roomTemperature}${temperatureUnit}`) : false;
|
|
551
550
|
const info2 = hasOutdoorTemperature && this.accessory.outdoorTemperature !== null ? this.emit('message', `Outdoor temperature: ${roomTemperature}${temperatureUnit}`) : false;
|
|
552
|
-
const info3 = hasHeatOperationMode
|
|
553
|
-
const info4 = hasCoolOperationMode
|
|
551
|
+
const info3 = hasHeatOperationMode ? this.emit('message', `Heating threshold temperature: ${targetTemperature}${temperatureUnit}`) : false;
|
|
552
|
+
const info4 = hasCoolOperationMode ? this.emit('message', `Cooling threshold temperature: ${targetTemperature}${temperatureUnit}`) : false;
|
|
554
553
|
this.emit('message', `Fan speed mode: ${CONSTANTS.Ventilation.FanSpeed[setFanSpeed]}`);
|
|
555
554
|
this.emit('message', `Temperature display unit: ${temperatureUnit}`);
|
|
556
555
|
this.emit('message', `Core maintenance: ${CONSTANTS.Ventilation.CoreMaintenance[coreMaintenanceRequired]}`);
|
package/src/melcloudata.js
CHANGED
|
@@ -405,8 +405,8 @@ class MelCloudAta extends EventEmitter {
|
|
|
405
405
|
VaneVertical: deviceData.Device.VaneVerticalDirection,
|
|
406
406
|
HideVaneControls: deviceData.Device.HideVaneControls,
|
|
407
407
|
HideDryModeControl: deviceData.Device.HideDryModeControl,
|
|
408
|
-
DefaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature ?? 23,
|
|
409
408
|
DefaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature ?? 21,
|
|
409
|
+
DefaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature ?? 23,
|
|
410
410
|
InStandbyMode: deviceData.Device.InStandbyMode,
|
|
411
411
|
ProhibitSetTemperature: deviceData.Device.ProhibitSetTemperature,
|
|
412
412
|
ProhibitOperationMode: deviceData.Device.ProhibitOperationMode,
|