homebridge-melcloud-control 3.8.1 → 3.8.2-beta.1
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 +171 -157
- package/src/deviceatw.js +112 -101
- package/src/deviceerv.js +150 -141
package/src/deviceatw.js
CHANGED
|
@@ -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,27 @@ 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
|
-
//add
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1682
|
+
//add obj to zones arrays
|
|
1683
|
+
const objZ = {
|
|
1684
|
+
name: name,
|
|
1685
|
+
operationMode: operationModeZone,
|
|
1686
|
+
currentOperationMode: currentOperationMode,
|
|
1687
|
+
targetOperationMode: targetOperationMode,
|
|
1688
|
+
roomTemperature: roomTemperature,
|
|
1689
|
+
setTemperature: setTemperature,
|
|
1690
|
+
lockPhysicalControl: lockPhysicalControl,
|
|
1691
|
+
temperaturesSetPropsMinValue: temperatureSetPropsMinValue,
|
|
1692
|
+
temperaturesSetPropsMaxValue: temperatureSetPropsMaxValue,
|
|
1693
|
+
operationModesSetPropsMinValue: operationModeSetPropsMinValue,
|
|
1694
|
+
operationModesSetPropsMaxValue: operationModeSetPropsMaxValue,
|
|
1695
|
+
operationModesSetPropsValidValues: operationModeSetPropsValidValues,
|
|
1696
|
+
};
|
|
1697
|
+
obj.zones[i] = objZ;
|
|
1690
1698
|
|
|
1691
1699
|
//log current state
|
|
1692
1700
|
if (!this.disableLogInfo) {
|
|
@@ -1695,32 +1703,32 @@ class DeviceAtw extends EventEmitter {
|
|
|
1695
1703
|
case caseHeatPump: //Heat Pump - HEAT, COOL, OFF
|
|
1696
1704
|
this.emit('message', `${heatPumpName}, Power: ${power ? 'ON' : 'OFF'}`)
|
|
1697
1705
|
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: ${
|
|
1706
|
+
this.emit('message', `${heatPumpName},'Outdoor temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1707
|
+
this.emit('message', `${heatPumpName}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1700
1708
|
this.emit('message', `${heatPumpName}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1701
1709
|
break;
|
|
1702
1710
|
case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1703
1711
|
operationModeText = idleZone1 ? HeatPump.ZoneOperation[6] : HeatPump.ZoneOperation[operationModeZone1];
|
|
1704
1712
|
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: ${
|
|
1713
|
+
this.emit('message', `${zone1Name}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1714
|
+
this.emit('message', `${zone1Name}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
1715
|
+
this.emit('message', `${zone1Name}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1708
1716
|
this.emit('message', `${zone1Name}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1709
1717
|
break;
|
|
1710
1718
|
case caseHotWater: //Hot Water - AUTO, HEAT NOW
|
|
1711
1719
|
operationModeText = operationMode === 1 ? HeatPump.ForceDhw[1] : HeatPump.ForceDhw[forcedHotWaterMode ? 1 : 0];
|
|
1712
1720
|
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: ${
|
|
1721
|
+
this.emit('message', `${hotWaterName}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1722
|
+
this.emit('message', `${hotWaterName}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
1723
|
+
this.emit('message', `${hotWaterName}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1716
1724
|
this.emit('message', `${hotWaterName}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1717
1725
|
break;
|
|
1718
1726
|
case caseZone2: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1719
1727
|
operationModeText = idleZone2 ? HeatPump.ZoneOperation[6] : HeatPump.ZoneOperation[operationModeZone2];
|
|
1720
1728
|
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: ${
|
|
1729
|
+
this.emit('message', `${zone2Name}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
1730
|
+
this.emit('message', `${zone2Name}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
1731
|
+
this.emit('message', `${zone2Name}, Temperature display unit: ${obj.temperatureUnit}`);
|
|
1724
1732
|
this.emit('message', `${zone2Name}, Lock physical controls: ${lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
|
|
1725
1733
|
break;
|
|
1726
1734
|
};
|
|
@@ -1820,38 +1828,42 @@ class DeviceAtw extends EventEmitter {
|
|
|
1820
1828
|
break;
|
|
1821
1829
|
};
|
|
1822
1830
|
|
|
1823
|
-
//add
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1831
|
+
//add obj to sensors arrays
|
|
1832
|
+
const objS = {
|
|
1833
|
+
name: name,
|
|
1834
|
+
roomTemperature: roomTemperature,
|
|
1835
|
+
flowTemperature: flowTemperature,
|
|
1836
|
+
returnTemperature: returnTemperature
|
|
1837
|
+
};
|
|
1838
|
+
obj.zonesSensors[i] = objS;
|
|
1828
1839
|
|
|
1829
1840
|
//log current state
|
|
1830
1841
|
if (!this.disableLogInfo) {
|
|
1831
1842
|
switch (i) {
|
|
1832
1843
|
case caseHeatPumpSensor: //Heat Pump - HEAT, COOL, OFF
|
|
1833
|
-
const info = outdoorTemperature !== null ? this.emit('message', `${heatPumpName}, Outdoor temperature: ${outdoorTemperature}${
|
|
1834
|
-
const info0 = flowTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Flow temperature: ${flowTemperatureHeatPump}${
|
|
1835
|
-
const info1 = returnTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Return temperature: ${returnTemperatureHeatPump}${
|
|
1844
|
+
const info = outdoorTemperature !== null ? this.emit('message', `${heatPumpName}, Outdoor temperature: ${outdoorTemperature}${obj.temperatureUnit}`) : false;
|
|
1845
|
+
const info0 = flowTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Flow temperature: ${flowTemperatureHeatPump}${obj.temperatureUnit}`) : false;
|
|
1846
|
+
const info1 = returnTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Return temperature: ${returnTemperatureHeatPump}${obj.temperatureUnit}`) : false;
|
|
1836
1847
|
break;
|
|
1837
1848
|
case caseZone1Sensor: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1838
|
-
const info2 = roomTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Room temperature: ${roomTemperatureZone1}${
|
|
1839
|
-
const info3 = flowTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Flow temperature: ${flowTemperatureZone1}${
|
|
1840
|
-
const info4 = returnTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Return temperature: ${returnTemperatureZone1}${
|
|
1849
|
+
const info2 = roomTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Room temperature: ${roomTemperatureZone1}${obj.temperatureUnit}`) : false;
|
|
1850
|
+
const info3 = flowTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Flow temperature: ${flowTemperatureZone1}${obj.temperatureUnit}`) : false;
|
|
1851
|
+
const info4 = returnTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Return temperature: ${returnTemperatureZone1}${obj.temperatureUnit}`) : false;
|
|
1841
1852
|
break;
|
|
1842
1853
|
case caseHotWaterSensor: //Hot Water - AUTO, HEAT NOW
|
|
1843
|
-
const info5 = tankWaterTemperature !== null ? this.emit('message', `${hotWaterName}, Temperature: ${tankWaterTemperature}${
|
|
1844
|
-
const info6 = flowTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Flow temperature: ${flowTemperatureWaterTank}${
|
|
1845
|
-
const info7 = returnTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Return temperature: ${returnTemperatureWaterTank}${
|
|
1854
|
+
const info5 = tankWaterTemperature !== null ? this.emit('message', `${hotWaterName}, Temperature: ${tankWaterTemperature}${obj.temperatureUnit}`) : false;
|
|
1855
|
+
const info6 = flowTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Flow temperature: ${flowTemperatureWaterTank}${obj.temperatureUnit}`) : false;
|
|
1856
|
+
const info7 = returnTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Return temperature: ${returnTemperatureWaterTank}${obj.temperatureUnit}`) : false;
|
|
1846
1857
|
break;
|
|
1847
1858
|
case caseZone2Sensor: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
1848
|
-
const info8 = roomTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Room temperature: ${roomTemperatureZone2}${
|
|
1849
|
-
const info9 = flowTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Flow temperature: ${flowTemperatureZone2}${
|
|
1850
|
-
const info10 = returnTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Return temperature: ${returnTemperatureZone2}${
|
|
1859
|
+
const info8 = roomTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Room temperature: ${roomTemperatureZone2}${obj.temperatureUnit}`) : false;
|
|
1860
|
+
const info9 = flowTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Flow temperature: ${flowTemperatureZone2}${obj.temperatureUnit}`) : false;
|
|
1861
|
+
const info10 = returnTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Return temperature: ${returnTemperatureZone2}${obj.temperatureUnit}`) : false;
|
|
1851
1862
|
break;
|
|
1852
1863
|
};
|
|
1853
1864
|
};
|
|
1854
1865
|
};
|
|
1866
|
+
this.mielHvac = obj;
|
|
1855
1867
|
|
|
1856
1868
|
//update presets state
|
|
1857
1869
|
if (this.presetsConfigured.length > 0) {
|
|
@@ -1881,8 +1893,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1881
1893
|
|
|
1882
1894
|
//update buttons state
|
|
1883
1895
|
if (this.buttonsConfiguredCount > 0) {
|
|
1884
|
-
|
|
1885
|
-
const button = this.buttonsConfigured[i];
|
|
1896
|
+
this.buttonsConfigured.forEach((button, i) => {
|
|
1886
1897
|
const mode = button.mode;
|
|
1887
1898
|
switch (mode) {
|
|
1888
1899
|
case 0: //POWER ON,OFF
|
|
@@ -1965,7 +1976,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1965
1976
|
this.buttonsServices[i]
|
|
1966
1977
|
.updateCharacteristic(characteristicType, button.state)
|
|
1967
1978
|
};
|
|
1968
|
-
};
|
|
1979
|
+
});
|
|
1969
1980
|
};
|
|
1970
1981
|
|
|
1971
1982
|
//prepare accessory
|