homebridge-melcloud-control 4.5.5-beta.5 → 4.5.5-beta.7

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
@@ -22,6 +22,15 @@ 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.5.5] - (20.12.2025)
26
+
27
+ ## Changes
28
+
29
+ - fix characteristics warning in Thermostat mode if frost protection active
30
+ - config schema updated
31
+ - redme updated
32
+ - cleanup
33
+
25
34
  # [4.5.4] - (19.12.2025)
26
35
 
27
36
  ## Changes
@@ -18,9 +18,9 @@
18
18
  <form id="configForm">
19
19
  <div class="text-center">
20
20
  <label id="accountName" class="fw-bold" style="font-size: 23px;">Account</label><br>
21
- <label id="info" class="d-block" style="font-size: 14px;"></label>
22
- <label id="info1" class="d-block" style="font-size: 12px;"></label>
23
- <label id="info2" class="d-block" style="font-size: 12px;"></label>
21
+ <label id="info" class="d-block" style="font-size: 15px;"></label>
22
+ <label id="info1" class="d-block" style="font-size: 13px;"></label>
23
+ <label id="info2" class="d-block" style="font-size: 13px;"></label>
24
24
  </div>
25
25
 
26
26
  <div class="mb-2">
@@ -282,10 +282,10 @@
282
282
  account.atwDevices = (account.atwDevices ?? []).filter(d => String(d.id) !== '0');
283
283
  account.ervDevices = (account.ervDevices ?? []).filter(d => String(d.id) !== '0');
284
284
 
285
- const removedFromConfigAta = removeStaleEntities(account.ataDevices, devicesInMelCloudByType.ata, d => d.id, d => d.DeviceID);
286
- const removedFromConfigAtw = removeStaleEntities(account.atwDevices, devicesInMelCloudByType.atw, d => d.id, d => d.DeviceID);
287
- const removedFromConfigErv = removeStaleEntities(account.ervDevices, devicesInMelCloudByType.erv, d => d.id, d => d.DeviceID);
288
- const removedFromConfig = { presets: [], schedules: [], scenes: [] };
285
+ const removedFromConfig = { ata: [], atw: [], erv: [], presets: [], schedules: [], scenes: [] };
286
+ removedFromConfig.ata = removeStaleEntities(account.ataDevices, devicesInMelCloudByType.ata, d => d.id, d => d.DeviceID);
287
+ removedFromConfig.atw = removeStaleEntities(account.atwDevices, devicesInMelCloudByType.atw, d => d.id, d => d.DeviceID);
288
+ removedFromConfig.erv = removeStaleEntities(account.ervDevices, devicesInMelCloudByType.erv, d => d.id, d => d.DeviceID);
289
289
 
290
290
  // Map UnitId → Scenes
291
291
  const unitIdToScenes = mapUnitIdToScenes(scenesInMelCloud);
@@ -386,27 +386,26 @@
386
386
  const newPresetsCount = newInMelCloud.ataPresets.length + newInMelCloud.atwPresets.length + newInMelCloud.ervPresets.length;
387
387
  const newSchedulesCount = newInMelCloud.ataSchedules.length + newInMelCloud.atwSchedules.length + newInMelCloud.ervSchedules.length;
388
388
  const newScenesCount = newInMelCloud.ataScenes.length + newInMelCloud.atwScenes.length + newInMelCloud.ervScenes.length;
389
- const removedDevicesCount = removedFromConfigAta.length + removedFromConfigAtw.length + removedFromConfigErv.length;
389
+ const removedDevicesCount = removedFromConfig.ata.length + removedFromConfig.atw.length + removedFromConfig.erv.length;
390
390
  const removedPresetsCount = removedFromConfig.presets.length;
391
391
  const removedSchedulesCount = removedFromConfig.schedules.length;
392
392
  const removedScenesCount = removedFromConfig.scenes.length;
393
393
 
