homebridge-melcloud-control 4.2.5 → 4.2.6-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.2.5",
4
+ "version": "4.2.6-beta.1",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
package/src/deviceata.js CHANGED
@@ -104,10 +104,11 @@ class DeviceAta extends EventEmitter {
104
104
  };
105
105
 
106
106
  async externalIntegrations() {
107
- try {
108
- //RESTFul server
109
- const restFulEnabled = this.restFul.enable || false;
110
- if (restFulEnabled) {
107
+ //RESTFul server
108
+ const restFulEnabled = this.restFul.enable || false;
109
+ if (restFulEnabled) {
110
+ try {
111
+
111
112
  if (!this.restFulConnected) {
112
113
  this.restFul1 = new RestFul({
113
114
  port: this.restFul.port,
@@ -135,11 +136,15 @@ class DeviceAta extends EventEmitter {
135
136
  this.emit('error', error);
136
137
  });
137
138
  }
138
- }
139
+ } catch (error) {
140
+ this.emit('warn', `RESTFul integration start error: ${error}`);
141
+ };
142
+ }
139
143
 
140
- //MQTT client
141
- const mqttEnabled = this.mqtt.enable || false;
142
- if (mqttEnabled) {
144
+ //MQTT client
145
+ const mqttEnabled = this.mqtt.enable || false;
146
+ if (mqttEnabled) {
147
+ try {
143
148
  if (!this.mqttConnected) {
144
149
  this.mqtt1 = new Mqtt({
145
150
  host: this.mqtt.host,
@@ -175,10 +180,10 @@ class DeviceAta extends EventEmitter {
175
180
  this.emit('error', error);
176
181
  });
177
182
  }
178
- }
179
- } catch (error) {
180
- this.emit('warn', `External integration start error: ${error}`);
181
- };
183
+ } catch (error) {
184
+ this.emit('warn', `MQTT integration start error: ${error}`);
185
+ };
186
+ }
182
187
  }
183
188
 
184
189
  async setOverExternalIntegration(integration, deviceData, key, value) {
@@ -635,15 +640,10 @@ class DeviceAta extends EventEmitter {
635
640
  //temperature sensor services
636
641
  if (this.temperatureSensor && this.accessory.roomTemperature !== null) {
637
642
  if (this.logDebug) this.emit('debug', `Prepare room temperature sensor service`);
638
- this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `Room Temperature Sensor ${deviceId}`);
643
+ this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `roomTemperatureSensorService${deviceId}`);
639
644
  this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
640
645
  this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Room`);
641
646
  this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
642
- .setProps({
643
- minValue: -35,
644
- maxValue: 150,
645
- minStep: 0.5
646
- })
647
647
  .onGet(async () => {
648
648
  const state = this.accessory.roomTemperature;
649
649
  return state;
@@ -653,15 +653,10 @@ class DeviceAta extends EventEmitter {
653
653
 
654
654
  if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
655
655
  if (this.logDebug) this.emit('debug', `Prepare outdoor temperature sensor service`);
656
- this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `Outdoor Temperature Sensor ${deviceId}`);
656
+ this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `outdoorTemperatureSensorService${deviceId}`);
657
657
  this.outdoorTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
658
658
  this.outdoorTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Outdoor`);
659
659
  this.outdoorTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
660
- .setProps({
661
- minValue: -35,
662
- maxValue: 150,
663
- minStep: 0.5
664
- })
665
660
  .onGet(async () => {
666
661
  const state = this.accessory.outdoorTemperature;
667
662
  return state;
@@ -669,7 +664,7 @@ class DeviceAta extends EventEmitter {
669
664
  accessory.addService(this.outdoorTemperatureSensorService);
670
665
  };
671
666
 
672
- //connect sensor
667
+ //in standby sensor
673
668
  if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
674
669
  if (this.logDebug) this.emit('debug', `Prepare in standby mode service`);
675
670
  this.inStandbyService = new Service.ContactSensor(`${serviceName} In Standby`, `inStandbyService${deviceId}`);
package/src/deviceatw.js CHANGED
@@ -26,6 +26,9 @@ class DeviceAtw extends EventEmitter {
26
26
 
27
27
  //device config
28
28
  this.device = device;
29
+ this.deviceId = device.id;
30
+ this.deviceName = device.name;
31
+ this.deviceTypeText = device.typeString;
29
32
  this.displayType = device.displayType;
30
33
  this.hideZone = device.hideZone;
31
34
  this.temperatureSensor = device.temperatureSensor || false;
@@ -45,9 +48,6 @@ class DeviceAtw extends EventEmitter {
45
48
  this.schedules = this.accountType === 'melcloudhome' ? (device.schedules || []).filter(schedule => (schedule.displayType ?? 0) > 0 && schedule.id !== '0') : [];
46
49
  this.scenes = this.accountType === 'melcloudhome' ? (device.scenes || []).filter(scene => (scene.displayType ?? 0) > 0 && scene.id !== '0') : [];
47
50
  this.buttons = (device.buttonsSensors || []).filter(button => (button.displayType ?? 0) > 0);
48
- this.deviceId = device.id;
49
- this.deviceName = device.name;
50
- this.deviceTypeText = device.typeString;
51
51
  this.devicesFile = devicesFile;
52
52
  this.defaultTempsFile = defaultTempsFile;
53
53
  this.accountInfo = accountInfo;
@@ -105,10 +105,11 @@ class DeviceAtw extends EventEmitter {
105
105
  };
106
106
 
107
107
  async externalIntegrations() {
108
- try {
109
- //RESTFul server
110
- const restFulEnabled = this.restFul.enable || false;
111
- if (restFulEnabled) {
108
+ //RESTFul server
109
+ const restFulEnabled = this.restFul.enable || false;
110
+ if (restFulEnabled) {
111
+ try {
112
+
112
113
  if (!this.restFulConnected) {
113
114
  this.restFul1 = new RestFul({
114
115
  port: this.restFul.port,
@@ -136,11 +137,15 @@ class DeviceAtw extends EventEmitter {
136
137
  this.emit('error', error);
137
138
  });
138
139
  }
139
- }
140
+ } catch (error) {
141
+ this.emit('warn', `RESTFul integration start error: ${error}`);
142
+ };
143
+ }
140
144
 
141
- //MQTT client
142
- const mqttEnabled = this.mqtt.enable || false;
143
- if (mqttEnabled) {
145
+ //MQTT client
146
+ const mqttEnabled = this.mqtt.enable || false;
147
+ if (mqttEnabled) {
148
+ try {
144
149
  if (!this.mqttConnected) {
145
150
  this.mqtt1 = new Mqtt({
146
151
  host: this.mqtt.host,
@@ -176,10 +181,10 @@ class DeviceAtw extends EventEmitter {
176
181
  this.emit('error', error);
177
182
  });
178
183
  }
179
- }
180
- } catch (error) {
181
- this.emit('warn', `External integration start error: ${error}`);
182
- };
184
+ } catch (error) {
185
+ this.emit('warn', `MQTT integration start error: ${error}`);
186
+ };
187
+ }
183
188
  }
184
189
 
185
190
  async setOverExternalIntegration(integration, deviceData, key, value) {
@@ -860,15 +865,10 @@ class DeviceAtw extends EventEmitter {
860
865
  case caseHeatPumpSensor: //Heat Pump
861
866
  if (zone.roomTemperature !== null) {
862
867
  if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
863
- this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName}`, `${zoneName} Temperature Sensor ${deviceId} ${i}`);
868
+ this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureSensorService${deviceId}`);
864
869
  this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
865
870
  this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
866
871
  this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
867
- .setProps({
868
- minValue: -35,
869
- maxValue: 150,
870
- minStep: 0.5
871
- })
872
872
  .onGet(async () => {
873
873
  const state = zone.roomTemperature;
874
874
  return state;
@@ -878,15 +878,10 @@ class DeviceAtw extends EventEmitter {
878
878
 
879
879
  if (zone.flowTemperature !== null) {
880
880
  if (this.logDebug) this.emit('debug', `Prepare flow temperature sensor service`);
881
- this.flowTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `${zoneName} Temperature Sensor Flow ${deviceId} ${i}`);
881
+ this.flowTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureSensorService${deviceId}`);
882
882
  this.flowTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
883
883
  this.flowTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
884
884
  this.flowTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
885
- .setProps({
886
- minValue: -35,
887
- maxValue: 150,
888
- minStep: 0.5
889
- })
890
885
  .onGet(async () => {
891
886
  const state = zone.flowTemperature;
892
887
  return state;
@@ -897,15 +892,10 @@ class DeviceAtw extends EventEmitter {
897
892
 
898
893
  if (zone.returnTemperature !== null) {
899
894
  if (this.logDebug) this.emit('debug', `Prepare return temperature sensor service`);
900
- this.returnTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `${zoneName} Temperature Sensor Return ${deviceId} ${i}`);
895
+ this.returnTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureSensorService${deviceId}`);
901
896
  this.returnTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
902
897
  this.returnTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
903
898
  this.returnTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
904
- .setProps({
905
- minValue: -35,
906
- maxValue: 150,
907
- minStep: 0.5
908
- })
909
899
  .onGet(async () => {
910
900
  const state = zone.returnTemperature;
911
901
  return state;
@@ -916,15 +906,10 @@ class DeviceAtw extends EventEmitter {
916
906
  case caseZone1Sensor: //Zone 1
917
907
  if (zone.roomTemperature !== null) {
918
908
  if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
919
- this.roomTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName}`, `${zoneName} Temperature Sensor ${deviceId} ${i}`);
909
+ this.roomTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureZone1SensorService${deviceId}`);
920
910
  this.roomTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
921
911
  this.roomTemperatureZone1SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
922
912
  this.roomTemperatureZone1SensorService.getCharacteristic(Characteristic.CurrentTemperature)
923
- .setProps({
924
- minValue: -35,
925
- maxValue: 150,
926
- minStep: 0.5
927
- })
928
913
  .onGet(async () => {
929
914
  const state = zone.roomTemperature;
930
915
  return state;
@@ -934,15 +919,10 @@ class DeviceAtw extends EventEmitter {
934
919
 
935
920
  if (zone.flowTemperature !== null) {
936
921
  if (this.logDebug) this.emit('debug', `Prepare flow temperature zone 1 sensor service`);
937
- this.flowTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `${zoneName} Temperature Sensor Flow ${deviceId} ${i}`);
922
+ this.flowTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureZone1SensorService${deviceId}`);
938
923
  this.flowTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
939
924
  this.flowTemperatureZone1SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
940
925
  this.flowTemperatureZone1SensorService.getCharacteristic(Characteristic.CurrentTemperature)
941
- .setProps({
942
- minValue: -35,
943
- maxValue: 150,
944
- minStep: 0.5
945
- })
946
926
  .onGet(async () => {
947
927
  const state = zone.flowTemperature;
948
928
  return state;
@@ -952,15 +932,10 @@ class DeviceAtw extends EventEmitter {
952
932
 
953
933
  if (zone.returnTemperature !== null) {
954
934
  if (this.logDebug) this.emit('debug', `Prepare return temperature zone 1 sensor service`);
955
- this.returnTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `${zoneName} Temperature Sensor Return ${deviceId} ${i}`);
935
+ this.returnTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureZone1SensorService${deviceId}`);
956
936
  this.returnTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
957
937
  this.returnTemperatureZone1SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
958
938
  this.returnTemperatureZone1SensorService.getCharacteristic(Characteristic.CurrentTemperature)
959
- .setProps({
960
- minValue: -35,
961
- maxValue: 150,
962
- minStep: 0.5
963
- })
964
939
  .onGet(async () => {
965
940
  const state = zone.returnTemperature;
966
941
  return state;
@@ -971,15 +946,10 @@ class DeviceAtw extends EventEmitter {
971
946
  case caseHotWaterSensor: //Hot Water
972
947
  if (zone.roomTemperature !== null) {
973
948
  if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
974
- this.roomTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName}`, `${zoneName} Temperature Sensor ${deviceId} ${i}`);
949
+ this.roomTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureWaterTankSensorService${deviceId}`);
975
950
  this.roomTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
976
951
  this.roomTemperatureWaterTankSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
977
952
  this.roomTemperatureWaterTankSensorService.getCharacteristic(Characteristic.CurrentTemperature)
978
- .setProps({
979
- minValue: -35,
980
- maxValue: 150,
981
- minStep: 0.5
982
- })
983
953
  .onGet(async () => {
984
954
  const state = zone.roomTemperature;
985
955
  return state;
@@ -989,15 +959,10 @@ class DeviceAtw extends EventEmitter {
989
959
 
990
960
  if (zone.flowTemperature !== null) {
991
961
  if (this.logDebug) this.emit('debug', `Prepare flow temperature water tank sensor service`);
992
- this.flowTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `${zoneName} Temperature Sensor Flow ${deviceId} ${i}`);
962
+ this.flowTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureWaterTankSensorService${deviceId}`);
993
963
  this.flowTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
994
964
  this.flowTemperatureWaterTankSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
995
965
  this.flowTemperatureWaterTankSensorService.getCharacteristic(Characteristic.CurrentTemperature)
996
- .setProps({
997
- minValue: -35,
998
- maxValue: 150,
999
- minStep: 0.5
1000
- })
1001
966
  .onGet(async () => {
1002
967
  const state = zone.flowTemperature;
1003
968
  return state;
@@ -1007,15 +972,10 @@ class DeviceAtw extends EventEmitter {
1007
972
 
1008
973
  if (zone.returnTemperature !== null) {
1009
974
  if (this.logDebug) this.emit('debug', `Prepare return temperature water tank sensor service`);
1010
- this.returnTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `${zoneName} Temperature Sensor Return ${deviceId} ${i}`);
975
+ this.returnTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureWaterTankSensorService${deviceId}`);
1011
976
  this.returnTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1012
977
  this.returnTemperatureWaterTankSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
1013
978
  this.returnTemperatureWaterTankSensorService.getCharacteristic(Characteristic.CurrentTemperature)
1014
- .setProps({
1015
- minValue: -35,
1016
- maxValue: 150,
1017
- minStep: 0.5
1018
- })
1019
979
  .onGet(async () => {
1020
980
  const state = zone.returnTemperature;
1021
981
  return state;
@@ -1026,15 +986,10 @@ class DeviceAtw extends EventEmitter {
1026
986
  case caseZone2Sensor: //Zone 2
1027
987
  if (zone.roomTemperature !== null) {
1028
988
  if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
1029
- this.roomTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName}`, `${zoneName} Temperature Sensor ${deviceId} ${i}`);
989
+ this.roomTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureZone2SensorService${deviceId}`);
1030
990
  this.roomTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1031
991
  this.roomTemperatureZone2SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
1032
992
  this.roomTemperatureZone2SensorService.getCharacteristic(Characteristic.CurrentTemperature)
1033
- .setProps({
1034
- minValue: -35,
1035
- maxValue: 150,
1036
- minStep: 0.5
1037
- })
1038
993
  .onGet(async () => {
1039
994
  const state = zone.roomTemperature;
1040
995
  return state;
@@ -1044,15 +999,10 @@ class DeviceAtw extends EventEmitter {
1044
999
 
1045
1000
  if (zone.flowTemperature !== null) {
1046
1001
  if (this.logDebug) this.emit('debug', `Prepare flow temperature zone 2 sensor service`);
1047
- this.flowTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `${zoneName} Temperature Sensor Flow${deviceId} ${i}`);
1002
+ this.flowTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureZone2SensorService${deviceId}`);
1048
1003
  this.flowTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1049
1004
  this.flowTemperatureZone2SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
1050
1005
  this.flowTemperatureZone2SensorService.getCharacteristic(Characteristic.CurrentTemperature)
1051
- .setProps({
1052
- minValue: -35,
1053
- maxValue: 150,
1054
- minStep: 0.5
1055
- })
1056
1006
  .onGet(async () => {
1057
1007
  const state = zone.flowTemperature;
1058
1008
  return state;
@@ -1062,15 +1012,10 @@ class DeviceAtw extends EventEmitter {
1062
1012
 
1063
1013
  if (zone.returnTemperature !== null) {
1064
1014
  if (this.logDebug) this.emit('debug', `Prepare return temperature zone 2 sensor service`);
1065
- this.returnTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `${zoneName} Temperature Sensor Return${deviceId} ${i}`);
1015
+ this.returnTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureZone2SensorService${deviceId}`);
1066
1016
  this.returnTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1067
1017
  this.returnTemperatureZone2SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
1068
1018
  this.returnTemperatureZone2SensorService.getCharacteristic(Characteristic.CurrentTemperature)
1069
- .setProps({
1070
- minValue: -35,
1071
- maxValue: 150,
1072
- minStep: 0.5
1073
- })
1074
1019
  .onGet(async () => {
1075
1020
  const state = zone.returnTemperature;
1076
1021
  return state;
@@ -1082,6 +1027,7 @@ class DeviceAtw extends EventEmitter {
1082
1027
  });
1083
1028
  };
1084
1029
 
1030
+ //in standby sensor
1085
1031
  if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
1086
1032
  if (this.logDebug) this.emit('debug', `Prepare in standby mode service`);
1087
1033
  this.inStandbyService = new Service.ContactSensor(`${serviceName} In Standby`, `inStandbyService${deviceId}`);
@@ -1188,7 +1134,7 @@ class DeviceAtw extends EventEmitter {
1188
1134
  const serviceType = preset.serviceType;
1189
1135
  const characteristicType = preset.characteristicType;
1190
1136
 
1191
- //control
1137
+ //control
1192
1138
  if (preset.displayType > 3) {
1193
1139
  if (this.logDebug) this.emit('debug', `Prepare preset control ${name} service`);
1194
1140
  const presetControlService = new Service.Switch(serviceName1, `presetControlService${deviceId} ${i}`);
package/src/deviceerv.js CHANGED
@@ -26,6 +26,9 @@ class DeviceErv extends EventEmitter {
26
26
 
27
27
  //device config
28
28
  this.device = device;
29
+ this.deviceId = device.id;
30
+ this.deviceName = device.name;
31
+ this.deviceTypeText = device.typeString;
29
32
  this.displayType = device.displayType;
30
33
  this.temperatureSensor = device.temperatureSensor || false;
31
34
  this.temperatureOutdoorSensor = device.temperatureOutdoorSensor || false;
@@ -38,9 +41,6 @@ class DeviceErv extends EventEmitter {
38
41
  this.schedules = this.accountType === 'melcloudhome' ? (device.schedules || []).filter(schedule => (schedule.displayType ?? 0) > 0 && schedule.id !== '0') : [];
39
42
  this.scenes = this.accountType === 'melcloudhome' ? (device.scenes || []).filter(scene => (scene.displayType ?? 0) > 0 && scene.id !== '0') : [];
40
43
  this.buttons = (device.buttonsSensors || []).filter(button => (button.displayType ?? 0) > 0);
41
- this.deviceId = device.id;
42
- this.deviceName = device.name;
43
- this.deviceTypeText = device.typeString;
44
44
  this.devicesFile = devicesFile;
45
45
  this.defaultTempsFile = defaultTempsFile;
46
46
  this.accountInfo = accountInfo;
@@ -98,10 +98,11 @@ class DeviceErv extends EventEmitter {
98
98
  };
99
99
 
100
100
  async externalIntegrations() {
101
- try {
102
- //RESTFul server
103
- const restFulEnabled = this.restFul.enable || false;
104
- if (restFulEnabled) {
101
+ //RESTFul server
102
+ const restFulEnabled = this.restFul.enable || false;
103
+ if (restFulEnabled) {
104
+ try {
105
+
105
106
  if (!this.restFulConnected) {
106
107
  this.restFul1 = new RestFul({
107
108
  port: this.restFul.port,
@@ -129,11 +130,15 @@ class DeviceErv extends EventEmitter {
129
130
  this.emit('error', error);
130
131
  });
131
132
  }
132
- }
133
+ } catch (error) {
134
+ this.emit('warn', `RESTFul integration start error: ${error}`);
135
+ };
136
+ }
133
137
 
134
- //MQTT client
135
- const mqttEnabled = this.mqtt.enable || false;
136
- if (mqttEnabled) {
138
+ //MQTT client
139
+ const mqttEnabled = this.mqtt.enable || false;
140
+ if (mqttEnabled) {
141
+ try {
137
142
  if (!this.mqttConnected) {
138
143
  this.mqtt1 = new Mqtt({
139
144
  host: this.mqtt.host,
@@ -169,10 +174,10 @@ class DeviceErv extends EventEmitter {
169
174
  this.emit('error', error);
170
175
  });
171
176
  }
172
- }
173
- } catch (error) {
174
- this.emit('warn', `External integration start error: ${error}`);
175
- };
177
+ } catch (error) {
178
+ this.emit('warn', `MQTT integration start error: ${error}`);
179
+ };
180
+ }
176
181
  }
177
182
 
178
183
  async setOverExternalIntegration(integration, deviceData, key, value) {
@@ -564,15 +569,10 @@ class DeviceErv extends EventEmitter {
564
569
  //temperature sensor service room
565
570
  if (this.temperatureSensor && supportsRoomTemperature && this.accessory.roomTemperature !== null) {
566
571
  if (this.logDebug) this.emit('debug', `Prepare room temperature sensor service`);
567
- this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `Room Temperature Sensor ${deviceId}`);
572
+ this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `roomTemperatureSensorService${deviceId}`);
568
573
  this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
569
574
  this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Room`);
570
575
  this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
571
- .setProps({
572
- minValue: -35,
573
- maxValue: 150,
574
- minStep: 0.5
575
- })
576
576
  .onGet(async () => {
577
577
  const state = this.accessory.roomTemperature;
578
578
  return state;
@@ -583,15 +583,10 @@ class DeviceErv extends EventEmitter {
583
583
  //temperature sensor service supply
584
584
  if (this.temperatureSupplySensor && supportsSupplyTemperature && this.accessory.supplyTemperature !== null) {
585
585
  if (this.logDebug) this.emit('debug', `Prepare supply temperature sensor service`);
586
- this.supplyTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Supply`, `Supply Temperature Sensor ${deviceId}`);
586
+ this.supplyTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Supply`, `supplyTemperatureSensorService${deviceId}`);
587
587
  this.supplyTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
588
588
  this.supplyTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Supply`);
589
589
  this.supplyTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
590
- .setProps({
591
- minValue: -35,
592
- maxValue: 150,
593
- minStep: 0.5
594
- })
595
590
  .onGet(async () => {
596
591
  const state = this.accessory.supplyTemperature;
597
592
  return state;
@@ -602,15 +597,10 @@ class DeviceErv extends EventEmitter {
602
597
  //temperature sensor service outdoor
603
598
  if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
604
599
  if (this.logDebug) this.emit('debug', `Prepare outdoor temperature sensor service`);
605
- this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `Outdoor Temperature Sensor ${deviceId}`);
600
+ this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `outdoorTemperatureSensorService${deviceId}`);
606
601
  this.outdoorTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
607
602
  this.outdoorTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Outdoor`);
608
603
  this.outdoorTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
609
- .setProps({
610
- minValue: -35,
611
- maxValue: 150,
612
- minStep: 0.5
613
- })
614
604
  .onGet(async () => {
615
605
  const state = this.accessory.outdoorTemperature;
616
606
  return state;
@@ -620,7 +610,7 @@ class DeviceErv extends EventEmitter {
620
610
 
621
611
  //core maintenance
622
612
  if (this.accessory.coreMaintenanceRequired !== null) {
623
- this.coreMaintenanceService = new Service.FilterMaintenance(`${serviceName} Core Maintenance`, `CoreMaintenance ${deviceId}`);
613
+ this.coreMaintenanceService = new Service.FilterMaintenance(`${serviceName} Core Maintenance`, `coreMaintenanceService${deviceId}`);
624
614
  this.coreMaintenanceService.addOptionalCharacteristic(Characteristic.ConfiguredName);
625
615
  this.coreMaintenanceService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Core Maintenance`);
626
616
  this.coreMaintenanceService.getCharacteristic(Characteristic.FilterChangeIndication)
@@ -636,7 +626,7 @@ class DeviceErv extends EventEmitter {
636
626
 
637
627
  //filter maintenance
638
628
  if (this.accessory.filterMaintenanceRequired !== null) {
639
- this.filterMaintenanceService = new Service.FilterMaintenance(`${serviceName} Filter Maintenance`, `FilterMaintenance ${deviceId}`);
629
+ this.filterMaintenanceService = new Service.FilterMaintenance(`${serviceName} Filter Maintenance`, `filterMaintenanceService${deviceId}`);
640
630
  this.filterMaintenanceService.addOptionalCharacteristic(Characteristic.ConfiguredName);
641
631
  this.filterMaintenanceService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Filter Maintenance`);
642
632
  this.filterMaintenanceService.getCharacteristic(Characteristic.FilterChangeIndication)
@@ -652,7 +642,7 @@ class DeviceErv extends EventEmitter {
652
642
 
653
643
  //room CO2 sensor
654
644
  if (supportsCO2Sensor) {
655
- this.carbonDioxideSensorService = new Service.CarbonDioxideSensor(`${serviceName} CO2 Sensor`, `CO2Sensor ${deviceId}`);
645
+ this.carbonDioxideSensorService = new Service.CarbonDioxideSensor(`${serviceName} CO2 Sensor`, `carbonDioxideSensorService${deviceId}`);
656
646
  this.carbonDioxideSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
657
647
  this.carbonDioxideSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} CO2 Sensor`);
658
648
  this.carbonDioxideSensorService.getCharacteristic(Characteristic.CarbonDioxideDetected)
@@ -670,7 +660,7 @@ class DeviceErv extends EventEmitter {
670
660
 
671
661
  //room PM2.5 sensor
672
662
  if (supportsPM25Sensor) {
673
- this.airQualitySensorService = new Service.AirQualitySensor(`${serviceName} PM2.5 Sensor`, `PM25Sensor ${deviceId}`);
663
+ this.airQualitySensorService = new Service.AirQualitySensor(`${serviceName} PM2.5 Sensor`, `airQualitySensorService${deviceId}`);
674
664
  this.airQualitySensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
675
665
  this.airQualitySensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} PM2.5 Sensor`);
676
666
  this.airQualitySensorService.getCharacteristic(Characteristic.AirQuality)
@@ -686,6 +676,7 @@ class DeviceErv extends EventEmitter {
686
676
  accessory.addService(this.airQualitySensorService);
687
677
  }
688
678
 
679
+ //in standby sensor
689
680
  if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
690
681
  if (this.logDebug) this.emit('debug', `Prepare in standby mode service`);
691
682
  this.inStandbyService = new Service.ContactSensor(`${serviceName} In Standby`, `inStandbyService${deviceId}`);