homebridge-melcloud-control 4.3.8 → 4.3.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.
@@ -230,11 +230,12 @@
230
230
  }
231
231
 
232
232
  document.getElementById('logIn').addEventListener('click', async () => {
233
+ homebridge.showSpinner();
234
+
233
235
  document.getElementById(`logIn`).className = "btn btn-primary";
234
236
  updateInfo('info', '', 'white');
235
237
  updateInfo('info1', '', 'white');
236
238
  updateInfo('info2', '', 'white');
237
- homebridge.showSpinner();
238
239
 
239
240
  try {
240
241
  const account = this.account;
@@ -246,32 +247,27 @@
246
247
  }
247
248
 
248
249
  // Initialize devices arrays
249
- const newDevices = { ata: [], ataPresets: [], ataSchedules: [], atw: [], atwPresets: [], atwSchedules: [], erv: [], ervPresets: [], ervSchedules: [], scenes: [] };
250
- const devicesByType = { ata: [], atw: [], erv: [] };
250
+ const newInMelCloud = { ata: [], ataPresets: [], ataSchedules: [], atw: [], atwPresets: [], atwSchedules: [], erv: [], ervPresets: [], ervSchedules: [], scenes: [] };
251
+ const devicesInMelCloudByType = { ata: [], atw: [], erv: [] };
252
+ const scenesInMelCloud = response.Scenes ?? []
251
253
 
252
254
  response.Devices.forEach(device => {
253
- device.Scenes = response.Scenes ?? [];
254
- if (device.Type === 0) devicesByType.ata.push(device);
255
- if (device.Type === 1) devicesByType.atw.push(device);
256
- if (device.Type === 3) devicesByType.erv.push(device);
255
+ if (device.Type === 0) devicesInMelCloudByType.ata.push(device);
256
+ if (device.Type === 1) devicesInMelCloudByType.atw.push(device);
257
+ if (device.Type === 3) devicesInMelCloudByType.erv.push(device);
257
258
  });
258
259
 
259
260
  account.ataDevices ??= [];
260
261
  account.atwDevices ??= [];
261
262
  account.ervDevices ??= [];
262
263
 
263
- const removedAta = removeStaleDevices(account.ataDevices, devicesByType.ata);
264
- const removedAtw = removeStaleDevices(account.atwDevices, devicesByType.atw);
265
- const removedErv = removeStaleDevices(account.ervDevices, devicesByType.erv);
264
+ const removedAta = removeStaleDevices(account.ataDevices, devicesInMelCloudByType.ata);
265
+ const removedAtw = removeStaleDevices(account.atwDevices, devicesInMelCloudByType.atw);
266
+ const removedErv = removeStaleDevices(account.ervDevices, devicesInMelCloudByType.erv);
266
267
 
267
- const handleDevices = (devicesInMelCloud, devicesInConfig, typeString, newArr, newPresets, newSchedules, newScenes) => {
268
+ const handleDevices = (devicesInMelCloud, devicesInConfig, typeString, newDevices, newPresets, newSchedules, newScenes) => {
268
269
  try {
269
270
  const configDevicesMap = new Map(devicesInConfig.map(dev => [String(dev.id), dev]));
270
- const isMelcloud = account.type === 'melcloud';
271
-
272
- const idKey = isMelcloud ? 'ID' : 'Id';
273
- const typeKey = isMelcloud ? 'Presets' : 'Schedule';
274
- const typeKey1 = isMelcloud ? 'presets' : 'schedules';
275
271
 
276
272
  devicesInMelCloud.forEach(device => {
277
273
  const deviceId = String(device.DeviceID);
@@ -291,7 +287,7 @@
291
287
  buttonsSensors: []
292
288
  };
293
289
  devicesInConfig.push(deviceInConfig);
294
- newArr.push(deviceInConfig);
290
+ newDevices.push(deviceInConfig);
295
291
  configDevicesMap.set(deviceId, deviceInConfig);
296
292
  }
297
293
 
@@ -369,7 +365,6 @@
369
365
  }
370
366
 
371
367
  // === Process scenes ===
372
- const scenesInMelCloud = device.Scenes || [];
373
368
  const scenesInConfig = deviceInConfig.scenes || [];
374
369
  const sceneIds = new Set(scenesInConfig.map(s => String(s.id)));
375
370
 
@@ -411,25 +406,25 @@
411
406
  }
412
407
  };
413
408
 
414
- account.ataDevices = handleDevices(devicesByType.ata, account.ataDevices, "Air Conditioner", newDevices.ata, newDevices.ataPresets, newDevices.ataSchedules, newDevices.scenes);
415
- account.atwDevices = handleDevices(devicesByType.atw, account.atwDevices, "Heat Pump", newDevices.atw, newDevices.atwPresets, newDevices.atwSchedules, newDevices.scenes);
416
- account.ervDevices = handleDevices(devicesByType.erv, account.ervDevices, "Energy Recovery Ventilation", newDevices.erv, newDevices.ervPresets, newDevices.ervSchedules, newDevices.scenes);
409
+ account.ataDevices = handleDevices(devicesInMelCloudByType.ata, account.ataDevices, "Air Conditioner", newInMelCloud.ata, newInMelCloud.ataPresets, newInMelCloud.ataSchedules, newInMelCloud.scenes);
410
+ account.atwDevices = handleDevices(devicesInMelCloudByType.atw, account.atwDevices, "Heat Pump", newInMelCloud.atw, newInMelCloud.atwPresets, newInMelCloud.atwSchedules, newInMelCloud.scenes);
411
+ account.ervDevices = handleDevices(devicesInMelCloudByType.erv, account.ervDevices, "Energy Recovery Ventilation", newInMelCloud.erv, newInMelCloud.ervPresets, newInMelCloud.ervSchedules, newInMelCloud.scenes);
417
412
 
418
- const newDevicesCount = newDevices.ata.length + newDevices.atw.length + newDevices.erv.length;
419
- const newPresetsCount = newDevices.ataPresets.length + newDevices.atwPresets.length + newDevices.ervPresets.length;
420
- const newSchedulesCount = newDevices.ataSchedules.length + newDevices.atwSchedules.length + newDevices.ervSchedules.length;
421
- const newScenesCount = newDevices.scenes.length;
413
+ const newDevicesCount = newInMelCloud.ata.length + newInMelCloud.atw.length + newInMelCloud.erv.length;
414
+ const newPresetsCount = newInMelCloud.ataPresets.length + newInMelCloud.atwPresets.length + newInMelCloud.ervPresets.length;
415
+ const newSchedulesCount = newInMelCloud.ataSchedules.length + newInMelCloud.atwSchedules.length + newInMelCloud.ervSchedules.length;
416
+ const newScenesCount = newInMelCloud.scenes.length;
422
417
  const removedDevicesCount = removedAta.length + removedAtw.length + removedErv.length;
423
418
 
424
419
  if (!newDevicesCount && !newPresetsCount && !newSchedulesCount && !newScenesCount && !removedDevicesCount) {
425
420
  updateInfo('info', 'No changes detected.', 'white');
426
421
  } else {
427
422
  if (newDevicesCount)
428
- updateInfo('info', `Found new devices: ${newDevices.ata.length ? `ATA: ${newDevices.ata.length},` : ''} ${newDevices.atw.length ? `ATW: ${newDevices.atw.length},` : ''} ${newDevices.erv.length ? `ERV: ${newDevices.erv.length},` : ''}.`, 'green');
423
+ updateInfo('info', `Found new devices: ${newInMelCloud.ata.length ? `ATA: ${newInMelCloud.ata.length},` : ''} ${newInMelCloud.atw.length ? `ATW: ${newInMelCloud.atw.length},` : ''} ${newInMelCloud.erv.length ? `ERV: ${newInMelCloud.erv.length},` : ''}.`, 'green');
429
424
  if (newPresetsCount)
430
- updateInfo('info1', `Found new presets: ${newDevices.ataPresets.length ? `ATA: ${newDevices.ataPresets.length},` : ''} ${newDevices.atwPresets.length ? `ATW: ${newDevices.atwPresets.length},` : ''} ${newDevices.ervPresets.length ? `ERV: ${newDevices.ervPresets.length}` : ''}.`, 'green');
425
+ updateInfo('info1', `Found new presets: ${newInMelCloud.ataPresets.length ? `ATA: ${newInMelCloud.ataPresets.length},` : ''} ${newInMelCloud.atwPresets.length ? `ATW: ${newInMelCloud.atwPresets.length},` : ''} ${newInMelCloud.ervPresets.length ? `ERV: ${newInMelCloud.ervPresets.length}` : ''}.`, 'green');
431
426
  if (newScenesCount || newSchedulesCount)
432
- updateInfo('info1', `Found new ${newSchedulesCount ? `schedules:` : ''} ${newDevices.ataSchedules.length ? `ATA: ${newDevices.ataSchedules.length},` : ''} ${newDevices.atwSchedules.length ? `ATW: ${newDevices.atwSchedules.length},` : ''} ${newDevices.ervSchedules.length ? `ERV: ${newDevices.ervSchedules.length},` : ''} ${newScenesCount ? `scenes: ${newScenesCount}` : ''}.`, 'green');
427
+ updateInfo('info1', `Found new ${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: ${newScenesCount}` : ''}.`, 'green');
433
428
  if (removedDevicesCount)
434
429
  updateInfo('info2', `Removed devices: ${removedAta.length ? `ATA: ${removedAta.length},` : ''} ${removedAtw.length ? `ATW: ${removedAtw.length},` : ''} ${removedErv.length ? `ERV: ${removedErv.length}` : ''}.`, 'orange');
435
430
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.3.8",
4
+ "version": "4.3.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",
@@ -264,7 +264,7 @@ class MelCloudHome extends EventEmitter {
264
264
  }
265
265
 
266
266
  devicesList.State = true;
267
- devicesList.Info = `Found ${devicesCount} devices and ${scenes.length} scenes`;
267
+ devicesList.Info = `Found ${devicesCount} devices ${scenes.length > 0 ? `and ${scenes.length} scenes` : ''}`;
268
268
  devicesList.Devices = devices;
269
269
  devicesList.Scenes = scenes;
270
270
  devicesList.Headers = this.headers;