394
394
  if (!newDevicesCount && !newPresetsCount && !newSchedulesCount && !newScenesCount && !removedDevicesCount && !removedPresetsCount && !removedSchedulesCount && !removedScenesCount) {
395
395
  updateInfo('info', 'No changes detected.', 'white');
396
- } else {
397
- if (newDevicesCount || newPresetsCount || newSchedulesCount || newScenesCount) {
398
- updateInfo('info', `Found new ${newDevicesCount ? `devices:` : ''} ${newInMelCloud.ata.length ? `ATA: ${newInMelCloud.ata.length}` : ''}${newInMelCloud.atw.length ? `, ATW: ${newInMelCloud.atw.length}` : ''}${newInMelCloud.erv.length ? `, ERV: ${newInMelCloud.erv.length},` : ''}${newPresetsCount ? `, presets:` : ''} ${newInMelCloud.ataPresets.length ? `ATA: ${newInMelCloud.ataPresets.length}` : ''}${newInMelCloud.atwPresets.length ? `, ATW: ${newInMelCloud.atwPresets.length}` : ''}${newInMelCloud.ervPresets.length ? `, ERV: ${newInMelCloud.ervPresets.length}` : ''}${newSchedulesCount ? `, schedules:` : ''} ${newInMelCloud.ataSchedules.length ? `ATA: ${newInMelCloud.ataSchedules.length}` : ''}${newInMelCloud.atwSchedules.length ? `, ATW: ${newInMelCloud.atwSchedules.length}` : ''}${newInMelCloud.ervSchedules.length ? `, ERV: ${newInMelCloud.ervSchedules.length}` : ''}${newScenesCount ? `, scenes:` : ''} ${newInMelCloud.ataScenes.length ? `,ATA: ${newInMelCloud.ataScenes.length}` : ''}${newInMelCloud.atwScenes.length ? `, ATW: ${newInMelCloud.atwScenes.length}` : ''}${newInMelCloud.ervScenes.length ? `, ERV: ${newInMelCloud.ervScenes.length}` : ''}.`, 'green');
399
- }
400
- if (removedDevicesCount || removedPresetsCount || removedSchedulesCount || removedScenesCount) {
401
- updateInfo('info1', `Removed old ${removedDevicesCount ? `devices:` : ''} ${removedFromConfigAta.length ? `ATA: ${removedFromConfigAta.length}` : ''}${removedFromConfigAtw.length ? `, ATW: ${removedFromConfigAtw.length}` : ''}${removedFromConfigErv.length ? `, ERV: ${removedFromConfigErv.length}` : ''}${removedPresetsCount ? `, presets: ${removedPresetsCount}` : ''}${removedSchedulesCount ? `, schedules: ${removedSchedulesCount}` : ''}${removedScenesCount ? `, scenes: ${removedScenesCount}` : ''}.`, 'orange');
402
- }
396
+ }
397
+ if (newDevicesCount || newPresetsCount || newSchedulesCount || newScenesCount) {
398
+ updateInfo('info', `Found new ${newDevicesCount ? `devices:` : ''} ${newInMelCloud.ata.length ? `ATA: ${newInMelCloud.ata.length},` : ''} ${newInMelCloud.atw.length ? `ATW: ${newInMelCloud.atw.length},` : ''} ${newInMelCloud.erv.length ? `ERV: ${newInMelCloud.erv.length},` : ''} ${newPresetsCount ? `presets:` : ''} ${newInMelCloud.ataPresets.length ? `ATA: ${newInMelCloud.ataPresets.length},` : ''} ${newInMelCloud.atwPresets.length ? `ATW: ${newInMelCloud.atwPresets.length}, ` : ''} ${newInMelCloud.ervPresets.length ? `ERV: ${newInMelCloud.ervPresets.length},` : ''} ${newSchedulesCount ? `schedules:` : ''} ${newInMelCloud.ataSchedules.length ? `ATA: ${newInMelCloud.ataSchedules.length},` : ''} ${newInMelCloud.atwSchedules.length ? `ATW: ${newInMelCloud.atwSchedules.length},` : ''} ${newInMelCloud.ervSchedules.length ? `ERV: ${newInMelCloud.ervSchedules.length}, ` : ''} ${newScenesCount ? `scenes:` : ''} ${newInMelCloud.ataScenes.length ? `ATA: ${newInMelCloud.ataScenes.length},` : ''} ${newInMelCloud.atwScenes.length ? `ATW: ${newInMelCloud.atwScenes.length},` : ''} ${newInMelCloud.ervScenes.length ? `ERV: ${newInMelCloud.ervScenes.length}` : ''}.`, 'green');
399
+ }
400
+ if (removedDevicesCount || removedPresetsCount || removedSchedulesCount || removedScenesCount) {
401
+ updateInfo('info1', `Removed old ${removedDevicesCount ? `devices:` : ''} ${removedFromConfig.ata.length ? `ATA: ${removedFromConfig.ata.length},` : ''} ${removedFromConfig.atw.length ? `ATW: ${removedFromConfig.atw.length},` : ''} ${removedFromConfig.erv.length ? `ERV: ${removedFromConfig.erv.length},` : ''} ${removedPresetsCount ? `presets: ${removedPresetsCount},` : ''} ${removedSchedulesCount ? `schedules: ${removedSchedulesCount},` : ''} ${removedScenesCount ? `scenes: ${removedScenesCount}` : ''}.`, 'orange');
403
402
  }
404
403
 
405
404
  await homebridge.updatePluginConfig(pluginConfig);
406
405
  await homebridge.savePluginConfig(pluginConfig);
407
-
408
406
  } catch (error) {
409
- updateInfo('info', `Prepare config error ${JSON.stringify(error)}`, 'red');
407
+ updateInfo('info', `Prepare config error`, "yellow");
408
+ updateInfo('info1', `Error: ${JSON.stringify(error)}`, "red");
410
409
  } finally {
411
410
  document.getElementById('logIn').className = "btn btn-secondary";
412
411
  homebridge.hideSpinner();
@@ -27,9 +27,9 @@ class PluginUiServer extends HomebridgePluginUiServer {
27
27
  return devicesList;
28
28
  } catch (error) {
29
29
  throw new Error(error);
30
- };
31
- };
32
- };
30
+ }
31
+ }
32
+ }
33
33
 
34
34
  (() => {
35
35
  return new PluginUiServer();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.5.5-beta.5",
4
+ "version": "4.5.5-beta.7",
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
@@ -1459,8 +1459,8 @@ class DeviceAta extends EventEmitter {
1459
1459
  return accessory;
1460
1460
  } catch (error) {
1461
1461
  throw new Error(`Prepare accessory error: ${error}`);
1462
- };
1463
- };
1462
+ }
1463
+ }
1464
1464
 
1465
1465
  //start
1466
1466
  async start() {