homebridge-melcloud-control 4.2.5-beta.27 → 4.2.5-beta.28
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 +1 -0
- package/README.md +19 -18
- package/package.json +1 -1
- package/src/deviceata.js +3 -3
- package/src/deviceatw.js +2 -2
- package/src/deviceerv.js +2 -2
- package/src/melcloud.js +3 -2
- package/src/melcloudata.js +4 -4
- package/src/melcloudatw.js +1 -0
- package/src/melclouderv.js +1 -0
- package/src/melcloudhome.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
27
27
|
## Changes
|
|
28
28
|
|
|
29
29
|
- fix device control stop working after some time
|
|
30
|
+
- updated presets, schedules, scenes characteristics
|
|
30
31
|
- stability and performance improvements
|
|
31
32
|
- config schema updated
|
|
32
33
|
- readme updated
|
package/README.md
CHANGED
|
@@ -31,12 +31,13 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
31
31
|
* Support multiple accounts, buildings, floors, areas.
|
|
32
32
|
* Support temperature display units `Celsius/Fahrenheit`.
|
|
33
33
|
* Support assing inividual operating mode for `Heat/Cool/Auto`.
|
|
34
|
-
* Support direct `Presets
|
|
35
|
-
* Support direct `Schedules
|
|
36
|
-
* Support direct `
|
|
37
|
-
* Support direct `
|
|
38
|
-
* Support direct `
|
|
39
|
-
* Support direct `
|
|
34
|
+
* Support direct `Presets`, only MELCloud.
|
|
35
|
+
* Support direct `Schedules`, only MELCloud Home.
|
|
36
|
+
* Support direct `Scenes`, only MELCloud Home.
|
|
37
|
+
* Support direct `Frost protection`, only MELCloud Home.
|
|
38
|
+
* Support direct `Overheat Protection`, only MELCloud Home.
|
|
39
|
+
* Support direct `Holiday Mode`.
|
|
40
|
+
* Support direct `Functions`, using extra `Buttons`, switch it to `OFF` restore previous device state.
|
|
40
41
|
* Support automations, shortcuts and Siri.
|
|
41
42
|
* Support external integrations, [RESTFul](https://github.com/grzegorz914/homebridge-melcloud-control?tab=readme-ov-file#restful-integration), [MQTT](https://github.com/grzegorz914/homebridge-melcloud-control?tab=readme-ov-file#mqtt-integration).
|
|
42
43
|
* Control devices over local network You need use ESP module and [Tasmota Control](https://github.com/grzegorz914/homebridge-tasmota-control) plugin.
|
|
@@ -70,7 +71,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
70
71
|
* Frost protection `ON/OFF`.
|
|
71
72
|
* Overheat protection `ON/OFF`.
|
|
72
73
|
* Holiday mode `ON/OFF`.
|
|
73
|
-
*
|
|
74
|
+
* Schedules `ON/OFF`.
|
|
74
75
|
* Scene `ON/OFF`.
|
|
75
76
|
* Sensors:
|
|
76
77
|
* For automation and notifications.
|
|
@@ -88,7 +89,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
88
89
|
* Frost protection.
|
|
89
90
|
* Overheat protection.
|
|
90
91
|
* Holiday mode.
|
|
91
|
-
*
|
|
92
|
+
* Shedules control.
|
|
92
93
|
* Shedule active.
|
|
93
94
|
* Scene control.
|
|
94
95
|
* Error.
|
|
@@ -129,7 +130,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
129
130
|
* Physical lock controls `LOCK/UNLOCK`.
|
|
130
131
|
* Presets `SET/UNSET`.
|
|
131
132
|
* Holiday mode `ON/OFF`.
|
|
132
|
-
*
|
|
133
|
+
* Schedules `ON/OFF`.
|
|
133
134
|
* Scene `ON/OFF`.
|
|
134
135
|
* Sensors:
|
|
135
136
|
* For automation and notifications.
|
|
@@ -144,7 +145,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
144
145
|
* Flow Temperature Zone 1, 2, Hot Water.
|
|
145
146
|
* Return Temperature Zone 1, 2, Hot Water.
|
|
146
147
|
* Holiday mode.
|
|
147
|
-
*
|
|
148
|
+
* Shedules control.
|
|
148
149
|
* Shedule active.
|
|
149
150
|
* Scene control.
|
|
150
151
|
* Error.
|
|
@@ -165,7 +166,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
165
166
|
* Fan speed mode `AUTO/1/2/3/4`.
|
|
166
167
|
* Presets `SET/UNSET`.
|
|
167
168
|
* Holiday mode `ON/OFF`.
|
|
168
|
-
*
|
|
169
|
+
* Schedules `ON/OFF`.
|
|
169
170
|
* Scene `ON/OFF`.
|
|
170
171
|
* Sensors:
|
|
171
172
|
* For automation and notifications.
|
|
@@ -181,7 +182,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
181
182
|
* CO2 detected and level.
|
|
182
183
|
* PM2.5 air quality and level.
|
|
183
184
|
* Holiday mode.
|
|
184
|
-
*
|
|
185
|
+
* Shedules control.
|
|
185
186
|
* Shedule active.
|
|
186
187
|
* Scene control.
|
|
187
188
|
* Error.
|
|
@@ -394,7 +395,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
394
395
|
| | `http//ip:port` | `FrostProtection` | `true`, `false` | boolean | Frost protectin. |
|
|
395
396
|
| | `http//ip:port` | `OverheatProtection` | `true`, `false` | boolean | Overheat protection. |
|
|
396
397
|
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
397
|
-
| | `http//ip:port` | `
|
|
398
|
+
| | `http//ip:port` | `Schedules` | `true`, `false` | boolean | Schedules. |
|
|
398
399
|
| Heat Pump | | | | | |
|
|
399
400
|
| POST | `http//ip:port` | `Power` | `true`, `false` | boolean | Power state. |
|
|
400
401
|
| | `http//ip:port` | `ForcedHotWaterMode` | `true`, `false` | boolean | Force hot water. |
|
|
@@ -413,7 +414,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
413
414
|
| | `http//ip:port` | `SetCoolFlowTemperatureZone2` | `0.0` | float | Cool flow temperature zone 2. |
|
|
414
415
|
| | `http//ip:port` | `SetTankWaterTemperature` | `0.0` | float | Hot water temperature. |
|
|
415
416
|
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
416
|
-
| | `http//ip:port` | `
|
|
417
|
+
| | `http//ip:port` | `Schedules` | `true`, `false` | boolean | Schedules. |
|
|
417
418
|
| Energy Recovery Ventilation | | | | | |
|
|
418
419
|
| POST | `http//ip:port` | `Power` | `true`, `false` | boolean | Power state. |
|
|
419
420
|
| | `http//ip:port` | `NightPurgeMode` | `true`, `false` | boolean | Night purge mode. |
|
|
@@ -427,7 +428,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
427
428
|
| | `http//ip:port` | `DefaultCoolingSetTemperature` | `0.0` | float | Default cooling temperature. |
|
|
428
429
|
| | `http//ip:port` | `DefaultHeatingSetTemperature` | `0.0` | float | Default heating temperature. |
|
|
429
430
|
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
430
|
-
| | `http//ip:port` | `
|
|
431
|
+
| | `http//ip:port` | `Schedules` | `true`, `false` | boolean | Schedules. |
|
|
431
432
|
|
|
432
433
|
### MQTT Integration
|
|
433
434
|
|
|
@@ -456,7 +457,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
456
457
|
| | `Set` | `FrostProtection` | `true`, `false` | boolean | Frost protectin. |
|
|
457
458
|
| | `Set` | `OverheatProtection` | `true`, `false` | boolean | Overheat protection. |
|
|
458
459
|
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
459
|
-
| | `Set` | `
|
|
460
|
+
| | `Set` | `Schedules` | `true`, `false` | boolean | Schedules. |
|
|
460
461
|
| Heat Pump | | | | | |
|
|
461
462
|
| Subscribe | `Set` | `Power` | `true`, `false` | boolean | Power state. |
|
|
462
463
|
| | `Set` | `ForcedHotWaterMode` | `true`, `false` | boolean | Force hot water. |
|
|
@@ -475,7 +476,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
475
476
|
| | `Set` | `SetCoolFlowTemperatureZone2` | `0.0` | float | Cool flow temperature zone 2. |
|
|
476
477
|
| | `Set` | `SetTankWaterTemperature` | `0.0` | float | Hot water temperature. |
|
|
477
478
|
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
478
|
-
| | `Set` | `
|
|
479
|
+
| | `Set` | `Schedules` | `true`, `false` | boolean | Schedules. |
|
|
479
480
|
| Energy Recovery Ventilation | | | | | |
|
|
480
481
|
| Subscribe | `Set` | `Power` | `true`, `false` | boolean | Power state. |
|
|
481
482
|
| | `Set` | `NightPurgeMode` | `true`, `false` | boolean | Night purge mode. |
|
|
@@ -489,4 +490,4 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
489
490
|
| | `Set` | `DefaultCoolingSetTemperature` | `23.0` | float | Default cooling temperature. |
|
|
490
491
|
| | `Set` | `DefaultHeatingSetTemperature` | `21.0` | float | Default heating temperature. |
|
|
491
492
|
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
492
|
-
| | `Set` | `
|
|
493
|
+
| | `Set` | `Schedules` | `true`, `false` | boolean | Schedules. |
|
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-beta.
|
|
4
|
+
"version": "4.2.5-beta.28",
|
|
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
|
@@ -261,7 +261,7 @@ class DeviceAta extends EventEmitter {
|
|
|
261
261
|
deviceData.Device[key].Enabled = value;
|
|
262
262
|
flag = 'overheatprotection';
|
|
263
263
|
break;
|
|
264
|
-
case '
|
|
264
|
+
case 'Schedules':
|
|
265
265
|
if (this.accountType === 'melcloud') return;
|
|
266
266
|
|
|
267
267
|
deviceData.Device[key].Enabled = value;
|
|
@@ -527,7 +527,7 @@ class DeviceAta extends EventEmitter {
|
|
|
527
527
|
try {
|
|
528
528
|
this.accessory.useFahrenheit = value ? true : false;
|
|
529
529
|
if (this.logInfo) this.emit('info', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
530
|
-
this.accountInfo.
|
|
530
|
+
this.accountInfo.UseFahrenheit = value ? true : false;
|
|
531
531
|
await this.melCloudAta.send(this.accountType, this.displayType, deviceData, 'account', this.accountInfo);
|
|
532
532
|
} catch (error) {
|
|
533
533
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
@@ -622,7 +622,7 @@ class DeviceAta extends EventEmitter {
|
|
|
622
622
|
try {
|
|
623
623
|
this.accessory.useFahrenheit = value ? true : false;
|
|
624
624
|
if (this.logInfo) this.emit('info', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
625
|
-
this.accountInfo.
|
|
625
|
+
this.accountInfo.UseFahrenheit = value ? true : false;
|
|
626
626
|
await this.melCloudAta.send(this.accountType, this.displayType, deviceData, 'account', this.accountInfo);
|
|
627
627
|
} catch (error) {
|
|
628
628
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
package/src/deviceatw.js
CHANGED
|
@@ -652,7 +652,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
652
652
|
try {
|
|
653
653
|
this.accessory.useFahrenheit = value ? true : false;
|
|
654
654
|
if (this.logInfo) this.emit('info', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
655
|
-
this.accountInfo.
|
|
655
|
+
this.accountInfo.UseFahrenheit = value ? true : false;
|
|
656
656
|
await this.melCloudAtw.send(this.accountType, this.displayType, deviceData, 'account', this.accountInfo);
|
|
657
657
|
} catch (error) {
|
|
658
658
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
@@ -838,7 +838,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
838
838
|
try {
|
|
839
839
|
this.accessory.useFahrenheit = value ? true : false;
|
|
840
840
|
if (this.logInfo) this.emit('info', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
841
|
-
this.accountInfo.
|
|
841
|
+
this.accountInfo.UseFahrenheit = value ? true : false;
|
|
842
842
|
await this.melCloudAtw.send(this.accountType, this.displayType, deviceData, 'account', this.accountInfo);
|
|
843
843
|
} catch (error) {
|
|
844
844
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
package/src/deviceerv.js
CHANGED
|
@@ -458,7 +458,7 @@ class DeviceErv extends EventEmitter {
|
|
|
458
458
|
try {
|
|
459
459
|
this.accessory.useFahrenheit = value ? true : false;
|
|
460
460
|
if (this.logInfo) this.emit('info', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
461
|
-
this.accountInfo.
|
|
461
|
+
this.accountInfo.UseFahrenheit = value ? true : false;
|
|
462
462
|
await this.melCloudErv.send(this.accountType, this.displayType, deviceData, 'account', this.accountInfo);
|
|
463
463
|
} catch (error) {
|
|
464
464
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
|
@@ -551,7 +551,7 @@ class DeviceErv extends EventEmitter {
|
|
|
551
551
|
try {
|
|
552
552
|
this.accessory.useFahrenheit = value ? true : false;
|
|
553
553
|
if (this.logInfo) this.emit('info', `Set temperature display unit: ${TemperatureDisplayUnits[value]}`);
|
|
554
|
-
this.accountInfo.
|
|
554
|
+
this.accountInfo.UseFahrenheit = value ? true : false;
|
|
555
555
|
await this.melCloudErv.send(this.accountType, this.displayType, deviceData, 'account', this.accountInfo);
|
|
556
556
|
} catch (error) {
|
|
557
557
|
if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
|
package/src/melcloud.js
CHANGED
|
@@ -125,7 +125,7 @@ class MelCloud extends EventEmitter {
|
|
|
125
125
|
if (this.logDebug) this.emit('debug', `Connecting to MELCloud`);
|
|
126
126
|
|
|
127
127
|
try {
|
|
128
|
-
const accountInfo = { State: false, Info: '',
|
|
128
|
+
const accountInfo = { State: false, Info: '', Account: null, UseFahrenheit: false }
|
|
129
129
|
|
|
130
130
|
const payload = {
|
|
131
131
|
Email: this.user,
|
|
@@ -175,7 +175,8 @@ class MelCloud extends EventEmitter {
|
|
|
175
175
|
|
|
176
176
|
accountInfo.State = true;
|
|
177
177
|
accountInfo.Info = 'Connect to MELCloud Success';
|
|
178
|
-
accountInfo.
|
|
178
|
+
accountInfo.UseFahrenheit = loginData.UseFahrenheit;
|
|
179
|
+
accountInfo.Account = account;
|
|
179
180
|
await this.functions.saveData(this.accountFile, accountInfo);
|
|
180
181
|
|
|
181
182
|
return accountInfo
|
package/src/melcloudata.js
CHANGED
|
@@ -137,17 +137,17 @@ class MelCloudAta extends EventEmitter {
|
|
|
137
137
|
let path = '';
|
|
138
138
|
switch (accountType) {
|
|
139
139
|
case "melcloud":
|
|
140
|
-
if (displayType === 1 && deviceData.Device.OperationMode === 8) {
|
|
141
|
-
deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
140
|
switch (flag) {
|
|
145
141
|
case 'account':
|
|
142
|
+
flagData.Account.LoginData.UseFahrenheit = flagData.UseFahrenheit;
|
|
146
143
|
payload = { data: flagData.LoginData };
|
|
147
144
|
path = ApiUrls.UpdateApplicationOptions;
|
|
148
145
|
await this.functions.saveData(this.accountFile, flagData);
|
|
149
146
|
break;
|
|
150
147
|
default:
|
|
148
|
+
if (displayType === 1 && deviceData.Device.OperationMode === 8) {
|
|
149
|
+
deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
150
|
+
}
|
|
151
151
|
deviceData.Device.EffectiveFlags = flag;
|
|
152
152
|
payload = {
|
|
153
153
|
DeviceID: deviceData.Device.DeviceID,
|
package/src/melcloudatw.js
CHANGED
|
@@ -146,6 +146,7 @@ class MelCloudAtw extends EventEmitter {
|
|
|
146
146
|
case "melcloud":
|
|
147
147
|
switch (flag) {
|
|
148
148
|
case 'account':
|
|
149
|
+
flagData.Account.LoginData.UseFahrenheit = flagData.UseFahrenheit;
|
|
149
150
|
payload = { data: flagData.LoginData };
|
|
150
151
|
path = ApiUrls.UpdateApplicationOptions;
|
|
151
152
|
await this.functions.saveData(this.accountFile, flagData);
|
package/src/melclouderv.js
CHANGED
|
@@ -134,6 +134,7 @@ class MelCloudErv extends EventEmitter {
|
|
|
134
134
|
case "melcloud":
|
|
135
135
|
switch (flag) {
|
|
136
136
|
case 'account':
|
|
137
|
+
flagData.Account.LoginData.UseFahrenheit = flagData.UseFahrenheit;
|
|
137
138
|
payload = { data: flagData.LoginData };
|
|
138
139
|
path = ApiUrls.UpdateApplicationOptions;
|
|
139
140
|
await this.functions.saveData(this.accountFile, flagData);
|
package/src/melcloudhome.js
CHANGED
|
@@ -217,7 +217,7 @@ class MelCloud extends EventEmitter {
|
|
|
217
217
|
|
|
218
218
|
let browser;
|
|
219
219
|
try {
|
|
220
|
-
const accountInfo = { State: false, Info: '', UseFahrenheit: false };
|
|
220
|
+
const accountInfo = { State: false, Info: '', Account: {}, UseFahrenheit: false };
|
|
221
221
|
let chromiumPath = await this.functions.ensureChromiumInstalled();
|
|
222
222
|
|
|
223
223
|
// === Fallback to Puppeteer's built-in Chromium ===
|