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/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.accessory = {
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.accessory.presets;
292
- const zonesCount = this.accessory.zonesCount;
293
- const caseHeatPump = this.accessory.caseHeatPump;
294
- const caseZone1 = this.accessory.caseZone1;
295
- const caseHotWater = this.accessory.caseHotWater;
296
- const caseZone2 = this.accessory.caseZone2;
297
- const heatCoolModes = this.accessory.heatCoolModes;
298
-
299
- const zonesSensorsCount = this.accessory.sensorsCount;
300
- const caseHeatPumpSensor = this.accessory.caseHeatPumpSensor;
301
- const caseZone1Sensor = this.accessory.caseZone1Sensor;
302
- const caseHotWaterSensor = this.accessory.caseHotWaterSensor;
303
- const caseZone2Sensor = this.accessory.caseZone2Sensor;
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.accessory.zones.forEach((zone, i) => {
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.accessory.power;
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.accessory.power];
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.accessory.temperatureIncrement
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.accessory.temperatureUnit}`);
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.accessory.temperatureIncrement
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.accessory.temperatureUnit}`);
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.accessory.useFahrenheit;
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.accessory.useFahrenheit = value;
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.accessory.power];
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.accessory.temperatureIncrement
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.accessory.temperatureUnit}`);
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.accessory.useFahrenheit;
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.accessory.useFahrenheit = value;
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.accessory.zonesSensors.forEach((zone, i) => {
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
- this.accessory.presets = presetsOnServer;
1421
- this.accessory.power = power ? 1 : 0;
1422
- this.accessory.unitStatus = unitStatus;
1423
- this.accessory.idleZone1 = idleZone1;
1424
- this.accessory.idleZone2 = idleZone2;
1425
- this.accessory.temperatureIncrement = temperatureIncrement;
1426
- this.accessory.hasHeatPump = hasHeatPump;
1427
- this.accessory.hasZone1 = hasZone1;
1428
- this.accessory.hasHotWaterTank = hasHotWaterTank;
1429
- this.accessory.hasZone2 = hasZone2;
1430
- this.accessory.heatCoolModes = heatCoolModes;
1431
- this.accessory.caseHeatPump = caseHeatPump;
1432
- this.accessory.caseZone1 = caseZone1;
1433
- this.accessory.caseHotWater = caseHotWater;
1434
- this.accessory.caseZone2 = caseZone2;
1435
- this.accessory.zonesCount = zonesCount;
1436
- this.accessory.caseHeatPumpSensor = caseHeatPumpSensor;
1437
- this.accessory.caseZone1Sensor = caseZone1Sensor;
1438
- this.accessory.caseHotWaterSensor = caseHotWaterSensor;
1439
- this.accessory.caseZone2Sensor = caseZone2Sensor;
1440
- this.accessory.sensorsCount = zonesSensorsCount;
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, this.accessory.useFahrenheit);
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, this.accessory.useFahrenheit);
1677
+ .updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit);
1673
1678
  }
1674
1679
  break;
1675
1680
  };
1676
1681
 
1677
- //add value to zones arrays
1678
- this.accessory.zones[i].name = name;
1679
- this.accessory.zones[i].operationMode = operationModeZone;
1680
- this.accessory.zones[i].currentOperationMode = currentOperationMode;
1681
- this.accessory.zones[i].targetOperationMode = targetOperationMode;
1682
- this.accessory.zones[i].roomTemperature = roomTemperature;
1683
- this.accessory.zones[i].setTemperature = setTemperature;
1684
- this.accessory.zones[i].lockPhysicalControl = lockPhysicalControl;
1685
- this.accessory.zones[i].temperaturesSetPropsMinValue = temperatureSetPropsMinValue;
1686
- this.accessory.zones[i].temperaturesSetPropsMaxValue = temperatureSetPropsMaxValue;
1687
- const setPropsMinValue = this.startPrepareAccessory ? this.accessory.zones[i].operationModesSetPropsMinValue = operationModeSetPropsMinValue : false;
1688
- const setPropsMaxValue = this.startPrepareAccessory ? this.accessory.zones[i].operationModesSetPropsMaxValue = operationModeSetPropsMaxValue : false;
1689
- const setPropsValidValues = this.startPrepareAccessory ? this.accessory.zones[i].operationModesSetPropsValidValues = operationModeSetPropsValidValues : false;
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}${this.accessory.temperatureUnit}`);
1699
- this.emit('message', `${heatPumpName}, Temperature display unit: ${this.accessory.temperatureUnit}`);
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}${this.accessory.temperatureUnit}`);
1706
- this.emit('message', `${zone1Name}, Target temperature: ${setTemperature}${this.accessory.temperatureUnit}`)
1707
- this.emit('message', `${zone1Name}, Temperature display unit: ${this.accessory.temperatureUnit}`);
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}${this.accessory.temperatureUnit}`);
1714
- this.emit('message', `${hotWaterName}, Target temperature: ${setTemperature}${this.accessory.temperatureUnit}`)
1715
- this.emit('message', `${hotWaterName}, Temperature display unit: ${this.accessory.temperatureUnit}`);
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}${this.accessory.temperatureUnit}`);
1722
- this.emit('message', `${zone2Name}, Target temperature: ${setTemperature}${this.accessory.temperatureUnit}`)
1723
- this.emit('message', `${zone2Name}, Temperature display unit: ${this.accessory.temperatureUnit}`);
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 value to sensors arrays
1824
- this.accessory.zonesSensors[i].name = name;
1825
- this.accessory.zonesSensors[i].roomTemperature = roomTemperature;
1826
- this.accessory.zonesSensors[i].flowTemperature = flowTemperature;
1827
- this.accessory.zonesSensors[i].returnTemperature = returnTemperature;
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}${this.accessory.temperatureUnit}`) : false;
1834
- const info0 = flowTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Flow temperature: ${flowTemperatureHeatPump}${this.accessory.temperatureUnit}`) : false;
1835
- const info1 = returnTemperatureHeatPump !== null ? this.emit('message', `${heatPumpName}, Return temperature: ${returnTemperatureHeatPump}${this.accessory.temperatureUnit}`) : false;
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}${this.accessory.temperatureUnit}`) : false;
1839
- const info3 = flowTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Flow temperature: ${flowTemperatureZone1}${this.accessory.temperatureUnit}`) : false;
1840
- const info4 = returnTemperatureZone1 !== null ? this.emit('message', `${zone1Name}, Return temperature: ${returnTemperatureZone1}${this.accessory.temperatureUnit}`) : false;
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}${this.accessory.temperatureUnit}`) : false;
1844
- const info6 = flowTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Flow temperature: ${flowTemperatureWaterTank}${this.accessory.temperatureUnit}`) : false;
1845
- const info7 = returnTemperatureWaterTank !== null ? this.emit('message', `${hotWaterName}, Return temperature: ${returnTemperatureWaterTank}${this.accessory.temperatureUnit}`) : false;
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}${this.accessory.temperatureUnit}`) : false;
1849
- const info9 = flowTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Flow temperature: ${flowTemperatureZone2}${this.accessory.temperatureUnit}`) : false;
1850
- const info10 = returnTemperatureZone2 !== null ? this.emit('message', `${zone2Name}, Return temperature: ${returnTemperatureZone2}${this.accessory.temperatureUnit}`) : false;
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
- for (let i = 0; i < this.buttonsConfiguredCount; i++) {
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