homebridge-melcloud-control 4.5.9-beta.3 → 4.5.9-beta.5
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 +3 -9
- package/index.js +10 -19
- package/package.json +1 -1
|
@@ -322,9 +322,7 @@
|
|
|
322
322
|
if (!presetIds.has(presetId)) {
|
|
323
323
|
const presetObj = {
|
|
324
324
|
id: presetId,
|
|
325
|
-
|
|
326
|
-
name: preset.NumberDescription || `Preset ${index}`,
|
|
327
|
-
namePrefix: false
|
|
325
|
+
name: preset.NumberDescription || `Preset ${index}`
|
|
328
326
|
};
|
|
329
327
|
deviceInConfig.presets.push(presetObj);
|
|
330
328
|
newPresets.push(presetObj);
|
|
@@ -344,9 +342,7 @@
|
|
|
344
342
|
if (!scheduleIds.has(scheduleId)) {
|
|
345
343
|
const scheduleObj = {
|
|
346
344
|
id: scheduleId,
|
|
347
|
-
|
|
348
|
-
name: `Schedule ${index}`,
|
|
349
|
-
namePrefix: false
|
|
345
|
+
name: `Schedule ${index}`
|
|
350
346
|
};
|
|
351
347
|
deviceInConfig.schedules.push(scheduleObj);
|
|
352
348
|
newSchedules.push(scheduleObj);
|
|
@@ -363,9 +359,7 @@
|
|
|
363
359
|
if (!sceneIds.has(sceneId)) {
|
|
364
360
|
const sceneObj = {
|
|
365
361
|
id: sceneId,
|
|
366
|
-
|
|
367
|
-
name: scene.Name || `Scene ${index}`,
|
|
368
|
-
namePrefix: false
|
|
362
|
+
name: scene.Name || `Scene ${index}`
|
|
369
363
|
};
|
|
370
364
|
deviceInConfig.scenes.push(sceneObj);
|
|
371
365
|
newScenes.push(sceneObj);
|
package/index.js
CHANGED
|
@@ -115,13 +115,15 @@ class MelCloudPlatform {
|
|
|
115
115
|
//start account impulse generator
|
|
116
116
|
await melcloud.impulseGenerator.state(true, timmers, false);
|
|
117
117
|
|
|
118
|
-
//configured devices
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
const
|
|
118
|
+
//filter configured devices
|
|
119
|
+
const devicesIds = (melcloudDevicesList.Devices ?? []).map(d => String(d.DeviceID));
|
|
120
|
+
const ataDevices = (account.ataDevices || []).filter(d => (d.displayType ?? 0) > 0 && devicesIds.includes(d.id));
|
|
121
|
+
const atwDevices = (account.atwDevices || []).filter(d => (d.displayType ?? 0) > 0 && devicesIds.includes(d.id));
|
|
122
|
+
const ervDevices = (account.ervDevices || []).filter(d => (d.displayType ?? 0) > 0 && devicesIds.includes(d.id));
|
|
122
123
|
const devices = [...ataDevices, ...atwDevices, ...ervDevices];
|
|
123
124
|
if (logLevel.debug) log.info(`${name}, found configured devices ATA: ${ataDevices.length}, ATW: ${atwDevices.length}, ERV: ${ervDevices.length}.`);
|
|
124
125
|
|
|
126
|
+
//loop through devices
|
|
125
127
|
for (const [index, device] of devices.entries()) {
|
|
126
128
|
device.id = String(device.id);
|
|
127
129
|
const deviceName = device.name;
|
|
@@ -129,31 +131,20 @@ class MelCloudPlatform {
|
|
|
129
131
|
const deviceTypeString = DeviceType[device.type];
|
|
130
132
|
const defaultTempsFile = `${prefDir}/${name}_${device.id}_Temps`;
|
|
131
133
|
|
|
132
|
-
//
|
|
133
|
-
const displayType = device.displayType;
|
|
134
|
-
if (!displayType) {
|
|
135
|
-
if (logLevel.warn) log.warn(`${name}, ${deviceTypeString}, ${deviceName}, disabled in configuration, will not be published in the Home app.`);
|
|
136
|
-
continue;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
//chack device from config exist on melcloud
|
|
134
|
+
//device in melcloud
|
|
140
135
|
const deviceInMelCloud = melcloudDevicesList.Devices.find(d => d.DeviceID === device.id);
|
|
141
|
-
if (!deviceInMelCloud) {
|
|
142
|
-
if (logLevel.warn) log.warn(`${name}, ${deviceTypeString}, ${deviceName}, not exist on server, please login to MELCLoud from plugin UI to fix this issue.`);
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
136
|
|
|
146
137
|
//presets
|
|
147
138
|
const presetIds = (deviceInMelCloud.Presets ?? []).map(p => String(p.ID));
|
|
148
|
-
const presets = account.type === 'melcloud' ? (device.presets || []).filter(p => (p.displayType ?? 0) > 0 &&
|
|
139
|
+
const presets = account.type === 'melcloud' ? (device.presets || []).filter(p => (p.displayType ?? 0) > 0 && presetIds.includes(p.id)) : [];
|
|
149
140
|
|
|
150
141
|
//schedules
|
|
151
142
|
const schedulesIds = (deviceInMelCloud.Schedule ?? []).map(s => String(s.Id));
|
|
152
|
-
const schedules = account.type === 'melcloudhome' ? (device.schedules || []).filter(s => (s.displayType ?? 0) > 0 &&
|
|
143
|
+
const schedules = account.type === 'melcloudhome' ? (device.schedules || []).filter(s => (s.displayType ?? 0) > 0 && schedulesIds.includes(s.id)) : [];
|
|
153
144
|
|
|
154
145
|
//scenes
|
|
155
146
|
const scenesIds = (melcloudDevicesList.Scenes ?? []).map(s => String(s.Id));
|
|
156
|
-
const scenes = account.type === 'melcloudhome' ? (device.scenes || []).filter(s => (s.displayType ?? 0) > 0 &&
|
|
147
|
+
const scenes = account.type === 'melcloudhome' ? (device.scenes || []).filter(s => (s.displayType ?? 0) > 0 && scenesIds.includes(s.id)) : [];
|
|
157
148
|
|
|
158
149
|
//buttons
|
|
159
150
|
const buttons = (device.buttonsSensors || []).filter(b => (b.displayType ?? 0) > 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.5.9-beta.
|
|
4
|
+
"version": "4.5.9-beta.5",
|
|
5
5
|
"description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "grzegorz914",
|