homebridge-melcloud-control 3.3.12-beta.23 → 3.3.12-beta.25

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-beta.23",
4
+ "version": "3.3.12-beta.25",
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
@@ -290,7 +290,7 @@ class DeviceAta extends EventEmitter {
290
290
  case true:
291
291
  switch (operationMode) {
292
292
  case 1: //HEAT
293
- this.accessory.currentOperationMode = roomTemperature > setTemperature + 0.5 ? 1 : 2; //INACTIVE, IDLE, HEATING, COOLING
293
+ this.accessory.currentOperationMode = roomTemperature > setTemperature ? 1 : 2; //INACTIVE, IDLE, HEATING, COOLING
294
294
  this.accessory.targetOperationMode = 1; //AUTO, HEAT, COOL
295
295
  break;
296
296
  case 2: //DRY
@@ -298,7 +298,7 @@ class DeviceAta extends EventEmitter {
298
298
  this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 0 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode;
299
299
  break;
300
300
  case 3: //COOL
301
- this.accessory.currentOperationMode = roomTemperature < setTemperature - 0.5 ? 1 : 3;
301
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 1 : 3;
302
302
  this.accessory.targetOperationMode = 2;
303
303
  break;
304
304
  case 7: //FAN
@@ -306,11 +306,11 @@ class DeviceAta extends EventEmitter {
306
306
  this.accessory.targetOperationMode = this.autoDryFanMode === 3 ? 0 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : this.accessory.targetOperationMode;
307
307
  break;
308
308
  case 8: //AUTO
309
- this.accessory.currentOperationMode = 1;
309
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 2 : roomTemperature > setTemperature ? 3 : 1;
310
310
  this.accessory.targetOperationMode = 0;
311
311
  break;
312
312
  case 9: //ISEE HEAT
313
- this.accessory.currentOperationMode = roomTemperature > setTemperature + 0.5 ? 1 : 2
313
+ this.accessory.currentOperationMode = roomTemperature > setTemperature ? 1 : 2
314
314
  this.accessory.targetOperationMode = 1;
315
315
  break;
316
316
  case 10: //ISEE DRY
@@ -318,7 +318,7 @@ class DeviceAta extends EventEmitter {
318
318
  this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 0 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode;
319
319
  break;
320
320
  case 11: //ISEE COOL;
321
- this.accessory.currentOperationMode = roomTemperature < setTemperature - 0.5 ? 1 : 3;
321
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 1 : 3;
322
322
  this.accessory.targetOperationMode = 2;
323
323
  break;
324
324
  default:
@@ -392,7 +392,7 @@ class DeviceAta extends EventEmitter {
392
392
  this.accessory.targetOperationMode = 1; //OFF, HEAT, COOL, AUTO
393
393
  break;
394
394
  case 2: //DRY
395
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
395
+ this.accessory.currentOperationMode = 0;
396
396
  this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode;
397
397
  break;
398
398
  case 3: //COOL
@@ -400,23 +400,11 @@ class DeviceAta extends EventEmitter {
400
400
  this.accessory.targetOperationMode = 2;
401
401
  break;
402
402
  case 7: //FAN
403
- this.accessory.currentOperationMode = 2;
403
+ this.accessory.currentOperationMode = 0;
404
404
  this.accessory.targetOperationMode = this.autoDryFanMode === 3 ? 3 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : this.accessory.targetOperationMode;
405
405
  break;
406
406
  case 8: //AUTO
407
- switch (this.accessory.currentOperationMode) {
408
- case 2: //HEATING
409
- const heatingToFan = roomTemperature > (defaultHeatingSetTemperature + 1);
410
- this.accessory.currentOperationMode = heatingToFan ? 0 : 1;
411
- break;
412
- case 3: //COOLING
413
- const coolingToFan = roomTemperature < (defaultCoolingSetTemperature - 1);
414
- this.accessory.currentOperationMode = coolingToFan ? 0 : 2;
415
- break;
416
- default: //FAN
417
- this.accessory.currentOperationMode = roomTemperature >= defaultHeatingSetTemperature && roomTemperature <= defaultCoolingSetTemperature ? 0 : roomTemperature < defaultHeatingSetTemperature ? 1 : roomTemperature > defaultCoolingSetTemperature ? 2 : this.accessory.currentOperationMode;
418
- break;
419
- };
407
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 1 : roomTemperature > setTemperature ? 2 : 0;
420
408
  this.accessory.targetOperationMode = 3;
421
409
  break;
422
410
  case 9: //ISEE HEAT
@@ -424,7 +412,7 @@ class DeviceAta extends EventEmitter {
424
412
  this.accessory.targetOperationMode = 1;
425
413
  break;
426
414
  case 10: //ISEE DRY
427
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
415
+ this.accessory.currentOperationMode = 0;
428
416
  this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode;
429
417
  break;
430
418
  case 11: //ISEE COOL;
package/src/deviceatw.js CHANGED
@@ -1428,118 +1428,6 @@ class DeviceAtw extends EventEmitter {
1428
1428
  this.emit('warn', `${zoneName}, Set temperature error: ${error}`);
1429
1429
  };
1430
1430
  });
1431
- //only for heat/cool, only cool and not for hot water tank
1432
- if ((heatCoolModes === 0 || heatCoolModes === 2) && i !== caseHotWater) {
1433
- melCloudServiceT.getCharacteristic(Characteristic.CoolingThresholdTemperature)
1434
- .setProps({
1435
- minValue: this.accessory.zones[i].temperaturesSetPropsMinValue,
1436
- maxValue: this.accessory.zones[i].temperaturesSetPropsMaxValue,
1437
- minStep: this.accessory.temperatureIncrement
1438
- })
1439
- .onGet(async () => {
1440
- const value = this.accessory.zones[i].setTemperature;
1441
- return value;
1442
- })
1443
- .onSet(async (value) => {
1444
- try {
1445
- switch (i) {
1446
- case 0: //Heat Pump
1447
- //deviceData.Device.SetTemperatureZone1 = value;
1448
- //deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
1449
- break;
1450
- case 1: //Zone 1
1451
- switch (this.accessory.operationModeZone1) {
1452
- case 1: //HEAT FLOW
1453
- deviceData.Device.SetHeatFlowTemperatureZone1 = value;
1454
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
1455
- break;
1456
- case 4: //COOL FLOW
1457
- deviceData.Device.SetCoolFlowTemperatureZone1 = value;
1458
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
1459
- break;
1460
- };
1461
- break;
1462
- case caseHotWater: //Hot Water
1463
- deviceData.Device.SetTankWaterTemperature = value;
1464
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetTankWaterTemperature;
1465
- break;
1466
- case caseZone2: //Zone 2
1467
- switch (this.accessory.operationModeZone2) {
1468
- case 1: //HEAT FLOW
1469
- deviceData.Device.SetHeatFlowTemperatureZone2 = value;
1470
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
1471
- break;
1472
- case 4: //COOL FLOW
1473
- deviceData.Device.SetCoolFlowTemperatureZone2 = value;
1474
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
1475
- break;
1476
- };
1477
- break;
1478
- };
1479
-
1480
- const set = i > 0 ? await this.melCloudAtw.send(deviceData) : false;
1481
- const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
1482
- } catch (error) {
1483
- this.emit('warn', `${zoneName}, Set cooling threshold temperature error: ${error}`);
1484
- };
1485
- });
1486
- };
1487
- //device can heat/cool or only heat
1488
- if (heatCoolModes === 0 || heatCoolModes === 1) {
1489
- melCloudServiceT.getCharacteristic(Characteristic.HeatingThresholdTemperature)
1490
- .setProps({
1491
- minValue: this.accessory.zones[i].temperaturesSetPropsMinValue,
1492
- maxValue: this.accessory.zones[i].temperaturesSetPropsMaxValue,
1493
- minStep: this.accessory.temperatureIncrement
1494
- })
1495
- .onGet(async () => {
1496
- const value = this.accessory.zones[i].setTemperature;
1497
- return value;
1498
- })
1499
- .onSet(async (value) => {
1500
- try {
1501
- switch (i) {
1502
- case 0: //Heat Pump
1503
- //deviceData.Device.SetTemperatureZone1 = value;
1504
- //deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
1505
- break;
1506
- case 1: //Zone 1
1507
- switch (this.accessory.operationModeZone1) {
1508
- case 1: //HEAT FLOW
1509
- deviceData.Device.SetHeatFlowTemperatureZone1 = value;
1510
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
1511
- break;
1512
- case 4: //COOL FLOW
1513
- deviceData.Device.SetCoolFlowTemperatureZone1 = value;
1514
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
1515
- break;
1516
- };
1517
- break;
1518
- case caseHotWater: //Hot Water
1519
- deviceData.Device.SetTankWaterTemperature = value;
1520
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetTankWaterTemperature;
1521
- break;
1522
- case caseZone2: //Zone 2
1523
- switch (this.accessory.operationModeZone2) {
1524
- case 1: //HEAT FLOW
1525
- deviceData.Device.SetHeatFlowTemperatureZone2 = value;
1526
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
1527
- break;
1528
- case 4: //COOL FLOW
1529
- deviceData.Device.SetCoolFlowTemperatureZone2 = value;
1530
- deviceData.Device.EffectiveFlags = CONSTANTS.HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
1531
- break;
1532
- };
1533
- break;
1534
- };
1535
-
1536
- const set = i > 0 ? await this.melCloudAtw.send(deviceData) : false;
1537
- const info = this.disableLogInfo || i === 0 ? false : this.emit('message', `${zoneName}, Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
1538
- } catch (error) {
1539
- this.emit('warn', `${zoneName}, Set heating threshold temperature error: ${error}`);
1540
- };
1541
- });
1542
- };
1543
1431
  melCloudServiceT.getCharacteristic(Characteristic.TemperatureDisplayUnits)
1544
1432
  .onGet(async () => {
1545
1433
  const value = this.accessory.useFahrenheit;
package/src/deviceerv.js CHANGED
@@ -407,8 +407,6 @@ class DeviceErv extends EventEmitter {
407
407
  .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
408
408
  .updateCharacteristic(Characteristic.TargetTemperature, targetTemperature)
409
409
  .updateCharacteristic(Characteristic.TemperatureDisplayUnits, this.accessory.useFahrenheit);
410
- const updateDefHeat = hasAutoVentilationMode && hasHeatOperationMode ? this.melCloudService.updateCharacteristic(Characteristic.HeatingThresholdTemperature, defaultHeatingSetTemperature) : false;
411
- const updateDefCool = hasAutoVentilationMode && hasCoolOperationMode ? this.melCloudService.updateCharacteristic(Characteristic.CoolingThresholdTemperature, defaultCoolingSetTemperature) : false;
412
410
  };
413
411
  break;
414
412
  };
@@ -542,12 +540,10 @@ class DeviceErv extends EventEmitter {
542
540
  this.emit('message', `Power: ${power ? 'ON' : 'OFF'}`);
543
541
  this.emit('message', `Target ventilation mode: ${CONSTANTS.Ventilation.OperationMode[ventilationMode]}`);
544
542
  this.emit('message', `Current entilation mode: ${CONSTANTS.Ventilation.OperationMode[actualVentilationMode]}`);
543
+ this.emit('message', `Target temperature: ${targetTemperature}${this.accessory.temperatureUnit}`);
545
544
  this.emit('message', `Room temperature: ${roomTemperature}${this.accessory.temperatureUnit}`);
546
- const info = hasCoolOperationMode || hasHeatOperationMode ? this.emit('message', `Target temperature: ${targetTemperature}${this.accessory.temperatureUnit}`) : false;
547
545
  const info1 = hasSupplyTemperature && deviceData.Device.SupplyTemperature !== null ? this.emit('message', `Supply temperature: ${roomTemperature}${this.accessory.temperatureUnit}`) : false;
548
546
  const info2 = hasOutdoorTemperature && deviceData.Device.OutdoorTemperature !== null ? this.emit('message', `Outdoor temperature: ${roomTemperature}${this.accessory.temperatureUnit}`) : false;
549
- const info3 = ventilationMode === 2 && hasHeatOperationMode ? this.emit('message', `Heating threshold temperature: ${defaultHeatingSetTemperature}${this.accessory.temperatureUnit}`) : false;
550
- const info4 = ventilationMode === 2 && hasCoolOperationMode ? this.emit('message', `Cooling threshold temperature: ${defaultCoolingSetTemperature}${this.accessory.temperatureUnit}`) : false;
551
547
  this.emit('message', `Fan speed mode: ${CONSTANTS.Ventilation.FanSpeed[setFanSpeed]}`);
552
548
  this.emit('message', `Temperature display unit: ${this.accessory.temperatureUnit}`);
553
549
  this.emit('message', `Core maintenance: ${CONSTANTS.Ventilation.CoreMaintenance[coreMaintenanceRequired]}`);
@@ -961,52 +957,6 @@ class DeviceErv extends EventEmitter {
961
957
  this.emit('warn', `Set temperature error: ${error}`);
962
958
  };
963
959
  });
964
- if (hasAutoVentilationMode) {
965
- if (hasHeatOperationMode) {
966
- this.melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
967
- .setProps({
968
- minValue: 10,
969
- maxValue: 31,
970
- minStep: this.accessory.temperatureIncrement
971
- })
972
- .onGet(async () => {
973
- const value = this.accessory.defaultHeatingSetTemperature;
974
- return value;
975
- })
976
- .onSet(async (value) => {
977
- try {
978
- deviceData.Device.DefaultHeatingSetTemperature = value;
979
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetTemperature;
980
- await this.melCloudErv.send(deviceData);
981
- const info = this.disableLogInfo ? false : this.emit('message', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
982
- } catch (error) {
983
- this.emit('warn', `Set heating threshold temperature error: ${error}`);
984
- };
985
- });
986
- };
987
- if (hasCoolOperationMode) {
988
- this.melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
989
- .setProps({
990
- minValue: 16,
991
- maxValue: 31,
992
- minStep: this.accessory.temperatureIncrement
993
- })
994
- .onGet(async () => {
995
- const value = this.accessory.defaultCoolingSetTemperature;
996
- return value;
997
- })
998
- .onSet(async (value) => {
999
- try {
1000
- deviceData.Device.DefaultCoolingSetTemperature = value;
1001
- deviceData.Device.EffectiveFlags = CONSTANTS.Ventilation.EffectiveFlags.SetTemperature;
1002
- await this.melCloudErv.send(deviceData);
1003
- const info = this.disableLogInfo ? false : this.emit('message', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
1004
- } catch (error) {
1005
- this.emit('warn', `Set cooling threshold temperature error: ${error}`);
1006
- };
1007
- });
1008
- };
1009
- };
1010
960
  this.melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
1011
961
  .onGet(async () => {
1012
962
  const value = this.accessory.useFahrenheit;