homebridge-melcloud-control 3.3.31 → 3.3.32-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/deviceerv.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
- const EventEmitter = require('events');
3
- const MelCloudErv = require('./melclouderv.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 MelCloudErv from './melclouderv.js';
4
+ import RestFul from './restful.js';
5
+ import Mqtt from './mqtt.js';
6
+ import constants from './constants.json' assert { type: 'json' };
7
+ const { TemperatureDisplayUnits, Ventilation, AirConditioner } = constants;
7
8
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
8
9
 
9
10
  class DeviceErv extends EventEmitter {
@@ -92,7 +93,7 @@ class DeviceErv extends EventEmitter {
92
93
  //accessory
93
94
  this.accessory = {};
94
95
  this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
95
- this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[this.accessory.useFahrenheit];
96
+ this.accessory.temperatureUnit = TemperatureDisplayUnits[this.accessory.useFahrenheit];
96
97
  };
97
98
 
98
99
  async start() {
@@ -531,19 +532,19 @@ class DeviceErv extends EventEmitter {
531
532
  //log current state
532
533
  if (!this.disableLogInfo) {
533
534
  this.emit('message', `Power: ${power ? 'ON' : 'OFF'}`);
534
- this.emit('message', `Target ventilation mode: ${CONSTANTS.Ventilation.OperationMode[ventilationMode]}`);
535
- this.emit('message', `Current ventilation mode: ${CONSTANTS.Ventilation.OperationMode[actualVentilationMode]}`);
535
+ this.emit('message', `Target ventilation mode: ${Ventilation.OperationMode[ventilationMode]}`);
536
+ this.emit('message', `Current ventilation mode: ${Ventilation.OperationMode[actualVentilationMode]}`);
536
537
  this.emit('message', `Target temperature: ${setTemperature}${this.accessory.temperatureUnit}`);
537
538
  this.emit('message', `Room temperature: ${roomTemperature}${this.accessory.temperatureUnit}`);
538
539
  const info1 = hasSupplyTemperature && deviceData.Device.SupplyTemperature !== null ? this.emit('message', `Supply temperature: ${roomTemperature}${this.accessory.temperatureUnit}`) : false;
539
540
  const info2 = hasOutdoorTemperature && deviceData.Device.OutdoorTemperature !== null ? this.emit('message', `Outdoor temperature: ${roomTemperature}${this.accessory.temperatureUnit}`) : false;
540
- this.emit('message', `Fan speed mode: ${CONSTANTS.Ventilation.FanSpeed[setFanSpeed]}`);
541
+ this.emit('message', `Fan speed mode: ${Ventilation.FanSpeed[setFanSpeed]}`);
541
542
  this.emit('message', `Temperature display unit: ${this.accessory.temperatureUnit}`);
542
- this.emit('message', `Core maintenance: ${CONSTANTS.Ventilation.CoreMaintenance[coreMaintenanceRequired]}`);
543
- this.emit('message', `Filter maintenance: ${CONSTANTS.Ventilation.FilterMaintenance[filterMaintenanceRequired]}`);
544
- const info5 = hasCO2Sensor ? this.emit('message', `CO2 detected: ${CONSTANTS.Ventilation.Co2Detected[roomCO2Detected]}`) : false;
543
+ this.emit('message', `Core maintenance: ${Ventilation.CoreMaintenance[coreMaintenanceRequired]}`);
544
+ this.emit('message', `Filter maintenance: ${Ventilation.FilterMaintenance[filterMaintenanceRequired]}`);
545
+ const info5 = hasCO2Sensor ? this.emit('message', `CO2 detected: ${Ventilation.Co2Detected[roomCO2Detected]}`) : false;
545
546
  const info6 = hasCO2Sensor ? this.emit('message', `CO2 level: ${roomCO2Level} ppm`) : false;
546
- const info7 = hasPM25Sensor ? this.emit('message', `PM2.5 air quality: ${CONSTANTS.Ventilation.PM25AirQuality[pM25AirQuality]}`) : false;
547
+ const info7 = hasPM25Sensor ? this.emit('message', `PM2.5 air quality: ${Ventilation.PM25AirQuality[pM25AirQuality]}`) : false;
547
548
  const info8 = hasPM25Sensor ? this.emit('message', `PM2.5 level: ${pM25Level} µg/m`) : false;
548
549
  };
549
550
 
@@ -591,57 +592,57 @@ class DeviceErv extends EventEmitter {
591
592
  switch (key) {
592
593
  case 'Power':
593
594
  deviceData.Device[key] = value;
594
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power;
595
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power;
595
596
  set = await this.melCloudErv.send(deviceData, this.displayMode);
596
597
  break;
597
598
  case 'OperationMode':
598
599
  deviceData.Device[key] = value;
599
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.OperationMode;
600
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.OperationMode;
600
601
  set = await this.melCloudErv.send(deviceData, this.displayMode);
601
602
  break;
602
603
  case 'VentilationMode':
603
604
  deviceData.Device[key] = value;
604
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
605
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.VentilationMode;
605
606
  set = await this.melCloudErv.send(deviceData, this.displayMode);
606
607
  break;
607
608
  case 'SetTemperature':
608
609
  deviceData.Device[key] = value;
609
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetTemperature;
610
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.SetTemperature;
610
611
  set = await this.melCloudErv.send(deviceData, this.displayMode);
611
612
  break;
612
613
  case 'DefaultCoolingSetTemperature':
613
614
  deviceData.Device[key] = value;
614
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetTemperature;
615
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.SetTemperature;
615
616
  set = await this.melCloudErv.send(deviceData, this.displayMode);
616
617
  break;
617
618
  case 'DefaultHeatingSetTemperature':
618
619
  deviceData.Device[key] = value;
619
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetTemperature;
620
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.SetTemperature;
620
621
  set = await this.melCloudErv.send(deviceData, this.displayMode);
621
622
  break;
622
623
  case 'NightPurgeMode':
623
624
  deviceData.Device[key] = value;
624
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.NightPurgeMode;
625
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.NightPurgeMode;
625
626
  set = await this.melCloudErv.send(deviceData, this.displayMode);
626
627
  break;
627
628
  case 'SetFanSpeed':
628
629
  deviceData.Device[key] = value;
629
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
630
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.SetFanSpeed;
630
631
  set = await this.melCloudErv.send(deviceData, this.displayMode);
631
632
  break;
632
633
  case 'HideRoomTemperature':
633
634
  deviceData[key] = value;
634
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Prohibit;
635
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Prohibit;
635
636
  set = await this.melCloudErv.send(deviceData, this.displayMode);
636
637
  break;
637
638
  case 'HideSupplyTemperature':
638
639
  deviceData[key] = value;
639
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Prohibit;
640
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Prohibit;
640
641
  set = await this.melCloudErv.send(deviceData, this.displayMode);
641
642
  break;
642
643
  case 'HideOutdoorTemperature':
643
644
  deviceData[key] = value;
644
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Prohibit;
645
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Prohibit;
645
646
  set = await this.melCloudErv.send(deviceData, this.displayMode);
646
647
  break;
647
648
  default:
@@ -700,7 +701,7 @@ class DeviceErv extends EventEmitter {
700
701
  .onSet(async (state) => {
701
702
  try {
702
703
  deviceData.Device.Power = [false, true][state];
703
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power;
704
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power;
704
705
  await this.melCloudErv.send(deviceData, this.displayMode);
705
706
  const info = this.disableLogInfo ? false : this.emit('message', `Set power: ${state ? 'ON' : 'OFF'}`);
706
707
  } catch (error) {
@@ -736,9 +737,9 @@ class DeviceErv extends EventEmitter {
736
737
  break;
737
738
  };
738
739
 
739
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
740
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.VentilationMode;
740
741
  await this.melCloudErv.send(deviceData, this.displayMode);
741
- const operationModeText = CONSTANTS.Ventilation.VentilationMode[deviceData.Device.VentilationMode];
742
+ const operationModeText = Ventilation.VentilationMode[deviceData.Device.VentilationMode];
742
743
  const info = this.disableLogInfo ? false : this.emit('message', `Set operation mode: ${operationModeText}`);
743
744
  } catch (error) {
744
745
  this.emit('warn', `Set operation mode error: ${error}`);
@@ -780,9 +781,9 @@ class DeviceErv extends EventEmitter {
780
781
  deviceData.Device.SetFanSpeed = hasAutomaticFanSpeed ? [0, 1, 2, 3, 4, 5, 0][value] : [1, 1, 2, 3, 4, 5][value];
781
782
  break;;
782
783
  };
783
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
784
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.SetFanSpeed;
784
785
  await this.melCloudErv.send(deviceData, this.displayMode);
785
- const info = this.disableLogInfo ? false : this.emit('message', `Set fan speed mode: ${CONSTANTS.Ventilation.FanSpeed[fanSpeedModeText]}`);
786
+ const info = this.disableLogInfo ? false : this.emit('message', `Set fan speed mode: ${Ventilation.FanSpeed[fanSpeedModeText]}`);
786
787
  } catch (error) {
787
788
  this.emit('warn', `Set fan speed mode error: ${error}`);
788
789
  };
@@ -802,7 +803,7 @@ class DeviceErv extends EventEmitter {
802
803
  .onSet(async (value) => {
803
804
  try {
804
805
  deviceData.Device.DefaultCoolingSetTemperature = value;
805
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
806
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
806
807
  await this.melCloudErv.send(deviceData, this.displayMode);
807
808
  const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
808
809
  } catch (error) {
@@ -825,7 +826,7 @@ class DeviceErv extends EventEmitter {
825
826
  .onSet(async (value) => {
826
827
  try {
827
828
  deviceData.Device.DefaultHeatingSetTemperature = value;
828
- deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
829
+ deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
829
830
  await this.melCloudErv.send(deviceData, this.displayMode);
830
831
  const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
831
832
  } catch (error) {
@@ -860,7 +861,7 @@ class DeviceErv extends EventEmitter {
860
861
  accountInfo.UseFahrenheit = [false, true][value];
861
862
  await this.melCloud.send(accountInfo);
862
863
  this.accessory.useFahrenheit = value;
863
- const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
864
+ const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
864
865
  } catch (error) {
865
866
  this.emit('warn', `Set temperature display unit error: ${error}`);
866
867
  };
@@ -890,27 +891,27 @@ class DeviceErv extends EventEmitter {
890
891
  switch (value) {
891
892
  case 0: //OFF - POWER OFF
892
893
  deviceData.Device.Power = false;
893
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power;
894
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power;
894
895
  break;
895
896
  case 1: //HEAT - LOSSNAY
896
897
  deviceData.Device.Power = true;
897
898
  deviceData.Device.VentilationMode = 0;
898
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
899
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
899
900
  break;
900
901
  case 2: //COOL - BYPASS
901
902
  deviceData.Device.Power = true;
902
903
  deviceData.Device.VentilationMode = hasBypassVentilationMode ? 1 : 0;
903
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
904
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
904
905
  break;
905
906
  case 3: //AUTO - AUTO
906
907
  deviceData.Device.Power = true;
907
908
  deviceData.Device.VentilationMode = hasAutoVentilationMode ? 2 : 0;
908
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
909
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
909
910
  break;
910
911
  };
911
912
 
912
913
  await this.melCloudErv.send(deviceData, this.displayMode);
913
- const operationModeText = CONSTANTS.Ventilation.VentilationMode[deviceData.Device.VentilationMode];
914
+ const operationModeText = Ventilation.VentilationMode[deviceData.Device.VentilationMode];
914
915
  const info = this.disableLogInfo ? false : this.emit('message', `Set operation mode: ${operationModeText}`);
915
916
  } catch (error) {
916
917
  this.emit('warn', `Set operation mode error: ${error}`);
@@ -934,7 +935,7 @@ class DeviceErv extends EventEmitter {
934
935
  .onSet(async (value) => {
935
936
  try {
936
937
  deviceData.Device.SetTemperature = value;
937
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetTemperature;
938
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.SetTemperature;
938
939
  await this.melCloudErv.send(deviceData, this.displayMode);
939
940
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature: ${value}${this.accessory.temperatureUnit}`);
940
941
  } catch (error) {
@@ -951,7 +952,7 @@ class DeviceErv extends EventEmitter {
951
952
  accountInfo.UseFahrenheit = [false, true][value];
952
953
  await this.melCloud.send(accountInfo);
953
954
  this.accessory.useFahrenheit = value;
954
- const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
955
+ const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
955
956
  } catch (error) {
956
957
  this.emit('warn', `Set temperature display unit error: ${error}`);
957
958
  };
@@ -1117,7 +1118,7 @@ class DeviceErv extends EventEmitter {
1117
1118
  deviceData.Device.OperationMode = presetData.OperationMode;
1118
1119
  deviceData.Device.VentilationMode = presetData.VentilationMode;
1119
1120
  deviceData.Device.SetFanSpeed = presetData.FanSpeed;
1120
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power;
1121
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power;
1121
1122
  break;
1122
1123
  case false:
1123
1124
  deviceData.Device.SetTemperature = preset.previousSettings.SetTemperature;
@@ -1125,7 +1126,7 @@ class DeviceErv extends EventEmitter {
1125
1126
  deviceData.Device.OperationMode = preset.previousSettings.OperationMode;
1126
1127
  deviceData.Device.VentilationMode = preset.previousSettings.VentilationMode;
1127
1128
  deviceData.Device.SetFanSpeed = preset.previousSettings.FanSpeed;
1128
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power;
1129
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power;
1129
1130
  break;
1130
1131
  };
1131
1132
 
@@ -1173,64 +1174,64 @@ class DeviceErv extends EventEmitter {
1173
1174
  switch (mode) {
1174
1175
  case 0: //POWER ON,OFF
1175
1176
  deviceData.Device.Power = state;
1176
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power;
1177
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power;
1177
1178
  break;
1178
1179
  case 1: //OPERATING MODE RECOVERY
1179
1180
  button.previousValue = state ? deviceData.Device.VentilationMode : button.previousValue ?? deviceData.Device.VentilationMode;
1180
1181
  deviceData.Device.Power = true;
1181
1182
  deviceData.Device.VentilationMode = state ? 0 : button.previousValue;
1182
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
1183
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
1183
1184
  break;
1184
1185
  case 2: //OPERATING MODE BYPASS
1185
1186
  button.previousValue = state ? deviceData.Device.VentilationMode : button.previousValue ?? deviceData.Device.VentilationMode;
1186
1187
  deviceData.Device.Power = true;
1187
1188
  deviceData.Device.VentilationMode = state ? 1 : button.previousValue;
1188
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
1189
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
1189
1190
  break
1190
1191
  case 3: //OPERATING MODE AUTO
1191
1192
  button.previousValue = state ? deviceData.Device.VentilationMode : button.previousValue ?? deviceData.Device.VentilationMode;
1192
1193
  deviceData.Device.Power = true;
1193
1194
  deviceData.Device.VentilationMode = state ? 2 : button.previousValue;
1194
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.VentilationMode;
1195
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
1195
1196
  break;
1196
1197
  case 4: //NIGHT PURGE MODE
1197
1198
  deviceData.Device.Power = true;
1198
1199
  deviceData.Device.NightPurgeMode = state;
1199
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power
1200
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power
1200
1201
  break;
1201
1202
  case 10: //FAN SPEED MODE AUTO
1202
1203
  button.previousValue = state ? deviceData.Device.SetFanSpeed : button.previousValue ?? deviceData.Device.SetFanSpeed;
1203
1204
  deviceData.Device.Power = true;
1204
1205
  deviceData.Device.SetFanSpeed = state ? 0 : button.previousValue;
1205
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
1206
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.SetFanSpeed;
1206
1207
  break;
1207
1208
  case 11: //FAN SPEED MODE 1
1208
1209
  button.previousValue = state ? deviceData.Device.SetFanSpeed : button.previousValue ?? deviceData.Device.SetFanSpeed;
1209
1210
  deviceData.Device.Power = true;
1210
1211
  deviceData.Device.SetFanSpeed = state ? 1 : button.previousValue;
1211
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
1212
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.SetFanSpeed;
1212
1213
  break;
1213
1214
  case 12: //FAN SPEED MODE 2
1214
1215
  button.previousValue = state ? deviceData.Device.SetFanSpeed : button.previousValue ?? deviceData.Device.SetFanSpeed;
1215
1216
  deviceData.Device.Power = true;
1216
1217
  deviceData.Device.SetFanSpeed = state ? 2 : button.previousValue;
1217
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
1218
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.SetFanSpeed;
1218
1219
  break;
1219
1220
  case 13: //FAN SPEED MODE 3
1220
1221
  button.previousValue = state ? deviceData.Device.SetFanSpeed : button.previousValue ?? deviceData.Device.SetFanSpeed;
1221
1222
  deviceData.Device.Power = true;
1222
1223
  deviceData.Device.SetFanSpeed = state ? 3 : button.previousValue;
1223
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
1224
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.SetFanSpeed;
1224
1225
  break;
1225
1226
  case 14: //FAN MODE 4
1226
1227
  button.previousValue = state ? deviceData.Device.SetFanSpeed : button.previousValue ?? deviceData.Device.SetFanSpeed;
1227
1228
  deviceData.Device.Power = true;
1228
1229
  deviceData.Device.SetFanSpeed = state ? 4 : button.previousValue;
1229
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Power + CONSTANTS.Ventilation.EffectiveFlags.SetFanSpeed;
1230
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.SetFanSpeed;
1230
1231
  break;
1231
1232
  case 15: //PHYSICAL LOCK CONTROLS
1232
1233
  deviceData.Device = deviceData.Device;
1233
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.Prohibit;
1234
+ deviceData.Device.EffectiveFlags = Ventilation.EffectiveFlags.Prohibit;
1234
1235
  break;
1235
1236
  case 16: //ROOM TEMP HIDE
1236
1237
  deviceData.HideRoomTemperature = state;
@@ -1263,4 +1264,4 @@ class DeviceErv extends EventEmitter {
1263
1264
  };
1264
1265
  };
1265
1266
  };
1266
- module.exports = DeviceErv;
1267
+ export default DeviceErv;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const EventEmitter = require('events');
2
+ import EventEmitter from 'events';
3
3
 
4
4
  class ImpulseGenerator extends EventEmitter {
5
5
  constructor() {
@@ -45,4 +45,4 @@ class ImpulseGenerator extends EventEmitter {
45
45
  return this.timersState;
46
46
  }
47
47
  }
48
- module.exports = ImpulseGenerator;
48
+ export default ImpulseGenerator;
package/src/melcloud.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
- const fs = require('fs');
3
- const fsPromises = fs.promises;
4
- const https = require('https');
5
- const axios = require('axios');
6
- const EventEmitter = require('events');
7
- const ImpulseGenerator = require('./impulsegenerator.js');
8
- const CONSTANTS = require('./constants.json');
2
+ import { promises } from 'fs';
3
+ const fsPromises = promises;
4
+ import { Agent } from 'https';
5
+ import { create } from 'axios';
6
+ import EventEmitter from 'events';
7
+ import ImpulseGenerator from './impulsegenerator.js';
8
+ import constants from './constants.json' assert { type: 'json' };
9
+ const { ApiUrls } = constants
9
10
 
10
11
  class MelCloud extends EventEmitter {
11
12
  constructor(user, passwd, language, accountFile, buildingsFile, devicesFile, enableDebugMode, requestConfig) {
@@ -46,19 +47,19 @@ class MelCloud extends EventEmitter {
46
47
  const debug = this.enableDebugMode ? this.emit('debug', `Connecting to MELCloud.`) : false;
47
48
 
48
49
  try {
49
- const axiosInstanceLogin = axios.create({
50
+ const axiosInstanceLogin = create({
50
51
  method: 'POST',
51
- baseURL: CONSTANTS.ApiUrls.BaseURL,
52
+ baseURL: ApiUrls.BaseURL,
52
53
  timeout: 10000,
53
54
  withCredentials: true,
54
55
  maxContentLength: 100000000,
55
56
  maxBodyLength: 1000000000,
56
- httpsAgent: new https.Agent({
57
+ httpsAgent: new Agent({
57
58
  keepAlive: false,
58
59
  rejectUnauthorized: false
59
60
  })
60
61
  });
61
- const accountData = await axiosInstanceLogin(CONSTANTS.ApiUrls.ClientLogin, this.options);
62
+ const accountData = await axiosInstanceLogin(ApiUrls.ClientLogin, this.options);
62
63
  const account = accountData.data;
63
64
  const accountInfo = account.LoginData;
64
65
  const contextKey = accountInfo.ContextKey;
@@ -83,9 +84,9 @@ class MelCloud extends EventEmitter {
83
84
  };
84
85
 
85
86
  //create axios instance post
86
- this.axiosInstancePost = axios.create({
87
+ this.axiosInstancePost = create({
87
88
  method: 'POST',
88
- baseURL: CONSTANTS.ApiUrls.BaseURL,
89
+ baseURL: ApiUrls.BaseURL,
89
90
  timeout: 10000,
90
91
  headers: {
91
92
  'X-MitsContextKey': contextKey,
@@ -94,7 +95,7 @@ class MelCloud extends EventEmitter {
94
95
  maxContentLength: 100000000,
95
96
  maxBodyLength: 1000000000,
96
97
  withCredentials: true,
97
- httpsAgent: new https.Agent({
98
+ httpsAgent: new Agent({
98
99
  keepAlive: false,
99
100
  rejectUnauthorized: false
100
101
  })
@@ -121,9 +122,9 @@ class MelCloud extends EventEmitter {
121
122
  async chackDevicesList(contextKey) {
122
123
  try {
123
124
  //create axios instance get
124
- const axiosInstanceGet = axios.create({
125
+ const axiosInstanceGet = create({
125
126
  method: 'GET',
126
- baseURL: CONSTANTS.ApiUrls.BaseURL,
127
+ baseURL: ApiUrls.BaseURL,
127
128
  timeout: 10000,
128
129
  headers: {
129
130
  'X-MitsContextKey': contextKey
@@ -131,14 +132,14 @@ class MelCloud extends EventEmitter {
131
132
  maxContentLength: 100000000,
132
133
  maxBodyLength: 1000000000,
133
134
  withCredentials: true,
134
- httpsAgent: new https.Agent({
135
+ httpsAgent: new Agent({
135
136
  keepAlive: false,
136
137
  rejectUnauthorized: false
137
138
  })
138
139
  });
139
140
 
140
141
  const debug = this.enableDebugMode ? this.emit('debug', `Scanning for devices.`) : false;
141
- const listDevicesData = await axiosInstanceGet(CONSTANTS.ApiUrls.ListDevices);
142
+ const listDevicesData = await axiosInstanceGet(ApiUrls.ListDevices);
142
143
  const buildingsList = listDevicesData.data;
143
144
  const debug1 = this.enableDebugMode ? this.emit('debug', `Buildings: ${JSON.stringify(buildingsList, null, 2)}`) : false;
144
145
 
@@ -199,7 +200,7 @@ class MelCloud extends EventEmitter {
199
200
  data: accountInfo
200
201
  };
201
202
 
202
- await this.axiosInstancePost(CONSTANTS.ApiUrls.UpdateApplicationOptions, options);
203
+ await this.axiosInstancePost(ApiUrls.UpdateApplicationOptions, options);
203
204
  await this.saveData(this.accountFile, accountInfo);
204
205
  return true;
205
206
  } catch (error) {
@@ -207,4 +208,4 @@ class MelCloud extends EventEmitter {
207
208
  };
208
209
  };
209
210
  };
210
- module.exports = MelCloud;
211
+ export default MelCloud;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
- const fs = require('fs');
3
- const fsPromises = fs.promises;
4
- const https = require('https');
5
- const axios = require('axios');
6
- const EventEmitter = require('events');
7
- const ImpulseGenerator = require('./impulsegenerator.js');
8
- const CONSTANTS = require('./constants.json');
2
+ import { promises } from 'fs';
3
+ const fsPromises = promises;
4
+ import { Agent } from 'https';
5
+ import { create } from 'axios';
6
+ import EventEmitter from 'events';
7
+ import ImpulseGenerator from './impulsegenerator.js';
8
+ import constants from './constants.json' assert { type: 'json' };
9
+ const { ApiUrls } = constants
9
10
 
10
11
  class MelCloudAta extends EventEmitter {
11
12
  constructor(config) {
@@ -17,16 +18,16 @@ class MelCloudAta extends EventEmitter {
17
18
  //set default values
18
19
  this.deviceState = {};
19
20
 
20
- this.axiosInstancePost = axios.create({
21
+ this.axiosInstancePost = create({
21
22
  method: 'POST',
22
- baseURL: CONSTANTS.ApiUrls.BaseURL,
23
+ baseURL: ApiUrls.BaseURL,
23
24
  timeout: 25000,
24
25
  headers: {
25
26
  'X-MitsContextKey': config.contextKey,
26
27
  'content-type': 'application/json'
27
28
  },
28
29
  withCredentials: true,
29
- httpsAgent: new https.Agent({
30
+ httpsAgent: new Agent({
30
31
  keepAlive: false,
31
32
  rejectUnauthorized: false
32
33
  })
@@ -424,7 +425,7 @@ class MelCloudAta extends EventEmitter {
424
425
  }
425
426
  }
426
427
 
427
- await this.axiosInstancePost(CONSTANTS.ApiUrls.SetAta, payload);
428
+ await this.axiosInstancePost(ApiUrls.SetAta, payload);
428
429
  this.updateData(deviceData);
429
430
  return true;
430
431
  } catch (error) {
@@ -439,4 +440,4 @@ class MelCloudAta extends EventEmitter {
439
440
  }, 500);
440
441
  }
441
442
  };
442
- module.exports = MelCloudAta;
443
+ export default MelCloudAta;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
- const fs = require('fs');
3
- const fsPromises = fs.promises;
4
- const https = require('https');
5
- const axios = require('axios');
6
- const EventEmitter = require('events');
7
- const ImpulseGenerator = require('./impulsegenerator.js');
8
- const CONSTANTS = require('./constants.json');
2
+ import { promises } from 'fs';
3
+ const fsPromises = promises;
4
+ import { Agent } from 'https';
5
+ import { create } from 'axios';
6
+ import EventEmitter from 'events';
7
+ import ImpulseGenerator from './impulsegenerator.js';
8
+ import constants from './constants.json' assert { type: 'json' };
9
+ const { ApiUrls } = constants
9
10
 
10
11
  class MelCloudAtw extends EventEmitter {
11
12
  constructor(config) {
@@ -17,16 +18,16 @@ class MelCloudAtw extends EventEmitter {
17
18
  //set default values
18
19
  this.deviceState = {};
19
20
 
20
- this.axiosInstancePost = axios.create({
21
+ this.axiosInstancePost = create({
21
22
  method: 'POST',
22
- baseURL: CONSTANTS.ApiUrls.BaseURL,
23
+ baseURL: ApiUrls.BaseURL,
23
24
  timeout: 25000,
24
25
  headers: {
25
26
  'X-MitsContextKey': config.contextKey,
26
27
  'content-type': 'application/json'
27
28
  },
28
29
  withCredentials: true,
29
- httpsAgent: new https.Agent({
30
+ httpsAgent: new Agent({
30
31
  keepAlive: false,
31
32
  rejectUnauthorized: false
32
33
  })
@@ -469,7 +470,7 @@ class MelCloudAtw extends EventEmitter {
469
470
  }
470
471
  }
471
472
 
472
- await this.axiosInstancePost(CONSTANTS.ApiUrls.SetAtw, payload);
473
+ await this.axiosInstancePost(ApiUrls.SetAtw, payload);
473
474
  this.updateData(deviceData);
474
475
  return true;
475
476
  } catch (error) {
@@ -484,4 +485,4 @@ class MelCloudAtw extends EventEmitter {
484
485
  }, 500);
485
486
  }
486
487
  };
487
- module.exports = MelCloudAtw;
488
+ export default MelCloudAtw;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
- const fs = require('fs');
3
- const fsPromises = fs.promises;
4
- const axios = require('axios');
5
- const https = require('https');
6
- const EventEmitter = require('events');
7
- const ImpulseGenerator = require('./impulsegenerator.js');
8
- const CONSTANTS = require('./constants.json');
2
+ import { promises } from 'fs';
3
+ const fsPromises = promises;
4
+ import { create } from 'axios';
5
+ import { Agent } from 'https';
6
+ import EventEmitter from 'events';
7
+ import ImpulseGenerator from './impulsegenerator.js';
8
+ import constants from './constants.json' assert { type: 'json' };
9
+ const { ApiUrls } = constants
9
10
 
10
11
  class MelCloudErv extends EventEmitter {
11
12
  constructor(config) {
@@ -17,16 +18,16 @@ class MelCloudErv extends EventEmitter {
17
18
  //set default values
18
19
  this.deviceState = {};
19
20
 
20
- this.axiosInstancePost = axios.create({
21
+ this.axiosInstancePost = create({
21
22
  method: 'POST',
22
- baseURL: CONSTANTS.ApiUrls.BaseURL,
23
+ baseURL: ApiUrls.BaseURL,
23
24
  timeout: 25000,
24
25
  headers: {
25
26
  'X-MitsContextKey': config.contextKey,
26
27
  'content-type': 'application/json'
27
28
  },
28
29
  withCredentials: true,
29
- httpsAgent: new https.Agent({
30
+ httpsAgent: new Agent({
30
31
  keepAlive: false,
31
32
  rejectUnauthorized: false
32
33
  })
@@ -395,7 +396,7 @@ class MelCloudErv extends EventEmitter {
395
396
  }
396
397
  }
397
398
 
398
- await this.axiosInstancePost(CONSTANTS.ApiUrls.SetErv, payload);
399
+ await this.axiosInstancePost(ApiUrls.SetErv, payload);
399
400
  this.updateData(deviceData);
400
401
  return true;
401
402
  } catch (error) {
@@ -410,4 +411,4 @@ class MelCloudErv extends EventEmitter {
410
411
  }, 500);
411
412
  }
412
413
  };
413
- module.exports = MelCloudErv;
414
+ export default MelCloudErv;