homebridge-melcloud-control 3.3.12 → 3.3.13-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": "3.3.12",
4
+ "version": "3.3.13-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
@@ -230,6 +230,12 @@ class DeviceAta extends EventEmitter {
230
230
  const modelSupportsHeat = this.heatDryFanMode >= 1 && modelSupportsHeat1;
231
231
  const modelSupportsDry = deviceData.Device.ModelSupportsDry ?? false;
232
232
  const modelSupportsCool = this.coolDryFanMode >= 1;
233
+ const minTempHeat = deviceData.Device.MinTempHeat ?? 10;
234
+ const maxTempHeat = deviceData.Device.MaxTempHeat ?? 31;
235
+ const minTempCoolDry = deviceData.Device.MinTempCoolDry ?? 16;
236
+ const maxTempCoolDry = deviceData.Device.MaxTempCoolDry ?? 31;
237
+ const minTempAutomatic = deviceData.Device.MinTempAutomatic ?? 16;
238
+ const maxTempAutomatic = deviceData.Device.MaxTempAutomatic ?? 31;
233
239
 
234
240
  //device state
235
241
  const power = deviceData.Device.Power ?? false;
@@ -264,6 +270,11 @@ class DeviceAta extends EventEmitter {
264
270
  this.accessory.modelSupportsHeat = modelSupportsHeat;
265
271
  this.accessory.modelSupportsDry = modelSupportsDry;
266
272
  this.accessory.modelSupportsCool = modelSupportsCool;
273
+ this.accessory.minTempHeat = minTempHeat;
274
+ this.accessory.maxTempHeat = maxTempHeat;
275
+ this.accessory.minTempCoolDry = minTempCoolDry;
276
+ this.accessory.maxTempCoolDry = maxTempCoolDry;
277
+
267
278
  this.accessory.power = power ? 1 : 0;
268
279
  this.accessory.inStandbyMode = inStandbyMode;
269
280
  this.accessory.operationMode = operationMode;
@@ -375,8 +386,8 @@ class DeviceAta extends EventEmitter {
375
386
  .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
376
387
  .updateCharacteristic(Characteristic.LockPhysicalControls, this.accessory.lockPhysicalControl)
377
388
  .updateCharacteristic(Characteristic.TemperatureDisplayUnits, this.accessory.useFahrenheit)
378
- .updateCharacteristic(Characteristic.CoolingThresholdTemperature, setTemperature);
379
- const updateDefHeat = modelSupportsHeat ? this.melCloudService.updateCharacteristic(Characteristic.HeatingThresholdTemperature, this.accessory.targetOperationMode !== 1 ? 10 : setTemperature) : false;
389
+ .updateCharacteristic(Characteristic.CoolingThresholdTemperature, defaultCoolingSetTemperature);
390
+ const updateDefHeat = modelSupportsHeat ? this.melCloudService.updateCharacteristic(Characteristic.HeatingThresholdTemperature, defaultHeatingSetTemperature) : false;
380
391
  const updateRS = modelSupportsFanSpeed ? this.melCloudService.updateCharacteristic(Characteristic.RotationSpeed, this.accessory.fanSpeed) : false;
381
392
  const updateSM = swingFunction ? this.melCloudService.updateCharacteristic(Characteristic.SwingMode, this.accessory.swingMode) : false;
382
393
  };
@@ -899,20 +910,20 @@ class DeviceAta extends EventEmitter {
899
910
  };
900
911
  this.melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
901
912
  .setProps({
902
- minValue: 16,
903
- maxValue: 31,
913
+ minValue: this.accessory.minTempCoolDry,
914
+ maxValue: this.accessory.maxTempCoolDry,
904
915
  minStep: this.accessory.temperatureIncrement
905
916
  })
906
917
  .onGet(async () => {
907
- const value = this.accessory.setTemperature;
918
+ const value = this.accessory.defaultCoolingSetTemperature;
908
919
  return value;
909
920
  })
910
921
  .onSet(async (value) => {
911
922
  try {
912
- deviceData.Device.SetTemperature = value;
923
+ deviceData.Device.DefaultCoolingSetTemperature = value;
913
924
  deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
914
925
  await this.melCloudAta.send(deviceData);
915
- const info = this.disableLogInfo ? false : this.emit('message', `Set temperature: ${value}${this.accessory.temperatureUnit}`);
926
+ const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
916
927
  } catch (error) {
917
928
  this.emit('warn', `Set cooling threshold temperature error: ${error}`);
918
929
  };
@@ -920,24 +931,20 @@ class DeviceAta extends EventEmitter {
920
931
  if (modelSupportsHeat) {
921
932
  this.melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
922
933
  .setProps({
923
- minValue: 10,
924
- maxValue: 31,
934
+ minValue: this.accessory.minTempHeat,
935
+ maxValue: this.accessory.maxTempHeat,
925
936
  minStep: this.accessory.temperatureIncrement
926
937
  })
927
938
  .onGet(async () => {
928
- const value = this.accessory.targetOperationMode !== 1 ? 10 : this.accessory.setTemperature;
939
+ const value = this.accessory.defaultHeatingSetTemperature;
929
940
  return value;
930
941
  })
931
942
  .onSet(async (value) => {
932
943
  try {
933
- if (this.accessory.targetOperationMode !== 1) {
934
- this.melCloudService.updateCharacteristic(Characteristic.HeatingThresholdTemperature, 10)
935
- return;
936
- };
937
-
944
+ deviceData.Device.DefaultHeatingSetTemperature = value;
938
945
  deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.SetTemperature;
939
946
  await this.melCloudAta.send(deviceData);
940
- const info = this.disableLogInfo ? false : this.emit('message', `Set temperature: ${value}${this.accessory.temperatureUnit}`);
947
+ const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
941
948
  } catch (error) {
942
949
  this.emit('warn', `Set heating threshold temperature error: ${error}`);
943
950
  };
@@ -370,34 +370,31 @@ class MelCloudAta extends EventEmitter {
370
370
  async send(deviceData) {
371
371
  try {
372
372
  //prevent to set out of range temp
373
- const minTempHeat = deviceData.Device.MinTempHeat ?? 10;
374
- const maxTempHeat = deviceData.Device.MaxTempHeat ?? 31;
375
- const minTempCoolDry = deviceData.Device.MinTempCoolDry ?? 16;
376
- const maxTempCoolDry = deviceData.Device.MaxTempCoolDry ?? 31;
377
- const minTempAutomatic = deviceData.Device.MinTempAutomatic ?? 16;
378
- const maxTempAutomatic = deviceData.Device.MaxTempAutomatic ?? 31;
379
-
380
-
381
373
  switch (deviceData.Device.OperationMode) {//operating mode 0, HEAT, DRY, COOL, 4, 5, 6, FAN, AUTO, ISEE HEAT, ISEE DRY, ISEE COOL
382
374
  case 1:
383
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature < minTempHeat ? minTempHeat : deviceData.Device.SetTemperature;
384
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature > maxTempHeat ? maxTempHeat : deviceData.Device.SetTemperature;
375
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultHeatingSetTemperature;
385
376
  break;
386
377
  case 2:
387
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature < minTempCoolDry ? minTempCoolDry : deviceData.Device.SetTemperature;
388
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature > maxTempCoolDry ? maxTempCoolDry : deviceData.Device.SetTemperature;
378
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
389
379
  break;
390
380
  case 3:
391
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature < minTempCoolDry ? minTempCoolDry : deviceData.Device.SetTemperature;
392
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature > maxTempCoolDry ? maxTempCoolDry : deviceData.Device.SetTemperature;
381
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
393
382
  break;
394
383
  case 7:
395
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature < 10 ? 10 : deviceData.Device.SetTemperature;
396
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature > 31 ? 31 : deviceData.Device.SetTemperature;
384
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
397
385
  break;
398
386
  case 8:
399
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature < minTempAutomatic ? minTempAutomatic : deviceData.Device.SetTemperature;
400
- deviceData.Device.SetTemperature = deviceData.Device.SetTemperature > maxTempAutomatic ? maxTempAutomatic : deviceData.Device.SetTemperature;
387
+ const setTemp = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
388
+ deviceData.Device.SetTemperature = setTemp;
389
+ break;
390
+ case 9:
391
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultHeatingSetTemperature;
392
+ break;
393
+ case 10:
394
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
395
+ break;
396
+ case 11:
397
+ deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
401
398
  break;
402
399
  default:
403
400
  this.emit('warn', `Trying to set nknown operating mode: ${deviceData.Device.OperationMode}`);