homebridge-melcloud-control 4.5.5-beta.6 → 4.5.5-beta.8

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.
@@ -139,8 +139,6 @@
139
139
  container.appendChild(button);
140
140
 
141
141
  button.addEventListener('click', async () => {
142
- this.account = account;
143
-
144
142
  // Zmieniamy klasę wszystkich przycisków
145
143
  accounts.forEach((_, j) => {
146
144
  document.getElementById(`button${j}`).className = (j === i ? 'btn btn-primary' : 'btn btn-secondary');
@@ -157,6 +155,8 @@
157
155
  formElements.language.value = account.language || '0';
158
156
  formElements.accountType.value = account.type || 'disabled';
159
157
  formElements.logIn.disabled = !(account.name && account.user && account.passwd && account.language && account.type);
158
+
159
+ this.account = account;
160
160
  });
161
161
  });
162
162
 
@@ -249,19 +249,19 @@
249
249
 
250
250
  // Login & Sync Logic
251
251
  document.getElementById('logIn').addEventListener('click', async () => {
252
- homebridge.showSpinner();
253
252
  document.getElementById('logIn').className = "btn btn-primary";
254
- updateInfo('info', '', 'white');
253
+ updateInfo('info', 'Connecting to MELCloud', 'white');
255
254
  updateInfo('info1', '', 'white');
256
255
  updateInfo('info2', '', 'white');
256
+ homebridge.showSpinner();
257
257
 
258
258
  try {
259
259
  const account = this.account;
260
260
  const response = await homebridge.request('/connect', account);
261
261
 
262
262
  if (!response.State) {
263
- homebridge.hideSpinner();
264
263
  updateInfo('info', response.Info, 'red');
264
+ homebridge.hideSpinner();
265
265
  return;
266
266
  }
267
267
 
@@ -271,21 +271,22 @@
271
271
  const scenesInMelCloud = response.Scenes ?? [];
272
272
 
273
273
  // Split devices by type
274
- response.Devices.forEach(device => {
274
+ const devices = response.Devices;
275
+ for (const device of devices) {
275
276
  if (device.Type === 0) devicesInMelCloudByType.ata.push(device);
276
277
  if (device.Type === 1) devicesInMelCloudByType.atw.push(device);
277
278
  if (device.Type === 3) devicesInMelCloudByType.erv.push(device);
278
- });
279
+ };
279
280
 
280
281
  // Clean up local config
281
282
  account.ataDevices = (account.ataDevices ?? []).filter(d => String(d.id) !== '0');
282
283
  account.atwDevices = (account.atwDevices ?? []).filter(d => String(d.id) !== '0');
283
284
  account.ervDevices = (account.ervDevices ?? []).filter(d => String(d.id) !== '0');
284
285
 
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: [] };
286
+ const removedFromConfig = { ata: [], atw: [], erv: [], presets: [], schedules: [], scenes: [] };
287
+ removedFromConfig.ata = removeStaleEntities(account.ataDevices, devicesInMelCloudByType.ata, d => d.id, d => d.DeviceID);
288
+ removedFromConfig.atw = removeStaleEntities(account.atwDevices, devicesInMelCloudByType.atw, d => d.id, d => d.DeviceID);
289
+ removedFromConfig.erv = removeStaleEntities(account.ervDevices, devicesInMelCloudByType.erv, d => d.id, d => d.DeviceID);
289
290
 
290
291
  // Map UnitId → Scenes
291
292
  const unitIdToScenes = mapUnitIdToScenes(scenesInMelCloud);
@@ -386,31 +387,31 @@
386
387
  const newPresetsCount = newInMelCloud.ataPresets.length + newInMelCloud.atwPresets.length + newInMelCloud.ervPresets.length;
387
388
  const newSchedulesCount = newInMelCloud.ataSchedules.length + newInMelCloud.atwSchedules.length + newInMelCloud.ervSchedules.length;
388
389
  const newScenesCount = newInMelCloud.ataScenes.length + newInMelCloud.atwScenes.length + newInMelCloud.ervScenes.length;
389
- const removedDevicesCount = removedFromConfigAta.length + removedFromConfigAtw.length + removedFromConfigErv.length;
390
+ const removedDevicesCount = removedFromConfig.ata.length + removedFromConfig.atw.length + removedFromConfig.erv.length;
390
391
  const removedPresetsCount = removedFromConfig.presets.length;
391
392
  const removedSchedulesCount = removedFromConfig.schedules.length;
392
393
  const removedScenesCount = removedFromConfig.scenes.length;
393
394
 
394
395
  if (!newDevicesCount && !newPresetsCount && !newSchedulesCount && !newScenesCount && !removedDevicesCount && !removedPresetsCount && !removedSchedulesCount && !removedScenesCount) {
395
396
  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
- }
397
+ }
398
+ if (newDevicesCount || newPresetsCount || newSchedulesCount || newScenesCount) {
399
+ 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');
400
+ }
401
+ if (removedDevicesCount || removedPresetsCount || removedSchedulesCount || removedScenesCount) {
402
+ 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
403
  }
404
404
 
405
405
  await homebridge.updatePluginConfig(pluginConfig);
406
406
  await homebridge.savePluginConfig(pluginConfig);
407
-
408
407
  } catch (error) {
409
- updateInfo('info', `Prepare config error ${JSON.stringify(error)}`, 'red');
408
+ updateInfo('info', `Prepare config error`, "yellow");
409
+ updateInfo('info1', `Error: ${JSON.stringify(error)}`, "red");
410
410
  } finally {
411
411
  document.getElementById('logIn').className = "btn btn-secondary";
412
412
  homebridge.hideSpinner();
413
413
  }
414
414
  });
415
+
415
416
  })();
416
417
  </script>
@@ -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.6",
4
+ "version": "4.5.5-beta.8",
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() {