homebridge-melcloud-control 3.6.8 → 3.6.9-beta.0
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 +7 -0
- package/package.json +1 -1
- package/src/deviceata.js +2 -2
- package/src/deviceatw.js +2 -2
- package/src/deviceerv.js +2 -2
- package/src/melcloud.js +7 -7
- package/src/melcloudata.js +14 -6
- package/src/melcloudatw.js +14 -6
- package/src/melclouderv.js +14 -6
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
- do not configure it manually, always using Config UI X
|
|
17
17
|
- required Homebridge v2.0.0 and above
|
|
18
18
|
|
|
19
|
+
## [3.6.9] - (28.02.2025)
|
|
20
|
+
|
|
21
|
+
## Changes
|
|
22
|
+
|
|
23
|
+
- fix[#191](https://github.com/grzegorz914/homebridge-melcloud-control/issues/191)
|
|
24
|
+
- cleanup
|
|
25
|
+
|
|
19
26
|
## [3.6.7] - (26.02.2025)
|
|
20
27
|
|
|
21
28
|
## Changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "3.6.
|
|
4
|
+
"version": "3.6.9-beta.0",
|
|
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
|
@@ -932,7 +932,7 @@ class DeviceAta extends EventEmitter {
|
|
|
932
932
|
|
|
933
933
|
return accessory;
|
|
934
934
|
} catch (error) {
|
|
935
|
-
throw new Error(`Prepare accessory error: ${error
|
|
935
|
+
throw new Error(`Prepare accessory error: ${error}`);
|
|
936
936
|
};
|
|
937
937
|
};
|
|
938
938
|
|
|
@@ -1401,7 +1401,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1401
1401
|
const deviceData = await this.melCloudAta.checkState();
|
|
1402
1402
|
|
|
1403
1403
|
if (deviceData === false) {
|
|
1404
|
-
return
|
|
1404
|
+
return null;
|
|
1405
1405
|
}
|
|
1406
1406
|
|
|
1407
1407
|
//prepare accessory
|
package/src/deviceatw.js
CHANGED
|
@@ -1290,7 +1290,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1290
1290
|
|
|
1291
1291
|
return accessory;
|
|
1292
1292
|
} catch (error) {
|
|
1293
|
-
throw new Error(`Prepare accessory error: ${error
|
|
1293
|
+
throw new Error(`Prepare accessory error: ${error}`);
|
|
1294
1294
|
};
|
|
1295
1295
|
};
|
|
1296
1296
|
|
|
@@ -1944,7 +1944,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1944
1944
|
const deviceData = await this.melCloudAtw.checkState();
|
|
1945
1945
|
|
|
1946
1946
|
if (deviceData === false) {
|
|
1947
|
-
return
|
|
1947
|
+
return null;
|
|
1948
1948
|
}
|
|
1949
1949
|
|
|
1950
1950
|
//prepare accessory
|
package/src/deviceerv.js
CHANGED
|
@@ -853,7 +853,7 @@ class DeviceErv extends EventEmitter {
|
|
|
853
853
|
|
|
854
854
|
return accessory;
|
|
855
855
|
} catch (error) {
|
|
856
|
-
throw new Error(`Prepare accessory error: ${error
|
|
856
|
+
throw new Error(`Prepare accessory error: ${error}`);
|
|
857
857
|
};
|
|
858
858
|
};
|
|
859
859
|
|
|
@@ -1266,7 +1266,7 @@ class DeviceErv extends EventEmitter {
|
|
|
1266
1266
|
const deviceData = await this.melCloudErv.checkState();
|
|
1267
1267
|
|
|
1268
1268
|
if (deviceData === false) {
|
|
1269
|
-
return
|
|
1269
|
+
return null;
|
|
1270
1270
|
}
|
|
1271
1271
|
|
|
1272
1272
|
//prepare accessory
|
package/src/melcloud.js
CHANGED
|
@@ -79,7 +79,7 @@ class MelCloud extends EventEmitter {
|
|
|
79
79
|
|
|
80
80
|
if (contextKey === undefined || contextKey === null) {
|
|
81
81
|
this.emit('warn', `Context key: ${contextKey}, missing`)
|
|
82
|
-
return
|
|
82
|
+
return null;
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
//create axios instance post
|
|
@@ -114,7 +114,7 @@ class MelCloud extends EventEmitter {
|
|
|
114
114
|
|
|
115
115
|
return obj;
|
|
116
116
|
} catch (error) {
|
|
117
|
-
throw new Error(`Connect to MELCloud error: ${error
|
|
117
|
+
throw new Error(`Connect to MELCloud error: ${error}`);
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
|
|
@@ -144,7 +144,7 @@ class MelCloud extends EventEmitter {
|
|
|
144
144
|
|
|
145
145
|
if (!buildingsList) {
|
|
146
146
|
this.emit('warn', `No building found`);
|
|
147
|
-
return
|
|
147
|
+
return null;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
//save buildings to the file
|
|
@@ -170,7 +170,7 @@ class MelCloud extends EventEmitter {
|
|
|
170
170
|
const devicesCount = devices.length;
|
|
171
171
|
if (devicesCount === 0) {
|
|
172
172
|
this.emit('warn', `No devices found`);
|
|
173
|
-
return
|
|
173
|
+
return null;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
//save buildings to the file
|
|
@@ -179,7 +179,7 @@ class MelCloud extends EventEmitter {
|
|
|
179
179
|
|
|
180
180
|
return devices;
|
|
181
181
|
} catch (error) {
|
|
182
|
-
throw new Error(`Check devices list error: ${error
|
|
182
|
+
throw new Error(`Check devices list error: ${error}`);
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
185
|
|
|
@@ -189,7 +189,7 @@ class MelCloud extends EventEmitter {
|
|
|
189
189
|
const debug3 = this.enableDebugMode ? this.emit('debug', `Data saved to: ${path}`) : false;
|
|
190
190
|
return true;
|
|
191
191
|
} catch (error) {
|
|
192
|
-
throw new Error(`Save data error: ${error
|
|
192
|
+
throw new Error(`Save data error: ${error}`);
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
|
|
@@ -203,7 +203,7 @@ class MelCloud extends EventEmitter {
|
|
|
203
203
|
await this.saveData(this.accountFile, accountInfo);
|
|
204
204
|
return true;
|
|
205
205
|
} catch (error) {
|
|
206
|
-
throw new Error(`Send data error: ${error
|
|
206
|
+
throw new Error(`Send data error: ${error}`);
|
|
207
207
|
};
|
|
208
208
|
};
|
|
209
209
|
};
|
package/src/melcloudata.js
CHANGED
|
@@ -49,7 +49,7 @@ class MelCloudAta extends EventEmitter {
|
|
|
49
49
|
|
|
50
50
|
if (!Array.isArray(devicesData)) {
|
|
51
51
|
this.emit('warn', `Device data not found`);
|
|
52
|
-
return
|
|
52
|
+
return null;
|
|
53
53
|
}
|
|
54
54
|
const deviceData = devicesData.find(device => device.DeviceID === this.deviceId);
|
|
55
55
|
const debug = this.enableDebugMode ? this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`) : false;
|
|
@@ -356,7 +356,7 @@ class MelCloudAta extends EventEmitter {
|
|
|
356
356
|
|
|
357
357
|
return deviceData;
|
|
358
358
|
} catch (error) {
|
|
359
|
-
throw new Error(`Check state error: ${error
|
|
359
|
+
throw new Error(`Check state error: ${error}`);
|
|
360
360
|
};
|
|
361
361
|
};
|
|
362
362
|
|
|
@@ -364,10 +364,18 @@ class MelCloudAta extends EventEmitter {
|
|
|
364
364
|
async readData(path) {
|
|
365
365
|
try {
|
|
366
366
|
const savedData = await fsPromises.readFile(path)
|
|
367
|
-
|
|
368
|
-
|
|
367
|
+
if (savedData.trim().length === 0) {
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
try {
|
|
372
|
+
const data = JSON.parse(savedData);
|
|
373
|
+
return data;
|
|
374
|
+
} catch (error) {
|
|
375
|
+
throw new Error(`Parse JSON error: ${error}`);
|
|
376
|
+
}
|
|
369
377
|
} catch (error) {
|
|
370
|
-
throw new Error(`Read data error: ${error
|
|
378
|
+
throw new Error(`Read data error: ${error}`);
|
|
371
379
|
}
|
|
372
380
|
}
|
|
373
381
|
|
|
@@ -433,7 +441,7 @@ class MelCloudAta extends EventEmitter {
|
|
|
433
441
|
this.updateData(deviceData);
|
|
434
442
|
return true;
|
|
435
443
|
} catch (error) {
|
|
436
|
-
throw new Error(`Send data error: ${error
|
|
444
|
+
throw new Error(`Send data error: ${error}`);
|
|
437
445
|
};
|
|
438
446
|
};
|
|
439
447
|
|
package/src/melcloudatw.js
CHANGED
|
@@ -49,7 +49,7 @@ class MelCloudAtw extends EventEmitter {
|
|
|
49
49
|
|
|
50
50
|
if (!Array.isArray(devicesData)) {
|
|
51
51
|
this.emit('warn', `Device data not found`);
|
|
52
|
-
return
|
|
52
|
+
return null;
|
|
53
53
|
}
|
|
54
54
|
const deviceData = devicesData.find(device => device.DeviceID === this.deviceId);
|
|
55
55
|
const debug = this.enableDebugMode ? this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`) : false;
|
|
@@ -420,17 +420,25 @@ class MelCloudAtw extends EventEmitter {
|
|
|
420
420
|
|
|
421
421
|
return deviceData;
|
|
422
422
|
} catch (error) {
|
|
423
|
-
throw new Error(`Check state error: ${error
|
|
423
|
+
throw new Error(`Check state error: ${error}`);
|
|
424
424
|
};
|
|
425
425
|
};
|
|
426
426
|
|
|
427
427
|
async readData(path) {
|
|
428
428
|
try {
|
|
429
429
|
const savedData = await fsPromises.readFile(path)
|
|
430
|
-
|
|
431
|
-
|
|
430
|
+
if (savedData.trim().length === 0) {
|
|
431
|
+
return null;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
try {
|
|
435
|
+
const data = JSON.parse(savedData);
|
|
436
|
+
return data;
|
|
437
|
+
} catch (error) {
|
|
438
|
+
throw new Error(`Parse JSON error: ${error}`);
|
|
439
|
+
}
|
|
432
440
|
} catch (error) {
|
|
433
|
-
throw new Error(`Read data error: ${error
|
|
441
|
+
throw new Error(`Read data error: ${error}`);
|
|
434
442
|
}
|
|
435
443
|
}
|
|
436
444
|
|
|
@@ -478,7 +486,7 @@ class MelCloudAtw extends EventEmitter {
|
|
|
478
486
|
this.updateData(deviceData);
|
|
479
487
|
return true;
|
|
480
488
|
} catch (error) {
|
|
481
|
-
throw new Error(`Send data error: ${error
|
|
489
|
+
throw new Error(`Send data error: ${error}`);
|
|
482
490
|
};
|
|
483
491
|
};
|
|
484
492
|
|
package/src/melclouderv.js
CHANGED
|
@@ -49,7 +49,7 @@ class MelCloudErv extends EventEmitter {
|
|
|
49
49
|
|
|
50
50
|
if (!Array.isArray(devicesData)) {
|
|
51
51
|
this.emit('warn', `Device data not found`);
|
|
52
|
-
return
|
|
52
|
+
return null;
|
|
53
53
|
}
|
|
54
54
|
const deviceData = devicesData.find(device => device.DeviceID === this.deviceId);
|
|
55
55
|
const debug = this.enableDebugMode ? this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`) : false;
|
|
@@ -344,17 +344,25 @@ class MelCloudErv extends EventEmitter {
|
|
|
344
344
|
|
|
345
345
|
return deviceData;
|
|
346
346
|
} catch (error) {
|
|
347
|
-
throw new Error(`Check state error: ${error
|
|
347
|
+
throw new Error(`Check state error: ${error}`);
|
|
348
348
|
};
|
|
349
349
|
};
|
|
350
350
|
|
|
351
351
|
async readData(path) {
|
|
352
352
|
try {
|
|
353
353
|
const savedData = await fsPromises.readFile(path)
|
|
354
|
-
|
|
355
|
-
|
|
354
|
+
if (savedData.trim().length === 0) {
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
try {
|
|
359
|
+
const data = JSON.parse(savedData);
|
|
360
|
+
return data;
|
|
361
|
+
} catch (error) {
|
|
362
|
+
throw new Error(`Parse JSON error: ${error}`);
|
|
363
|
+
}
|
|
356
364
|
} catch (error) {
|
|
357
|
-
throw new Error(`Read data error: ${error
|
|
365
|
+
throw new Error(`Read data error: ${error}`);
|
|
358
366
|
}
|
|
359
367
|
}
|
|
360
368
|
|
|
@@ -404,7 +412,7 @@ class MelCloudErv extends EventEmitter {
|
|
|
404
412
|
this.updateData(deviceData);
|
|
405
413
|
return true;
|
|
406
414
|
} catch (error) {
|
|
407
|
-
throw new Error(`Send data error: ${error
|
|
415
|
+
throw new Error(`Send data error: ${error}`);
|
|
408
416
|
};
|
|
409
417
|
};
|
|
410
418
|
|