homebridge-melcloud-control 4.0.0-beta.565 → 4.0.0-beta.567
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/package.json +1 -1
- package/src/deviceata.js +22 -12
- package/src/deviceatw.js +8 -4
- package/src/deviceerv.js +41 -32
- package/src/melcloudata.js +8 -2
- package/src/melcloudatw.js +7 -2
- package/src/melclouderv.js +14 -9
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.567",
|
|
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/deviceata.js
CHANGED
|
@@ -262,7 +262,7 @@ class DeviceAta extends EventEmitter {
|
|
|
262
262
|
|
|
263
263
|
//information service
|
|
264
264
|
if (this.logDebug) this.emit('debug', `Prepare information service`);
|
|
265
|
-
accessory.getService(Service.AccessoryInformation)
|
|
265
|
+
this.informationService = accessory.getService(Service.AccessoryInformation)
|
|
266
266
|
.setCharacteristic(Characteristic.Manufacturer, this.manufacturer)
|
|
267
267
|
.setCharacteristic(Characteristic.Model, this.model)
|
|
268
268
|
.setCharacteristic(Characteristic.SerialNumber, this.serialNumber)
|
|
@@ -606,7 +606,7 @@ class DeviceAta extends EventEmitter {
|
|
|
606
606
|
};
|
|
607
607
|
|
|
608
608
|
//error sensor
|
|
609
|
-
if (this.errorSensor) {
|
|
609
|
+
if (this.errorSensor && this.accessory.isInError !== null) {
|
|
610
610
|
if (this.logDebug) this.emit('debug', `Prepare error service`);
|
|
611
611
|
this.errorService = new Service.ContactSensor(`${serviceName} Error`, `Error Sensor ${deviceId}`);
|
|
612
612
|
this.errorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -954,6 +954,18 @@ class DeviceAta extends EventEmitter {
|
|
|
954
954
|
.on('deviceState', async (deviceData) => {
|
|
955
955
|
this.deviceData = deviceData;
|
|
956
956
|
|
|
957
|
+
//keys
|
|
958
|
+
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
959
|
+
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
960
|
+
const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
|
|
961
|
+
const supportAirDirectionKey = this.accountType === 'melcloud' ? 'AirDirectionFunction' : 'HasAirDirectionFunction';
|
|
962
|
+
const supportSwingKey = this.accountType === 'melcloud' ? 'SwingFunction' : 'HasSwing';
|
|
963
|
+
const supportVideWaneKey = this.accountType === 'melcloud' ? 'ModelSupportsWideVane' : 'SupportsWideVane';
|
|
964
|
+
const supportAutoKey = this.accountType === 'melcloud' ? 'ModelSupportsAuto' : 'HasAutoOperationMode';
|
|
965
|
+
const supportHeatKey = this.accountType === 'melcloud' ? 'ModelSupportsHeat' : 'HasHeatOperationMode';
|
|
966
|
+
const supportDryKey = this.accountType === 'melcloud' ? 'ModelSupportsDry' : 'HasDryOperationMode';
|
|
967
|
+
const supportCoolKey = this.accountType === 'melcloud' ? 'ModelSupportsCool' : 'HasCoolOperationMode';
|
|
968
|
+
|
|
957
969
|
//presets
|
|
958
970
|
const presetsOnServer = deviceData.Presets ?? [];
|
|
959
971
|
|
|
@@ -964,17 +976,17 @@ class DeviceAta extends EventEmitter {
|
|
|
964
976
|
//device info
|
|
965
977
|
const accountTypeMelcloud = this.accountType === 'melcloud';
|
|
966
978
|
const supportsAutomaticFanSpeed = deviceData.Device.HasAutomaticFanSpeed ?? false;
|
|
967
|
-
const supportsAirDirectionFunction =
|
|
968
|
-
const supportsSwingFunction =
|
|
969
|
-
const supportsWideVane =
|
|
979
|
+
const supportsAirDirectionFunction = deviceData.Device[supportAirDirectionKey];
|
|
980
|
+
const supportsSwingFunction = deviceData.Device[supportSwingKey];
|
|
981
|
+
const supportsWideVane = deviceData.Device[supportVideWaneKey];
|
|
970
982
|
const supportsOutdoorTemperature = deviceData.Device.HasOutdoorTemperature ?? false;
|
|
971
983
|
const supportsFanSpeed = accountTypeMelcloud ? deviceData.Device.ModelSupportsFanSpeed : deviceData.Device.NumberOfFanSpeeds > 0;
|
|
972
|
-
const supportsAuto1 =
|
|
984
|
+
const supportsAuto1 = deviceData.Device[supportAutoKey];
|
|
973
985
|
const supportsAuto = this.autoDryFanMode >= 1 && supportsAuto1
|
|
974
|
-
const supportsHeat1 =
|
|
986
|
+
const supportsHeat1 = deviceData.Device[supportHeatKey];
|
|
975
987
|
const supportsHeat = this.heatDryFanMode >= 1 && supportsHeat1;
|
|
976
|
-
const supportsDry =
|
|
977
|
-
const supportsCool1 =
|
|
988
|
+
const supportsDry = deviceData.Device[supportDryKey];
|
|
989
|
+
const supportsCool1 = deviceData.Device[supportCoolKey];
|
|
978
990
|
const supportsCool = this.coolDryFanMode >= 1 && supportsCool1;
|
|
979
991
|
const numberOfFanSpeeds = supportsFanSpeed ? deviceData.Device.NumberOfFanSpeeds : 0;
|
|
980
992
|
const minTempHeat = 10;
|
|
@@ -983,8 +995,6 @@ class DeviceAta extends EventEmitter {
|
|
|
983
995
|
const maxTempCoolDryAuto = 31;
|
|
984
996
|
|
|
985
997
|
//device state
|
|
986
|
-
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
987
|
-
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
988
998
|
const power = deviceData.Device.Power ?? false;
|
|
989
999
|
const inStandbyMode = deviceData.Device.InStandbyMode ?? false;
|
|
990
1000
|
const roomTemperature = deviceData.Device.RoomTemperature;
|
|
@@ -1004,7 +1014,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1004
1014
|
const prohibitPower = deviceData.Device.ProhibitPower ?? false;
|
|
1005
1015
|
const temperatureStep = deviceData.Device[tempStepKey] ? 0.5 : 1;
|
|
1006
1016
|
const outdoorTemperature = deviceData.Device.OutdoorTemperature;
|
|
1007
|
-
const isInError = deviceData.Device
|
|
1017
|
+
const isInError = deviceData.Device[errorKey];
|
|
1008
1018
|
|
|
1009
1019
|
//accessory
|
|
1010
1020
|
const obj = {
|
package/src/deviceatw.js
CHANGED
|
@@ -283,7 +283,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
283
283
|
|
|
284
284
|
//information service
|
|
285
285
|
if (this.logDebug) this.emit('debug', `Prepare information service`);
|
|
286
|
-
accessory.getService(Service.AccessoryInformation)
|
|
286
|
+
this.informationService = accessory.getService(Service.AccessoryInformation)
|
|
287
287
|
.setCharacteristic(Characteristic.Manufacturer, this.manufacturer)
|
|
288
288
|
.setCharacteristic(Characteristic.Model, this.model)
|
|
289
289
|
.setCharacteristic(Characteristic.SerialNumber, this.serialNumber)
|
|
@@ -869,7 +869,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
869
869
|
};
|
|
870
870
|
|
|
871
871
|
//error sensor
|
|
872
|
-
if (this.errorSensor) {
|
|
872
|
+
if (this.errorSensor && this.accessory.isInError !== null) {
|
|
873
873
|
if (this.logDebug) this.emit('debug', `Prepare error service`);
|
|
874
874
|
this.errorService = new Service.ContactSensor(`${serviceName} Error`, `Error Sensor ${deviceId}`);
|
|
875
875
|
this.errorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -1329,6 +1329,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
1329
1329
|
.on('deviceState', async (deviceData) => {
|
|
1330
1330
|
this.deviceData = deviceData;
|
|
1331
1331
|
|
|
1332
|
+
//keys
|
|
1333
|
+
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
1334
|
+
const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
|
|
1335
|
+
|
|
1332
1336
|
//presets
|
|
1333
1337
|
const presetsOnServer = deviceData.Presets ?? [];
|
|
1334
1338
|
|
|
@@ -1340,7 +1344,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1340
1344
|
const canHeat = deviceData.Device.CanHeat ?? false;
|
|
1341
1345
|
const canCool = deviceData.Device.CanCool ?? false;
|
|
1342
1346
|
const heatCoolModes = canHeat && canCool ? 0 : canHeat ? 1 : canCool ? 2 : 3;
|
|
1343
|
-
const temperatureIncrement = deviceData.Device
|
|
1347
|
+
const temperatureIncrement = deviceData.Device[tempStepKey] ?? 1;
|
|
1344
1348
|
const minSetTemperature = deviceData.Device.MinSetTemperature ?? 10;
|
|
1345
1349
|
const maxSetTemperature = deviceData.Device.MaxSetTemperature ?? 30;
|
|
1346
1350
|
const maxTankTemperature = deviceData.Device.MaxTankTemperature ?? 70;
|
|
@@ -1370,7 +1374,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1370
1374
|
const holidayMode = deviceData.Device.HolidayMode ?? false;
|
|
1371
1375
|
const flowTemperatureHeatPump = deviceData.Device.FlowTemperature;
|
|
1372
1376
|
const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature;
|
|
1373
|
-
const isInError = deviceData.Device
|
|
1377
|
+
const isInError = deviceData.Device[errorKey];
|
|
1374
1378
|
|
|
1375
1379
|
//zone 1
|
|
1376
1380
|
const zone1Name = deviceData.Zone1Name ?? 'Zone 1';
|
package/src/deviceerv.js
CHANGED
|
@@ -251,7 +251,7 @@ class DeviceErv extends EventEmitter {
|
|
|
251
251
|
|
|
252
252
|
//information service
|
|
253
253
|
if (this.logDebug) this.emit('debug', `Prepare information service`);
|
|
254
|
-
accessory.getService(Service.AccessoryInformation)
|
|
254
|
+
this.informationService = accessory.getService(Service.AccessoryInformation)
|
|
255
255
|
.setCharacteristic(Characteristic.Manufacturer, this.manufacturer)
|
|
256
256
|
.setCharacteristic(Characteristic.Model, this.model)
|
|
257
257
|
.setCharacteristic(Characteristic.SerialNumber, this.serialNumber)
|
|
@@ -592,32 +592,36 @@ class DeviceErv extends EventEmitter {
|
|
|
592
592
|
};
|
|
593
593
|
|
|
594
594
|
//core maintenance
|
|
595
|
-
this.
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
.
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
.
|
|
605
|
-
|
|
606
|
-
|
|
595
|
+
if (this.accessory.coreMaintenanceRequired !== null) {
|
|
596
|
+
this.coreMaintenanceService = new Service.FilterMaintenance(`${serviceName} Core Maintenance`, `CoreMaintenance ${deviceId}`);
|
|
597
|
+
this.coreMaintenanceService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
598
|
+
this.coreMaintenanceService.setCharacteristic(Characteristic.ConfiguredName, `${serviceName} Core Maintenance`);
|
|
599
|
+
this.coreMaintenanceService.getCharacteristic(Characteristic.FilterChangeIndication)
|
|
600
|
+
.onGet(async () => {
|
|
601
|
+
const value = this.accessory.coreMaintenanceRequired;
|
|
602
|
+
return value;
|
|
603
|
+
});
|
|
604
|
+
this.coreMaintenanceService.getCharacteristic(Characteristic.ResetFilterIndication)
|
|
605
|
+
.onSet(async (state) => {
|
|
606
|
+
});
|
|
607
|
+
accessory.addService(this.coreMaintenanceService);
|
|
608
|
+
}
|
|
607
609
|
|
|
608
610
|
//filter maintenance
|
|
609
|
-
this.
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
.
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
.
|
|
619
|
-
|
|
620
|
-
|
|
611
|
+
if (this.accessory.filterMaintenanceRequired !== null) {
|
|
612
|
+
this.filterMaintenanceService = new Service.FilterMaintenance(`${serviceName} Filter Maintenance`, `FilterMaintenance ${deviceId}`);
|
|
613
|
+
this.filterMaintenanceService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
614
|
+
this.filterMaintenanceService.setCharacteristic(Characteristic.ConfiguredName, `${serviceName} Filter Maintenance`);
|
|
615
|
+
this.filterMaintenanceService.getCharacteristic(Characteristic.FilterChangeIndication)
|
|
616
|
+
.onGet(async () => {
|
|
617
|
+
const value = this.accessory.filterMaintenanceRequired;
|
|
618
|
+
return value;
|
|
619
|
+
});
|
|
620
|
+
this.filterMaintenanceService.getCharacteristic(Characteristic.ResetFilterIndication)
|
|
621
|
+
.onSet(async (state) => {
|
|
622
|
+
});
|
|
623
|
+
accessory.addService(this.filterMaintenanceService);
|
|
624
|
+
}
|
|
621
625
|
|
|
622
626
|
//room CO2 sensor
|
|
623
627
|
if (hasCO2Sensor) {
|
|
@@ -656,7 +660,7 @@ class DeviceErv extends EventEmitter {
|
|
|
656
660
|
}
|
|
657
661
|
|
|
658
662
|
//error sensor
|
|
659
|
-
if (this.errorSensor) {
|
|
663
|
+
if (this.errorSensor && this.accessory.isInError !== null) {
|
|
660
664
|
if (this.logDebug) this.emit('debug', `Prepare error service`);
|
|
661
665
|
this.errorService = new Service.ContactSensor(`${serviceName} Error`, `Error Sensor ${deviceId}`);
|
|
662
666
|
this.errorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -874,6 +878,11 @@ class DeviceErv extends EventEmitter {
|
|
|
874
878
|
.on('deviceState', async (deviceData) => {
|
|
875
879
|
this.deviceData = deviceData;
|
|
876
880
|
|
|
881
|
+
//keys
|
|
882
|
+
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
883
|
+
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
884
|
+
const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
|
|
885
|
+
|
|
877
886
|
//presets
|
|
878
887
|
const presetsOnServer = deviceData.Presets ?? [];
|
|
879
888
|
|
|
@@ -899,18 +908,18 @@ class DeviceErv extends EventEmitter {
|
|
|
899
908
|
const hasAutoVentilationMode = deviceData.Device.HasAutoVentilationMode ?? false;
|
|
900
909
|
const hasBypassVentilationMode = deviceData.Device.HasBypassVentilationMode ?? false;
|
|
901
910
|
const hasAutomaticFanSpeed = deviceData.Device.HasAutomaticFanSpeed ?? false;
|
|
902
|
-
const coreMaintenanceRequired = deviceData.Device.CoreMaintenanceRequired
|
|
903
|
-
const filterMaintenanceRequired = deviceData.Device.FilterMaintenanceRequired
|
|
911
|
+
const coreMaintenanceRequired = deviceData.Device.CoreMaintenanceRequired;
|
|
912
|
+
const filterMaintenanceRequired = deviceData.Device.FilterMaintenanceRequired;
|
|
904
913
|
const actualVentilationMode = deviceData.Device.ActualVentilationMode;
|
|
905
|
-
const numberOfFanSpeeds = deviceData.Device.NumberOfFanSpeeds
|
|
906
|
-
const temperatureIncrement = deviceData.Device
|
|
914
|
+
const numberOfFanSpeeds = deviceData.Device.NumberOfFanSpeeds;
|
|
915
|
+
const temperatureIncrement = deviceData.Device[tempStepKey] ?? 1;
|
|
907
916
|
const minTempHeat = 10;
|
|
908
917
|
const maxTempHeat = 31;
|
|
909
918
|
const minTempCoolDry = 16;
|
|
910
919
|
const maxTempCoolDry = 31;
|
|
911
920
|
|
|
912
921
|
//device state
|
|
913
|
-
const power = deviceData.Device.Power
|
|
922
|
+
const power = deviceData.Device.Power;
|
|
914
923
|
const roomTemperature = deviceData.Device.RoomTemperature;
|
|
915
924
|
const supplyTemperature = deviceData.Device.SupplyTemperature;
|
|
916
925
|
const outdoorTemperature = deviceData.Device.OutdoorTemperature;
|
|
@@ -921,7 +930,7 @@ class DeviceErv extends EventEmitter {
|
|
|
921
930
|
const setFanSpeed = deviceData.Device.SetFanSpeed;
|
|
922
931
|
const operationMode = deviceData.Device.OperationMode;
|
|
923
932
|
const ventilationMode = deviceData.Device.VentilationMode;
|
|
924
|
-
const isInError = deviceData.Device
|
|
933
|
+
const isInError = deviceData.Device[errorKey];
|
|
925
934
|
|
|
926
935
|
//accessory
|
|
927
936
|
const obj = {
|
package/src/melcloudata.js
CHANGED
|
@@ -75,13 +75,17 @@ class MelCloudAta extends EventEmitter {
|
|
|
75
75
|
}
|
|
76
76
|
if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
|
|
77
77
|
|
|
78
|
+
//keys
|
|
79
|
+
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
80
|
+
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
81
|
+
const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
|
|
82
|
+
|
|
78
83
|
//device info
|
|
79
84
|
const hideVaneControls = deviceData.HideVaneControls;
|
|
80
85
|
const hideDryModeControl = deviceData.HideDryModeControl;
|
|
81
86
|
const serialNumber = deviceData.SerialNumber;
|
|
82
87
|
|
|
83
88
|
//device
|
|
84
|
-
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
85
89
|
const device = deviceData.Device ?? {};
|
|
86
90
|
const prohibitSetTemperature = device.ProhibitSetTemperature;
|
|
87
91
|
const prohibitOperationMode = device.ProhibitOperationMode;
|
|
@@ -99,10 +103,11 @@ class MelCloudAta extends EventEmitter {
|
|
|
99
103
|
const vaneHorizontalSwing = device.VaneHorizontalSwing;
|
|
100
104
|
const operationMode = device.OperationMode;
|
|
101
105
|
const inStandbyMode = device.InStandbyMode;
|
|
106
|
+
const temperatureIncrement = device[tempStepKey];
|
|
102
107
|
const defaultCoolingSetTemperature = device.DefaultCoolingSetTemperature;
|
|
103
108
|
const defaultHeatingSetTemperature = device.DefaultHeatingSetTemperature;
|
|
104
109
|
const firmwareAppVersion = device.FirmwareAppVersion;
|
|
105
|
-
const isInError = device
|
|
110
|
+
const isInError = device[errorKey];
|
|
106
111
|
|
|
107
112
|
//units
|
|
108
113
|
const units = Array.isArray(device.Units) ? device.Units : [];
|
|
@@ -141,6 +146,7 @@ class MelCloudAta extends EventEmitter {
|
|
|
141
146
|
VaneVerticalSwing: vaneVerticalSwing,
|
|
142
147
|
VaneHorizontalDirection: vaneHorizontalDirection,
|
|
143
148
|
VaneHorizontalSwing: vaneHorizontalSwing,
|
|
149
|
+
TemperatureIncrement: temperatureIncrement,
|
|
144
150
|
DefaultCoolingSetTemperature: defaultCoolingSetTemperature,
|
|
145
151
|
DefaultHeatingSetTemperature: defaultHeatingSetTemperature,
|
|
146
152
|
ProhibitPower: prohibitPower,
|
package/src/melcloudatw.js
CHANGED
|
@@ -67,13 +67,18 @@ class MelCloudAtw extends EventEmitter {
|
|
|
67
67
|
}
|
|
68
68
|
if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
|
|
69
69
|
|
|
70
|
+
//keys
|
|
71
|
+
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
72
|
+
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
73
|
+
const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
|
|
74
|
+
|
|
70
75
|
//device info
|
|
71
76
|
const serialNumber = deviceData.SerialNumber;
|
|
72
77
|
|
|
73
78
|
//device
|
|
74
79
|
const device = deviceData.Device ?? {};
|
|
75
80
|
const hasHotWaterTank = device.HasHotWaterTank ?? false;
|
|
76
|
-
const temperatureIncrement = device
|
|
81
|
+
const temperatureIncrement = device[tempStepKey];
|
|
77
82
|
const roomTemperatureZone1 = device.RoomTemperatureZone1;
|
|
78
83
|
const roomTemperatureZone2 = device.RoomTemperatureZone2;
|
|
79
84
|
const outdoorTemperature = device.OutdoorTemperature;
|
|
@@ -100,7 +105,7 @@ class MelCloudAtw extends EventEmitter {
|
|
|
100
105
|
const idleZone2 = device.IdleZone2 ?? false;
|
|
101
106
|
const firmwareAppVersion = device.FirmwareAppVersion;
|
|
102
107
|
const hasZone2 = device.HasZone2 ?? false;
|
|
103
|
-
const isInError = device
|
|
108
|
+
const isInError = device[errorKey];
|
|
104
109
|
|
|
105
110
|
//units
|
|
106
111
|
const units = Array.isArray(device.Units) ? device.Units : [];
|
package/src/melclouderv.js
CHANGED
|
@@ -67,25 +67,30 @@ class MelCloudErv extends EventEmitter {
|
|
|
67
67
|
}
|
|
68
68
|
if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
|
|
69
69
|
|
|
70
|
+
//keys
|
|
71
|
+
const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
|
|
72
|
+
const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
|
|
73
|
+
const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
|
|
74
|
+
|
|
70
75
|
//presets
|
|
71
|
-
const hideRoomTemperature = deviceData.HideRoomTemperature
|
|
72
|
-
const hideSupplyTemperature = deviceData.HideSupplyTemperature
|
|
73
|
-
const hideOutdoorTemperature = deviceData.HideOutdoorTemperature
|
|
76
|
+
const hideRoomTemperature = deviceData.HideRoomTemperature;
|
|
77
|
+
const hideSupplyTemperature = deviceData.HideSupplyTemperature;
|
|
78
|
+
const hideOutdoorTemperature = deviceData.HideOutdoorTemperature;
|
|
74
79
|
const serialNumber = deviceData.SerialNumber;
|
|
75
80
|
|
|
76
81
|
//device
|
|
77
82
|
const device = deviceData.Device ?? {};
|
|
78
83
|
const pM25SensorStatus = device.PM25SensorStatus;
|
|
79
84
|
const pM25Level = device.PM25Level;
|
|
80
|
-
const temperatureIncrement = device
|
|
81
|
-
const coreMaintenanceRequired = device.CoreMaintenanceRequired
|
|
82
|
-
const filterMaintenanceRequired = device.FilterMaintenanceRequired
|
|
83
|
-
const power = device.Power
|
|
85
|
+
const temperatureIncrement = device[tempStepKey];
|
|
86
|
+
const coreMaintenanceRequired = device.CoreMaintenanceRequired;
|
|
87
|
+
const filterMaintenanceRequired = device.FilterMaintenanceRequired;
|
|
88
|
+
const power = device.Power;
|
|
84
89
|
const roomTemperature = device.RoomTemperature;
|
|
85
90
|
const supplyTemperature = device.SupplyTemperature;
|
|
86
91
|
const outdoorTemperature = device.OutdoorTemperature;
|
|
87
92
|
const roomCO2Level = device.RoomCO2Level;
|
|
88
|
-
const nightPurgeMode = device.NightPurgeMode
|
|
93
|
+
const nightPurgeMode = device.NightPurgeMode;
|
|
89
94
|
const setTemperature = device.SetTemperature;
|
|
90
95
|
const actualSupplyFanSpeed = device.ActualSupplyFanSpeed;
|
|
91
96
|
const actualExhaustFanSpeed = device.ActualExhaustFanSpeed;
|
|
@@ -95,7 +100,7 @@ class MelCloudErv extends EventEmitter {
|
|
|
95
100
|
const defaultCoolingSetTemperature = device.DefaultCoolingSetTemperature ?? 23;
|
|
96
101
|
const defaultHeatingSetTemperature = device.DefaultHeatingSetTemperature ?? 21;
|
|
97
102
|
const firmwareAppVersion = device.FirmwareAppVersion;
|
|
98
|
-
const isInError = device
|
|
103
|
+
const isInError = device[errorKey];
|
|
99
104
|
|
|
100
105
|
//units
|
|
101
106
|
const units = Array.isArray(device.Units) ? device.Units : [];
|