homebridge-melcloud-control 3.1.3-beta.7 → 3.1.3-beta.9
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 +128 -139
- package/package.json +1 -1
|
@@ -151,6 +151,11 @@
|
|
|
151
151
|
const info = response.info ?? '';
|
|
152
152
|
const status = response.status;
|
|
153
153
|
const devices = response.data ?? [];
|
|
154
|
+
const devicesByType = {
|
|
155
|
+
ata: [],
|
|
156
|
+
atw: [],
|
|
157
|
+
erv: []
|
|
158
|
+
};
|
|
154
159
|
|
|
155
160
|
//new found devices
|
|
156
161
|
const newDevices = {
|
|
@@ -173,156 +178,140 @@
|
|
|
173
178
|
//response status
|
|
174
179
|
switch (status) {
|
|
175
180
|
case 0:
|
|
176
|
-
//compare arrays and update array in config
|
|
177
|
-
const devicesOnMelCloud = devices;
|
|
178
|
-
const devicesOnMelCloudId = new Set(devicesOnMelCloud.map(device => device.DeviceID));
|
|
179
181
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
+
//get devices by type
|
|
183
|
+
for (const device of devices) {
|
|
184
|
+
const deviceType = device.Type;
|
|
185
|
+
const pusDeviceTypeAta = deviceType === 0 ? devicesByType.ata.push(device) : false;
|
|
186
|
+
const pusDeviceTypeAtw = deviceType === 1 ? devicesByType.atw.push(device) : false;
|
|
187
|
+
const pusDeviceTypeErv = deviceType === 3 ? devicesByType.erv.push(device) : false;
|
|
188
|
+
};
|
|
182
189
|
|
|
183
|
-
|
|
184
|
-
|
|
190
|
+
//device ata
|
|
191
|
+
for (const device of devicesByType.ata) {
|
|
192
|
+
const deviceId = device.DeviceID;
|
|
193
|
+
const deviceName = device.DeviceName;
|
|
194
|
+
const devicePresets = device.Presets ?? [];
|
|
195
|
+
|
|
196
|
+
const deviceAta = {
|
|
197
|
+
id: deviceId,
|
|
198
|
+
type: deviceType,
|
|
199
|
+
typeString: "Air Conditioner",
|
|
200
|
+
name: deviceName,
|
|
201
|
+
displayMode: 1,
|
|
202
|
+
heatDryFanMode: 1,
|
|
203
|
+
coolDryFanMode: 1,
|
|
204
|
+
autoDryFanMode: 1,
|
|
205
|
+
temperatureSensor: false,
|
|
206
|
+
temperatureSensorOutdoor: false,
|
|
207
|
+
presets: [],
|
|
208
|
+
buttonsSensors: []
|
|
209
|
+
};
|
|
185
210
|
|
|
186
|
-
|
|
187
|
-
|
|
211
|
+
//presets
|
|
212
|
+
for (const preset of devicePresets) {
|
|
213
|
+
const presetId = preset.ID;
|
|
214
|
+
const presetName = preset.NumberDescription;
|
|
188
215
|
|
|
216
|
+
preset.id = presetId;
|
|
217
|
+
preset.name = presetName;
|
|
218
|
+
preset.displayType == 0;
|
|
219
|
+
preset.namePrefix = false;
|
|
220
|
+
newDevices.ataPresets.push(preset);
|
|
221
|
+
};
|
|
222
|
+
deviceAta.presets = newDevices.ataPresets;
|
|
223
|
+
textAtaPresets = `ATA Presets: ${newDevices.ataPresets.length}`
|
|
189
224
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
225
|
+
newDevices.ata.push(deviceAta);
|
|
226
|
+
};
|
|
227
|
+
pluginConfig[0].accounts[this.deviceIndex].ataDevices = newDevices.ata;
|
|
228
|
+
textAta = `ATA: ${newDevices.ata.length}`
|
|
229
|
+
|
|
230
|
+
//device atw
|
|
231
|
+
for (const device of devicesByType.atw) {
|
|
232
|
+
const deviceId = device.DeviceID;
|
|
233
|
+
const deviceName = device.DeviceName;
|
|
234
|
+
const devicePresets = device.Presets ?? [];
|
|
235
|
+
|
|
236
|
+
const deviceAtw = {
|
|
237
|
+
id: deviceId,
|
|
238
|
+
type: deviceType,
|
|
239
|
+
typeString: "Heat Pump",
|
|
240
|
+
name: deviceName,
|
|
241
|
+
displayMode: 1,
|
|
242
|
+
temperatureSensor: false,
|
|
243
|
+
temperatureSensorFlow: false,
|
|
244
|
+
temperatureSensorReturn: false,
|
|
245
|
+
temperatureSensorFlowZone1: false,
|
|
246
|
+
temperatureSensorReturnZone1: false,
|
|
247
|
+
temperatureSensorFlowWaterTank: false,
|
|
248
|
+
temperatureSensorReturnWaterTank: false,
|
|
249
|
+
temperatureSensorFlowZone2: false,
|
|
250
|
+
temperatureSensorReturnZone2: false,
|
|
251
|
+
temperatureSensor: false,
|
|
252
|
+
temperatureSensorOutdoor: false,
|
|
253
|
+
presets: [],
|
|
254
|
+
buttonsSensors: []
|
|
255
|
+
};
|
|
193
256
|
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
typeString: "Air Conditioner",
|
|
205
|
-
name: deviceName,
|
|
206
|
-
displayMode: 1,
|
|
207
|
-
heatDryFanMode: 1,
|
|
208
|
-
coolDryFanMode: 1,
|
|
209
|
-
autoDryFanMode: 1,
|
|
210
|
-
temperatureSensor: false,
|
|
211
|
-
temperatureSensorOutdoor: false,
|
|
212
|
-
presets: [],
|
|
213
|
-
buttonsSensors: []
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
//presets
|
|
217
|
-
for (const preset of devicePresetsOnMelcloud) {
|
|
218
|
-
const presetId = preset.ID;
|
|
219
|
-
const presetName = preset.NumberDescription;
|
|
220
|
-
|
|
221
|
-
preset.id = presetId;
|
|
222
|
-
preset.name = presetName;
|
|
223
|
-
preset.displayType == 0;
|
|
224
|
-
preset.namePrefix = false;
|
|
225
|
-
newDevices.ataPresets.push(preset);
|
|
226
|
-
};
|
|
227
|
-
textAtaPresets = `ATA Presets: ${newDevices.ataPresets.length}`
|
|
228
|
-
|
|
229
|
-
deviceAta.presets = newDevices.ataPresets;
|
|
230
|
-
newDevices.ata.push(deviceAta);
|
|
231
|
-
};
|
|
232
|
-
pluginConfig[0].accounts[this.deviceIndex].ataDevices = newDevices.ata;
|
|
233
|
-
textAta = `ATA: ${newDevices.ata.length}`
|
|
257
|
+
//presets
|
|
258
|
+
for (const preset of devicePresets) {
|
|
259
|
+
const presetId = preset.ID;
|
|
260
|
+
const presetName = preset.NumberDescription;
|
|
261
|
+
|
|
262
|
+
preset.id = presetId;
|
|
263
|
+
preset.name = presetName;
|
|
264
|
+
preset.displayType == 0;
|
|
265
|
+
preset.namePrefix = false;
|
|
266
|
+
newDevices.atwPresets.push(preset);
|
|
234
267
|
};
|
|
268
|
+
textAtwPresets = `ATW Presets: ${newDevices.atwPresets.length}`
|
|
235
269
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
buttonsSensors: []
|
|
262
|
-
};
|
|
263
|
-
|
|
264
|
-
//presets
|
|
265
|
-
for (const preset of devicePresetsOnMelcloud) {
|
|
266
|
-
const presetId = preset.ID;
|
|
267
|
-
const presetName = preset.NumberDescription;
|
|
268
|
-
|
|
269
|
-
preset.id = presetId;
|
|
270
|
-
preset.name = presetName;
|
|
271
|
-
preset.displayType == 0;
|
|
272
|
-
preset.namePrefix = false;
|
|
273
|
-
newDevices.atwPresets.push(preset);
|
|
274
|
-
};
|
|
275
|
-
textAtwPresets = `ATW Presets: ${newDevices.atwPresets.length}`
|
|
276
|
-
|
|
277
|
-
deviceAtw.presets = deviceAtw.atwPresets;
|
|
278
|
-
newDevices.ata.push(deviceAtw);
|
|
279
|
-
};
|
|
280
|
-
pluginConfig[0].accounts[this.deviceIndex].atwDevices = newDevices.atw;
|
|
281
|
-
textAtw = `ATW: ${newDevices.atw.length}`
|
|
270
|
+
deviceAtw.presets = deviceAtw.atwPresets;
|
|
271
|
+
newDevices.ata.push(deviceAtw);
|
|
272
|
+
};
|
|
273
|
+
pluginConfig[0].accounts[this.deviceIndex].atwDevices = newDevices.atw;
|
|
274
|
+
textAtw = `ATW: ${newDevices.atw.length}`
|
|
275
|
+
|
|
276
|
+
//device erv
|
|
277
|
+
for (const device of devicesByType.erv) {
|
|
278
|
+
const deviceId = device.DeviceID;
|
|
279
|
+
const deviceName = device.DeviceName;
|
|
280
|
+
const devicePresets = device.Presets ?? [];
|
|
281
|
+
|
|
282
|
+
const deviceErv = {
|
|
283
|
+
id: deviceId,
|
|
284
|
+
type: deviceType,
|
|
285
|
+
typeString: "Energy Recovery Ventilation",
|
|
286
|
+
name: deviceName,
|
|
287
|
+
displayMode: 1,
|
|
288
|
+
temperatureSensor: false,
|
|
289
|
+
temperatureSensorOutdoor: false,
|
|
290
|
+
temperatureSensorSupply: false,
|
|
291
|
+
temperatureSensor: false,
|
|
292
|
+
temperatureSensorOutdoor: false,
|
|
293
|
+
presets: [],
|
|
294
|
+
buttonsSensors: []
|
|
282
295
|
};
|
|
283
296
|
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
const
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
typeString: "Energy Recovery Ventilation",
|
|
295
|
-
name: deviceName,
|
|
296
|
-
displayMode: 1,
|
|
297
|
-
temperatureSensor: false,
|
|
298
|
-
temperatureSensorOutdoor: false,
|
|
299
|
-
temperatureSensorSupply: false,
|
|
300
|
-
temperatureSensor: false,
|
|
301
|
-
temperatureSensorOutdoor: false,
|
|
302
|
-
presets: [],
|
|
303
|
-
buttonsSensors: []
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
//presets
|
|
307
|
-
for (const preset of devicePresetsOnMelcloud) {
|
|
308
|
-
const presetId = preset.ID;
|
|
309
|
-
const presetName = preset.NumberDescription;
|
|
310
|
-
|
|
311
|
-
preset.id = presetId;
|
|
312
|
-
preset.name = presetName;
|
|
313
|
-
preset.displayType == 0;
|
|
314
|
-
preset.namePrefix = false;
|
|
315
|
-
newDevices.atwPresets.push(preset);
|
|
316
|
-
};
|
|
317
|
-
textErvPresets = `ERV Presets: ${newDevices.ErvPresets.length}`
|
|
318
|
-
|
|
319
|
-
deviceErv.presets = deviceErv.ervPresets;
|
|
320
|
-
newDevices.erv.push(deviceErv);
|
|
321
|
-
};
|
|
322
|
-
pluginConfig[0].accounts[this.deviceIndex].ervDevices = newDevices.erv;
|
|
323
|
-
textErv = `ERV: ${newDevices.erv.length}`
|
|
297
|
+
//presets
|
|
298
|
+
for (const preset of devicePresets) {
|
|
299
|
+
const presetId = preset.ID;
|
|
300
|
+
const presetName = preset.NumberDescription;
|
|
301
|
+
|
|
302
|
+
preset.id = presetId;
|
|
303
|
+
preset.name = presetName;
|
|
304
|
+
preset.displayType == 0;
|
|
305
|
+
preset.namePrefix = false;
|
|
306
|
+
newDevices.atwPresets.push(preset);
|
|
324
307
|
};
|
|
325
|
-
|
|
308
|
+
textErvPresets = `ERV Presets: ${newDevices.ErvPresets.length}`
|
|
309
|
+
|
|
310
|
+
deviceErv.presets = deviceErv.ervPresets;
|
|
311
|
+
newDevices.erv.push(deviceErv);
|
|
312
|
+
};
|
|
313
|
+
pluginConfig[0].accounts[this.deviceIndex].ervDevices = newDevices.erv;
|
|
314
|
+
textErv = `ERV: ${newDevices.erv.length}`
|
|
326
315
|
|
|
327
316
|
const newDevicesCount = newDevices.ata.length + newDevices.atw.length + newDevices.erv.length ?? 0;
|
|
328
317
|
const newPresetsCount = newDevices.ataPresets.length + newDevices.atwPresets.length + newDevices.ervPresets.length ?? 0;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "3.1.3-beta.
|
|
4
|
+
"version": "3.1.3-beta.9",
|
|
5
5
|
"description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "grzegorz914",
|