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.
@@ -1150,50 +1150,92 @@
1150
1150
  "functionBody": "return model.accounts[arrayIndices[0]].atwDevices[arrayIndices[1]].displayType > 0;"
1151
1151
  }
1152
1152
  },
1153
- "temperatureSensor": {
1154
- "title": "Temperature Sensor Room",
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.length > 0 || account.atwDevices.length > 0 || account.ervDevices.length > 0);
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.length > 0 || account.atwDevices.length > 0 || account.ervDevices.length > 0);
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' ? 'black' : 'white';
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
- if (!newDevicesCount && !newPresetsCount && !newSchedulesCount && !newScenesCount && !removedDevicesCount && !removedPresetsCount && !removedSchedulesCount && !removedScenesCount) updateInfo('info', 'No changes detected.', fontColor);
419
-
420
- // New items
421
- const newParts = [];
422
- if (newDevicesCount) newParts.push(summarizeChanges('Devices', newInMelCloud.ata, newInMelCloud.atw, newInMelCloud.erv));
423
- if (account.type === 'melcloud' && newPresetsCount) newParts.push(summarizeChanges('Presets', newInMelCloud.ataPresets, newInMelCloud.atwPresets, newInMelCloud.ervPresets));
424
- if (account.type === 'melcloudhome' && newSchedulesCount) newParts.push(summarizeChanges('Schedules', newInMelCloud.ataSchedules, newInMelCloud.atwSchedules, newInMelCloud.ervSchedules));
425
- if (account.type === 'melcloudhome' && newScenesCount) newParts.push(summarizeChanges('Scenes', newInMelCloud.ataScenes, newInMelCloud.atwScenes, newInMelCloud.ervScenes));
426
- if (newParts.length) updateInfo('info', `Found new: ${newParts.join('; ')}`, 'green');
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.6",
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.temperatureSensor = device.temperatureSensor || false;
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 (i) {
483
- case caseHeatPump: //Heat Pump
484
- //deviceData.Device.SetTemperatureZone1 = value;
485
- //flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
486
- break;
487
- case caseZone1: //Zone 1
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 4: //COOL FLOW
494
- deviceData.Device.SetCoolFlowTemperatureZone1 = value;
495
- flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
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
- case caseHotWater: //Hot Water
504
- deviceData.Device.SetTankWaterTemperature = value;
505
- flag = HeatPump.EffectiveFlags.SetTankWaterTemperature;
506
- break;
507
- case caseZone2: //Zone 2
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 4: //COOL FLOW
514
- deviceData.Device.SetCoolFlowTemperatureZone2 = value;
515
- flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
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
- default:
543
+ case caseZone2: //Zone 2
518
544
  deviceData.Device.SetTemperatureZone2 = value;
519
- flag = HeatPump.EffectiveFlags.SetTemperatureZone2;
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 (i) {
548
- case caseHeatPump: //Heat Pump
549
- //deviceData.Device.SetTemperatureZone1 = value;
550
- //flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
551
- break;
552
- case caseZone1: //Zone 1
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 4: //COOL FLOW
559
- deviceData.Device.SetCoolFlowTemperatureZone1 = value;
560
- flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
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
- case caseHotWater: //Hot Water
569
- deviceData.Device.SetTankWaterTemperature = value;
570
- flag = HeatPump.EffectiveFlags.SetTankWaterTemperature;
571
- break;
572
- case caseZone2: //Zone 2
573
- switch (zone.operationMode) {
574
- case 1: //HEAT FLOW
575
- deviceData.Device.SetHeatFlowTemperatureZone2 = value;
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 4: //COOL FLOW
579
- deviceData.Device.SetCoolFlowTemperatureZone2 = value;
580
- flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
626
+ case caseHotWater: //Hot Water
627
+ deviceData.Device.SetTankWaterTemperature = value;
581
628
  break;
582
- default:
629
+ case caseZone2: //Zone 2
583
630
  deviceData.Device.SetTemperatureZone2 = value;
584
- flag = HeatPump.EffectiveFlags.SetTemperatureZone2;
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 (i) {
793
- case caseHeatPump: //Heat Pump
794
- //deviceData.Device.SetTemperatureZone1 = value;
795
- //flag = CONSTANTS.HeatPump.EffectiveFlags.SetTemperatureZone1;
796
- break;
797
- case caseZone1: //Zone 1
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 4: //COOL FLOW
804
- deviceData.Device.SetCoolFlowTemperatureZone1 = value;
805
- flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone1;
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
- case caseHotWater: //Hot Water
814
- deviceData.Device.SetTankWaterTemperature = value;
815
- flag = HeatPump.EffectiveFlags.SetTankWaterTemperature;
816
- break;
817
- case caseZone2: //Zone 2
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 4: //COOL FLOW
824
- deviceData.Device.SetCoolFlowTemperatureZone2 = value;
825
- flag = HeatPump.EffectiveFlags.SetCoolFlowTemperatureZone2;
889
+ case caseZone1: //Zone 1
890
+ deviceData.Device.SetTemperatureZone1 = value;
826
891
  break;
827
- default:
892
+ case caseHotWater: //Hot Water
893
+ deviceData.Device.SetTankWaterTemperature = value;
894
+ break;
895
+ case caseZone2: //Zone 2
828
896
  deviceData.Device.SetTemperatureZone2 = value;
829
- flag = HeatPump.EffectiveFlags.SetTemperatureZone2;
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.temperatureSensor || this.temperatureFlowSensor || this.temperatureReturnSensor ? currentZoneSensorCase++ : -1;
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 ?? null; // only sensor
1752
- const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature ?? null; // only sensor
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 ?? setTemperatureZone1;
1760
- const setCoolFlowTemperatureZone1 = deviceData.Device.SetCoolFlowTemperatureZone1 ?? setTemperatureZone1;
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 ?? roomTemperatureZone1; // fallback to room temperature melcloud home
1764
- const returnTemperatureZone1 = deviceData.Device.ReturnTemperatureZone1 ?? null; // only sensor
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 ?? null; // only sensor
1774
- const returnTemperatureWaterTank = deviceData.Device.ReturnTemperatureBoiler ?? null; // only sensor
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 ?? setTemperatureZone2;
1782
- const setCoolFlowTemperatureZone2 = deviceData.Device.SetCoolFlowTemperatureZone2 ?? setTemperatureZone2;
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 ?? roomTemperatureZone2; // fallback to room temperature melcloud home
1786
- const returnTemperatureZone2 = deviceData.Device.ReturnTemperatureZone2 ?? null; // only sensor
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 (operationModeZone1) {
1873
- case 1: //HEAT FLOW
1874
- setTemperature = setHeatFlowTemperatureZone1;
1875
- roomTemperature = flowTemperatureZone1;
1876
- temperatureSetPropsMinValue = minSetHeatFlowTemperature;
1877
- temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
1878
- break;
1879
- case 4: //COOL FLOW
1880
- setTemperature = setCoolFlowTemperatureZone1;
1881
- roomTemperature = flowTemperatureZone1;
1882
- temperatureSetPropsMinValue = minSetCoolFlowTemperature;
1883
- temperatureSetPropsMaxValue = maxSetTemperature;
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 (operationModeZone1) {
1983
- case 1: //HEAT FLOW
1984
- setTemperature = setHeatFlowTemperatureZone1;
1985
- roomTemperature = flowTemperatureZone1;
1986
- temperatureSetPropsMinValue = minSetHeatFlowTemperature;
1987
- temperatureSetPropsMaxValue = maxSetHeatFlowTemperature;
1988
- break;
1989
- case 4: //COOL FLOW
1990
- setTemperature = setCoolFlowTemperatureZone1;
1991
- roomTemperature = flowTemperatureZone1;
1992
- temperatureSetPropsMinValue = minSetCoolFlowTemperature;
1993
- temperatureSetPropsMaxValue = maxSetTemperature;
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 (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
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];