homebridge-melcloud-control 4.1.2-beta.72 → 4.1.2-beta.74
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/homebridge-ui/public/index.html +16 -16
- package/package.json +1 -1
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
|
|
213
213
|
for (let i = configDevices.length - 1; i >= 0; i--) {
|
|
214
214
|
const device = configDevices[i];
|
|
215
|
-
if (
|
|
215
|
+
if (!melcloudIds.includes(device.id)) {
|
|
216
216
|
removedDevices.push(device);
|
|
217
217
|
configDevices.splice(i, 1);
|
|
218
218
|
}
|
|
@@ -230,6 +230,7 @@
|
|
|
230
230
|
|
|
231
231
|
document.getElementById('logIn').addEventListener('click', async () => {
|
|
232
232
|
await homebridge.updatePluginConfig(pluginConfig);
|
|
233
|
+
await homebridge.savePluginConfig(pluginConfig);
|
|
233
234
|
|
|
234
235
|
document.getElementById(`logIn`).className = "btn btn-primary";
|
|
235
236
|
updateInfo('info', '', 'white');
|
|
@@ -248,21 +249,21 @@
|
|
|
248
249
|
|
|
249
250
|
// Initialize devices arrays
|
|
250
251
|
const newDevices = { ata: [], ataPresets: [], atw: [], atwPresets: [], erv: [], ervPresets: [] };
|
|
251
|
-
const
|
|
252
|
+
const melcloudDevices = { ata: [], atw: [], erv: [] };
|
|
252
253
|
|
|
253
254
|
response.Devices.forEach(d => {
|
|
254
|
-
if (d.Type === 0)
|
|
255
|
-
if (d.Type === 1)
|
|
256
|
-
if (d.Type === 3)
|
|
255
|
+
if (d.Type === 0) melcloudDevices.ata.push(d);
|
|
256
|
+
if (d.Type === 1) melcloudDevices.atw.push(d);
|
|
257
|
+
if (d.Type === 3) melcloudDevices.erv.push(d);
|
|
257
258
|
});
|
|
258
259
|
|
|
259
260
|
account.ataDevices = (account.ataDevices || []).filter(d => String(d.id) !== '0');
|
|
260
261
|
account.atwDevices = (account.atwDevices || []).filter(d => String(d.id) !== '0');
|
|
261
262
|
account.ervDevices = (account.ervDevices || []).filter(d => String(d.id) !== '0');
|
|
262
263
|
|
|
263
|
-
const removedAta = removeStaleDevices(account.ataDevices,
|
|
264
|
-
const removedAtw = removeStaleDevices(account.atwDevices,
|
|
265
|
-
const removedErv = removeStaleDevices(account.ervDevices,
|
|
264
|
+
const removedAta = removeStaleDevices(account.ataDevices, melcloudDevices.ata);
|
|
265
|
+
const removedAtw = removeStaleDevices(account.atwDevices, melcloudDevices.atw);
|
|
266
|
+
const removedErv = removeStaleDevices(account.ervDevices, melcloudDevices.erv);
|
|
266
267
|
|
|
267
268
|
const handleDevices = (devicesInMelCloud, devicesInConfig, typeString, newArr, newPresets) => {
|
|
268
269
|
try {
|
|
@@ -274,8 +275,7 @@
|
|
|
274
275
|
const typeKey1 = isMelcloud ? 'presets' : 'schedules';
|
|
275
276
|
|
|
276
277
|
devicesInMelCloud.forEach(device => {
|
|
277
|
-
|
|
278
|
-
let deviceInConfig = configDevicesMap.get(deviceId);
|
|
278
|
+
let deviceInConfig = configDevicesMap.get(device.DeviceID);
|
|
279
279
|
|
|
280
280
|
// === Create device if missing ===
|
|
281
281
|
if (!deviceInConfig) {
|
|
@@ -291,15 +291,15 @@
|
|
|
291
291
|
};
|
|
292
292
|
devicesInConfig.push(deviceInConfig);
|
|
293
293
|
newArr.push(deviceInConfig);
|
|
294
|
-
configDevicesMap.set(
|
|
294
|
+
configDevicesMap.set(device.DeviceID, deviceInConfig);
|
|
295
295
|
}
|
|
296
296
|
|
|
297
297
|
// === Process presets/schedules ===
|
|
298
|
-
const
|
|
298
|
+
const presetsInMelcloud = device[typeKey] || [];
|
|
299
299
|
const presetsInConfig = (deviceInConfig[typeKey1] || []).filter(p => String(p.id) !== '0');
|
|
300
300
|
const presetIds = new Set(presetsInConfig.map(p => String(p.id)));
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
presetsInMelcloud.forEach((preset, index) => {
|
|
303
303
|
const presetId = String(preset[idKey]);
|
|
304
304
|
if (!presetIds.has(presetId)) {
|
|
305
305
|
const presetObj = {
|
|
@@ -322,9 +322,9 @@
|
|
|
322
322
|
}
|
|
323
323
|
};
|
|
324
324
|
|
|
325
|
-
account.ataDevices = handleDevices(
|
|
326
|
-
account.atwDevices = handleDevices(
|
|
327
|
-
account.ervDevices = handleDevices(
|
|
325
|
+
account.ataDevices = handleDevices(melcloudDevices.ata, account.ataDevices, "Air Conditioner", newDevices.ata, newDevices.ataPresets);
|
|
326
|
+
account.atwDevices = handleDevices(melcloudDevices.atw, account.atwDevices, "Heat Pump", newDevices.atw, newDevices.atwPresets);
|
|
327
|
+
account.ervDevices = handleDevices(melcloudDevices.erv, account.ervDevices, "Energy Recovery Ventilation", newDevices.erv, newDevices.ervPresets);
|
|
328
328
|
|
|
329
329
|
const newDevicesCount = newDevices.ata.length + newDevices.atw.length + newDevices.erv.length;
|
|
330
330
|
const newPresetsCount = newDevices.ataPresets.length + newDevices.atwPresets.length + newDevices.ervPresets.length;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "4.1.2-beta.
|
|
4
|
+
"version": "4.1.2-beta.74",
|
|
5
5
|
"description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "grzegorz914",
|