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 (!
|
|
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.
|
|
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",
|