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 +1 -1
- package/src/deviceata.js +9 -21
- package/src/deviceatw.js +0 -112
- package/src/deviceerv.js +1 -51
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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;
|