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 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.8",
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.message || 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 false;
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.message || 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 false;
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.message || 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 false;
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 false;
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.message || 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 false;
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 false;
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.message || 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.message || 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.message || error}`);
206
+ throw new Error(`Send data error: ${error}`);
207
207
  };
208
208
  };
209
209
  };
@@ -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 false;
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.message || 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
- const data = savedData.length > 0 ? JSON.parse(savedData) : false;
368
- return data;
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.message || 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.message || error}`);
444
+ throw new Error(`Send data error: ${error}`);
437
445
  };
438
446
  };
439
447
 
@@ -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 false;
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.message || 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
- const data = savedData.length > 0 ? JSON.parse(savedData) : false;
431
- return data;
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.message || 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.message || error}`);
489
+ throw new Error(`Send data error: ${error}`);
482
490
  };
483
491
  };
484
492
 
@@ -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 false;
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.message || 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
- const data = savedData.length > 0 ? JSON.parse(savedData) : false;
355
- return data;;
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.message || 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.message || error}`);
415
+ throw new Error(`Send data error: ${error}`);
408
416
  };
409
417
  };
410
418