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