homebridge-melcloud-control 4.2.6-beta.1 → 4.2.6-beta.11
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/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/src/deviceata.js +26 -30
- package/src/deviceatw.js +0 -10
- package/src/deviceerv.js +24 -24
- package/src/melcloudata.js +1 -1
- package/src/melclouderv.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
22
22
|
|
|
23
23
|
- Do not use Homebridge UI > v5.5.0 because of break config.json
|
|
24
24
|
|
|
25
|
+
# [4.2.6] - (xx.11.2025)
|
|
26
|
+
|
|
27
|
+
## Changes
|
|
28
|
+
|
|
29
|
+
- fix displays (-270 grad) for temperature sensor
|
|
30
|
+
- stability improvements of RESTFul and MQTT start
|
|
31
|
+
- cleanup
|
|
32
|
+
|
|
25
33
|
# [4.2.5] - (17.11.2025)
|
|
26
34
|
|
|
27
35
|
## Changes
|
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.6-beta.
|
|
4
|
+
"version": "4.2.6-beta.11",
|
|
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
|
@@ -345,9 +345,9 @@ class DeviceAta extends EventEmitter {
|
|
|
345
345
|
switch (this.displayType) {
|
|
346
346
|
case 1: //Heater Cooler
|
|
347
347
|
if (this.logDebug) this.emit('debug', `Prepare heater/cooler service`);
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
348
|
+
const melCloudService = new Service.HeaterCooler(serviceName, `HeaterCooler ${deviceId}`);
|
|
349
|
+
melCloudService.setPrimaryService(true);
|
|
350
|
+
melCloudService.getCharacteristic(Characteristic.Active)
|
|
351
351
|
.onGet(async () => {
|
|
352
352
|
const state = this.accessory.power;
|
|
353
353
|
return state;
|
|
@@ -355,19 +355,18 @@ class DeviceAta extends EventEmitter {
|
|
|
355
355
|
.onSet(async (state) => {
|
|
356
356
|
try {
|
|
357
357
|
deviceData.Device.Power = state ? true : false;
|
|
358
|
-
|
|
359
358
|
if (this.logInfo) this.emit('info', `Set power: ${state ? 'On' : 'Off'}`);
|
|
360
359
|
await this.melCloudAta.send(this.accountType, this.displayType, deviceData, AirConditioner.EffectiveFlags.Power);
|
|
361
360
|
} catch (error) {
|
|
362
361
|
if (this.logWarn) this.emit('warn', `Set power error: ${error}`);
|
|
363
362
|
};
|
|
364
363
|
});
|
|
365
|
-
|
|
364
|
+
melCloudService.getCharacteristic(Characteristic.CurrentHeaterCoolerState)
|
|
366
365
|
.onGet(async () => {
|
|
367
366
|
const value = this.accessory.currentOperationMode;
|
|
368
367
|
return value;
|
|
369
368
|
});
|
|
370
|
-
|
|
369
|
+
melCloudService.getCharacteristic(Characteristic.TargetHeaterCoolerState)
|
|
371
370
|
.setProps({
|
|
372
371
|
minValue: this.accessory.operationModeSetPropsMinValue,
|
|
373
372
|
maxValue: this.accessory.operationModeSetPropsMaxValue,
|
|
@@ -382,31 +381,29 @@ class DeviceAta extends EventEmitter {
|
|
|
382
381
|
switch (value) {
|
|
383
382
|
case 0: //AUTO - AUTO
|
|
384
383
|
value = autoDryFanMode;
|
|
385
|
-
deviceData.Device.OperationMode = value;
|
|
386
384
|
break;
|
|
387
385
|
case 1: //HEAT - HEAT
|
|
388
386
|
value = heatDryFanMode;
|
|
389
|
-
deviceData.Device.OperationMode = value;
|
|
390
387
|
break;
|
|
391
388
|
case 2: //COOL - COOL
|
|
392
389
|
value = coolDryFanMode;
|
|
393
|
-
deviceData.Device.OperationMode = value;
|
|
394
390
|
break;
|
|
395
391
|
};
|
|
396
392
|
|
|
393
|
+
deviceData.Device.OperationMode = value;
|
|
397
394
|
if (this.logInfo) this.emit('info', `Set operation mode: ${AirConditioner.OperationModeMapEnumToString[value]}`);
|
|
398
395
|
await this.melCloudAta.send(this.accountType, this.displayType, deviceData, AirConditioner.EffectiveFlags.OperationMode);
|
|
399
396
|
} catch (error) {
|
|
400
397
|
if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
|
|
401
398
|
};
|
|
402
399
|
});
|
|
403
|
-
|
|
400
|
+
melCloudService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
404
401
|
.onGet(async () => {
|
|
405
402
|
const value = this.accessory.roomTemperature;
|
|
406
403
|
return value;
|
|
407
404
|
});
|
|
408
405
|
if (supportsFanSpeed) {
|
|
409
|
-
|
|
406
|
+
melCloudService.getCharacteristic(Characteristic.RotationSpeed)
|
|
410
407
|
.setProps({
|
|
411
408
|
minValue: 0,
|
|
412
409
|
maxValue: this.accessory.fanSpeedSetPropsMaxValue,
|
|
@@ -443,7 +440,7 @@ class DeviceAta extends EventEmitter {
|
|
|
443
440
|
});
|
|
444
441
|
};
|
|
445
442
|
if (supportsSwingFunction) {
|
|
446
|
-
|
|
443
|
+
melCloudService.getCharacteristic(Characteristic.SwingMode)
|
|
447
444
|
.onGet(async () => {
|
|
448
445
|
//Vane Horizontal: Auto, 1, 2, 3, 4, 5, 6, 7 = Sp;it, 12 = Swing //Vertical: Auto, 1, 2, 3, 4, 5, 7 = Swing
|
|
449
446
|
const value = this.accessory.currentSwingMode;
|
|
@@ -456,11 +453,11 @@ class DeviceAta extends EventEmitter {
|
|
|
456
453
|
if (this.logInfo) this.emit('info', `Set air direction mode: ${AirConditioner.AirDirectionMapEnumToString[value]}`);
|
|
457
454
|
await this.melCloudAta.send(this.accountType, this.displayType, deviceData, AirConditioner.EffectiveFlags.VaneVerticalVaneHorizontal);
|
|
458
455
|
} catch (error) {
|
|
459
|
-
if (this.logWarn) this.emit('warn', `Set
|
|
456
|
+
if (this.logWarn) this.emit('warn', `Set air direction mode error: ${error}`);
|
|
460
457
|
};
|
|
461
458
|
});
|
|
462
459
|
};
|
|
463
|
-
|
|
460
|
+
melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
|
|
464
461
|
.setProps({
|
|
465
462
|
minValue: this.accessory.minTempCoolDryAuto,
|
|
466
463
|
maxValue: this.accessory.maxTempCoolDryAuto,
|
|
@@ -481,7 +478,7 @@ class DeviceAta extends EventEmitter {
|
|
|
481
478
|
};
|
|
482
479
|
});
|
|
483
480
|
if (supportsHeat) {
|
|
484
|
-
|
|
481
|
+
melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
|
|
485
482
|
.setProps({
|
|
486
483
|
minValue: this.accessory.minTempHeat,
|
|
487
484
|
maxValue: this.accessory.maxTempHeat,
|
|
@@ -502,7 +499,7 @@ class DeviceAta extends EventEmitter {
|
|
|
502
499
|
};
|
|
503
500
|
});
|
|
504
501
|
};
|
|
505
|
-
|
|
502
|
+
melCloudService.getCharacteristic(Characteristic.LockPhysicalControls)
|
|
506
503
|
.onGet(async () => {
|
|
507
504
|
const value = this.accessory.lockPhysicalControl;
|
|
508
505
|
return value;
|
|
@@ -521,7 +518,7 @@ class DeviceAta extends EventEmitter {
|
|
|
521
518
|
if (this.logWarn) this.emit('warn', `Set lock physical controls error: ${error}`);
|
|
522
519
|
};
|
|
523
520
|
});
|
|
524
|
-
|
|
521
|
+
melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
525
522
|
.onGet(async () => {
|
|
526
523
|
const value = this.accessory.useFahrenheit;
|
|
527
524
|
return value;
|
|
@@ -538,18 +535,19 @@ class DeviceAta extends EventEmitter {
|
|
|
538
535
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
539
536
|
};
|
|
540
537
|
});
|
|
541
|
-
|
|
538
|
+
this.melCloudService = melCloudService;
|
|
539
|
+
accessory.addService(melCloudService);
|
|
542
540
|
break;
|
|
543
541
|
case 2: //Thermostat
|
|
544
542
|
if (this.logDebug) this.emit('debug', `Prepare thermostat service`);
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
543
|
+
const melCloudServiceT = new Service.Thermostat(serviceName, `Thermostat ${deviceId}`);
|
|
544
|
+
melCloudServiceT.setPrimaryService(true);
|
|
545
|
+
melCloudServiceT.getCharacteristic(Characteristic.CurrentHeatingCoolingState)
|
|
548
546
|
.onGet(async () => {
|
|
549
547
|
const value = this.accessory.currentOperationMode;
|
|
550
548
|
return value;
|
|
551
549
|
});
|
|
552
|
-
|
|
550
|
+
melCloudServiceT.getCharacteristic(Characteristic.TargetHeatingCoolingState)
|
|
553
551
|
.setProps({
|
|
554
552
|
minValue: this.accessory.operationModeSetPropsMinValue,
|
|
555
553
|
maxValue: this.accessory.operationModeSetPropsMaxValue,
|
|
@@ -565,26 +563,23 @@ class DeviceAta extends EventEmitter {
|
|
|
565
563
|
switch (value) {
|
|
566
564
|
case 0: //OFF - POWER OFF
|
|
567
565
|
value = deviceData.Device.OperationMode;
|
|
568
|
-
deviceData.Device.Power = false;
|
|
569
566
|
flag = AirConditioner.EffectiveFlags.Power;
|
|
570
567
|
break;
|
|
571
568
|
case 1: //HEAT - HEAT
|
|
572
|
-
deviceData.Device.Power = true;
|
|
573
569
|
value = heatDryFanMode;
|
|
574
570
|
flag = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
|
|
575
571
|
break;
|
|
576
572
|
case 2: //COOL - COOL
|
|
577
573
|
value = coolDryFanMode;
|
|
578
|
-
deviceData.Device.Power = true;
|
|
579
574
|
flag = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature
|
|
580
575
|
break;
|
|
581
576
|
case 3: //AUTO - AUTO
|
|
582
577
|
value = autoDryFanMode;
|
|
583
|
-
deviceData.Device.Power = true;
|
|
584
578
|
flag = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
|
|
585
579
|
break;
|
|
586
580
|
};
|
|
587
581
|
|
|
582
|
+
deviceData.Device.Power = value > 0 ? true : false;
|
|
588
583
|
deviceData.Device.OperationMode = value;
|
|
589
584
|
if (this.logInfo) this.emit('info', `Set operation mode: ${AirConditioner.OperationModeMapEnumToString[value]}`);
|
|
590
585
|
await this.melCloudAta.send(this.accountType, this.displayType, deviceData, flag);
|
|
@@ -592,12 +587,12 @@ class DeviceAta extends EventEmitter {
|
|
|
592
587
|
if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
|
|
593
588
|
};
|
|
594
589
|
});
|
|
595
|
-
|
|
590
|
+
melCloudServiceT.getCharacteristic(Characteristic.CurrentTemperature)
|
|
596
591
|
.onGet(async () => {
|
|
597
592
|
const value = this.accessory.roomTemperature;
|
|
598
593
|
return value;
|
|
599
594
|
});
|
|
600
|
-
|
|
595
|
+
melCloudServiceT.getCharacteristic(Characteristic.TargetTemperature)
|
|
601
596
|
.setProps({
|
|
602
597
|
minValue: this.accessory.minTempHeat,
|
|
603
598
|
maxValue: this.accessory.maxTempHeat,
|
|
@@ -616,7 +611,7 @@ class DeviceAta extends EventEmitter {
|
|
|
616
611
|
if (this.logWarn) this.emit('warn', `Set temperature error: ${error}`);
|
|
617
612
|
};
|
|
618
613
|
});
|
|
619
|
-
|
|
614
|
+
melCloudServiceT.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
620
615
|
.onGet(async () => {
|
|
621
616
|
const value = this.accessory.useFahrenheit;
|
|
622
617
|
return value;
|
|
@@ -633,7 +628,8 @@ class DeviceAta extends EventEmitter {
|
|
|
633
628
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
634
629
|
};
|
|
635
630
|
});
|
|
636
|
-
|
|
631
|
+
this.melCloudService = melCloudServiceT;
|
|
632
|
+
accessory.addService(melCloudServiceT);
|
|
637
633
|
break;
|
|
638
634
|
};
|
|
639
635
|
|
package/src/deviceatw.js
CHANGED
|
@@ -470,11 +470,6 @@ class DeviceAtw extends EventEmitter {
|
|
|
470
470
|
};
|
|
471
471
|
});
|
|
472
472
|
melCloudService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
473
|
-
.setProps({
|
|
474
|
-
minValue: -35,
|
|
475
|
-
maxValue: 150,
|
|
476
|
-
minStep: 0.5
|
|
477
|
-
})
|
|
478
473
|
.onGet(async () => {
|
|
479
474
|
const value = zone.roomTemperature;
|
|
480
475
|
return value;
|
|
@@ -785,11 +780,6 @@ class DeviceAtw extends EventEmitter {
|
|
|
785
780
|
};
|
|
786
781
|
});
|
|
787
782
|
melCloudServiceT.getCharacteristic(Characteristic.CurrentTemperature)
|
|
788
|
-
.setProps({
|
|
789
|
-
minValue: -35,
|
|
790
|
-
maxValue: 150,
|
|
791
|
-
minStep: 0.5
|
|
792
|
-
})
|
|
793
783
|
.onGet(async () => {
|
|
794
784
|
const value = zone.roomTemperature;
|
|
795
785
|
return value;
|
package/src/deviceerv.js
CHANGED
|
@@ -316,9 +316,9 @@ class DeviceErv extends EventEmitter {
|
|
|
316
316
|
switch (this.displayType) {
|
|
317
317
|
case 1: //Heater Cooler
|
|
318
318
|
if (this.logDebug) this.emit('debug', `Prepare heather/cooler service`);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
319
|
+
const melCloudService = new Service.HeaterCooler(serviceName, `HeaterCooler ${deviceId}`);
|
|
320
|
+
melCloudService.setPrimaryService(true);
|
|
321
|
+
melCloudService.getCharacteristic(Characteristic.Active)
|
|
322
322
|
.onGet(async () => {
|
|
323
323
|
const state = this.accessory.power;
|
|
324
324
|
return state;
|
|
@@ -332,12 +332,12 @@ class DeviceErv extends EventEmitter {
|
|
|
332
332
|
if (this.logWarn) this.emit('warn', `Set power error: ${error}`);
|
|
333
333
|
};
|
|
334
334
|
});
|
|
335
|
-
|
|
335
|
+
melCloudService.getCharacteristic(Characteristic.CurrentHeaterCoolerState)
|
|
336
336
|
.onGet(async () => {
|
|
337
337
|
const value = this.accessory.currentOperationMode;
|
|
338
338
|
return value;
|
|
339
339
|
});
|
|
340
|
-
|
|
340
|
+
melCloudService.getCharacteristic(Characteristic.TargetHeaterCoolerState)
|
|
341
341
|
.setProps({
|
|
342
342
|
minValue: this.accessory.operationModeSetPropsMinValue,
|
|
343
343
|
maxValue: this.accessory.operationModeSetPropsMaxValue,
|
|
@@ -367,13 +367,13 @@ class DeviceErv extends EventEmitter {
|
|
|
367
367
|
if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
|
|
368
368
|
};
|
|
369
369
|
});
|
|
370
|
-
|
|
370
|
+
melCloudService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
371
371
|
.onGet(async () => {
|
|
372
372
|
const value = this.accessory.roomTemperature;
|
|
373
373
|
return value;
|
|
374
374
|
});
|
|
375
375
|
if (supportsFanSpeed) {
|
|
376
|
-
|
|
376
|
+
melCloudService.getCharacteristic(Characteristic.RotationSpeed)
|
|
377
377
|
.setProps({
|
|
378
378
|
minValue: 0,
|
|
379
379
|
maxValue: this.accessory.fanSpeedSetPropsMaxValue,
|
|
@@ -410,7 +410,7 @@ class DeviceErv extends EventEmitter {
|
|
|
410
410
|
}
|
|
411
411
|
//device can cool
|
|
412
412
|
if (supportsAutoVentilationMode && supportsCoolOperationMode) {
|
|
413
|
-
|
|
413
|
+
melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
|
|
414
414
|
.setProps({
|
|
415
415
|
minValue: this.accessory.minTempCoolDry,
|
|
416
416
|
maxValue: this.accessory.maxTempCoolDry,
|
|
@@ -432,7 +432,7 @@ class DeviceErv extends EventEmitter {
|
|
|
432
432
|
};
|
|
433
433
|
//device can heat
|
|
434
434
|
if (supportsAutoVentilationMode && supportsHeatOperationMode) {
|
|
435
|
-
|
|
435
|
+
melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
|
|
436
436
|
.setProps({
|
|
437
437
|
minValue: this.accessory.minTempHeat,
|
|
438
438
|
maxValue: this.accessory.maxTempHeat,
|
|
@@ -452,7 +452,7 @@ class DeviceErv extends EventEmitter {
|
|
|
452
452
|
};
|
|
453
453
|
});
|
|
454
454
|
};
|
|
455
|
-
|
|
455
|
+
melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
456
456
|
.onGet(async () => {
|
|
457
457
|
const value = this.accessory.useFahrenheit;
|
|
458
458
|
return value;
|
|
@@ -469,18 +469,18 @@ class DeviceErv extends EventEmitter {
|
|
|
469
469
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
470
470
|
};
|
|
471
471
|
});
|
|
472
|
-
|
|
472
|
+
this.melCloudService = melCloudService;
|
|
473
473
|
break;
|
|
474
474
|
case 2: //Thermostat
|
|
475
475
|
if (this.logDebug) this.emit('debug', `Prepare thermostat service`);
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
476
|
+
const melCloudServiceT = new Service.Thermostat(serviceName, `Thermostat ${deviceId}`);
|
|
477
|
+
melCloudServiceT.setPrimaryService(true);
|
|
478
|
+
melCloudServiceT.getCharacteristic(Characteristic.CurrentHeatingCoolingState)
|
|
479
479
|
.onGet(async () => {
|
|
480
480
|
const value = this.accessory.currentOperationMode;
|
|
481
481
|
return value;
|
|
482
482
|
});
|
|
483
|
-
|
|
483
|
+
melCloudServiceT.getCharacteristic(Characteristic.TargetHeatingCoolingState)
|
|
484
484
|
.setProps({
|
|
485
485
|
minValue: this.accessory.operationModeSetPropsMinValue,
|
|
486
486
|
maxValue: this.accessory.operationModeSetPropsMaxValue,
|
|
@@ -500,33 +500,33 @@ class DeviceErv extends EventEmitter {
|
|
|
500
500
|
break;
|
|
501
501
|
case 1: //HEAT - LOSSNAY
|
|
502
502
|
deviceData.Device.Power = true;
|
|
503
|
-
deviceData.Device.VentilationMode = 0;
|
|
504
503
|
flag = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
|
|
505
504
|
break;
|
|
506
505
|
case 2: //COOL - BYPASS
|
|
507
506
|
deviceData.Device.Power = true;
|
|
508
|
-
|
|
507
|
+
value = supportsBypassVentilationMode ? 1 : 0;
|
|
509
508
|
flag = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
|
|
510
509
|
break;
|
|
511
510
|
case 3: //AUTO - AUTO
|
|
512
511
|
deviceData.Device.Power = true;
|
|
513
|
-
|
|
512
|
+
value = supportsAutoVentilationMode ? 2 : 0;
|
|
514
513
|
flag = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
|
|
515
514
|
break;
|
|
516
515
|
};
|
|
517
516
|
|
|
517
|
+
deviceData.Device.VentilationMode = value;
|
|
518
518
|
if (this.logInfo) this.emit('info', `Set operation mode: ${Ventilation.VentilationModeMapEnumToString[deviceData.Device.VentilationMode]}`);
|
|
519
519
|
await this.melCloudErv.send(this.accountType, this.displayType, deviceData, flag);
|
|
520
520
|
} catch (error) {
|
|
521
521
|
if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
|
|
522
522
|
};
|
|
523
523
|
});
|
|
524
|
-
|
|
524
|
+
melCloudServiceT.getCharacteristic(Characteristic.CurrentTemperature)
|
|
525
525
|
.onGet(async () => {
|
|
526
526
|
const value = this.accessory.roomTemperature;
|
|
527
527
|
return value;
|
|
528
528
|
});
|
|
529
|
-
|
|
529
|
+
melCloudServiceT.getCharacteristic(Characteristic.TargetTemperature)
|
|
530
530
|
.setProps({
|
|
531
531
|
minValue: this.accessory.minTempHeat,
|
|
532
532
|
maxValue: this.accessory.maxTempHeat,
|
|
@@ -545,7 +545,7 @@ class DeviceErv extends EventEmitter {
|
|
|
545
545
|
if (this.logWarn) this.emit('warn', `Set temperature error: ${error}`);
|
|
546
546
|
};
|
|
547
547
|
});
|
|
548
|
-
|
|
548
|
+
melCloudServiceT.getCharacteristic(Characteristic.TemperatureDisplayUnits)
|
|
549
549
|
.onGet(async () => {
|
|
550
550
|
const value = this.accessory.useFahrenheit;
|
|
551
551
|
return value;
|
|
@@ -562,7 +562,7 @@ class DeviceErv extends EventEmitter {
|
|
|
562
562
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
563
563
|
};
|
|
564
564
|
});
|
|
565
|
-
|
|
565
|
+
this.melCloudService = melCloudServiceT;
|
|
566
566
|
break;
|
|
567
567
|
};
|
|
568
568
|
|
|
@@ -1319,8 +1319,8 @@ class DeviceErv extends EventEmitter {
|
|
|
1319
1319
|
.updateCharacteristic(Characteristic.RotationSpeed, obj.fanSpeed)
|
|
1320
1320
|
.updateCharacteristic(Characteristic.LockPhysicalControls, obj.lockPhysicalControl)
|
|
1321
1321
|
.updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit);
|
|
1322
|
-
|
|
1323
|
-
|
|
1322
|
+
if (supportsCoolOperationMode) this.melCloudService?.updateCharacteristic(Characteristic.CoolingThresholdTemperature, defaultCoolingSetTemperature);
|
|
1323
|
+
if (supportsHeatOperationMode) this.melCloudService?.updateCharacteristic(Characteristic.HeatingThresholdTemperature, defaultHeatingSetTemperature);
|
|
1324
1324
|
break;
|
|
1325
1325
|
case 2: //Thermostat
|
|
1326
1326
|
//operation mode - 0, HEAT, 2, COOL, 4, 5, 6, FAN, AUTO
|
package/src/melcloudata.js
CHANGED
|
@@ -184,7 +184,7 @@ class MelCloudAta extends EventEmitter {
|
|
|
184
184
|
if (displayType === 1 && deviceData.Device.OperationMode === 8) {
|
|
185
185
|
deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
186
186
|
|
|
187
|
-
if (this.
|
|
187
|
+
if (this.deviceData.Device.DefaultCoolingSetTemperature !== deviceData.Device.DefaultCoolingSetTemperature || this.deviceData.Device.DefaultHeatingSetTemperature !== deviceData.Device.DefaultHeatingSetTemperature) {
|
|
188
188
|
const temps = {
|
|
189
189
|
defaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
|
|
190
190
|
defaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature
|
package/src/melclouderv.js
CHANGED
|
@@ -195,7 +195,7 @@ class MelCloudErv extends EventEmitter {
|
|
|
195
195
|
if (displayType === 1 && deviceData.Device.VentilationMode === 2) {
|
|
196
196
|
deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
197
197
|
|
|
198
|
-
if (this.
|
|
198
|
+
if (this.deviceData.Device.DefaultCoolingSetTemperature !== deviceData.Device.DefaultCoolingSetTemperature || this.deviceData.Device.DefaultHeatingSetTemperature !== deviceData.Device.DefaultHeatingSetTemperature) {
|
|
199
199
|
const temps = {
|
|
200
200
|
defaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
|
|
201
201
|
defaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature
|