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 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/homekit.png" width="382"></a>
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.2.5",
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.20.0"
38
+ "express": "^4.21.0"
39
39
  },
40
40
  "keywords": [
41
41
  "homebridge",
@@ -53,6 +53,7 @@
53
53
  "3",
54
54
  "4",
55
55
  "5",
56
+ "6",
56
57
  "SWING"
57
58
  ],
58
59
  "HorizontalVane": [
@@ -63,6 +64,11 @@
63
64
  "4",
64
65
  "5",
65
66
  "SPLIT",
67
+ "7",
68
+ "8",
69
+ "9",
70
+ "10",
71
+ "11",
66
72
  "SWING"
67
73
  ],
68
74
  "AirDirection": [
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 = setTemperature < roomTemperature ? 3 : 2;
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 = setTemperature < roomTemperature ? 2 : 1;
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: ${operationModeText}`);
612
+ this.emit('message', `Operation mode: ${CONSTANTS.AirConditioner.DriveMode[operationMode]}`);
607
613
  this.emit('message', `Room temperature: ${roomTemperature}${temperatureUnit}`);
608
- this.emit('message', `Target temperature: ${setTemperature}${temperatureUnit}`);
609
- const info0 = hasOutdoorTemperature && this.accessory.outdoorTemperature !== null ? this.emit('message', `Outdoor temperature: ${roomTemperature}${temperatureUnit}`) : false;
610
- const info1 = displayMode === 0 ? this.emit('message', `Heating threshold temperature: ${setTemperature}${temperatureUnit}`) : false;
611
- const info2 = displayMode === 0 ? this.emit('message', `Cooling threshold temperature: ${setTemperature}${temperatureUnit}`) : false;
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 = swingFunction ? this.emit('message', `Vane swing mode: ${CONSTANTS.AirConditioner.AirDirection[this.accessory.swingMode ? 6 : 0]}`) : false;
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
- this.melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
897
- .setProps({
898
- minValue: 0,
899
- maxValue: 31,
900
- minStep: this.accessory.temperatureIncrement
901
- })
902
- .onGet(async () => {
903
- const value = this.accessory.setTemperature;
904
- return value;
905
- })
906
- .onSet(async (value) => {
907
- try {
908
- deviceData.Device.SetTemperature = value;
909
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
910
- await this.melCloudAta.send(deviceData);
911
- const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
912
- } catch (error) {
913
- this.emit('warn', `Set heating threshold temperature error: ${error}`);
914
- };
915
- });
916
- this.melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
917
- .setProps({
918
- minValue: 10,
919
- maxValue: 31,
920
- minStep: this.accessory.temperatureIncrement
921
- })
922
- .onGet(async () => {
923
- const value = this.accessory.setTemperature;
924
- return value;
925
- })
926
- .onSet(async (value) => {
927
- try {
928
- deviceData.Device.SetTemperature = value;
929
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
930
- await this.melCloudAta.send(deviceData);
931
- const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
932
- } catch (error) {
933
- this.emit('warn', `Set cooling threshold temperature error: ${error}`);
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: ${!power ? CONSTANTS.HeatPump.System[0] : CONSTANTS.HeatPump.System[unitStatus]}`);
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: ${!power ? CONSTANTS.HeatPump.System[0] : operationModeText}`);
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: ${!power ? CONSTANTS.HeatPump.System[0] : operationModeText}`);
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: ${!power ? CONSTANTS.HeatPump.System[0] : operationModeText}`);
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: ${operationModeText}`);
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 && displayMode === 0 ? this.emit('message', `Heating threshold temperature: ${targetTemperature}${temperatureUnit}`) : false;
553
- const info4 = hasCoolOperationMode && displayMode === 0 ? this.emit('message', `Cooling threshold temperature: ${targetTemperature}${temperatureUnit}`) : false;
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]}`);
@@ -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,