homebridge-melcloud-control 3.8.0 → 3.8.2-beta.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 +7 -0
- package/package.json +1 -1
- package/src/deviceata.js +165 -157
- package/src/deviceatw.js +106 -100
- package/src/deviceerv.js +150 -141
package/src/deviceatw.js
CHANGED
|
@@ -22,8 +22,8 @@ class DeviceAtw extends EventEmitter {
|
|
|
22
22
|
this.temperatureSensorFlow = device.temperatureSensorFlow || false;
|
|
23
23
|
this.temperatureSensorReturn = device.temperatureSensorReturn || false;
|
|
24
24
|
this.temperatureSensorFlowZone1 = device.temperatureSensorFlowZone1 || false;
|
|
25
|
-
this.temperatureSensorReturnZone1 = device.
|
|
26
|
-
this.temperatureSensorFlowWaterTank = device.
|
|
25
|
+
this.temperatureSensorReturnZone1 = device.temperatureSensorReturnZone1 || false;
|
|
26
|
+
this.temperatureSensorFlowWaterTank = device.temperatureSensorFlowWaterTank || false;
|
|
27
27
|
this.temperatureSensorReturnWaterTank = device.temperatureSensorReturnWaterTank || false;
|
|
28
28
|
this.temperatureSensorFlowZone2 = device.temperatureSensorFlowZone2 || false;
|
|
29
29
|
this.temperatureSensorReturnZone2 = device.temperatureSensorReturnZone2 || false;
|
|
@@ -49,6 +49,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
49
49
|
this.mqtt = mqtt;
|
|
50
50
|
this.mqttConnected = false;
|
|
51
51
|
|
|
52
|
+
//variables
|
|
53
|
+
this.useFahrenheit = useFahrenheit ? 1 : 0;
|
|
54
|
+
this.temperatureUnit = TemperatureDisplayUnits[this.useFahrenheit];
|
|
55
|
+
|
|
52
56
|
//function
|
|
53
57
|
this.melCloud = melCloud; //function
|
|
54
58
|
|
|
@@ -94,12 +98,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
94
98
|
this.deviceData = {};
|
|
95
99
|
|
|
96
100
|
//accessory
|
|
97
|
-
this.
|
|
98
|
-
zones: [{}, {}, {}, {}],
|
|
99
|
-
zonesSensors: [{}, {}, {}, {}]
|
|
100
|
-
};
|
|
101
|
-
this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
|
|
102
|
-
this.accessory.temperatureUnit = TemperatureDisplayUnits[this.accessory.useFahrenheit];
|
|
101
|
+
this.mielHvac = {};
|
|
103
102
|
};
|
|
104
103
|
|
|
105
104
|
async externalIntegrations() {
|
|
@@ -288,19 +287,19 @@ class DeviceAtw extends EventEmitter {
|
|
|
288
287
|
//prepare accessory
|
|
289
288
|
async prepareAccessory(accountInfo, deviceData, deviceId, deviceTypeText, deviceName, accountName) {
|
|
290
289
|
try {
|
|
291
|
-
const presetsOnServer = this.
|
|
292
|
-
const zonesCount = this.
|
|
293
|
-
const caseHeatPump = this.
|
|
294
|
-
const caseZone1 = this.
|
|
295
|
-
const caseHotWater = this.
|
|
296
|
-
const caseZone2 = this.
|
|
297
|
-
const heatCoolModes = this.
|
|
298
|
-
|
|
299
|
-
const zonesSensorsCount = this.
|
|
300
|
-
const caseHeatPumpSensor = this.
|
|
301
|
-
const caseZone1Sensor = this.
|
|
302
|
-
const caseHotWaterSensor = this.
|
|
303
|
-
const caseZone2Sensor = this.
|
|
290
|
+
const presetsOnServer = this.mielHvac.presets;
|
|
291
|
+
const zonesCount = this.mielHvac.zonesCount;
|
|
292
|
+
const caseHeatPump = this.mielHvac.caseHeatPump;
|
|
293
|
+
const caseZone1 = this.mielHvac.caseZone1;
|
|
294
|
+
const caseHotWater = this.mielHvac.caseHotWater;
|
|
295
|
+
const caseZone2 = this.mielHvac.caseZone2;
|
|
296
|
+
const heatCoolModes = this.mielHvac.heatCoolModes;
|
|
297
|
+
|
|
298
|
+
const zonesSensorsCount = this.mielHvac.sensorsCount;
|
|
299
|
+
const caseHeatPumpSensor = this.mielHvac.caseHeatPumpSensor;
|
|
300
|
+
const caseZone1Sensor = this.mielHvac.caseZone1Sensor;
|
|
301
|
+
const caseHotWaterSensor = this.mielHvac.caseHotWaterSensor;
|
|
302
|
+
const caseZone2Sensor = this.mielHvac.caseZone2Sensor;
|
|
304
303
|
|
|
305
304
|
//accessory
|
|
306
305
|
const debug = this.enableDebugMode ? this.emit('debug', `Prepare accessory`) : false;
|
|
@@ -321,7 +320,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
321
320
|
//services
|
|
322
321
|
if (zonesCount > 0) {
|
|
323
322
|
this.melCloudServices = [];
|
|
324
|
-
this.
|
|
323
|
+
this.mielHvac.zones.forEach((zone, i) => {
|
|
325
324
|
const zoneName = zone.name
|
|
326
325
|
const serviceName = `${deviceTypeText} ${accessoryName}: ${zoneName}`;
|
|
327
326
|
switch (this.displayMode) {
|
|
@@ -331,7 +330,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
331
330
|
melCloudService.setPrimaryService(true);
|
|
332
331
|
melCloudService.getCharacteristic(Characteristic.Active)
|
|
333
332
|
.onGet(async () => {
|
|
334
|
-
const state = this.
|
|
333
|
+
const state = this.mielHvac.power;
|
|
335
334
|
return state;
|
|
336
335
|
})
|
|
337
336
|
.onSet(async (state) => {
|
|
@@ -384,7 +383,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
384
383
|
deviceData.Device.EffectiveFlags = HeatPump.EffectiveFlags.Power + HeatPump.EffectiveFlags.OperationMode;
|
|
385
384
|
break;
|
|
386
385
|
};
|
|
387
|
-
operationModeText = [HeatPump.System[0], HeatPump.System[deviceData.Device.UnitStatus]][this.
|
|
386
|
+
operationModeText = [HeatPump.System[0], HeatPump.System[deviceData.Device.UnitStatus]][this.mielHvac.power];
|
|
388
387
|
break;
|
|
389
388
|
case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
390
389
|
switch (value) {
|
|
@@ -461,7 +460,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
461
460
|
.setProps({
|
|
462
461
|
minValue: zone.temperaturesSetPropsMinValue,
|
|
463
462
|
maxValue: zone.temperaturesSetPropsMaxValue,
|
|
464
|
-
minStep: this.
|
|
463
|
+
minStep: this.mielHvac.temperatureIncrement
|
|
465
464
|
})
|
|
466
465
|
.onGet(async () => {
|
|
467
466
|
const value = zone.setTemperature;
|
|
@@ -513,7 +512,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
513
512
|
};
|
|
514
513
|
|
|
515
514
|
const set = i > 0 ? await this.melCloudAtw.send(deviceData) : false;
|
|
516
|
-
const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set cooling threshold temperature: ${value}${this.
|
|
515
|
+
const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set cooling threshold temperature: ${value}${this.mielHvac.temperatureUnit}`);
|
|
517
516
|
} catch (error) {
|
|
518
517
|
this.emit('warn', `${zoneName}, Set cooling threshold temperature error: ${error}`);
|
|
519
518
|
};
|
|
@@ -525,7 +524,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
525
524
|
.setProps({
|
|
526
525
|
minValue: zone.temperaturesSetPropsMinValue,
|
|
527
526
|
maxValue: zone.temperaturesSetPropsMaxValue,
|
|
528
|
-
minStep: this.
|
|
527
|
+
minStep: this.mielHvac.temperatureIncrement
|
|
529
528
|
})
|
|
530
529
|
.onGet(async () => {
|
|
531
530
|
const value = zone.setTemperature;
|
|
@@ -577,7 +576,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
577
576
|
};
|
|
578
577
|
|
|
579
578
|
const set = i > 0 ? await this.melCloudAtw.send(deviceData) : false;
|
|
580
|
-
const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set heating threshold temperature: ${value}${this.
|
|
579
|
+
const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set heating threshold temperature: ${value}${this.mielHvac.temperatureUnit}`);
|
|
581
580
|
} catch (error) {
|
|
582
581
|
this.emit('warn', `${zoneName}, Set heating threshold temperature error: ${error}`);
|
|
583
582
|
};
|
|
@@ -620,14 +619,14 @@ class DeviceAtw extends EventEmitter {
|
|
|
620
619
|
});
|
|
621
620
|
melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
622
621
|
.onGet(async () => {
|
|
623
|
-
const value = this.
|
|
622
|
+
const value = this.mielHvac.useFahrenheit;
|
|
624
623
|
return value;
|
|
625
624
|
})
|
|
626
625
|
.onSet(async (value) => {
|
|
627
626
|
try {
|
|
628
627
|
accountInfo.UseFahrenheit = [false, true][value];
|
|
629
628
|
await this.melCloud.send(accountInfo);
|
|
630
|
-
this.
|
|
629
|
+
this.mielHvac.useFahrenheit = value;
|
|
631
630
|
const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
632
631
|
} catch (error) {
|
|
633
632
|
this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
@@ -680,7 +679,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
680
679
|
deviceData.Device.EffectiveFlags = HeatPump.EffectiveFlags.Power;
|
|
681
680
|
break;
|
|
682
681
|
};
|
|
683
|
-
operationModeText = [HeatPump.System[0], HeatPump.System[deviceData.Device.UnitStatus]][this.
|
|
682
|
+
operationModeText = [HeatPump.System[0], HeatPump.System[deviceData.Device.UnitStatus]][this.mielHvac.power];
|
|
684
683
|
break;
|
|
685
684
|
case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
686
685
|
switch (value) {
|
|
@@ -767,7 +766,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
767
766
|
.setProps({
|
|
768
767
|
minValue: zone.temperaturesSetPropsMinValue,
|
|
769
768
|
maxValue: zone.temperaturesSetPropsMaxValue,
|
|
770
|
-
minStep: this.
|
|
769
|
+
minStep: this.mielHvac.temperatureIncrement
|
|
771
770
|
})
|
|
772
771
|
.onGet(async () => {
|
|
773
772
|
const value = zone.setTemperature;
|
|
@@ -795,21 +794,21 @@ class DeviceAtw extends EventEmitter {
|
|
|
795
794
|
};
|
|
796
795
|
|
|
797
796
|
const set = i > 0 ? await this.melCloudAtw.send(deviceData) : false;
|
|
798
|
-
const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set temperature: ${value}${this.
|
|
797
|
+
const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set temperature: ${value}${this.mielHvac.temperatureUnit}`);
|
|
799
798
|
} catch (error) {
|
|
800
799
|
this.emit('warn', `${zoneName}, Set temperature error: ${error}`);
|
|
801
800
|
};
|
|
802
801
|
});
|
|
803
802
|
melCloudServiceT.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
804
803
|
.onGet(async () => {
|
|
805
|
-
const value = this.
|
|
804
|
+
const value = this.mielHvac.useFahrenheit;
|
|
806
805
|
return value;
|
|
807
806
|
})
|
|
808
807
|
.onSet(async (value) => {
|
|
809
808
|
try {
|
|
810
809
|
accountInfo.UseFahrenheit = [false, true][value];
|
|
811
810
|
await this.melCloud.send(accountInfo);
|
|
812
|
-
this.
|
|
811
|
+
this.mielHvac.useFahrenheit = value;
|
|
813
812
|
const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
814
813
|
} catch (error) {
|
|
815
814
|
this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
@@ -824,7 +823,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
824
823
|
|
|
825
824
|
//sensor services
|
|
826
825
|
if (zonesSensorsCount > 0) {
|
|
827
|
-
this.
|
|
826
|
+
this.mielHvac.zonesSensors.forEach((zone, i) => {
|
|
828
827
|
const zoneName = zone.name
|
|
829
828
|
const serviceName = `${deviceTypeText} ${accessoryName}: ${zoneName}`;
|
|
830
829
|
switch (i) {
|
|
@@ -1417,27 +1416,33 @@ class DeviceAtw extends EventEmitter {
|
|
|
1417
1416
|
const returnTemperatureZone2 = deviceData.Device.ReturnTemperatureZone2;
|
|
1418
1417
|
|
|
1419
1418
|
//accessory
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1419
|
+
const obj = {
|
|
1420
|
+
presets: presetsOnServer,
|
|
1421
|
+
power: power ? 1 : 0,
|
|
1422
|
+
unitStatus: unitStatus,
|
|
1423
|
+
idleZone1: idleZone1,
|
|
1424
|
+
idleZone2: idleZone2,
|
|
1425
|
+
temperatureIncrement: temperatureIncrement,
|
|
1426
|
+
hasHeatPump: hasHeatPump,
|
|
1427
|
+
hasZone1: hasZone1,
|
|
1428
|
+
hasHotWaterTank: hasHotWaterTank,
|
|
1429
|
+
hasZone2: hasZone2,
|
|
1430
|
+
heatCoolModes: heatCoolModes,
|
|
1431
|
+
caseHeatPump: caseHeatPump,
|
|
1432
|
+
caseZone1: caseZone1,
|
|
1433
|
+
caseHotWater: caseHotWater,
|
|
1434
|
+
caseZone2: caseZone2,
|
|
1435
|
+
zonesCount: zonesCount,
|
|
1436
|
+
caseHeatPumpSensor: caseHeatPumpSensor,
|
|
1437
|
+
caseZone1Sensor: caseZone1Sensor,
|
|
1438
|
+
caseHotWaterSensor: caseHotWaterSensor,
|
|
1439
|
+
caseZone2Sensor: caseZone2Sensor,
|
|
1440
|
+
sensorsCount: zonesSensorsCount,
|
|
1441
|
+
useFahrenheit: this.useFahrenheit,
|
|
1442
|
+
temperatureUnit: this.useFahrenheit,
|
|
1443
|
+
zones: [{}, {}, {}, {}],
|
|
1444
|
+
zonesSensors: [{}, {}, {}, {}]
|
|
1445
|
+
};
|
|
1441
1446
|
|
|
1442
1447
|
//default values
|
|
1443
1448
|
let name = 'Heat Pump'
|
|
@@ -1563,7 +1568,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1563
1568
|
.updateCharacteristic(Characteristic.TargetHeaterCoolerState, targetOperationMode)
|
|
1564
1569
|
.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
|
|
1565
1570
|
.updateCharacteristic(Characteristic.LockPhysicalControls, lockPhysicalControl)
|
|
1566
|
-
.updateCharacteristic(Characteristic.TemperatureDisplayUnits,
|
|
1571
|
+
.updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit);
|
|
1567
1572
|
const updateDefCool = heatCoolModes === 0 || heatCoolModes === 2 ? this.melCloudServices[i].updateCharacteristic(Characteristic.CoolingThresholdTemperature, setTemperature) : false;
|
|
1568
1573
|
const updateDefHeat = heatCoolModes === 0 || heatCoolModes === 1 ? this.melCloudServices[i].updateCharacteristic(Characteristic.HeatingThresholdTemperature, setTemperature) : false;
|
|
1569
1574
|
}
|
|
@@ -1669,24 +1674,24 @@ class DeviceAtw extends EventEmitter {
|
|
|
1669
1674
|
.updateCharacteristic(Characteristic.TargetHeatingCoolingState, targetOperationMode)
|
|
1670
1675
|
.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
|
|
1671
1676
|
.updateCharacteristic(Characteristic.TargetTemperature, setTemperature)
|
|
1672
|
-
.updateCharacteristic(Characteristic.TemperatureDisplayUnits,
|
|
1677
|
+
.updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit);
|
|
1673
1678
|
}
|
|
1674
1679
|
break;
|
|
1675
1680
|
};
|
|
1676
1681
|
|
|
1677
1682
|
//add value to zones arrays
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
const setPropsMinValue = this.startPrepareAccessory ?
|
|
1688
|
-
const setPropsMaxValue = this.startPrepareAccessory ?
|
|
1689
|
-
const setPropsValidValues = this.startPrepareAccessory ?
|
|
1683
|
+
obj.zones[i].name = name;
|
|
1684
|
+
obj.zones[i].operationMode = operationModeZone;
|
|
1685
|
+
obj.zones[i].currentOperationMode = currentOperationMode;
|
|
1686
|
+
obj.zones[i].targetOperationMode = targetOperationMode;
|
|
1687
|
+
obj.zones[i].roomTemperature = roomTemperature;
|
|
1688
|
+
obj.zones[i].setTemperature = setTemperature;
|
|
1689
|
+
obj.zones[i].lockPhysicalControl = lockPhysicalControl;
|
|
1690
|
+
obj.zones[i].temperaturesSetPropsMinValue = temperatureSetPropsMinValue;
|
|
1691
|
+
obj.zones[i].temperaturesSetPropsMaxValue = temperatureSetPropsMaxValue;
|
|
1692
|
+
const setPropsMinValue = this.startPrepareAccessory ? obj.zones[i].operationModesSetPropsMinValue = operationModeSetPropsMinValue : false;
|
|
1693
|
+
const setPropsMaxValue = this.startPrepareAccessory ? obj.zones[i].operationModesSetPropsMaxValue = operationModeSetPropsMaxValue : false;
|
|
1694
|
+
const setPropsValidValues = this.startPrepareAccessory ? obj.zones[i].operationModesSetPropsValidValues = operationModeSetPropsValidValues : false;
|
|
1690
1695
|
|
|
1691
1696
|
//log current state
|
|
1692
1697
|
if (!this.disableLogInfo) {
|
|
@@ -1695,32 +1700,32 @@ class DeviceAtw extends EventEmitter {
|
|
|
1695
1700
|
case caseHeatPump: //Heat Pump - HEAT, COOL, OFF
|
|
1696
1701
|
this.emit('message', `${heatPumpName}, Power: ${power ? 'ON' : 'OFF'}`)
|
|
1697
1702
|
this.emit('message', `${heatPumpName}, Operation mode: ${HeatPump.System[unitStatus]}`);
|
|
1698
|
-
this.emit('message', `${heatPumpName},'Outdoor temperature: ${roomTemperature}${
|
|
1699
|
-
this.emit('message', `${heatPumpName}, Temperature display unit: ${
|
|
1703
|
+
this.emit('message', `${heatPumpName},'Outdoor temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1704
|
+
this.emit('message', `${heatPumpName}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1700
1705
|
this.emit('message', `${heatPumpName}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1701
1706
|
break;
|
|
1702
1707
|
case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1703
1708
|
operationModeText = idleZone1 ? HeatPump.ZoneOperation[6] : HeatPump.ZoneOperation[operationModeZone1];
|
|
1704
1709
|
this.emit('message', `${zone1Name}, Operation mode: ${operationModeText}`);
|
|
1705
|
-
this.emit('message', `${zone1Name}, Temperature: ${roomTemperature}${
|
|
1706
|
-
this.emit('message', `${zone1Name}, Target temperature: ${setTemperature}${
|
|
1707
|
-
this.emit('message', `${zone1Name}, Temperature display unit: ${
|
|
1710
|
+
this.emit('message', `${zone1Name}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1711
|
+
this.emit('message', `${zone1Name}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
1712
|
+
this.emit('message', `${zone1Name}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1708
1713
|
this.emit('message', `${zone1Name}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1709
1714
|
break;
|
|
1710
1715
|
case caseHotWater: //Hot Water - AUTO, HEAT NOW
|
|
1711
1716
|
operationModeText = operationMode === 1 ? HeatPump.ForceDhw[1] : HeatPump.ForceDhw[forcedHotWaterMode ? 1 : 0];
|
|
1712
1717
|
this.emit('message', `${hotWaterName}, Operation mode: ${operationModeText}`);
|
|
1713
|
-
this.emit('message', `${hotWaterName}, Temperature: ${roomTemperature}${
|
|
1714
|
-
this.emit('message', `${hotWaterName}, Target temperature: ${setTemperature}${
|
|
1715
|
-
this.emit('message', `${hotWaterName}, Temperature display unit: ${
|
|
1718
|
+
this.emit('message', `${hotWaterName}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1719
|
+
this.emit('message', `${hotWaterName}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
1720
|
+
this.emit('message', `${hotWaterName}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1716
1721
|
this.emit('message', `${hotWaterName}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1717
1722
|
break;
|
|
1718
1723
|
case caseZone2: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1719
1724
|
operationModeText = idleZone2 ? HeatPump.ZoneOperation[6] : HeatPump.ZoneOperation[operationModeZone2];
|
|
1720
1725
|
this.emit('message', `${zone2Name}, Operation mode: ${operationModeText}`);
|
|
1721
|
-
this.emit('message', `${zone2Name}, Temperature: ${roomTemperature}${
|
|
1722
|
-
this.emit('message', `${zone2Name}, Target temperature: ${setTemperature}${
|
|
1723
|
-
this.emit('message', `${zone2Name}, Temperature display unit: ${
|
|
1726
|
+
this.emit('message', `${zone2Name}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1727
|
+
this.emit('message', `${zone2Name}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
1728
|
+
this.emit('message', `${zone2Name}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1724
1729
|
this.emit('message', `${zone2Name}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1725
1730
|
break;
|
|
1726
1731
|
};
|
|
@@ -1821,36 +1826,38 @@ class DeviceAtw extends EventEmitter {
|
|
|
1821
1826
|
};
|
|
1822
1827
|
|
|
1823
1828
|
//add value to sensors arrays
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1829
|
+
obj.zonesSensors[i].name = name;
|
|
1830
|
+
obj.zonesSensors[i].roomTemperature = roomTemperature;
|
|
1831
|
+
obj.zonesSensors[i].flowTemperature = flowTemperature;
|
|
1832
|
+
obj.zonesSensors[i].returnTemperature = returnTemperature;
|
|
1827
1833
|
|
|
1828
1834
|
//log current state
|
|
1829
1835
|
if (!this.disableLogInfo) {
|
|
1830
1836
|
switch (i) {
|
|
1831
1837
|
case caseHeatPumpSensor: //Heat Pump - HEAT, COOL, OFF
|
|
1832
|
-
const info = outdoorTemperature !== null ? this.emit('message', `${heatPumpName}, Outdoor temperature: ${outdoorTemperature}${
|
|
1833
|
-
const info0 = flowTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Flow temperature: ${flowTemperatureHeatPump}${
|
|
1834
|
-
const info1 = returnTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Return temperature: ${returnTemperatureHeatPump}${
|
|
1838
|
+
const info = outdoorTemperature !== null ? this.emit('message', `${heatPumpName}, Outdoor temperature: ${outdoorTemperature}${obj.temperatureUnit}`) : false;
|
|
1839
|
+
const info0 = flowTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Flow temperature: ${flowTemperatureHeatPump}${obj.temperatureUnit}`) : false;
|
|
1840
|
+
const info1 = returnTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Return temperature: ${returnTemperatureHeatPump}${obj.temperatureUnit}`) : false;
|
|
1835
1841
|
break;
|
|
1836
1842
|
case caseZone1Sensor: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1837
|
-
const info2 = roomTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Room temperature: ${roomTemperatureZone1}${
|
|
1838
|
-
const info3 = flowTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Flow temperature: ${flowTemperatureZone1}${
|
|
1839
|
-
const info4 = returnTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Return temperature: ${returnTemperatureZone1}${
|
|
1843
|
+
const info2 = roomTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Room temperature: ${roomTemperatureZone1}${obj.temperatureUnit}`) : false;
|
|
1844
|
+
const info3 = flowTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Flow temperature: ${flowTemperatureZone1}${obj.temperatureUnit}`) : false;
|
|
1845
|
+
const info4 = returnTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Return temperature: ${returnTemperatureZone1}${obj.temperatureUnit}`) : false;
|
|
1840
1846
|
break;
|
|
1841
1847
|
case caseHotWaterSensor: //Hot Water - AUTO, HEAT NOW
|
|
1842
|
-
const info5 = tankWaterTemperature !== null ? this.emit('message', `${hotWaterName}, Temperature: ${tankWaterTemperature}${
|
|
1843
|
-
const info6 = flowTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Flow temperature: ${flowTemperatureWaterTank}${
|
|
1844
|
-
const info7 = returnTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Return temperature: ${returnTemperatureWaterTank}${
|
|
1848
|
+
const info5 = tankWaterTemperature !== null ? this.emit('message', `${hotWaterName}, Temperature: ${tankWaterTemperature}${obj.temperatureUnit}`) : false;
|
|
1849
|
+
const info6 = flowTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Flow temperature: ${flowTemperatureWaterTank}${obj.temperatureUnit}`) : false;
|
|
1850
|
+
const info7 = returnTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Return temperature: ${returnTemperatureWaterTank}${obj.temperatureUnit}`) : false;
|
|
1845
1851
|
break;
|
|
1846
1852
|
case caseZone2Sensor: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1847
|
-
const info8 = roomTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Room temperature: ${roomTemperatureZone2}${
|
|
1848
|
-
const info9 = flowTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Flow temperature: ${flowTemperatureZone2}${
|
|
1849
|
-
const info10 = returnTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Return temperature: ${returnTemperatureZone2}${
|
|
1853
|
+
const info8 = roomTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Room temperature: ${roomTemperatureZone2}${obj.temperatureUnit}`) : false;
|
|
1854
|
+
const info9 = flowTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Flow temperature: ${flowTemperatureZone2}${obj.temperatureUnit}`) : false;
|
|
1855
|
+
const info10 = returnTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Return temperature: ${returnTemperatureZone2}${obj.temperatureUnit}`) : false;
|
|
1850
1856
|
break;
|
|
1851
1857
|
};
|
|
1852
1858
|
};
|
|
1853
1859
|
};
|
|
1860
|
+
this.mielHvac = obj;
|
|
1854
1861
|
|
|
1855
1862
|
//update presets state
|
|
1856
1863
|
if (this.presetsConfigured.length > 0) {
|
|
@@ -1880,8 +1887,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1880
1887
|
|
|
1881
1888
|
//update buttons state
|
|
1882
1889
|
if (this.buttonsConfiguredCount > 0) {
|
|
1883
|
-
|
|
1884
|
-
const button = this.buttonsConfigured[i];
|
|
1890
|
+
this.buttonsConfigured.forEach((button, i) => {
|
|
1885
1891
|
const mode = button.mode;
|
|
1886
1892
|
switch (mode) {
|
|
1887
1893
|
case 0: //POWER ON,OFF
|
|
@@ -1964,7 +1970,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1964
1970
|
this.buttonsServices[i]
|
|
1965
1971
|
.updateCharacteristic(characteristicType, button.state)
|
|
1966
1972
|
};
|
|
1967
|
-
};
|
|
1973
|
+
});
|
|
1968
1974
|
};
|
|
1969
1975
|
|
|
1970
1976
|
//prepare accessory
|