homebridge-melcloud-control 3.3.31 → 3.3.32-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/src/deviceata.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
- const EventEmitter = require('events');
3
- const MelCloudAta = require('./melcloudata.js');
4
- const RestFul = require('./restful.js');
5
- const Mqtt = require('./mqtt.js');
6
- const CONSTANTS = require('./constants.json');
2
+ import EventEmitter from 'events';
3
+ import MelCloudAta from './melcloudata.js';
4
+ import RestFul from './restful.js';
5
+ import Mqtt from './mqtt.js';
6
+ import { TemperatureDisplayUnits, AirConditioner } from './constants.json';
7
7
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
8
8
 
9
9
  class DeviceAta extends EventEmitter {
@@ -94,7 +94,7 @@ class DeviceAta extends EventEmitter {
94
94
  //accessory
95
95
  this.accessory = {};
96
96
  this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
97
- this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[this.accessory.useFahrenheit];
97
+ this.accessory.temperatureUnit = TemperatureDisplayUnits[this.accessory.useFahrenheit];
98
98
  };
99
99
 
100
100
  async start() {
@@ -589,16 +589,16 @@ class DeviceAta extends EventEmitter {
589
589
  //log current state
590
590
  if (!this.disableLogInfo) {
591
591
  this.emit('message', `Power: ${power ? 'ON' : 'OFF'}`);
592
- this.emit('message', `Target operation mode: ${CONSTANTS.AirConditioner.DriveMode[operationMode]}`);
593
- this.emit('message', `Current operation mode: ${this.displayMode === 1 ? CONSTANTS.AirConditioner.CurrentOperationModeHeatherCooler[this.accessory.currentOperationMode] : CONSTANTS.AirConditioner.CurrentOperationModeThermostat[this.accessory.currentOperationMode]}`);
592
+ this.emit('message', `Target operation mode: ${AirConditioner.DriveMode[operationMode]}`);
593
+ this.emit('message', `Current operation mode: ${this.displayMode === 1 ? AirConditioner.CurrentOperationModeHeatherCooler[this.accessory.currentOperationMode] : AirConditioner.CurrentOperationModeThermostat[this.accessory.currentOperationMode]}`);
594
594
  this.emit('message', `Target temperature: ${setTemperature}${this.accessory.temperatureUnit}`);
595
595
  this.emit('message', `Current temperature: ${roomTemperature}${this.accessory.temperatureUnit}`);
596
596
  const info = hasOutdoorTemperature && outdoorTemperature !== null ? this.emit('message', `Outdoor temperature: ${outdoorTemperature}${this.accessory.temperatureUnit}`) : false;
597
- const info3 = modelSupportsFanSpeed ? this.emit('message', `Target fan speed: ${CONSTANTS.AirConditioner.FanSpeed[fanSpeed]}`) : false;
598
- const info4 = modelSupportsFanSpeed ? this.emit('message', `Current fan speed: ${CONSTANTS.AirConditioner.FanSpeed[actualFanSpeed]}`) : false;
599
- const info5 = vaneHorizontalDirection !== null ? this.emit('message', `Vane horizontal: ${CONSTANTS.AirConditioner.HorizontalVane[vaneHorizontalDirection] ?? vaneHorizontalDirection}`) : false;
600
- const info6 = vaneVerticalDirection !== null ? this.emit('message', `Vane vertical: ${CONSTANTS.AirConditioner.VerticalVane[vaneVerticalDirection] ?? vaneVerticalDirection}`) : false;
601
- const info7 = swingFunction ? this.emit('message', `Air direction: ${CONSTANTS.AirConditioner.AirDirection[this.accessory.swingMode]}`) : false;
597
+ const info3 = modelSupportsFanSpeed ? this.emit('message', `Target fan speed: ${AirConditioner.FanSpeed[fanSpeed]}`) : false;
598
+ const info4 = modelSupportsFanSpeed ? this.emit('message', `Current fan speed: ${AirConditioner.FanSpeed[actualFanSpeed]}`) : false;
599
+ const info5 = vaneHorizontalDirection !== null ? this.emit('message', `Vane horizontal: ${AirConditioner.HorizontalVane[vaneHorizontalDirection] ?? vaneHorizontalDirection}`) : false;
600
+ const info6 = vaneVerticalDirection !== null ? this.emit('message', `Vane vertical: ${AirConditioner.VerticalVane[vaneVerticalDirection] ?? vaneVerticalDirection}`) : false;
601
+ const info7 = swingFunction ? this.emit('message', `Air direction: ${AirConditioner.AirDirection[this.accessory.swingMode]}`) : false;
602
602
  this.emit('message', `Temperature display unit: ${this.accessory.temperatureUnit}`);
603
603
  this.emit('message', `Lock physical controls: ${this.accessory.lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
604
604
  };
@@ -646,67 +646,67 @@ class DeviceAta extends EventEmitter {
646
646
  switch (key) {
647
647
  case 'Power':
648
648
  deviceData.Device[key] = value;
649
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Power;
649
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Power;
650
650
  set = await this.melCloudAta.send(deviceData, this.displayMode);
651
651
  break;
652
652
  case 'OperationMode':
653
653
  deviceData.Device[key] = value;
654
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.OperationModeSetTemperature;
654
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.OperationModeSetTemperature;
655
655
  set = await this.melCloudAta.send(deviceData, this.displayMode);
656
656
  break;
657
657
  case 'SetTemperature':
658
658
  deviceData.Device[key] = value;
659
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
659
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
660
660
  set = await this.melCloudAta.send(deviceData, this.displayMode);
661
661
  break;
662
662
  case 'DefaultCoolingSetTemperature':
663
663
  deviceData.Device[key] = value;
664
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
664
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
665
665
  set = await this.melCloudAta.send(deviceData, this.displayMode);
666
666
  break;
667
667
  case 'DefaultHeatingSetTemperature':
668
668
  deviceData.Device[key] = value;
669
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
669
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
670
670
  set = await this.melCloudAta.send(deviceData, this.displayMode);
671
671
  break;
672
672
  case 'FanSpeed':
673
673
  deviceData.Device[key] = value;
674
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetFanSpeed;
674
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetFanSpeed;
675
675
  set = await this.melCloudAta.send(deviceData, this.displayMode);
676
676
  break;
677
677
  case 'VaneHorizontalDirection':
678
678
  deviceData.Device[key] = value;
679
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.VaneHorizontal;
679
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.VaneHorizontal;
680
680
  set = await this.melCloudAta.send(deviceData, this.displayMode);
681
681
  break;
682
682
  case 'VaneVerticalDirection':
683
683
  deviceData.Device[key] = value;
684
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.VaneVertical;
684
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.VaneVertical;
685
685
  set = await this.melCloudAta.send(deviceData, this.displayMode);
686
686
  break;
687
687
  case 'HideVaneControls':
688
688
  deviceData[key] = value;
689
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
689
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
690
690
  set = await this.melCloudAta.send(deviceData, this.displayMode);
691
691
  break;
692
692
  case 'HideDryModeControl':
693
693
  deviceData[key] = value;
694
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
694
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
695
695
  await this.melCloudAta.send(deviceData, this.displayMode);
696
696
  break;
697
697
  case 'ProhibitSetTemperature':
698
698
  deviceData.Device[key] = value;
699
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
699
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
700
700
  set = await this.melCloudAta.send(deviceData, this.displayMode);
701
701
  break;
702
702
  case 'ProhibitOperationMode':
703
703
  deviceData.Device[key] = value;
704
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
704
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
705
705
  await this.melCloudAta.send(deviceData, this.displayMode);
706
706
  break;
707
707
  case 'ProhibitPower':
708
708
  deviceData.Device[key] = value;
709
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
709
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
710
710
  set = await this.melCloudAta.send(deviceData, this.displayMode);
711
711
  break;
712
712
  default:
@@ -766,7 +766,7 @@ class DeviceAta extends EventEmitter {
766
766
  .onSet(async (state) => {
767
767
  try {
768
768
  deviceData.Device.Power = [false, true][state];
769
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Power;
769
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Power;
770
770
  await this.melCloudAta.send(deviceData, this.displayMode);
771
771
  const info = this.disableLogInfo ? false : this.emit('message', `Set power: ${state ? 'ON' : 'OFF'}`);
772
772
  } catch (error) {
@@ -802,9 +802,9 @@ class DeviceAta extends EventEmitter {
802
802
  break;
803
803
  };
804
804
 
805
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.OperationModeSetTemperature;
805
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.OperationModeSetTemperature;
806
806
  await this.melCloudAta.send(deviceData, this.displayMode);
807
- const operationModeText = CONSTANTS.AirConditioner.DriveMode[deviceData.Device.OperationMode];
807
+ const operationModeText = AirConditioner.DriveMode[deviceData.Device.OperationMode];
808
808
  const info = this.disableLogInfo ? false : this.emit('message', `Set operation mode: ${operationModeText}`);
809
809
  } catch (error) {
810
810
  this.emit('warn', `Set operation mode error: ${error}`);
@@ -851,9 +851,9 @@ class DeviceAta extends EventEmitter {
851
851
  deviceData.Device.FanSpeed = hasAutomaticFanSpeed ? [0, 1, 2, 3, 4, 5, 6, 0][value] : [1, 1, 2, 3, 4, 5, 6][value];
852
852
  break;
853
853
  };
854
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetFanSpeed;
854
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetFanSpeed;
855
855
  await this.melCloudAta.send(deviceData, this.displayMode);
856
- const info = this.disableLogInfo ? false : this.emit('message', `Set fan speed mode: ${CONSTANTS.AirConditioner.FanSpeed[fanSpeedModeText]}`);
856
+ const info = this.disableLogInfo ? false : this.emit('message', `Set fan speed mode: ${AirConditioner.FanSpeed[fanSpeedModeText]}`);
857
857
  } catch (error) {
858
858
  this.emit('warn', `Set fan speed mode error: ${error}`);
859
859
  };
@@ -870,9 +870,9 @@ class DeviceAta extends EventEmitter {
870
870
  try {
871
871
  deviceData.Device.VaneHorizontal = value ? 12 : 0;
872
872
  deviceData.Device.VaneVertical = value ? 7 : 0;
873
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.VaneVerticalVaneHorizontal;
873
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.VaneVerticalVaneHorizontal;
874
874
  await this.melCloudAta.send(deviceData, this.displayMode);
875
- const info = this.disableLogInfo ? false : this.emit('message', `Set air direction mode: ${CONSTANTS.AirConditioner.AirDirection[value]}`);
875
+ const info = this.disableLogInfo ? false : this.emit('message', `Set air direction mode: ${AirConditioner.AirDirection[value]}`);
876
876
  } catch (error) {
877
877
  this.emit('warn', `Set vane swing mode error: ${error}`);
878
878
  };
@@ -891,7 +891,7 @@ class DeviceAta extends EventEmitter {
891
891
  .onSet(async (value) => {
892
892
  try {
893
893
  deviceData.Device.DefaultCoolingSetTemperature = value;
894
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
894
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
895
895
  await this.melCloudAta.send(deviceData, this.displayMode);
896
896
  const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
897
897
  } catch (error) {
@@ -912,7 +912,7 @@ class DeviceAta extends EventEmitter {
912
912
  .onSet(async (value) => {
913
913
  try {
914
914
  deviceData.Device.DefaultHeatingSetTemperature = value;
915
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
915
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
916
916
  await this.melCloudAta.send(deviceData, this.displayMode);
917
917
  const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
918
918
  } catch (error) {
@@ -931,7 +931,7 @@ class DeviceAta extends EventEmitter {
931
931
  deviceData.Device.ProhibitSetTemperature = value;
932
932
  deviceData.Device.ProhibitOperationMode = value;
933
933
  deviceData.Device.ProhibitPower = value;
934
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
934
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
935
935
  await this.melCloudAta.send(deviceData, this.displayMode);
936
936
  const info = this.disableLogInfo ? false : this.emit('message', `Set local physical controls: ${value ? 'LOCK' : 'UNLOCK'}`);
937
937
  } catch (error) {
@@ -948,7 +948,7 @@ class DeviceAta extends EventEmitter {
948
948
  accountInfo.UseFahrenheit = [false, true][value];
949
949
  await this.melCloud.send(accountInfo);
950
950
  this.accessory.useFahrenheit = value;
951
- const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
951
+ const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
952
952
  } catch (error) {
953
953
  this.emit('warn', `Set temperature display unit error: ${error}`);
954
954
  };
@@ -978,27 +978,27 @@ class DeviceAta extends EventEmitter {
978
978
  switch (value) {
979
979
  case 0: //OFF - POWER OFF
980
980
  deviceData.Device.Power = false;
981
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Power;
981
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Power;
982
982
  break;
983
983
  case 1: //HEAT - HEAT
984
984
  deviceData.Device.Power = true;
985
985
  deviceData.Device.OperationMode = heatDryFanMode;
986
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
986
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
987
987
  break;
988
988
  case 2: //COOL - COOL
989
989
  deviceData.Device.Power = true;
990
990
  deviceData.Device.OperationMode = coolDryFanMode;
991
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature
991
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature
992
992
  break;
993
993
  case 3: //AUTO - AUTO
994
994
  deviceData.Device.Power = true;
995
995
  deviceData.Device.OperationMode = autoDryFanMode;
996
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
996
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
997
997
  break;
998
998
  };
999
999
 
1000
1000
  await this.melCloudAta.send(deviceData, this.displayMode);
1001
- const operationModeText = CONSTANTS.AirConditioner.DriveMode[deviceData.Device.OperationMode];
1001
+ const operationModeText = AirConditioner.DriveMode[deviceData.Device.OperationMode];
1002
1002
  const info = this.disableLogInfo ? false : this.emit('message', `Set operation mode: ${operationModeText}`);
1003
1003
  } catch (error) {
1004
1004
  this.emit('warn', `Set operation mode error: ${error}`);
@@ -1022,7 +1022,7 @@ class DeviceAta extends EventEmitter {
1022
1022
  .onSet(async (value) => {
1023
1023
  try {
1024
1024
  deviceData.Device.SetTemperature = value;
1025
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
1025
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
1026
1026
  await this.melCloudAta.send(deviceData, this.displayMode);
1027
1027
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature: ${value}${this.accessory.temperatureUnit}`);
1028
1028
  } catch (error) {
@@ -1039,7 +1039,7 @@ class DeviceAta extends EventEmitter {
1039
1039
  accountInfo.UseFahrenheit = [false, true][value];
1040
1040
  await this.melCloud.send(accountInfo);
1041
1041
  this.accessory.useFahrenheit = value;
1042
- const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
1042
+ const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
1043
1043
  } catch (error) {
1044
1044
  this.emit('warn', `Set temperature display unit error: ${error}`);
1045
1045
  };
@@ -1122,7 +1122,7 @@ class DeviceAta extends EventEmitter {
1122
1122
  deviceData.Device.VaneHorizontalDirection = presetData.VaneHorizontal;
1123
1123
  deviceData.Device.VaneVerticalDirection = presetData.VaneVertical;
1124
1124
  deviceData.Device.FanSpeed = presetData.FanSpeed;
1125
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Presets;
1125
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Presets;
1126
1126
  break;
1127
1127
  case false:
1128
1128
  deviceData.Device.Power = preset.previousSettings.Power;
@@ -1131,7 +1131,7 @@ class DeviceAta extends EventEmitter {
1131
1131
  deviceData.Device.VaneHorizontalDirection = preset.previousSettings.VaneHorizontalDirection;
1132
1132
  deviceData.Device.VaneVerticalDirection = preset.previousSettings.VaneVerticalDirection;
1133
1133
  deviceData.Device.FanSpeed = preset.previousSettings.FanSpeed;
1134
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Presets;
1134
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Presets;
1135
1135
  break;
1136
1136
  };
1137
1137
 
@@ -1179,43 +1179,43 @@ class DeviceAta extends EventEmitter {
1179
1179
  switch (mode) {
1180
1180
  case 0: //POWER ON,OFF
1181
1181
  deviceData.Device.Power = state;
1182
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Power;
1182
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Power;
1183
1183
  break;
1184
1184
  case 1: //OPERATING MODE HEAT
1185
1185
  button.previousValue = state ? deviceData.Device.OperationMode : button.previousValue ?? deviceData.Device.OperationMode;
1186
1186
  deviceData.Device.Power = true;
1187
1187
  deviceData.Device.OperationMode = state ? 1 : button.previousValue === 9 ? 1 : button.previousValue;
1188
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1188
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1189
1189
  break;
1190
1190
  case 2: //OPERATING MODE DRY
1191
1191
  button.previousValue = state ? deviceData.Device.OperationMode : button.previousValue ?? deviceData.Device.OperationMode;
1192
1192
  deviceData.Device.Power = true;
1193
1193
  deviceData.Device.OperationMode = state ? 2 : button.previousValue === 10 ? 2 : button.previousValue;
1194
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1194
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1195
1195
  break
1196
1196
  case 3: //OPERATING MODE COOL
1197
1197
  button.previousValue = state ? deviceData.Device.OperationMode : button.previousValue ?? deviceData.Device.OperationMode;
1198
1198
  deviceData.Device.Power = true;
1199
1199
  deviceData.Device.OperationMode = state ? 3 : button.previousValue === 11 ? 3 : button.previousValue;
1200
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1200
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1201
1201
  break;
1202
1202
  case 4: //OPERATING MODE FAN
1203
1203
  button.previousValue = state ? deviceData.Device.OperationMode : button.previousValue ?? deviceData.Device.OperationMode;
1204
1204
  deviceData.Device.Power = true;
1205
1205
  deviceData.Device.OperationMode = state ? 7 : button.previousValue;
1206
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1206
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1207
1207
  break;
1208
1208
  case 5: //OPERATING MODE AUTO
1209
1209
  button.previousValue = state ? deviceData.Device.OperationMode : button.previousValue ?? deviceData.Device.OperationMode;
1210
1210
  deviceData.Device.Power = true;
1211
1211
  deviceData.Device.OperationMode = state ? 8 : button.previousValue;
1212
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1212
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1213
1213
  break;
1214
1214
  case 6: //OPERATING MODE PURIFY
1215
1215
  button.previousValue = state ? deviceData.Device.OperationMode : button.previousValue ?? deviceData.Device.OperationMode;
1216
1216
  deviceData.Device.Power = true;
1217
1217
  deviceData.Device.OperationMode = state ? 12 : button.previousValue;
1218
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1218
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
1219
1219
  break;
1220
1220
  case 7: //OPERATING MODE DRY CONTROL HIDE
1221
1221
  deviceData.HideDryModeControl = state;
@@ -1224,91 +1224,91 @@ class DeviceAta extends EventEmitter {
1224
1224
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1225
1225
  deviceData.Device.Power = true;
1226
1226
  deviceData.Device.VaneHorizontalDirection = state ? 0 : button.previousValue;
1227
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1227
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1228
1228
  break;
1229
1229
  case 11: //VANE H SWING MODE 1
1230
1230
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1231
1231
  deviceData.Device.Power = true;
1232
1232
  deviceData.Device.VaneHorizontalDirection = state ? 1 : button.previousValue;
1233
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1233
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1234
1234
  break;
1235
1235
  case 12: //VANE H SWING MODE 2
1236
1236
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1237
1237
  deviceData.Device.Power = true;
1238
1238
  deviceData.Device.VaneHorizontalDirection = state ? 2 : button.previousValue;
1239
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1239
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1240
1240
  break;
1241
1241
  case 13: //VANE H SWING MODE 3
1242
1242
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1243
1243
  deviceData.Device.Power = true;
1244
1244
  deviceData.Device.VaneHorizontalDirection = state ? 3 : button.previousValue;
1245
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1245
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1246
1246
  break;
1247
1247
  case 14: //VANE H SWING MODE 4
1248
1248
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1249
1249
  deviceData.Device.Power = true;
1250
1250
  deviceData.Device.VaneHorizontalDirection = state ? 4 : button.previousValue;
1251
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1251
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1252
1252
  break;
1253
1253
  case 15: //VANE H SWING MODE 5
1254
1254
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1255
1255
  deviceData.Device.Power = true;
1256
1256
  deviceData.Device.VaneHorizontalDirection = state ? 5 : button.previousValue;
1257
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1257
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1258
1258
  break;
1259
1259
  case 16: //VANE H SWING MODE SPLIT
1260
1260
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1261
1261
  deviceData.Device.Power = true;
1262
1262
  deviceData.Device.VaneHorizontalDirection = state ? 8 : button.previousValue;
1263
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1263
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1264
1264
  break;
1265
1265
  case 17: //VANE H SWING MODE SWING
1266
1266
  button.previousValue = state ? deviceData.Device.VaneHorizontalDirection : button.previousValue ?? deviceData.Device.VaneHorizontalDirection;
1267
1267
  deviceData.Device.Power = true;
1268
1268
  deviceData.Device.VaneHorizontalDirection = state ? 12 : button.previousValue;
1269
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1269
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneHorizontal;
1270
1270
  break;
1271
1271
  case 20: //VANE V SWING MODE AUTO
1272
1272
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1273
1273
  deviceData.Device.Power = true;
1274
1274
  deviceData.Device.VaneVerticalDirection = state ? 0 : button.previousValue;
1275
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1275
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1276
1276
  break;
1277
1277
  case 21: //VANE V SWING MODE 1
1278
1278
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1279
1279
  deviceData.Device.Power = true;
1280
1280
  deviceData.Device.VaneVerticalDirection = state ? 1 : button.previousValue;
1281
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1281
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1282
1282
  break;
1283
1283
  case 22: //VANE V SWING MODE 2
1284
1284
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1285
1285
  deviceData.Device.Power = true;
1286
1286
  deviceData.Device.VaneVerticalDirection = state ? 2 : button.previousValue;
1287
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1287
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1288
1288
  break;
1289
1289
  case 23: //VANE V SWING MODE 3
1290
1290
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1291
1291
  deviceData.Device.Power = true;
1292
1292
  deviceData.Device.VaneVerticalDirection = state ? 3 : button.previousValue;
1293
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1293
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1294
1294
  break;
1295
1295
  case 24: //VANE V SWING MODE 4
1296
1296
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1297
1297
  deviceData.Device.Power = true;
1298
1298
  deviceData.Device.VaneVerticalDirection = state ? 4 : button.previousValue;
1299
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1299
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1300
1300
  break;
1301
1301
  case 25: //VANE V SWING MODE 5
1302
1302
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1303
1303
  deviceData.Device.Power = true;
1304
1304
  deviceData.Device.VaneVerticalDirection = state ? 5 : button.previousValue;
1305
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1305
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1306
1306
  break;
1307
1307
  case 26: //VANE V SWING MODE SWING
1308
1308
  button.previousValue = state ? deviceData.Device.VaneVerticalDirection : button.previousValue ?? deviceData.Device.VaneVerticalDirection;
1309
1309
  deviceData.Device.Power = true;
1310
1310
  deviceData.Device.VaneVerticalDirection = state ? 7 : button.previousValue;
1311
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerVaneVertical;
1311
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerVaneVertical;
1312
1312
  break;
1313
1313
  case 27: //VANE H/V CONTROLS HIDE
1314
1314
  deviceData.HideVaneControls = state;
@@ -1317,61 +1317,61 @@ class DeviceAta extends EventEmitter {
1317
1317
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1318
1318
  deviceData.Device.Power = true;
1319
1319
  deviceData.Device.FanSpeed = state ? 0 : button.previousValue;
1320
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1320
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1321
1321
  break;
1322
1322
  case 31: //FAN SPEED MODE 1
1323
1323
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1324
1324
  deviceData.Device.Power = true;
1325
1325
  deviceData.Device.FanSpeed = state ? 1 : button.previousValue;
1326
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1326
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1327
1327
  break;
1328
1328
  case 32: //FAN SPEED MODE 2
1329
1329
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1330
1330
  deviceData.Device.Power = true;
1331
1331
  deviceData.Device.FanSpeed = state ? 2 : button.previousValue;
1332
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1332
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1333
1333
  break;
1334
1334
  case 33: //FAN SPEED MODE 3
1335
1335
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1336
1336
  deviceData.Device.Power = true;
1337
1337
  deviceData.Device.FanSpeed = state ? 3 : button.previousValue;
1338
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1338
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1339
1339
  break;
1340
1340
  case 34: //FAN MODE 4
1341
1341
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1342
1342
  deviceData.Device.Power = true;
1343
1343
  deviceData.Device.FanSpeed = state ? 4 : button.previousValue;
1344
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1344
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1345
1345
  break;
1346
1346
  case 35: //FAN SPEED MODE 5
1347
1347
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1348
1348
  deviceData.Device.Power = true;
1349
1349
  deviceData.Device.FanSpeed = state ? 5 : button.previousValue;
1350
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1350
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1351
1351
  break;
1352
1352
  case 36: //FAN SPEED MODE 6
1353
1353
  button.previousValue = state ? deviceData.Device.FanSpeed : button.previousValue ?? deviceData.Device.FanSpeed;
1354
1354
  deviceData.Device.Power = true;
1355
1355
  deviceData.Device.FanSpeed = state ? 6 : button.previousValue;
1356
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1356
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.PowerSetFanSpeed;
1357
1357
  break;
1358
1358
  case 37: //PHYSICAL LOCK CONTROLS
1359
1359
  deviceData.Device.ProhibitSetTemperature = state;
1360
1360
  deviceData.Device.ProhibitOperationMode = state;
1361
1361
  deviceData.Device.ProhibitPower = state;
1362
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
1362
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
1363
1363
  break;
1364
1364
  case 38: //PHYSICAL LOCK CONTROLS POWER
1365
1365
  deviceData.Device.ProhibitPower = state;
1366
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
1366
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
1367
1367
  break;
1368
1368
  case 39: //PHYSICAL LOCK CONTROLS MODE
1369
1369
  deviceData.Device.ProhibitOperationMode = state;
1370
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
1370
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
1371
1371
  break;
1372
1372
  case 40: //PHYSICAL LOCK CONTROLS TEMP
1373
1373
  deviceData.Device.ProhibitSetTemperature = state;
1374
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.Prohibit;
1374
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
1375
1375
  break;
1376
1376
  default:
1377
1377
  this.emit('message', `Unknown button mode: ${mode}`);
@@ -1395,4 +1395,4 @@ class DeviceAta extends EventEmitter {
1395
1395
  };
1396
1396
  };
1397
1397
  };
1398
- module.exports = DeviceAta;
1398
+ export default DeviceAta;