homebridge-melcloud-control 4.7.9-beta.2 → 4.7.9-beta.20
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/index.js +2 -0
- package/package.json +2 -2
- package/src/constants.js +12 -9
- package/src/deviceata.js +42 -30
- package/src/deviceatw.js +283 -187
- package/src/deviceerv.js +41 -32
- package/src/melcloudata.js +2 -1
- package/src/melcloudatw.js +9 -17
- package/src/melclouderv.js +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -24,6 +24,15 @@ 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.9] - (02.02.2026)
|
|
28
|
+
|
|
29
|
+
## Changes
|
|
30
|
+
|
|
31
|
+
- fix wrong display zone 2 for ATW (MELCloud Home)
|
|
32
|
+
- fix set ATW params
|
|
33
|
+
- bump dependencies
|
|
34
|
+
- cleanup
|
|
35
|
+
|
|
27
36
|
# [4.7.8] - (02.02.2026)
|
|
28
37
|
|
|
29
38
|
## Changes
|
package/index.js
CHANGED
|
@@ -54,10 +54,12 @@ class MelCloudPlatform {
|
|
|
54
54
|
log.info(`${name}, debug: did finish launching.`);
|
|
55
55
|
const safeConfig = {
|
|
56
56
|
...account,
|
|
57
|
+
user: 'removed',
|
|
57
58
|
passwd: 'removed',
|
|
58
59
|
mqtt: {
|
|
59
60
|
auth: {
|
|
60
61
|
...account.mqtt?.auth,
|
|
62
|
+
user: 'removed',
|
|
61
63
|
passwd: 'removed',
|
|
62
64
|
}
|
|
63
65
|
},
|
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.9-beta.
|
|
4
|
+
"version": "4.7.9-beta.20",
|
|
5
5
|
"description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "grzegorz914",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@homebridge/plugin-ui-utils": "^2.1.2",
|
|
39
|
-
"mqtt": "^5.
|
|
39
|
+
"mqtt": "^5.15.0",
|
|
40
40
|
"axios": "^1.13.4",
|
|
41
41
|
"express": "^5.2.1",
|
|
42
42
|
"puppeteer": "^24.36.1",
|
package/src/constants.js
CHANGED
|
@@ -113,21 +113,24 @@ export const AirConditioner = {
|
|
|
113
113
|
export const HeatPump = {
|
|
114
114
|
ZoneNameMapEnumToString: { 0: "Heat Pump", 1: "Zone 1", 2: "Hot Water", 3: "Zone 2" },
|
|
115
115
|
SystemMapEnumToStringInfo: { 0: "System Off", 1: "System On", 2: "Emergency Run", 3: "Test Run" },
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
UnitStatusMapEnumToStringInfo: { 0: "Heat", 1: "Cool" },
|
|
117
|
+
HeatPumpModeMapStringToEnum: { "Off": 0, "Heat": 1, "Cool": 2, "Auto": 3 },
|
|
118
|
+
HeatPumpModeMapEnumToString: { 0: "Off", 1: "Heat", 2: "Cool", 3: "Auto" },
|
|
119
|
+
HeatPumpModeMapEnumToStringInfoHeaterCooler: { 0: "On", 1: "Heat", 2: "Cool" },
|
|
120
|
+
HeatPumpModeMapEnumToStringInfoThermostat: { 0: "Off", 1: "Heat", 2: "Cool", 3: "On" },
|
|
118
121
|
DefrostMapStringToEnum: { "Normal": 0, "Standby": 1, "Defrost": 2, "Waiting Restart": 3 },
|
|
119
122
|
DefrostMapEnumToString: { 0: "Normal", 1: "Standby", 2: "Defrost", 3: "Waiting Restart" },
|
|
120
|
-
OperationModeMapStringToEnum: { "
|
|
121
|
-
OperationModeMapEnumToString: { 0: "
|
|
122
|
-
OperationModeMapEnumToStringInfo: { 0: "
|
|
123
|
-
OperationModeZoneMapStringToEnum: { "
|
|
124
|
-
OperationModeZoneMapEnumToString: { 0: "
|
|
125
|
-
OperationModeZoneMapEnumToStringInfo: { 0: "Heat
|
|
123
|
+
OperationModeMapStringToEnum: { "Stop": 0, "HotWater": 1, "Heating": 2, "Cooling": 3, "HotWaterStorage": 4, "FreezeStat": 5, "Legionella": 6, "HeatEco": 7, "Mode1": 8, "Mode2": 9, "Mode3": 10, "HeatUp": 11 },
|
|
124
|
+
OperationModeMapEnumToString: { 0: "Stop", 1: "HotWater", 2: "Heating", 3: "Cooling", 4: "HotWaterStorage", 5: "FreezeStat", 6: "Legionella", 7: "HeatEco", 8: "Mode1", 9: "Mode2", 10: "Mode3", 11: "HeatUp" },
|
|
125
|
+
OperationModeMapEnumToStringInfo: { 0: "Stop", 1: "Hot Water", 2: "Heating", 3: "Cooling", 4: "Hot Water Storage", 5: "Freeze Stat", 6: "Legionella", 7: "Heat Eco", 8: "Mode 1", 9: "Mode 2", 10: "Mode 3", 11: "Heat Up" },
|
|
126
|
+
OperationModeZoneMapStringToEnum: { "HeatRoomTemperature": 0, "HeatFlowTemperature": 1, "HeatCurve": 2, "CoolRoomTemperature": 3, "CoolFlowTemperature": 4, "FloorDryUp": 5, "Stop": 6 },
|
|
127
|
+
OperationModeZoneMapEnumToString: { 0: "HeatRoomTemperature", 1: "HeatFlowTemperature", 2: "HeatCurve", 3: "CoolRoomTemperature", 4: "CoolFlowTemperature", 5: "FloorDryUp", 6: "Stop" },
|
|
128
|
+
OperationModeZoneMapEnumToStringInfo: { 0: "Heat Room Temperature", 1: "Heat Flow Temperature", 2: "Heat Curve", 3: "Cool Room Temperature", 4: "Cool Flow Temperature", 5: "Floor Dry Up", 6: "Stop" },
|
|
126
129
|
OperationModeDhwMapStringToEnum: { "Normal": 0, "Eco": 1 },
|
|
127
130
|
OperationModeDhwMapEnumToString: { 0: "Normal", 1: "Eco" },
|
|
128
131
|
ForceDhwMapStringToEnum: { "Normal": 0, "HeatNow": 1 },
|
|
129
132
|
ForceDhwMapEnumToString: { 0: "Normal", 1: "HeatNow" },
|
|
130
|
-
ForceDhwMapEnumToStringInfo: { 0: "Normal", 1: "Heat Now" },
|
|
133
|
+
ForceDhwMapEnumToStringInfo: { 0: "Hot Water Heat Normal", 1: "Hot Water Heat Now" },
|
|
131
134
|
HolidayMapStringToEnum: { "Normal": 0, "Holiday": 1 },
|
|
132
135
|
HolidayMapEnumToString: { 0: "Normal", 1: "Holiday" },
|
|
133
136
|
EffectiveFlags: {
|
package/src/deviceata.js
CHANGED
|
@@ -630,6 +630,9 @@ class DeviceAta extends EventEmitter {
|
|
|
630
630
|
this.melCloudService = melCloudServiceT;
|
|
631
631
|
accessory.addService(melCloudServiceT);
|
|
632
632
|
break;
|
|
633
|
+
default:
|
|
634
|
+
if (this.logWarn) this.emit('warn', `Received unknown display type: ${this.displayType}`);
|
|
635
|
+
return;
|
|
633
636
|
};
|
|
634
637
|
|
|
635
638
|
//temperature sensor services
|
|
@@ -646,7 +649,7 @@ class DeviceAta extends EventEmitter {
|
|
|
646
649
|
accessory.addService(this.roomTemperatureSensorService);
|
|
647
650
|
}
|
|
648
651
|
|
|
649
|
-
if (this.temperatureOutdoorSensor && supportsOutdoorTemperature
|
|
652
|
+
if (this.temperatureOutdoorSensor && supportsOutdoorTemperature) {
|
|
650
653
|
if (this.logDebug) this.emit('debug', `Prepare outdoor temperature sensor service`);
|
|
651
654
|
this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `outdoorTemperatureSensorService${deviceId}`);
|
|
652
655
|
this.outdoorTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -702,7 +705,7 @@ class DeviceAta extends EventEmitter {
|
|
|
702
705
|
}
|
|
703
706
|
|
|
704
707
|
//frost protection
|
|
705
|
-
if (supportsHeat && this.frostProtectionSupport && this.accessory.
|
|
708
|
+
if (supportsHeat && this.frostProtectionSupport && this.accessory.frostProtectionEnabled !== null) {
|
|
706
709
|
//control
|
|
707
710
|
if (this.logDebug) this.emit('debug', `Prepare frost protection control service`);
|
|
708
711
|
const frostProtectionControlService = new Service.HeaterCooler(`${serviceName} Frost Protection`, `frostProtectionControlService${deviceId}`);
|
|
@@ -710,7 +713,7 @@ class DeviceAta extends EventEmitter {
|
|
|
710
713
|
frostProtectionControlService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Frost Protection`);
|
|
711
714
|
frostProtectionControlService.getCharacteristic(Characteristic.Active)
|
|
712
715
|
.onGet(async () => {
|
|
713
|
-
const state = this.accessory.
|
|
716
|
+
const state = this.accessory.frostProtectionEnabled;
|
|
714
717
|
return state;
|
|
715
718
|
})
|
|
716
719
|
.onSet(async (state) => {
|
|
@@ -802,7 +805,7 @@ class DeviceAta extends EventEmitter {
|
|
|
802
805
|
this.frostProtectionControlSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Frost Protection Control`);
|
|
803
806
|
this.frostProtectionControlSensorService.getCharacteristic(Characteristic.ContactSensorState)
|
|
804
807
|
.onGet(async () => {
|
|
805
|
-
const state = this.accessory.
|
|
808
|
+
const state = this.accessory.frostProtectionEnabled;
|
|
806
809
|
return state;
|
|
807
810
|
})
|
|
808
811
|
accessory.addService(this.frostProtectionControlSensorService);
|
|
@@ -821,7 +824,7 @@ class DeviceAta extends EventEmitter {
|
|
|
821
824
|
}
|
|
822
825
|
|
|
823
826
|
//overheat protection
|
|
824
|
-
if (this.overheatProtectionSupport && this.accessory.
|
|
827
|
+
if (this.overheatProtectionSupport && this.accessory.overheatProtectionEnabled !== null) {
|
|
825
828
|
//control
|
|
826
829
|
if (this.logDebug) this.emit('debug', `Prepare overheat protection control service`);
|
|
827
830
|
const overheatProtectionControlService = new Service.HeaterCooler(`${serviceName} Overheat Protection`, `overheatProtectionControlService${deviceId}`);
|
|
@@ -829,7 +832,7 @@ class DeviceAta extends EventEmitter {
|
|
|
829
832
|
overheatProtectionControlService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Overheat Protection`);
|
|
830
833
|
overheatProtectionControlService.getCharacteristic(Characteristic.Active)
|
|
831
834
|
.onGet(async () => {
|
|
832
|
-
const state = this.accessory.
|
|
835
|
+
const state = this.accessory.overheatProtectionEnabled;
|
|
833
836
|
return state;
|
|
834
837
|
})
|
|
835
838
|
.onSet(async (state) => {
|
|
@@ -921,7 +924,7 @@ class DeviceAta extends EventEmitter {
|
|
|
921
924
|
this.overheatProtectionControlSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Overheat Protection Control`);
|
|
922
925
|
this.overheatProtectionControlSensorService.getCharacteristic(Characteristic.ContactSensorState)
|
|
923
926
|
.onGet(async () => {
|
|
924
|
-
const state = this.accessory.
|
|
927
|
+
const state = this.accessory.overheatProtectionEnabled;
|
|
925
928
|
return state;
|
|
926
929
|
})
|
|
927
930
|
accessory.addService(this.overheatProtectionControlSensorService);
|
|
@@ -939,7 +942,7 @@ class DeviceAta extends EventEmitter {
|
|
|
939
942
|
}
|
|
940
943
|
|
|
941
944
|
//holiday mode
|
|
942
|
-
if (this.holidayModeSupport && this.accessory.
|
|
945
|
+
if (this.holidayModeSupport && this.accessory.holidayModeEnabled !== null) {
|
|
943
946
|
//control
|
|
944
947
|
if (this.logDebug) this.emit('debug', `Prepare holiday mode control service`);
|
|
945
948
|
this.holidayModeControlService = new Service.Switch(`${serviceName} Holiday Mode`, `holidayModeControlService${deviceId}`);
|
|
@@ -947,7 +950,7 @@ class DeviceAta extends EventEmitter {
|
|
|
947
950
|
this.holidayModeControlService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Holiday Mode`);
|
|
948
951
|
this.holidayModeControlService.getCharacteristic(Characteristic.On)
|
|
949
952
|
.onGet(async () => {
|
|
950
|
-
const state = this.accessory.
|
|
953
|
+
const state = this.accessory.holidayModeEnabled;
|
|
951
954
|
return state;
|
|
952
955
|
})
|
|
953
956
|
.onSet(async (state) => {
|
|
@@ -967,7 +970,7 @@ class DeviceAta extends EventEmitter {
|
|
|
967
970
|
this.holidayModeControlSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Holiday Mode Control`);
|
|
968
971
|
this.holidayModeControlSensorService.getCharacteristic(Characteristic.ContactSensorState)
|
|
969
972
|
.onGet(async () => {
|
|
970
|
-
const state = this.accessory.
|
|
973
|
+
const state = this.accessory.holidayModeEnabled;
|
|
971
974
|
return state;
|
|
972
975
|
})
|
|
973
976
|
accessory.addService(this.holidayModeControlSensorService);
|
|
@@ -1429,7 +1432,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1429
1432
|
flag = AirConditioner.EffectiveFlags.Prohibit;
|
|
1430
1433
|
break;
|
|
1431
1434
|
default:
|
|
1432
|
-
if (this.logWarn) this.emit('warn', `
|
|
1435
|
+
if (this.logWarn) this.emit('warn', `Received unknown button mode: ${mode}`);
|
|
1433
1436
|
break;
|
|
1434
1437
|
};
|
|
1435
1438
|
|
|
@@ -1518,8 +1521,11 @@ class DeviceAta extends EventEmitter {
|
|
|
1518
1521
|
|
|
1519
1522
|
//protection
|
|
1520
1523
|
const frostProtection = deviceData.FrostProtection ?? {};
|
|
1524
|
+
const frostProtectionEnabled = frostProtection.Enabled ?? null;
|
|
1521
1525
|
const overheatProtection = deviceData.OverheatProtection ?? {};
|
|
1526
|
+
const overheatProtectionEnabled = overheatProtection.Enabled ?? null;
|
|
1522
1527
|
const holidayMode = deviceData.HolidayMode ?? {};
|
|
1528
|
+
const holidayModeEnabled = holidayMode.Enabled ?? null;
|
|
1523
1529
|
|
|
1524
1530
|
//device control
|
|
1525
1531
|
const hideVaneControls = deviceData.HideVaneControls ?? false;
|
|
@@ -1527,11 +1533,11 @@ class DeviceAta extends EventEmitter {
|
|
|
1527
1533
|
|
|
1528
1534
|
//device info
|
|
1529
1535
|
const supportsStanbyMode = deviceData.Device[supportStandbyKey];
|
|
1530
|
-
const supportsAutomaticFanSpeed = deviceData.Device.HasAutomaticFanSpeed
|
|
1536
|
+
const supportsAutomaticFanSpeed = deviceData.Device.HasAutomaticFanSpeed;
|
|
1531
1537
|
const supportsAirDirectionFunction = deviceData.Device[supportAirDirectionKey];
|
|
1532
1538
|
const supportsSwingFunction = deviceData.Device[supportSwingKey];
|
|
1533
1539
|
const supportsWideVane = deviceData.Device[supportVideWaneKey];
|
|
1534
|
-
const supportsOutdoorTemperature = deviceData.Device.HasOutdoorTemperature;
|
|
1540
|
+
const supportsOutdoorTemperature = deviceData.Device.HasOutdoorTemperature && this.functions.isValidValue(deviceData.Device.OutdoorTemperature);
|
|
1535
1541
|
const supportsFanSpeed = accountTypeMelCloud ? deviceData.Device.ModelSupportsFanSpeed : deviceData.Device.NumberOfFanSpeeds > 0;
|
|
1536
1542
|
const supportsAuto1 = deviceData.Device[supportAutoKey];
|
|
1537
1543
|
const supportsAuto = this.autoDryFanMode >= 1 && supportsAuto1
|
|
@@ -1560,9 +1566,9 @@ class DeviceAta extends EventEmitter {
|
|
|
1560
1566
|
const vaneVerticalSwing = deviceData.Device.VaneVerticalSwing;
|
|
1561
1567
|
const vaneHorizontalDirection = deviceData.Device.VaneHorizontalDirection;
|
|
1562
1568
|
const vaneHorizontalSwing = deviceData.Device.VaneHorizontalSwing;
|
|
1563
|
-
const prohibitSetTemperature = deviceData.Device.ProhibitSetTemperature
|
|
1564
|
-
const prohibitOperationMode = deviceData.Device.ProhibitOperationMode
|
|
1565
|
-
const prohibitPower = deviceData.Device.ProhibitPower
|
|
1569
|
+
const prohibitSetTemperature = deviceData.Device.ProhibitSetTemperature;
|
|
1570
|
+
const prohibitOperationMode = deviceData.Device.ProhibitOperationMode;
|
|
1571
|
+
const prohibitPower = deviceData.Device.ProhibitPower;
|
|
1566
1572
|
const temperatureStep = deviceData.Device[tempStepKey] ? 0.5 : 1;
|
|
1567
1573
|
const outdoorTemperature = deviceData.Device.OutdoorTemperature;
|
|
1568
1574
|
const isConnected = accountTypeMelCloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
|
|
@@ -1576,8 +1582,11 @@ class DeviceAta extends EventEmitter {
|
|
|
1576
1582
|
scheduleEnabled: scheduleEnabled,
|
|
1577
1583
|
scenes: scenesOnServer,
|
|
1578
1584
|
frostProtection: frostProtection,
|
|
1585
|
+
frostProtectionEnabled: frostProtectionEnabled,
|
|
1579
1586
|
overheatProtection: overheatProtection,
|
|
1587
|
+
overheatProtectionEnabled: overheatProtectionEnabled,
|
|
1580
1588
|
holidayMode: holidayMode,
|
|
1589
|
+
holidayModeEnabled: holidayModeEnabled,
|
|
1581
1590
|
supportsAutomaticFanSpeed: supportsAutomaticFanSpeed,
|
|
1582
1591
|
supportsAirDirectionFunction: supportsAirDirectionFunction,
|
|
1583
1592
|
supportsSwingFunction: supportsSwingFunction,
|
|
@@ -1768,6 +1777,9 @@ class DeviceAta extends EventEmitter {
|
|
|
1768
1777
|
{ type: Characteristic.TemperatureDisplayUnits, value: obj.useFahrenheit }
|
|
1769
1778
|
);
|
|
1770
1779
|
break;
|
|
1780
|
+
default:
|
|
1781
|
+
if (this.logWarn) this.emit('warn', `Received unknown display type: ${this.displayType}`);
|
|
1782
|
+
return;
|
|
1771
1783
|
};
|
|
1772
1784
|
this.accessory = obj;
|
|
1773
1785
|
|
|
@@ -1785,35 +1797,35 @@ class DeviceAta extends EventEmitter {
|
|
|
1785
1797
|
this.errorService?.updateCharacteristic(Characteristic.ContactSensorState, isInError);
|
|
1786
1798
|
|
|
1787
1799
|
//frost protection
|
|
1788
|
-
if (this.frostProtectionSupport &&
|
|
1800
|
+
if (this.frostProtectionSupport && frostProtectionEnabled !== null) {
|
|
1789
1801
|
this.frostProtectionControlService
|
|
1790
|
-
?.updateCharacteristic(Characteristic.Active,
|
|
1802
|
+
?.updateCharacteristic(Characteristic.Active, frostProtectionEnabled)
|
|
1791
1803
|
.updateCharacteristic(Characteristic.CurrentHeaterCoolerState, frostProtection.Active ? 2 : 1)
|
|
1792
1804
|
.updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0)
|
|
1793
1805
|
.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
|
|
1794
1806
|
.updateCharacteristic(Characteristic.CoolingThresholdTemperature, frostProtection.Max)
|
|
1795
1807
|
.updateCharacteristic(Characteristic.HeatingThresholdTemperature, frostProtection.Min);
|
|
1796
|
-
this.frostProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState,
|
|
1808
|
+
this.frostProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState, frostProtectionEnabled);
|
|
1797
1809
|
this.frostProtectionSensorService?.updateCharacteristic(Characteristic.ContactSensorState, frostProtection.Active);
|
|
1798
1810
|
}
|
|
1799
1811
|
|
|
1800
1812
|
//overheat protection
|
|
1801
|
-
if (this.overheatProtectionSupport &&
|
|
1813
|
+
if (this.overheatProtectionSupport && overheatProtectionEnabled !== null) {
|
|
1802
1814
|
this.overheatProtectionControlService
|
|
1803
|
-
?.updateCharacteristic(Characteristic.Active,
|
|
1815
|
+
?.updateCharacteristic(Characteristic.Active, overheatProtectionEnabled)
|
|
1804
1816
|
.updateCharacteristic(Characteristic.CurrentHeaterCoolerState, overheatProtection.Active ? 2 : 1)
|
|
1805
1817
|
.updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0)
|
|
1806
1818
|
.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
|
|
1807
1819
|
.updateCharacteristic(Characteristic.CoolingThresholdTemperature, overheatProtection.Max)
|
|
1808
1820
|
.updateCharacteristic(Characteristic.HeatingThresholdTemperature, overheatProtection.Min);
|
|
1809
|
-
this.overheatProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState,
|
|
1821
|
+
this.overheatProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState, overheatProtectionEnabled);
|
|
1810
1822
|
this.overheatProtectionSensorService?.updateCharacteristic(Characteristic.ContactSensorState, overheatProtection.Active);
|
|
1811
1823
|
}
|
|
1812
1824
|
|
|
1813
1825
|
//holiday mode
|
|
1814
|
-
if (this.holidayModeSupport &&
|
|
1826
|
+
if (this.holidayModeSupport && holidayModeEnabled !== null) {
|
|
1815
1827
|
this.holidayModeControlService?.updateCharacteristic(Characteristic.On, holidayMode.Enabled);
|
|
1816
|
-
this.holidayModeControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState,
|
|
1828
|
+
this.holidayModeControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState, holidayModeEnabled);
|
|
1817
1829
|
this.holidayModeSensorService?.updateCharacteristic(Characteristic.ContactSensorState, holidayMode.Active);
|
|
1818
1830
|
}
|
|
1819
1831
|
|
|
@@ -1984,16 +1996,16 @@ class DeviceAta extends EventEmitter {
|
|
|
1984
1996
|
button.state = (obj.lockPhysicalControl === 1);
|
|
1985
1997
|
break;
|
|
1986
1998
|
case 38: //PHYSICAL LOCK CONTROLS POWER
|
|
1987
|
-
button.state =
|
|
1999
|
+
button.state = prohibitPower;
|
|
1988
2000
|
break;
|
|
1989
2001
|
case 39: //PHYSICAL LOCK CONTROLS MODE
|
|
1990
|
-
button.state =
|
|
2002
|
+
button.state = prohibitOperationMode;
|
|
1991
2003
|
break;
|
|
1992
2004
|
case 40: //PHYSICAL LOCK CONTROLS TEMP
|
|
1993
|
-
button.state =
|
|
2005
|
+
button.state = prohibitSetTemperature;
|
|
1994
2006
|
break;
|
|
1995
2007
|
default: //Unknown button
|
|
1996
|
-
if (this.logWarn) this.emit('warn', `
|
|
2008
|
+
if (this.logWarn) this.emit('warn', `Received unknown button mode: ${mode} detected`);
|
|
1997
2009
|
break;
|
|
1998
2010
|
};
|
|
1999
2011
|
|
|
@@ -2013,7 +2025,7 @@ class DeviceAta extends EventEmitter {
|
|
|
2013
2025
|
this.emit('info', `Current operation mode: ${this.displayType === 1 ? AirConditioner.CurrentOperationModeMapEnumToStringHeatherCooler[obj.currentOperationMode] : AirConditioner.CurrentOperationModeMapEnumToStringThermostat[obj.currentOperationMode]}`);
|
|
2014
2026
|
this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`);
|
|
2015
2027
|
this.emit('info', `Current temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
2016
|
-
if (supportsOutdoorTemperature
|
|
2028
|
+
if (supportsOutdoorTemperature) this.emit('info', `Outdoor temperature: ${outdoorTemperature}${obj.temperatureUnit}`);
|
|
2017
2029
|
if (supportsFanSpeed) this.emit('info', `Target fan speed: ${AirConditioner.FanSpeedMapEnumToString[setFanSpeed]}`);
|
|
2018
2030
|
if (supportsFanSpeed) this.emit('info', `Current fan speed: ${AirConditioner.AktualFanSpeedMapEnumToString[actualFanSpeed]}`);
|
|
2019
2031
|
if (vaneHorizontalDirection !== null) this.emit('info', `Vane horizontal: ${AirConditioner.VaneHorizontalDirectionMapEnumToString[vaneHorizontalDirection]}`);
|
|
@@ -2021,7 +2033,7 @@ class DeviceAta extends EventEmitter {
|
|
|
2021
2033
|
if (supportsSwingFunction) this.emit('info', `Air direction: ${AirConditioner.AirDirectionMapEnumToString[currentSwingMode]}`);
|
|
2022
2034
|
this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
|
|
2023
2035
|
this.emit('info', `Lock physical controls: ${obj.lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
2024
|
-
if (!accountTypeMelCloud) this.emit('info', `
|
|
2036
|
+
if (!accountTypeMelCloud) this.emit('info', `WiFi signal strength: ${deviceData.Rssi}dBm`);
|
|
2025
2037
|
}
|
|
2026
2038
|
})
|
|
2027
2039
|
.on('success', (success) => this.emit('success', success))
|