homebridge-melcloud-control 4.7.3-beta.6 → 4.7.3-beta.8
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/config.schema.json +57 -12
- package/homebridge-ui/public/index.html +14 -34
- package/package.json +1 -1
- package/src/deviceatw.js +246 -159
package/config.schema.json
CHANGED
|
@@ -1150,50 +1150,92 @@
|
|
|
1150
1150
|
"functionBody": "return model.accounts[arrayIndices[0]].atwDevices[arrayIndices[1]].displayType > 0;"
|
|
1151
1151
|
}
|
|
1152
1152
|
},
|
|
1153
|
-
"
|
|
1154
|
-
"title": "Temperature
|
|
1153
|
+
"temperatureRoomSensor": {
|
|
1154
|
+
"title": "Temperature Outdoor",
|
|
1155
1155
|
"type": "boolean",
|
|
1156
|
-
"description": "This enable extra temperature sensor to use with HomeKit automations."
|
|
1156
|
+
"description": "This enable extra Outdoor temperature sensor to use with HomeKit automations.",
|
|
1157
|
+
"condition": {
|
|
1158
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1159
|
+
}
|
|
1157
1160
|
},
|
|
1158
1161
|
"temperatureFlowSensor": {
|
|
1159
1162
|
"title": "Temperature Sensor Flow",
|
|
1160
1163
|
"type": "boolean",
|
|
1161
|
-
"description": "This enable extra Flow temperature sensor to use with HomeKit automations."
|
|
1164
|
+
"description": "This enable extra Flow temperature sensor to use with HomeKit automations.",
|
|
1165
|
+
"condition": {
|
|
1166
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1167
|
+
}
|
|
1162
1168
|
},
|
|
1163
1169
|
"temperatureReturnSensor": {
|
|
1164
1170
|
"title": "Temperature Sensor Return",
|
|
1165
1171
|
"type": "boolean",
|
|
1166
|
-
"description": "This enable extra Return temperature sensor to use with HomeKit automations."
|
|
1172
|
+
"description": "This enable extra Return temperature sensor to use with HomeKit automations.",
|
|
1173
|
+
"condition": {
|
|
1174
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1175
|
+
}
|
|
1176
|
+
},
|
|
1177
|
+
"temperatureRoomZone1Sensor": {
|
|
1178
|
+
"title": "Temperature Sensor Room Zone 1",
|
|
1179
|
+
"type": "boolean",
|
|
1180
|
+
"description": "This enable extra Room Zone 1 temperature sensor to use with HomeKit automations."
|
|
1167
1181
|
},
|
|
1168
1182
|
"temperatureFlowZone1Sensor": {
|
|
1169
1183
|
"title": "Temperature Sensor Flow Zone 1",
|
|
1170
1184
|
"type": "boolean",
|
|
1171
|
-
"description": "This enable extra Flow Zone 1 temperature sensor to use with HomeKit automations."
|
|
1185
|
+
"description": "This enable extra Flow Zone 1 temperature sensor to use with HomeKit automations.",
|
|
1186
|
+
"condition": {
|
|
1187
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1188
|
+
}
|
|
1172
1189
|
},
|
|
1173
1190
|
"temperatureReturnZone1Sensor": {
|
|
1174
1191
|
"title": "Temperature Sensor Return Zone 1",
|
|
1175
1192
|
"type": "boolean",
|
|
1176
|
-
"description": "This enable extra Return Zone 1 temperature sensor to use with HomeKit automations."
|
|
1193
|
+
"description": "This enable extra Return Zone 1 temperature sensor to use with HomeKit automations.",
|
|
1194
|
+
"condition": {
|
|
1195
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1196
|
+
}
|
|
1197
|
+
},
|
|
1198
|
+
"temperatureWaterTankSensor": {
|
|
1199
|
+
"title": "Temperature Sensor Water Tank",
|
|
1200
|
+
"type": "boolean",
|
|
1201
|
+
"description": "This enable extra Water Tank temperature sensor to use with HomeKit automations."
|
|
1177
1202
|
},
|
|
1178
1203
|
"temperatureFlowWaterTankSensor": {
|
|
1179
1204
|
"title": "Temperature Sensor Flow Water Tank",
|
|
1180
1205
|
"type": "boolean",
|
|
1181
|
-
"description": "This enable extra Flow Water Tank temperature sensor to use with HomeKit automations."
|
|
1206
|
+
"description": "This enable extra Flow Water Tank temperature sensor to use with HomeKit automations.",
|
|
1207
|
+
"condition": {
|
|
1208
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1209
|
+
}
|
|
1182
1210
|
},
|
|
1183
1211
|
"temperatureReturnWaterTankSensor": {
|
|
1184
1212
|
"title": "Temperature Sensor Return Water Tank",
|
|
1185
1213
|
"type": "boolean",
|
|
1186
|
-
"description": "This enable extra Return Water Tank temperature sensor to use with HomeKit automations."
|
|
1214
|
+
"description": "This enable extra Return Water Tank temperature sensor to use with HomeKit automations.",
|
|
1215
|
+
"condition": {
|
|
1216
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
"temperatureRoomZone2Sensor": {
|
|
1220
|
+
"title": "Temperature Sensor Room Zone 2",
|
|
1221
|
+
"type": "boolean",
|
|
1222
|
+
"description": "This enable extra Room Zone 2 temperature sensor to use with HomeKit automations."
|
|
1187
1223
|
},
|
|
1188
1224
|
"temperatureFlowZone2Sensor": {
|
|
1189
1225
|
"title": "Temperature Sensor Flow Zone 2",
|
|
1190
1226
|
"type": "boolean",
|
|
1191
|
-
"description": "This enable extra Flow Zone 2 temperature sensor to use with HomeKit automations."
|
|
1227
|
+
"description": "This enable extra Flow Zone 2 temperature sensor to use with HomeKit automations.",
|
|
1228
|
+
"condition": {
|
|
1229
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1230
|
+
}
|
|
1192
1231
|
},
|
|
1193
1232
|
"temperatureReturnZone2Sensor": {
|
|
1194
1233
|
"title": "Temperature Sensor Return Zone 2",
|
|
1195
1234
|
"type": "boolean",
|
|
1196
|
-
"description": "This enable extra Return Zone 2 temperature sensor to use with HomeKit automations."
|
|
1235
|
+
"description": "This enable extra Return Zone 2 temperature sensor to use with HomeKit automations.",
|
|
1236
|
+
"condition": {
|
|
1237
|
+
"functionBody": "return model.accounts[arrayIndices[0]].type === 'melcloud';"
|
|
1238
|
+
}
|
|
1197
1239
|
},
|
|
1198
1240
|
"inStandbySensor": {
|
|
1199
1241
|
"title": "In Standby",
|
|
@@ -2614,8 +2656,8 @@
|
|
|
2614
2656
|
{
|
|
2615
2657
|
"title": "Sensors",
|
|
2616
2658
|
"items": [
|
|
2617
|
-
"accounts[].ataDevices[].temperatureSensor",
|
|
2618
2659
|
"accounts[].ataDevices[].temperatureOutdoorSensor",
|
|
2660
|
+
"accounts[].ataDevices[].temperatureRoomSensor",
|
|
2619
2661
|
"accounts[].ataDevices[].inStandbySensor",
|
|
2620
2662
|
"accounts[].ataDevices[].connectSensor",
|
|
2621
2663
|
"accounts[].ataDevices[].errorSensor"
|
|
@@ -2778,10 +2820,13 @@
|
|
|
2778
2820
|
"accounts[].atwDevices[].temperatureSensor",
|
|
2779
2821
|
"accounts[].atwDevices[].temperatureFlowSensor",
|
|
2780
2822
|
"accounts[].atwDevices[].temperatureReturnSensor",
|
|
2823
|
+
"accounts[].atwDevices[].temperatureRoomZone1Sensor",
|
|
2781
2824
|
"accounts[].atwDevices[].temperatureFlowZone1Sensor",
|
|
2782
2825
|
"accounts[].atwDevices[].temperatureReturnZone1Sensor",
|
|
2826
|
+
"accounts[].atwDevices[].temperatureWaterTankSensor",
|
|
2783
2827
|
"accounts[].atwDevices[].temperatureFlowWaterTankSensor",
|
|
2784
2828
|
"accounts[].atwDevices[].temperatureReturnWaterTankSensor",
|
|
2829
|
+
"accounts[].atwDevices[].temperatureRoomZone2Sensor",
|
|
2785
2830
|
"accounts[].atwDevices[].temperatureFlowZone2Sensor",
|
|
2786
2831
|
"accounts[].atwDevices[].temperatureReturnZone2Sensor",
|
|
2787
2832
|
"accounts[].atwDevices[].inStandbySensor",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
formElements.language.value = account.language || '0';
|
|
143
143
|
formElements.accountType.value = account.type || 'disabled';
|
|
144
144
|
formElements.logIn.disabled = !(account.name && account.user && account.passwd && account.language && account.type !== 'disabled');
|
|
145
|
-
formElements.configButton.disabled = !(account.ataDevices
|
|
145
|
+
formElements.configButton.disabled = !((account.ataDevices?.length ?? 0) > 0 || (account.atwDevices?.length ?? 0) > 0 || (account.ervDevices?.length ?? 0) > 0);
|
|
146
146
|
|
|
147
147
|
this.account = account;
|
|
148
148
|
});
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
account.language = formElements.language.value;
|
|
161
161
|
account.type = formElements.accountType.value;
|
|
162
162
|
formElements.logIn.disabled = !(account.name && account.user && account.passwd && account.language && account.type !== 'disabled');
|
|
163
|
-
formElements.configButton.disabled = !(account.ataDevices
|
|
163
|
+
formElements.configButton.disabled = !((account.ataDevices?.length ?? 0) > 0 || (account.atwDevices?.length ?? 0) > 0 || (account.ervDevices?.length ?? 0) > 0);
|
|
164
164
|
|
|
165
165
|
await homebridge.updatePluginConfig(pluginConfig);
|
|
166
166
|
await homebridge.savePluginConfig();
|
|
@@ -233,20 +233,11 @@
|
|
|
233
233
|
return map;
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
// Helper to generate summary string
|
|
237
|
-
function summarizeChanges(type, ata, atw, erv) {
|
|
238
|
-
const parts = [];
|
|
239
|
-
if (ata.length) parts.push(`ATA: ${ata.length}`);
|
|
240
|
-
if (atw.length) parts.push(`ATW: ${atw.length}`);
|
|
241
|
-
if (erv.length) parts.push(`ERV: ${erv.length}`);
|
|
242
|
-
return parts.length ? `${type}: ${parts.join(', ')}` : '';
|
|
243
|
-
}
|
|
244
|
-
|
|
245
236
|
// Login & Sync Logic
|
|
246
237
|
document.getElementById('logIn').addEventListener('click', async () => {
|
|
247
238
|
document.getElementById('logIn').disabled = true;
|
|
248
239
|
const lightingMode = homebridge.userCurrentLightingMode();
|
|
249
|
-
const fontColor = lightingMode === 'dark' ? '
|
|
240
|
+
const fontColor = lightingMode === 'dark' ? 'white' : 'black';
|
|
250
241
|
|
|
251
242
|
updateInfo('info', 'Connecting to MELCloud', fontColor);
|
|
252
243
|
updateInfo('info1', '', fontColor);
|
|
@@ -270,11 +261,7 @@
|
|
|
270
261
|
account.ervDevices = account.ervDevices ?? [];
|
|
271
262
|
|
|
272
263
|
// Prepare MELCloud data
|
|
273
|
-
const newInMelCloud = {
|
|
274
|
-
ata: [], ataPresets: [], ataSchedules: [], ataScenes: [],
|
|
275
|
-
atw: [], atwPresets: [], atwSchedules: [], atwScenes: [],
|
|
276
|
-
erv: [], ervPresets: [], ervSchedules: [], ervScenes: []
|
|
277
|
-
};
|
|
264
|
+
const newInMelCloud = { ata: [], ataPresets: [], ataSchedules: [], ataScenes: [], atw: [], atwPresets: [], atwSchedules: [], atwScenes: [], erv: [], ervPresets: [], ervSchedules: [], ervScenes: [] };
|
|
278
265
|
const devicesInMelCloudByType = { ata: [], atw: [], erv: [] };
|
|
279
266
|
const scenesInMelCloud = response.Scenes ?? [];
|
|
280
267
|
|
|
@@ -415,23 +402,16 @@
|
|
|
415
402
|
const removedPresetsCount = removedFromConfig.presets.length;
|
|
416
403
|
const removedSchedulesCount = removedFromConfig.schedules.length;
|
|
417
404
|
const removedScenesCount = removedFromConfig.scenes.length;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
if (newDevicesCount
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
if (
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
// Removed items
|
|
429
|
-
const removedParts = [];
|
|
430
|
-
if (removedDevicesCount) removedParts.push(summarizeChanges('Devices', removedFromConfig.ata, removedFromConfig.atw, removedFromConfig.erv));
|
|
431
|
-
if (removedPresetsCount) removedParts.push(`Presets: ${removedPresetsCount}`);
|
|
432
|
-
if (removedSchedulesCount) removedParts.push(`Schedules: ${removedSchedulesCount}`);
|
|
433
|
-
if (removedScenesCount) removedParts.push(`Scenes: ${removedScenesCount}`);
|
|
434
|
-
if (removedParts.length) updateInfo('info1', `Removed old: ${removedParts.join('; ')}`, 'orange');
|
|
405
|
+
|
|
406
|
+
if (!newDevicesCount && !newPresetsCount && !newSchedulesCount && !newScenesCount && !removedDevicesCount && !removedPresetsCount && !removedSchedulesCount && !removedScenesCount) {
|
|
407
|
+
updateInfo('info', 'No changes detected.', fontColor);
|
|
408
|
+
}
|
|
409
|
+
if (newDevicesCount || newPresetsCount || newSchedulesCount || newScenesCount) {
|
|
410
|
+
updateInfo('info', `Found new ${newDevicesCount ? `devices:` : ''} ${newInMelCloud.ata.length ? `ATA: ${newInMelCloud.ata.length},` : ''} ${newInMelCloud.atw.length ? `ATW: ${newInMelCloud.atw.length},` : ''} ${newInMelCloud.erv.length ? `ERV: ${newInMelCloud.erv.length},` : ''} ${newPresetsCount ? `presets:` : ''} ${newInMelCloud.ataPresets.length ? `ATA: ${newInMelCloud.ataPresets.length},` : ''} ${newInMelCloud.atwPresets.length ? `ATW: ${newInMelCloud.atwPresets.length}, ` : ''} ${newInMelCloud.ervPresets.length ? `ERV: ${newInMelCloud.ervPresets.length},` : ''} ${newSchedulesCount ? `schedules:` : ''} ${newInMelCloud.ataSchedules.length ? `ATA: ${newInMelCloud.ataSchedules.length},` : ''} ${newInMelCloud.atwSchedules.length ? `ATW: ${newInMelCloud.atwSchedules.length},` : ''} ${newInMelCloud.ervSchedules.length ? `ERV: ${newInMelCloud.ervSchedules.length}, ` : ''} ${newScenesCount ? `scenes:` : ''} ${newInMelCloud.ataScenes.length ? `ATA: ${newInMelCloud.ataScenes.length},` : ''} ${newInMelCloud.atwScenes.length ? `ATW: ${newInMelCloud.atwScenes.length},` : ''} ${newInMelCloud.ervScenes.length ? `ERV: ${newInMelCloud.ervScenes.length}` : ''}.`, 'green');
|
|
411
|
+
}
|
|
412
|
+
if (removedDevicesCount || removedPresetsCount || removedSchedulesCount || removedScenesCount) {
|
|
413
|
+
updateInfo('info1', `Removed old ${removedDevicesCount ? `devices:` : ''} ${removedFromConfig.ata.length ? `ATA: ${removedFromConfig.ata.length},` : ''} ${removedFromConfig.atw.length ? `ATW: ${removedFromConfig.atw.length},` : ''} ${removedFromConfig.erv.length ? `ERV: ${removedFromConfig.erv.length},` : ''} ${removedPresetsCount ? `presets: ${removedPresetsCount},` : ''} ${removedSchedulesCount ? `schedules: ${removedSchedulesCount},` : ''} ${removedScenesCount ? `scenes: ${removedScenesCount}` : ''}.`, 'orange');
|
|
414
|
+
}
|
|
435
415
|
|
|
436
416
|
await homebridge.updatePluginConfig(pluginConfig);
|
|
437
417
|
await homebridge.savePluginConfig();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "4.7.3-beta.
|
|
4
|
+
"version": "4.7.3-beta.8",
|
|
5
5
|
"description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "grzegorz914",
|
package/src/deviceatw.js
CHANGED
|
@@ -34,13 +34,16 @@ class DeviceAtw extends EventEmitter {
|
|
|
34
34
|
this.deviceTypeString = DeviceType[device.type];
|
|
35
35
|
this.displayType = device.displayType;
|
|
36
36
|
this.hideZone = device.hideZone;
|
|
37
|
-
this.
|
|
37
|
+
this.temperatureRoomSensor = device.temperatureRoomSensor || false;
|
|
38
38
|
this.temperatureFlowSensor = device.temperatureFlowSensor || false;
|
|
39
39
|
this.temperatureReturnSensor = device.temperatureReturnSensor || false;
|
|
40
|
+
this.temperatureRoomZone1Sensor = device.temperatureRoomZone1Sensor || false;
|
|
40
41
|
this.temperatureFlowZone1Sensor = device.temperatureFlowZone1Sensor || false;
|
|
41
42
|
this.temperatureReturnZone1Sensor = device.temperatureReturnZone1Sensor || false;
|
|
43
|
+
this.temperatureWaterTankSensor = device.temperatureWaterTankSensor || false;
|
|
42
44
|
this.temperatureFlowWaterTankSensor = device.temperatureFlowWaterTankSensor || false;
|
|
43
45
|
this.temperatureReturnWaterTankSensor = device.temperatureReturnWaterTankSensor || false;
|
|
46
|
+
this.temperatureRoomZone2Sensor = device.temperatureRoomZone2Sensor || false;
|
|
44
47
|
this.temperatureFlowZone2Sensor = device.temperatureFlowZone2Sensor || false;
|
|
45
48
|
this.temperatureReturnZone2Sensor = device.temperatureReturnZone2Sensor || false;
|
|
46
49
|
this.inStandbySensor = device.inStandbySensor || false;
|
|
@@ -294,6 +297,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
294
297
|
//prepare accessory
|
|
295
298
|
async prepareAccessory() {
|
|
296
299
|
try {
|
|
300
|
+
const accountTypeMelcloud = this.accountType === 'melcloud';
|
|
297
301
|
const deviceData = this.deviceData;
|
|
298
302
|
const deviceId = this.deviceId;
|
|
299
303
|
const deviceTypeString = this.deviceTypeString;
|
|
@@ -479,48 +483,69 @@ class DeviceAtw extends EventEmitter {
|
|
|
479
483
|
.onSet(async (value) => {
|
|
480
484
|
try {
|
|
481
485
|
let flag = null;
|
|
482
|
-
switch (
|
|
483
|
-
case
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
switch (zone.operationMode) {
|
|
489
|
-
case 1: //HEAT FLOW
|
|
490
|
-
deviceData.Device.SetHeatFlowTemperatureZone1 = value;
|
|
491
|
-
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
|
|
486
|
+
switch (accountTypeMelcloud) {
|
|
487
|
+
case true: //Melcloud
|
|
488
|
+
switch (i) {
|
|
489
|
+
case caseHeatPump: //Heat Pump
|
|
490
|
+
//deviceData.Device.SetTemperatureZone1 = value;
|
|
491
|
+
//flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
492
492
|
break;
|
|
493
|
-
case
|
|
494
|
-
|
|
495
|
-
|
|
493
|
+
case caseZone1: //Zone 1
|
|
494
|
+
switch (zone.operationMode) {
|
|
495
|
+
case 1: //HEAT FLOW
|
|
496
|
+
deviceData.Device.SetHeatFlowTemperatureZone1 = value;
|
|
497
|
+
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
|
|
498
|
+
break;
|
|
499
|
+
case 4: //COOL FLOW
|
|
500
|
+
deviceData.Device.SetCoolFlowTemperatureZone1 = value;
|
|
501
|
+
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
|
|
502
|
+
break;
|
|
503
|
+
default:
|
|
504
|
+
deviceData.Device.SetTemperatureZone1 = value;
|
|
505
|
+
flag = HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
506
|
+
break
|
|
507
|
+
};
|
|
508
|
+
break;
|
|
509
|
+
case caseHotWater: //Hot Water
|
|
510
|
+
deviceData.Device.SetTankWaterTemperature = value;
|
|
511
|
+
flag = HeatPump.EffectiveFlags.SetTankWaterTemperature;
|
|
512
|
+
break;
|
|
513
|
+
case caseZone2: //Zone 2
|
|
514
|
+
switch (zone.operationMode) {
|
|
515
|
+
case 1: //HEAT FLOW
|
|
516
|
+
deviceData.Device.SetHeatFlowTemperatureZone2 = value;
|
|
517
|
+
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
|
|
518
|
+
break;
|
|
519
|
+
case 4: //COOL FLOW
|
|
520
|
+
deviceData.Device.SetCoolFlowTemperatureZone2 = value;
|
|
521
|
+
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
|
|
522
|
+
break;
|
|
523
|
+
default:
|
|
524
|
+
deviceData.Device.SetTemperatureZone2 = value;
|
|
525
|
+
flag = HeatPump.EffectiveFlags.SetTemperatureZone2;
|
|
526
|
+
break
|
|
527
|
+
};
|
|
496
528
|
break;
|
|
497
|
-
default:
|
|
498
|
-
deviceData.Device.SetTemperatureZone1 = value;
|
|
499
|
-
flag = HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
500
|
-
break
|
|
501
529
|
};
|
|
502
530
|
break;
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
switch (zone.operationMode) {
|
|
509
|
-
case 1: //HEAT FLOW
|
|
510
|
-
deviceData.Device.SetHeatFlowTemperatureZone2 = value;
|
|
511
|
-
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
|
|
531
|
+
default:
|
|
532
|
+
switch (i) {
|
|
533
|
+
case caseHeatPump: //Heat Pump
|
|
534
|
+
//deviceData.Device.SetTemperatureZone1 = value;
|
|
535
|
+
//flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
512
536
|
break;
|
|
513
|
-
case
|
|
514
|
-
deviceData.Device.
|
|
515
|
-
|
|
537
|
+
case caseZone1: //Zone 1
|
|
538
|
+
deviceData.Device.SetTemperatureZone1 = value;
|
|
539
|
+
break;
|
|
540
|
+
case caseHotWater: //Hot Water
|
|
541
|
+
deviceData.Device.SetTankWaterTemperature = value;
|
|
516
542
|
break;
|
|
517
|
-
|
|
543
|
+
case caseZone2: //Zone 2
|
|
518
544
|
deviceData.Device.SetTemperatureZone2 = value;
|
|
519
|
-
|
|
520
|
-
break
|
|
545
|
+
break;
|
|
521
546
|
};
|
|
522
547
|
break;
|
|
523
|
-
}
|
|
548
|
+
}
|
|
524
549
|
|
|
525
550
|
if (this.logInfo && i > 0) this.emit('info', `${zoneName}, Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
526
551
|
if (i > 0) await this.melCloudAtw.send(this.accountType, this.displayType, deviceData, flag, null);
|
|
@@ -544,48 +569,69 @@ class DeviceAtw extends EventEmitter {
|
|
|
544
569
|
.onSet(async (value) => {
|
|
545
570
|
try {
|
|
546
571
|
let flag = null;
|
|
547
|
-
switch (
|
|
548
|
-
case
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
switch (zone.operationMode) {
|
|
554
|
-
case 1: //HEAT FLOW
|
|
555
|
-
deviceData.Device.SetHeatFlowTemperatureZone1 = value;
|
|
556
|
-
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
|
|
572
|
+
switch (accountTypeMelcloud) {
|
|
573
|
+
case true: //Melcloud
|
|
574
|
+
switch (i) {
|
|
575
|
+
case caseHeatPump: //Heat Pump
|
|
576
|
+
//deviceData.Device.SetTemperatureZone1 = value;
|
|
577
|
+
//flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
557
578
|
break;
|
|
558
|
-
case
|
|
559
|
-
|
|
560
|
-
|
|
579
|
+
case caseZone1: //Zone 1
|
|
580
|
+
switch (zone.operationMode) {
|
|
581
|
+
case 1: //HEAT FLOW
|
|
582
|
+
deviceData.Device.SetHeatFlowTemperatureZone1 = value;
|
|
583
|
+
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
|
|
584
|
+
break;
|
|
585
|
+
case 4: //COOL FLOW
|
|
586
|
+
deviceData.Device.SetCoolFlowTemperatureZone1 = value;
|
|
587
|
+
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
|
|
588
|
+
break;
|
|
589
|
+
default:
|
|
590
|
+
deviceData.Device.SetTemperatureZone1 = value;
|
|
591
|
+
flag = HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
592
|
+
break
|
|
593
|
+
};
|
|
594
|
+
break;
|
|
595
|
+
case caseHotWater: //Hot Water
|
|
596
|
+
deviceData.Device.SetTankWaterTemperature = value;
|
|
597
|
+
flag = HeatPump.EffectiveFlags.SetTankWaterTemperature;
|
|
598
|
+
break;
|
|
599
|
+
case caseZone2: //Zone 2
|
|
600
|
+
switch (zone.operationMode) {
|
|
601
|
+
case 1: //HEAT FLOW
|
|
602
|
+
deviceData.Device.SetHeatFlowTemperatureZone2 = value;
|
|
603
|
+
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
|
|
604
|
+
break;
|
|
605
|
+
case 4: //COOL FLOW
|
|
606
|
+
deviceData.Device.SetCoolFlowTemperatureZone2 = value;
|
|
607
|
+
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
|
|
608
|
+
break;
|
|
609
|
+
default:
|
|
610
|
+
deviceData.Device.SetTemperatureZone2 = value;
|
|
611
|
+
flag = HeatPump.EffectiveFlags.SetTemperatureZone2;
|
|
612
|
+
break
|
|
613
|
+
};
|
|
561
614
|
break;
|
|
562
|
-
default:
|
|
563
|
-
deviceData.Device.SetTemperatureZone1 = value;
|
|
564
|
-
flag = HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
565
|
-
break
|
|
566
615
|
};
|
|
567
616
|
break;
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
case
|
|
575
|
-
deviceData.Device.
|
|
576
|
-
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
|
|
617
|
+
default:
|
|
618
|
+
switch (i) {
|
|
619
|
+
case caseHeatPump: //Heat Pump
|
|
620
|
+
//deviceData.Device.SetTemperatureZone1 = value;
|
|
621
|
+
//flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
622
|
+
break;
|
|
623
|
+
case caseZone1: //Zone 1
|
|
624
|
+
deviceData.Device.SetTemperatureZone1 = value;
|
|
577
625
|
break;
|
|
578
|
-
case
|
|
579
|
-
deviceData.Device.
|
|
580
|
-
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
|
|
626
|
+
case caseHotWater: //Hot Water
|
|
627
|
+
deviceData.Device.SetTankWaterTemperature = value;
|
|
581
628
|
break;
|
|
582
|
-
|
|
629
|
+
case caseZone2: //Zone 2
|
|
583
630
|
deviceData.Device.SetTemperatureZone2 = value;
|
|
584
|
-
|
|
585
|
-
break
|
|
631
|
+
break;
|
|
586
632
|
};
|
|
587
633
|
break;
|
|
588
|
-
}
|
|
634
|
+
}
|
|
589
635
|
|
|
590
636
|
if (this.logInfo && i !== 0) this.emit('info', `${zoneName}, Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
591
637
|
if (i > 0) await this.melCloudAtw.send(this.accountType, this.displayType, deviceData, flag, null);
|
|
@@ -789,48 +835,69 @@ class DeviceAtw extends EventEmitter {
|
|
|
789
835
|
.onSet(async (value) => {
|
|
790
836
|
try {
|
|
791
837
|
let flag = null;
|
|
792
|
-
switch (
|
|
793
|
-
case
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
switch (zone.operationMode) {
|
|
799
|
-
case 1: //HEAT FLOW
|
|
800
|
-
deviceData.Device.SetHeatFlowTemperatureZone1 = value;
|
|
801
|
-
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
|
|
838
|
+
switch (accountTypeMelcloud) {
|
|
839
|
+
case true: //Melcloud
|
|
840
|
+
switch (i) {
|
|
841
|
+
case caseHeatPump: //Heat Pump
|
|
842
|
+
//deviceData.Device.SetTemperatureZone1 = value;
|
|
843
|
+
//flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
802
844
|
break;
|
|
803
|
-
case
|
|
804
|
-
|
|
805
|
-
|
|
845
|
+
case caseZone1: //Zone 1
|
|
846
|
+
switch (zone.operationMode) {
|
|
847
|
+
case 1: //HEAT FLOW
|
|
848
|
+
deviceData.Device.SetHeatFlowTemperatureZone1 = value;
|
|
849
|
+
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone1;
|
|
850
|
+
break;
|
|
851
|
+
case 4: //COOL FLOW
|
|
852
|
+
deviceData.Device.SetCoolFlowTemperatureZone1 = value;
|
|
853
|
+
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
|
|
854
|
+
break;
|
|
855
|
+
default:
|
|
856
|
+
deviceData.Device.SetTemperatureZone1 = value;
|
|
857
|
+
flag = HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
858
|
+
break
|
|
859
|
+
};
|
|
860
|
+
break;
|
|
861
|
+
case caseHotWater: //Hot Water
|
|
862
|
+
deviceData.Device.SetTankWaterTemperature = value;
|
|
863
|
+
flag = HeatPump.EffectiveFlags.SetTankWaterTemperature;
|
|
864
|
+
break;
|
|
865
|
+
case caseZone2: //Zone 2
|
|
866
|
+
switch (zone.operationMode) {
|
|
867
|
+
case 1: //HEAT FLOW
|
|
868
|
+
deviceData.Device.SetHeatFlowTemperatureZone2 = value;
|
|
869
|
+
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
|
|
870
|
+
break;
|
|
871
|
+
case 4: //COOL FLOW
|
|
872
|
+
deviceData.Device.SetCoolFlowTemperatureZone2 = value;
|
|
873
|
+
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
|
|
874
|
+
break;
|
|
875
|
+
default:
|
|
876
|
+
deviceData.Device.SetTemperatureZone2 = value;
|
|
877
|
+
flag = HeatPump.EffectiveFlags.SetTemperatureZone2;
|
|
878
|
+
break
|
|
879
|
+
};
|
|
806
880
|
break;
|
|
807
|
-
default:
|
|
808
|
-
deviceData.Device.SetTemperatureZone1 = value;
|
|
809
|
-
flag = HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
810
|
-
break
|
|
811
881
|
};
|
|
812
882
|
break;
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
switch (zone.operationMode) {
|
|
819
|
-
case 1: //HEAT FLOW
|
|
820
|
-
deviceData.Device.SetHeatFlowTemperatureZone2 = value;
|
|
821
|
-
flag = HeatPump.EffectiveFlags.SetHeatFlowTemperatureZone2;
|
|
883
|
+
default:
|
|
884
|
+
switch (i) {
|
|
885
|
+
case caseHeatPump: //Heat Pump
|
|
886
|
+
//deviceData.Device.SetTemperatureZone1 = value;
|
|
887
|
+
//flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
|
|
822
888
|
break;
|
|
823
|
-
case
|
|
824
|
-
deviceData.Device.
|
|
825
|
-
flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
|
|
889
|
+
case caseZone1: //Zone 1
|
|
890
|
+
deviceData.Device.SetTemperatureZone1 = value;
|
|
826
891
|
break;
|
|
827
|
-
|
|
892
|
+
case caseHotWater: //Hot Water
|
|
893
|
+
deviceData.Device.SetTankWaterTemperature = value;
|
|
894
|
+
break;
|
|
895
|
+
case caseZone2: //Zone 2
|
|
828
896
|
deviceData.Device.SetTemperatureZone2 = value;
|
|
829
|
-
|
|
830
|
-
break
|
|
897
|
+
break;
|
|
831
898
|
};
|
|
832
899
|
break;
|
|
833
|
-
}
|
|
900
|
+
}
|
|
834
901
|
|
|
835
902
|
if (this.logInfo && i > 0) this.emit('info', `${zoneName}, Set temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
836
903
|
if (i > 0) await this.melCloudAtw.send(this.accountType, this.displayType, deviceData, flag, null);
|
|
@@ -869,7 +936,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
869
936
|
const serviceName = `${deviceTypeString} ${accessoryName}: ${zoneName}`;
|
|
870
937
|
switch (i) {
|
|
871
938
|
case caseHeatPumpSensor: //Heat Pump
|
|
872
|
-
if (zone.roomTemperature !== null) {
|
|
939
|
+
if (zone.roomTemperature !== null && this.temperatureRoomSensor) {
|
|
873
940
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
874
941
|
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureSensorService${deviceId}`);
|
|
875
942
|
this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -882,7 +949,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
882
949
|
accessory.addService(this.roomTemperatureSensorService);
|
|
883
950
|
};
|
|
884
951
|
|
|
885
|
-
if (zone.flowTemperature !== null) {
|
|
952
|
+
if (zone.flowTemperature !== null && this.temperatureFlowSensor) {
|
|
886
953
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature sensor service`);
|
|
887
954
|
this.flowTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureSensorService${deviceId}`);
|
|
888
955
|
this.flowTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -896,7 +963,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
896
963
|
|
|
897
964
|
};
|
|
898
965
|
|
|
899
|
-
if (zone.returnTemperature !== null) {
|
|
966
|
+
if (zone.returnTemperature !== null && this.temperatureReturnSensor) {
|
|
900
967
|
if (this.logDebug) this.emit('debug', `Prepare return temperature sensor service`);
|
|
901
968
|
this.returnTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureSensorService${deviceId}`);
|
|
902
969
|
this.returnTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -910,7 +977,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
910
977
|
};
|
|
911
978
|
break;
|
|
912
979
|
case caseZone1Sensor: //Zone 1
|
|
913
|
-
if (zone.roomTemperature !== null) {
|
|
980
|
+
if (zone.roomTemperature !== null && this.temperatureRoomZone1Sensor) {
|
|
914
981
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
915
982
|
this.roomTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureZone1SensorService${deviceId}`);
|
|
916
983
|
this.roomTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -923,7 +990,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
923
990
|
accessory.addService(this.roomTemperatureZone1SensorService);
|
|
924
991
|
};
|
|
925
992
|
|
|
926
|
-
if (zone.flowTemperature !== null) {
|
|
993
|
+
if (zone.flowTemperature !== null && this.temperatureFlowZone1Sensor) {
|
|
927
994
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature zone 1 sensor service`);
|
|
928
995
|
this.flowTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureZone1SensorService${deviceId}`);
|
|
929
996
|
this.flowTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -936,7 +1003,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
936
1003
|
accessory.addService(this.flowTemperatureZone1SensorService);
|
|
937
1004
|
};
|
|
938
1005
|
|
|
939
|
-
if (zone.returnTemperature !== null) {
|
|
1006
|
+
if (zone.returnTemperature !== null && this.temperatureReturnZone1Sensor) {
|
|
940
1007
|
if (this.logDebug) this.emit('debug', `Prepare return temperature zone 1 sensor service`);
|
|
941
1008
|
this.returnTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureZone1SensorService${deviceId}`);
|
|
942
1009
|
this.returnTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -950,7 +1017,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
950
1017
|
};
|
|
951
1018
|
break;
|
|
952
1019
|
case caseHotWaterSensor: //Hot Water
|
|
953
|
-
if (zone.roomTemperature !== null) {
|
|
1020
|
+
if (zone.roomTemperature !== null && this.temperatureWaterTankSensor) {
|
|
954
1021
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
955
1022
|
this.roomTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureWaterTankSensorService${deviceId}`);
|
|
956
1023
|
this.roomTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -963,7 +1030,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
963
1030
|
accessory.addService(this.roomTemperatureWaterTankSensorService);
|
|
964
1031
|
};
|
|
965
1032
|
|
|
966
|
-
if (zone.flowTemperature !== null) {
|
|
1033
|
+
if (zone.flowTemperature !== null && this.temperatureFlowWaterTankSensor) {
|
|
967
1034
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature water tank sensor service`);
|
|
968
1035
|
this.flowTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureWaterTankSensorService${deviceId}`);
|
|
969
1036
|
this.flowTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -976,7 +1043,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
976
1043
|
accessory.addService(this.flowTemperatureWaterTankSensorService);
|
|
977
1044
|
};
|
|
978
1045
|
|
|
979
|
-
if (zone.returnTemperature !== null) {
|
|
1046
|
+
if (zone.returnTemperature !== null && this.temperatureReturnWaterTankSensor) {
|
|
980
1047
|
if (this.logDebug) this.emit('debug', `Prepare return temperature water tank sensor service`);
|
|
981
1048
|
this.returnTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureWaterTankSensorService${deviceId}`);
|
|
982
1049
|
this.returnTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -990,7 +1057,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
990
1057
|
};
|
|
991
1058
|
break;
|
|
992
1059
|
case caseZone2Sensor: //Zone 2
|
|
993
|
-
if (zone.roomTemperature !== null) {
|
|
1060
|
+
if (zone.roomTemperature !== null && this.temperatureRoomZone2Sensor) {
|
|
994
1061
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
995
1062
|
this.roomTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureZone2SensorService${deviceId}`);
|
|
996
1063
|
this.roomTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -1003,7 +1070,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1003
1070
|
accessory.addService(this.roomTemperatureZone2SensorService);
|
|
1004
1071
|
};
|
|
1005
1072
|
|
|
1006
|
-
if (zone.flowTemperature !== null) {
|
|
1073
|
+
if (zone.flowTemperature !== null && this.temperatureFlowZone2Sensor) {
|
|
1007
1074
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature zone 2 sensor service`);
|
|
1008
1075
|
this.flowTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureZone2SensorService${deviceId}`);
|
|
1009
1076
|
this.flowTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -1016,7 +1083,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1016
1083
|
accessory.addService(this.flowTemperatureZone2SensorService);
|
|
1017
1084
|
};
|
|
1018
1085
|
|
|
1019
|
-
if (zone.returnTemperature !== null) {
|
|
1086
|
+
if (zone.returnTemperature !== null && this.temperatureReturnZone2Sensor) {
|
|
1020
1087
|
if (this.logDebug) this.emit('debug', `Prepare return temperature zone 2 sensor service`);
|
|
1021
1088
|
this.returnTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureZone2SensorService${deviceId}`);
|
|
1022
1089
|
this.returnTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
@@ -1735,10 +1802,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
1735
1802
|
|
|
1736
1803
|
//zones sensors
|
|
1737
1804
|
let currentZoneSensorCase = 0;
|
|
1738
|
-
const caseHeatPumpSensor = this.
|
|
1739
|
-
const caseZone1Sensor = this.temperatureFlowZone1Sensor || this.temperatureReturnZone1Sensor ? currentZoneSensorCase++ : -1;
|
|
1740
|
-
const caseHotWaterSensor = (this.temperatureFlowWaterTankSensor || this.temperatureReturnWaterTankSensor) && deviceData.Device.HasHotWaterTank ? currentZoneSensorCase++ : -1;
|
|
1741
|
-
const caseZone2Sensor = (this.temperatureFlowZone2Sensor || this.temperatureReturnZone2Sensor) && deviceData.Device.HasZone2 !== false && deviceData.Device.HasZone2 !== null ? currentZoneSensorCase++ : -1;
|
|
1805
|
+
const caseHeatPumpSensor = this.temperatureRoomSensor || this.temperatureFlowSensor || this.temperatureReturnSensor ? currentZoneSensorCase++ : -1;
|
|
1806
|
+
const caseZone1Sensor = this.temperatureRoomZone1Sensor || this.temperatureFlowZone1Sensor || this.temperatureReturnZone1Sensor ? currentZoneSensorCase++ : -1;
|
|
1807
|
+
const caseHotWaterSensor = (this.temperatureWaterTankSensor || this.temperatureFlowWaterTankSensor || this.temperatureReturnWaterTankSensor) && deviceData.Device.HasHotWaterTank ? currentZoneSensorCase++ : -1;
|
|
1808
|
+
const caseZone2Sensor = (this.temperatureRoomZone2Sensor || this.temperatureFlowZone2Sensor || this.temperatureReturnZone2Sensor) && deviceData.Device.HasZone2 !== false && deviceData.Device.HasZone2 !== null ? currentZoneSensorCase++ : -1;
|
|
1742
1809
|
const zonesSensorsCount = currentZoneSensorCase;
|
|
1743
1810
|
|
|
1744
1811
|
//heat pump
|
|
@@ -1748,20 +1815,20 @@ class DeviceAtw extends EventEmitter {
|
|
|
1748
1815
|
const unitStatus = deviceData.Device.UnitStatus ?? power; // fallback to power melcloud home
|
|
1749
1816
|
const operationMode = deviceData.Device.OperationMode;
|
|
1750
1817
|
const outdoorTemperature = deviceData.Device.OutdoorTemperature ?? deviceData.Device.RoomTemperatureZone1; // fallback to room temperature zone 1 melcloud home
|
|
1751
|
-
const flowTemperatureHeatPump = deviceData.Device.FlowTemperature
|
|
1752
|
-
const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature
|
|
1818
|
+
const flowTemperatureHeatPump = deviceData.Device.FlowTemperature;
|
|
1819
|
+
const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature;
|
|
1753
1820
|
|
|
1754
1821
|
//zone 1
|
|
1755
1822
|
const zone1Name = deviceData.Zone1Name ?? 'Zone 1';
|
|
1756
1823
|
const roomTemperatureZone1 = deviceData.Device.RoomTemperatureZone1;
|
|
1757
1824
|
const operationModeZone1 = deviceData.Device.OperationModeZone1;
|
|
1758
1825
|
const setTemperatureZone1 = deviceData.Device.SetTemperatureZone1;
|
|
1759
|
-
const setHeatFlowTemperatureZone1 = deviceData.Device.SetHeatFlowTemperatureZone1
|
|
1760
|
-
const setCoolFlowTemperatureZone1 = deviceData.Device.SetCoolFlowTemperatureZone1
|
|
1826
|
+
const setHeatFlowTemperatureZone1 = deviceData.Device.SetHeatFlowTemperatureZone1;
|
|
1827
|
+
const setCoolFlowTemperatureZone1 = deviceData.Device.SetCoolFlowTemperatureZone1;
|
|
1761
1828
|
const prohibitZone1 = deviceData.Device.ProhibitZone1 ?? false;
|
|
1762
1829
|
const idleZone1 = deviceData.Device.IdleZone1 ?? false;
|
|
1763
|
-
const flowTemperatureZone1 = deviceData.Device.FlowTemperatureZone1
|
|
1764
|
-
const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1
|
|
1830
|
+
const flowTemperatureZone1 = deviceData.Device.FlowTemperatureZone1;
|
|
1831
|
+
const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1;
|
|
1765
1832
|
|
|
1766
1833
|
//hot water
|
|
1767
1834
|
const hotWaterName = 'Hot Water';
|
|
@@ -1770,20 +1837,20 @@ class DeviceAtw extends EventEmitter {
|
|
|
1770
1837
|
const forcedHotWaterMode = deviceData.Device.ForcedHotWaterMode ? 1 : 0;
|
|
1771
1838
|
const ecoHotWater = deviceData.Device.EcoHotWater ?? false;
|
|
1772
1839
|
const prohibitHotWater = deviceData.Device.ProhibitHotWater ?? false;
|
|
1773
|
-
const flowTemperatureWaterTank = deviceData.Device.FlowTemperatureBoiler
|
|
1774
|
-
const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler
|
|
1840
|
+
const flowTemperatureWaterTank = deviceData.Device.FlowTemperatureBoiler;
|
|
1841
|
+
const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler;
|
|
1775
1842
|
|
|
1776
1843
|
//zone 2
|
|
1777
1844
|
const zone2Name = deviceData.Zone2Name ?? 'Zone 2';
|
|
1778
1845
|
const roomTemperatureZone2 = deviceData.Device.RoomTemperatureZone2;
|
|
1779
1846
|
const operationModeZone2 = deviceData.Device.OperationModeZone2;
|
|
1780
1847
|
const setTemperatureZone2 = deviceData.Device.SetTemperatureZone2;
|
|
1781
|
-
const setHeatFlowTemperatureZone2 = deviceData.Device.SetHeatFlowTemperatureZone2
|
|
1782
|
-
const setCoolFlowTemperatureZone2 = deviceData.Device.SetCoolFlowTemperatureZone2
|
|
1848
|
+
const setHeatFlowTemperatureZone2 = deviceData.Device.SetHeatFlowTemperatureZone2;
|
|
1849
|
+
const setCoolFlowTemperatureZone2 = deviceData.Device.SetCoolFlowTemperatureZone2;
|
|
1783
1850
|
const prohibitZone2 = deviceData.Device.ProhibitZone2 ?? false;
|
|
1784
1851
|
const idleZone2 = deviceData.Device.IdleZone2 ?? false;
|
|
1785
|
-
const flowTemperatureZone2 = deviceData.Device.FlowTemperatureZone2
|
|
1786
|
-
const returnTemperatureZone2 = deviceData.Device.ReturnTemperatureZone2
|
|
1852
|
+
const flowTemperatureZone2 = deviceData.Device.FlowTemperatureZone2;
|
|
1853
|
+
const returnTemperatureZone2 = deviceData.Device.ReturnTemperatureZone2;
|
|
1787
1854
|
|
|
1788
1855
|
//device
|
|
1789
1856
|
const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
|
|
@@ -1869,26 +1936,36 @@ class DeviceAtw extends EventEmitter {
|
|
|
1869
1936
|
currentOperationMode = !power ? 0 : (idleZone1 ? 1 : [2, 2, 2, 3, 3, 2][operationModeZone1]); //INACTIVE, IDLE, HEATING, COOLING
|
|
1870
1937
|
targetOperationMode = [1, 2, 0, 1, 2, 1][operationModeZone1]; //AUTO, HEAT, COOL
|
|
1871
1938
|
|
|
1872
|
-
switch (
|
|
1873
|
-
case
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1939
|
+
switch (accountTypeMelcloud) {
|
|
1940
|
+
case true: //Melcloud
|
|
1941
|
+
switch (operationModeZone1) {
|
|
1942
|
+
case 1: //HEAT FLOW
|
|
1943
|
+
setTemperature = setHeatFlowTemperatureZone1;
|
|
1944
|
+
roomTemperature = flowTemperatureZone1;
|
|
1945
|
+
temperatureSetPropsMinValue = minSetHeatFlowTemperature;
|
|
1946
|
+
temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
|
|
1947
|
+
break;
|
|
1948
|
+
case 4: //COOL FLOW
|
|
1949
|
+
setTemperature = setCoolFlowTemperatureZone1;
|
|
1950
|
+
roomTemperature = flowTemperatureZone1;
|
|
1951
|
+
temperatureSetPropsMinValue = minSetCoolFlowTemperature;
|
|
1952
|
+
temperatureSetPropsMaxValue = maxSetTemperature;
|
|
1953
|
+
break;
|
|
1954
|
+
default:
|
|
1955
|
+
setTemperature = setTemperatureZone1;
|
|
1956
|
+
roomTemperature = roomTemperatureZone1;
|
|
1957
|
+
temperatureSetPropsMinValue = minSetTemperature;
|
|
1958
|
+
temperatureSetPropsMaxValue = maxSetTemperature;
|
|
1959
|
+
break
|
|
1960
|
+
};
|
|
1884
1961
|
break;
|
|
1885
|
-
default:
|
|
1962
|
+
default: //Melcloud Home
|
|
1886
1963
|
setTemperature = setTemperatureZone1;
|
|
1887
1964
|
roomTemperature = roomTemperatureZone1;
|
|
1888
1965
|
temperatureSetPropsMinValue = minSetTemperature;
|
|
1889
1966
|
temperatureSetPropsMaxValue = maxSetTemperature;
|
|
1890
|
-
break
|
|
1891
|
-
}
|
|
1967
|
+
break;
|
|
1968
|
+
}
|
|
1892
1969
|
|
|
1893
1970
|
lockPhysicalControl = prohibitZone1 ? 1 : 0;
|
|
1894
1971
|
operationModeSetPropsMinValue = [0, 0, 1, 0][heatCoolModes];
|
|
@@ -1979,26 +2056,36 @@ class DeviceAtw extends EventEmitter {
|
|
|
1979
2056
|
currentOperationMode = !power ? 0 : idleZone1 ? 0 : [1, 1, 1, 2, 2, 1][operationModeZone1]; //OFF, HEAT, COOL
|
|
1980
2057
|
targetOperationMode = [1, 2, 3, 1, 2, 1][operationModeZone1]; //OFF, HEAT, COOL, AUTO
|
|
1981
2058
|
|
|
1982
|
-
switch (
|
|
1983
|
-
case
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
2059
|
+
switch (accountTypeMelcloud) {
|
|
2060
|
+
case true: //Melcloud
|
|
2061
|
+
switch (operationModeZone1) {
|
|
2062
|
+
case 1: //HEAT FLOW
|
|
2063
|
+
setTemperature = setHeatFlowTemperatureZone1;
|
|
2064
|
+
roomTemperature = flowTemperatureZone1;
|
|
2065
|
+
temperatureSetPropsMinValue = minSetHeatFlowTemperature;
|
|
2066
|
+
temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
|
|
2067
|
+
break;
|
|
2068
|
+
case 4: //COOL FLOW
|
|
2069
|
+
setTemperature = setCoolFlowTemperatureZone1;
|
|
2070
|
+
roomTemperature = flowTemperatureZone1;
|
|
2071
|
+
temperatureSetPropsMinValue = minSetCoolFlowTemperature;
|
|
2072
|
+
temperatureSetPropsMaxValue = maxSetTemperature;
|
|
2073
|
+
break;
|
|
2074
|
+
default:
|
|
2075
|
+
setTemperature = setTemperatureZone1;
|
|
2076
|
+
roomTemperature = roomTemperatureZone1;
|
|
2077
|
+
temperatureSetPropsMinValue = minSetTemperature;
|
|
2078
|
+
temperatureSetPropsMaxValue = maxSetTemperature;
|
|
2079
|
+
break
|
|
2080
|
+
};
|
|
1994
2081
|
break;
|
|
1995
|
-
default:
|
|
2082
|
+
default: //Melcloud Home
|
|
1996
2083
|
setTemperature = setTemperatureZone1;
|
|
1997
2084
|
roomTemperature = roomTemperatureZone1;
|
|
1998
2085
|
temperatureSetPropsMinValue = minSetTemperature;
|
|
1999
2086
|
temperatureSetPropsMaxValue = maxSetTemperature;
|
|
2000
|
-
break
|
|
2001
|
-
}
|
|
2087
|
+
break;
|
|
2088
|
+
}
|
|
2002
2089
|
|
|
2003
2090
|
operationModeSetPropsMinValue = [1, 1, 1, 0][heatCoolModes];
|
|
2004
2091
|
operationModeSetPropsMaxValue = [3, 3, 2, 0][heatCoolModes];
|
|
@@ -2096,7 +2183,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
2096
2183
|
this.emit('info', `${name} Outdoor temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
2097
2184
|
this.emit('info', `${name} Temperature display unit: ${obj.temperatureUnit}`);
|
|
2098
2185
|
this.emit('info', `${name} Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
2099
|
-
if (
|
|
2186
|
+
if (!accountTypeMelcloud) this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
|
|
2100
2187
|
break;
|
|
2101
2188
|
case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
2102
2189
|
operationModeText = idleZone1 ? HeatPump.OperationModeZoneMapEnumToStringInfo[6] : HeatPump.OperationModeZoneMapEnumToStringInfo[operationModeZone1];
|