homebridge-melcloud-control 4.4.1-beta.43 → 4.4.1-beta.45

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.
@@ -272,7 +272,7 @@
272
272
  const scenesInMelCloud = response.Scenes ?? [];
273
273
 
274
274
  // Split devices by type
275
- response.Devices ?? [].forEach(device => {
275
+ (response.Devices ?? []).forEach(device => {
276
276
  if (device.Type === 0) devicesInMelCloudByType.ata.push(device);
277
277
  if (device.Type === 1) devicesInMelCloudByType.atw.push(device);
278
278
  if (device.Type === 3) devicesInMelCloudByType.erv.push(device);
@@ -286,6 +286,7 @@
286
286
  const removedFromConfigAta = removeStaleEntities(account.ataDevices, devicesInMelCloudByType.ata, d => d.id, d => d.DeviceID);
287
287
  const removedFromConfigAtw = removeStaleEntities(account.atwDevices, devicesInMelCloudByType.atw, d => d.id, d => d.DeviceID);
288
288
  const removedFromConfigErv = removeStaleEntities(account.ervDevices, devicesInMelCloudByType.erv, d => d.id, d => d.DeviceID);
289
+
289
290
  const removedFromConfig = { ataPresets: [], atwPresets: [], ervPresets: [], ataSchedules: [], atwSchedules: [], ervSchedules: [], scenes: [] };
290
291
 
291
292
  // Map UnitId → Scenes
@@ -295,7 +296,7 @@
295
296
  const handleDevices = (devicesInMelCloud, devicesInConfig, deviceTypeString, newDevices, newPresets, newSchedules, newScenes) => {
296
297
  const configDevicesMap = new Map(devicesInConfig.map(dev => [String(dev.id), dev]));
297
298
 
298
- devicesInMelCloud.forEach(device => {
299
+ (devicesInMelCloud ?? []).forEach(device => {
299
300
  const deviceId = String(device.DeviceID);
300
301
  let deviceInConfig = configDevicesMap.get(deviceId);
301
302
 
@@ -348,15 +349,14 @@
348
349
  }
349
350
  });
350
351
 
351
- // SCENES
352
352
  // SCENES
353
353
  deviceInConfig.scenes = deviceInConfig.scenes ?? [];
354
+ removedFromConfig.scenes.push(...removeStaleEntities(deviceInConfig.scenes, scenesInMelCloud, s => s.id, s => s.Id));
355
+ const sceneIds = new Set(deviceInConfig.scenes.map(s => String(s.id)));
354
356
  const scenesForDevice = unitIdToScenes.get(deviceId) ?? [];
355
- removedFromConfig.scenes.push(...removeStaleEntities(deviceInConfig.scenes, scenesForDevice, s => s.id, s => s.Id));
356
- const existingSceneIds = new Set(deviceInConfig.scenes.map(s => String(s.id)));
357
357
  scenesForDevice.forEach((scene, index) => {
358
358
  const sceneId = String(scene.Id);
359
- if (!existingSceneIds.has(sceneId)) {
359
+ if (!sceneIds.has(sceneId)) {
360
360
  const sceneObj = {
361
361
  id: sceneId,
362
362
  displayType: 0,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.4.1-beta.43",
4
+ "version": "4.4.1-beta.45",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",