homebridge-melcloud-control 4.2.1-beta.1 → 4.2.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/CHANGELOG.md +10 -0
- package/README.md +18 -4
- package/package.json +1 -1
- package/src/deviceata.js +34 -0
- package/src/deviceatw.js +23 -4
- package/src/deviceerv.js +20 -0
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,16 @@ 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.1] - (13.11.2025)
|
|
26
|
+
|
|
27
|
+
## Changes
|
|
28
|
+
|
|
29
|
+
- RESTFul and MQTT update for MELCloud Home
|
|
30
|
+
- bump dependencies
|
|
31
|
+
- config schema updated
|
|
32
|
+
- readme updated
|
|
33
|
+
- cleanup
|
|
34
|
+
|
|
25
35
|
## [4.2.0] - (13.11.2025)
|
|
26
36
|
|
|
27
37
|
## Changes
|
package/README.md
CHANGED
|
@@ -344,8 +344,8 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
344
344
|
### RESTful Integration
|
|
345
345
|
|
|
346
346
|
* Port:
|
|
347
|
-
* MELCLoud, last 4 numbers of `device Id`,
|
|
348
|
-
* MELCLoud Home, start at `30000
|
|
347
|
+
* MELCLoud, last 4 numbers of `device Id`, correct port is displayed in HB log during start.
|
|
348
|
+
* MELCLoud Home, start at `30000`, correct port is displayed in HB log during start.
|
|
349
349
|
* POST data as a JSON Object `{OperationMode: 8}`.
|
|
350
350
|
* Header content type must be `application/json`.
|
|
351
351
|
* Path `status` response all available paths.
|
|
@@ -370,11 +370,14 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
370
370
|
| | `http//ip:port` | `SetTemperature` | `0.0` | float | Room temperature. |
|
|
371
371
|
| | `http//ip:port` | `DefaultCoolingSetTemperature` | `0.0` | float | Default cooling temperature. |
|
|
372
372
|
| | `http//ip:port` | `DefaultHeatingSetTemperature` | `0.0` | float | Default heating temperature. |
|
|
373
|
+
| | `http//ip:port` | `FrostProtection` | `true`, `false` | boolean | Frost protectin. |
|
|
374
|
+
| | `http//ip:port` | `OverheatProtection` | `true`, `false` | boolean | Overheat protection. |
|
|
375
|
+
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
376
|
+
| | `http//ip:port` | `ScheduleEnabled` | `true`, `false` | boolean | Schedules. |
|
|
373
377
|
| Heat Pump | | | | | |
|
|
374
378
|
| POST | `http//ip:port` | `Power` | `true`, `false` | boolean | Power state. |
|
|
375
379
|
| | `http//ip:port` | `ForcedHotWaterMode` | `true`, `false` | boolean | Force hot water. |
|
|
376
380
|
| | `http//ip:port` | `EcoHotWater` | `true`, `false` | boolean | Eco hot water. |
|
|
377
|
-
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
378
381
|
| | `http//ip:port` | `ProhibitZone1` | `true`, `false` | boolean | Lock control zone 1. |
|
|
379
382
|
| | `http//ip:port` | `ProhibitZone2` | `true`, `false` | boolean | Lock control zone 2. |
|
|
380
383
|
| | `http//ip:port` | `ProhibitHotWater` | `true`, `false` | boolean | Lock control hot water. |
|
|
@@ -388,6 +391,8 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
388
391
|
| | `http//ip:port` | `SetCoolFlowTemperatureZone1` | `0.0` | float | Cool flow temperature zone 1. |
|
|
389
392
|
| | `http//ip:port` | `SetCoolFlowTemperatureZone2` | `0.0` | float | Cool flow temperature zone 2. |
|
|
390
393
|
| | `http//ip:port` | `SetTankWaterTemperature` | `0.0` | float | Hot water temperature. |
|
|
394
|
+
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
395
|
+
| | `http//ip:port` | `ScheduleEnabled` | `true`, `false` | boolean | Schedules. |
|
|
391
396
|
| Energy Recovery Ventilation | | | | | |
|
|
392
397
|
| POST | `http//ip:port` | `Power` | `true`, `false` | boolean | Power state. |
|
|
393
398
|
| | `http//ip:port` | `NightPurgeMode` | `true`, `false` | boolean | Night purge mode. |
|
|
@@ -400,6 +405,8 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
400
405
|
| | `http//ip:port` | `SetTemperature` | `0.0` | float | Room temperature. |
|
|
401
406
|
| | `http//ip:port` | `DefaultCoolingSetTemperature` | `0.0` | float | Default cooling temperature. |
|
|
402
407
|
| | `http//ip:port` | `DefaultHeatingSetTemperature` | `0.0` | float | Default heating temperature. |
|
|
408
|
+
| | `http//ip:port` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
409
|
+
| | `http//ip:port` | `ScheduleEnabled` | `true`, `false` | boolean | Schedules. |
|
|
403
410
|
|
|
404
411
|
### MQTT Integration
|
|
405
412
|
|
|
@@ -425,11 +432,14 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
425
432
|
| | `Set` | `SetTemperature` | `0.0` | float | Room temperature. |
|
|
426
433
|
| | `Set` | `DefaultCoolingSetTemperature` | `23.0` | float | Default cooling temperature. |
|
|
427
434
|
| | `Set` | `DefaultHeatingSetTemperature` | `21.0` | float | Default heating temperature. |
|
|
435
|
+
| | `Set` | `FrostProtection` | `true`, `false` | boolean | Frost protectin. |
|
|
436
|
+
| | `Set` | `OverheatProtection` | `true`, `false` | boolean | Overheat protection. |
|
|
437
|
+
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
438
|
+
| | `Set` | `ScheduleEnabled` | `true`, `false` | boolean | Schedules. |
|
|
428
439
|
| Heat Pump | | | | | |
|
|
429
440
|
| Subscribe | `Set` | `Power` | `true`, `false` | boolean | Power state. |
|
|
430
441
|
| | `Set` | `ForcedHotWaterMode` | `true`, `false` | boolean | Force hot water. |
|
|
431
442
|
| | `Set` | `EcoHotWater` | `true`, `false` | boolean | Eco hot water. |
|
|
432
|
-
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
433
443
|
| | `Set` | `ProhibitZone1` | `true`, `false` | boolean | Lock control zone 1. |
|
|
434
444
|
| | `Set` | `ProhibitZone2` | `true`, `false` | boolean | Lock control zone 2. |
|
|
435
445
|
| | `Set` | `ProhibitHotWater` | `true`, `false` | boolean | Lock control hot water. |
|
|
@@ -443,6 +453,8 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
443
453
|
| | `Set` | `SetCoolFlowTemperatureZone1` | `0.0` | float | Cool flow temperature zone 1. |
|
|
444
454
|
| | `Set` | `SetCoolFlowTemperatureZone2` | `0.0` | float | Cool flow temperature zone 2. |
|
|
445
455
|
| | `Set` | `SetTankWaterTemperature` | `0.0` | float | Hot water temperature. |
|
|
456
|
+
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
457
|
+
| | `Set` | `ScheduleEnabled` | `true`, `false` | boolean | Schedules. |
|
|
446
458
|
| Energy Recovery Ventilation | | | | | |
|
|
447
459
|
| Subscribe | `Set` | `Power` | `true`, `false` | boolean | Power state. |
|
|
448
460
|
| | `Set` | `NightPurgeMode` | `true`, `false` | boolean | Night purge mode. |
|
|
@@ -455,3 +467,5 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
455
467
|
| | `Set` | `SetTemperature` | `0.0` | float | Room temperature. |
|
|
456
468
|
| | `Set` | `DefaultCoolingSetTemperature` | `23.0` | float | Default cooling temperature. |
|
|
457
469
|
| | `Set` | `DefaultHeatingSetTemperature` | `21.0` | float | Default heating temperature. |
|
|
470
|
+
| | `Set` | `HolidayMode` | `true`, `false` | boolean | Holiday mode. |
|
|
471
|
+
| | `Set` | `ScheduleEnabled` | `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.1
|
|
4
|
+
"version": "4.2.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
|
@@ -205,25 +205,59 @@ class DeviceAta extends EventEmitter {
|
|
|
205
205
|
effectiveFlags = AirConditioner.EffectiveFlags.VaneVerticalDirection;
|
|
206
206
|
break;
|
|
207
207
|
case 'HideVaneControls':
|
|
208
|
+
if (this.accountType === 'melcloudhome') return;
|
|
209
|
+
|
|
208
210
|
deviceData[key] = value;
|
|
209
211
|
effectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
210
212
|
break;
|
|
211
213
|
case 'HideDryModeControl':
|
|
214
|
+
if (this.accountType === 'melcloudhome') return;
|
|
215
|
+
|
|
212
216
|
deviceData[key] = value;
|
|
213
217
|
effectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
214
218
|
break;
|
|
215
219
|
case 'ProhibitSetTemperature':
|
|
220
|
+
if (this.accountType === 'melcloudhome') return;
|
|
221
|
+
|
|
216
222
|
deviceData.Device[key] = value;
|
|
217
223
|
effectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
218
224
|
break;
|
|
219
225
|
case 'ProhibitOperationMode':
|
|
226
|
+
if (this.accountType === 'melcloudhome') return;
|
|
227
|
+
|
|
220
228
|
deviceData.Device[key] = value;
|
|
221
229
|
effectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
222
230
|
break;
|
|
223
231
|
case 'ProhibitPower':
|
|
232
|
+
if (this.accountType === 'melcloudhome') return;
|
|
233
|
+
|
|
224
234
|
deviceData.Device[key] = value;
|
|
225
235
|
effectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
226
236
|
break;
|
|
237
|
+
case 'FrostProtection':
|
|
238
|
+
if (this.accountType === 'melcloud') return;
|
|
239
|
+
|
|
240
|
+
deviceData.Device[key].Enabled = value;
|
|
241
|
+
effectiveFlags = 'frostprotection';
|
|
242
|
+
break;
|
|
243
|
+
case 'OverheatProtection':
|
|
244
|
+
if (this.accountType === 'melcloud') return;
|
|
245
|
+
|
|
246
|
+
deviceData.Device[key].Enabled = value;
|
|
247
|
+
effectiveFlags = 'overheatprotection';
|
|
248
|
+
break;
|
|
249
|
+
case 'ScheduleEnabled':
|
|
250
|
+
if (this.accountType === 'melcloud') return;
|
|
251
|
+
|
|
252
|
+
deviceData.Device[key].Enabled = value;
|
|
253
|
+
effectiveFlags = 'schedule';
|
|
254
|
+
break;
|
|
255
|
+
case 'HolidayMode':
|
|
256
|
+
if (this.accountType === 'melcloud') return;
|
|
257
|
+
|
|
258
|
+
deviceData.Device[key].Enabled = value;
|
|
259
|
+
effectiveFlags = 'holidaymode';
|
|
260
|
+
break;
|
|
227
261
|
default:
|
|
228
262
|
this.emit('warn', `${integration}, received key: ${key}, value: ${value}`);
|
|
229
263
|
break;
|
package/src/deviceatw.js
CHANGED
|
@@ -224,22 +224,41 @@ class DeviceAtw extends EventEmitter {
|
|
|
224
224
|
deviceData.Device[key] = value;
|
|
225
225
|
effectiveFlags = HeatPump.EffectiveFlags.EcoHotWater;
|
|
226
226
|
break;
|
|
227
|
-
case 'HolidayMode':
|
|
228
|
-
deviceData.Device[key] = value;
|
|
229
|
-
effectiveFlags = HeatPump.EffectiveFlags.HolidayMode;
|
|
230
|
-
break;
|
|
231
227
|
case 'ProhibitZone1':
|
|
228
|
+
if (this.accountType === 'melcloudhome') return;
|
|
229
|
+
|
|
232
230
|
deviceData.Device[key] = value;
|
|
233
231
|
effectiveFlags = HeatPump.EffectiveFlags.ProhibitZone1;
|
|
234
232
|
break;
|
|
235
233
|
case 'ProhibitZone2':
|
|
234
|
+
if (this.accountType === 'melcloudhome') return;
|
|
235
|
+
|
|
236
236
|
deviceData.Device[key] = value;
|
|
237
237
|
effectiveFlags = HeatPump.EffectiveFlags.ProhibitZone2;
|
|
238
238
|
break;
|
|
239
239
|
case 'ProhibitHotWater':
|
|
240
|
+
if (this.accountType === 'melcloudhome') return;
|
|
241
|
+
|
|
240
242
|
deviceData.Device[key] = value;
|
|
241
243
|
effectiveFlags = HeatPump.EffectiveFlags.ProhibitHotWater;
|
|
242
244
|
break;
|
|
245
|
+
case 'ScheduleEnabled':
|
|
246
|
+
if (this.accountType === 'melcloud') return;
|
|
247
|
+
|
|
248
|
+
deviceData.Device[key].Enabled = value;
|
|
249
|
+
effectiveFlags = 'schedule';
|
|
250
|
+
break;
|
|
251
|
+
case 'HolidayMode':
|
|
252
|
+
if (this.accountType === 'melcloud') {
|
|
253
|
+
deviceData.Device[key] = value;
|
|
254
|
+
effectiveFlags = HeatPump.EffectiveFlags.HolidayMode;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (this.accountType === 'melcloudhome') {
|
|
258
|
+
deviceData.Device[key].Enabled = value;
|
|
259
|
+
effectiveFlags = 'holidaymode';
|
|
260
|
+
}
|
|
261
|
+
break;
|
|
243
262
|
default:
|
|
244
263
|
this.emit('warn', `${integration}, received key: ${key}, value: ${value}`);
|
|
245
264
|
break;
|
package/src/deviceerv.js
CHANGED
|
@@ -190,6 +190,8 @@ class DeviceErv extends EventEmitter {
|
|
|
190
190
|
effectiveFlags = Ventilation.EffectiveFlags.SetTemperature;
|
|
191
191
|
break;
|
|
192
192
|
case 'NightPurgeMode':
|
|
193
|
+
if (this.accountType === 'melcloudhome') return;
|
|
194
|
+
|
|
193
195
|
deviceData.Device[key] = value;
|
|
194
196
|
effectiveFlags = Ventilation.EffectiveFlags.NightPurgeMode;
|
|
195
197
|
break;
|
|
@@ -198,17 +200,35 @@ class DeviceErv extends EventEmitter {
|
|
|
198
200
|
effectiveFlags = Ventilation.EffectiveFlags.SetFanSpeed;
|
|
199
201
|
break;
|
|
200
202
|
case 'HideRoomTemperature':
|
|
203
|
+
if (this.accountType === 'melcloudhome') return;
|
|
204
|
+
|
|
201
205
|
deviceData[key] = value;
|
|
202
206
|
effectiveFlags = Ventilation.EffectiveFlags.Prohibit;
|
|
203
207
|
break;
|
|
204
208
|
case 'HideSupplyTemperature':
|
|
209
|
+
if (this.accountType === 'melcloudhome') return;
|
|
210
|
+
|
|
205
211
|
deviceData[key] = value;
|
|
206
212
|
effectiveFlags = Ventilation.EffectiveFlags.Prohibit;
|
|
207
213
|
break;
|
|
208
214
|
case 'HideOutdoorTemperature':
|
|
215
|
+
if (this.accountType === 'melcloudhome') return;
|
|
216
|
+
|
|
209
217
|
deviceData[key] = value;
|
|
210
218
|
effectiveFlags = Ventilation.EffectiveFlags.Prohibit;
|
|
211
219
|
break;
|
|
220
|
+
case 'ScheduleEnabled':
|
|
221
|
+
if (this.accountType === 'melcloud') return;
|
|
222
|
+
|
|
223
|
+
deviceData.Device[key].Enabled = value;
|
|
224
|
+
effectiveFlags = 'schedule';
|
|
225
|
+
break;
|
|
226
|
+
case 'HolidayMode':
|
|
227
|
+
if (this.accountType === 'melcloud') return;
|
|
228
|
+
|
|
229
|
+
deviceData.Device[key].Enabled = value;
|
|
230
|
+
effectiveFlags = 'holidaymode';
|
|
231
|
+
break;
|
|
212
232
|
default:
|
|
213
233
|
this.emit('warn', `${integration}, received key: ${key}, value: ${value}`);
|
|
214
234
|
break;
|