homebridge-melcloud-control 4.2.6-beta.10 → 4.2.6-beta.12

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.2.6-beta.10",
4
+ "version": "4.2.6-beta.12",
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/constants.js CHANGED
@@ -27,7 +27,7 @@ export const ApiUrlsHome = {
27
27
  PutErv: "/api/ervunit/deviceid",
28
28
  PostSchedule: " /api/cloudschedule/deviceid", // POST {"days":[2],"time":"17:59:00","enabled":true,"id":"53c5e804-0663-47d0-85c2-2d8ccd2573de","power":false,"operationMode":null,"setPoint":null,"vaneVerticalDirection":null,"vaneHorizontalDirection":null,"setFanSpeed":null}
29
29
  PostProtectionFrost: "/api/protection/frost", // POST {"enabled":true,"min":13,"max":16,"units":{"ATA":["ef333525-2699-4290-af5a-2922566676da"]}}
30
- PostProtectionOverheat: "api/protection/overheat", // POST {"enabled":true,"min":32,"max":35,"units":{"ATA":["ef333525-2699-4290-af5a-2922566676da"]}}
30
+ PostProtectionOverheat: "/api/protection/overheat", // POST {"enabled":true,"min":32,"max":35,"units":{"ATA":["ef333525-2699-4290-af5a-2922566676da"]}}
31
31
  PostHolidayMode: " /api/holidaymode", // POST {"enabled":true,"startDate":"2025-11-11T17:42:24.913","endDate":"2026-06-01T09:18:00","units":{"ATA":["ef333525-2699-4290-af5a-2922566676da"]}}
32
32
  PutScheduleEnabled: "/api/cloudschedule/deviceid/enabled", // PUT {"enabled":true}
33
33
  PutScene: {
package/src/deviceata.js CHANGED
@@ -355,7 +355,6 @@ class DeviceAta extends EventEmitter {
355
355
  .onSet(async (state) => {
356
356
  try {
357
357
  deviceData.Device.Power = state ? true : false;
358
-
359
358
  if (this.logInfo) this.emit('info', `Set power: ${state ? 'On' : 'Off'}`);
360
359
  await this.melCloudAta.send(this.accountType, this.displayType, deviceData, AirConditioner.EffectiveFlags.Power);
361
360
  } catch (error) {
@@ -382,18 +381,16 @@ class DeviceAta extends EventEmitter {
382
381
  switch (value) {
383
382
  case 0: //AUTO - AUTO
384
383
  value = autoDryFanMode;
385
- deviceData.Device.OperationMode = value;
386
384
  break;
387
385
  case 1: //HEAT - HEAT
388
386
  value = heatDryFanMode;
389
- deviceData.Device.OperationMode = value;
390
387
  break;
391
388
  case 2: //COOL - COOL
392
389
  value = coolDryFanMode;
393
- deviceData.Device.OperationMode = value;
394
390
  break;
395
391
  };
396
392
 
393
+ deviceData.Device.OperationMode = value;
397
394
  if (this.logInfo) this.emit('info', `Set operation mode: ${AirConditioner.OperationModeMapEnumToString[value]}`);
398
395
  await this.melCloudAta.send(this.accountType, this.displayType, deviceData, AirConditioner.EffectiveFlags.OperationMode);
399
396
  } catch (error) {
@@ -456,7 +453,7 @@ class DeviceAta extends EventEmitter {
456
453
  if (this.logInfo) this.emit('info', `Set air direction mode: ${AirConditioner.AirDirectionMapEnumToString[value]}`);
457
454
  await this.melCloudAta.send(this.accountType, this.displayType, deviceData, AirConditioner.EffectiveFlags.VaneVerticalVaneHorizontal);
458
455
  } catch (error) {
459
- if (this.logWarn) this.emit('warn', `Set vane swing mode error: ${error}`);
456
+ if (this.logWarn) this.emit('warn', `Set air direction mode error: ${error}`);
460
457
  };
461
458
  });
462
459
  };
@@ -539,10 +536,11 @@ class DeviceAta extends EventEmitter {
539
536
  };
540
537
  });
541
538
  this.melCloudService = melCloudService;
539
+ accessory.addService(melCloudService);
542
540
  break;
543
541
  case 2: //Thermostat
544
542
  if (this.logDebug) this.emit('debug', `Prepare thermostat service`);
545
- const melCloudServiceT = new Service.Thermostat(serviceName, `HeaterCooler ${deviceId}`);
543
+ const melCloudServiceT = new Service.Thermostat(serviceName, `Thermostat ${deviceId}`);
546
544
  melCloudServiceT.setPrimaryService(true);
547
545
  melCloudServiceT.getCharacteristic(Characteristic.CurrentHeatingCoolingState)
548
546
  .onGet(async () => {
@@ -565,26 +563,23 @@ class DeviceAta extends EventEmitter {
565
563
  switch (value) {
566
564
  case 0: //OFF - POWER OFF
567
565
  value = deviceData.Device.OperationMode;
568
- deviceData.Device.Power = false;
569
566
  flag = AirConditioner.EffectiveFlags.Power;
570
567
  break;
571
568
  case 1: //HEAT - HEAT
572
- deviceData.Device.Power = true;
573
569
  value = heatDryFanMode;
574
570
  flag = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
575
571
  break;
576
572
  case 2: //COOL - COOL
577
573
  value = coolDryFanMode;
578
- deviceData.Device.Power = true;
579
574
  flag = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature
580
575
  break;
581
576
  case 3: //AUTO - AUTO
582
577
  value = autoDryFanMode;
583
- deviceData.Device.Power = true;
584
578
  flag = AirConditioner.EffectiveFlags.PowerOperationModeSetTemperature;
585
579
  break;
586
580
  };
587
581
 
582
+ deviceData.Device.Power = value > 0 ? true : false;
588
583
  deviceData.Device.OperationMode = value;
589
584
  if (this.logInfo) this.emit('info', `Set operation mode: ${AirConditioner.OperationModeMapEnumToString[value]}`);
590
585
  await this.melCloudAta.send(this.accountType, this.displayType, deviceData, flag);
@@ -634,6 +629,7 @@ class DeviceAta extends EventEmitter {
634
629
  };
635
630
  });
636
631
  this.melCloudService = melCloudServiceT;
632
+ accessory.addService(melCloudServiceT);
637
633
  break;
638
634
  };
639
635
 
@@ -1609,7 +1605,7 @@ class DeviceAta extends EventEmitter {
1609
1605
  obj.operationModeSetPropsValidValues = supportsAuto && supportsHeat ? [0, 1, 2, 3] : !supportsAuto && supportsHeat ? [0, 1, 2] : supportsAuto && !supportsHeat ? [0, 2, 3] : [0, 2];
1610
1606
 
1611
1607
  //update characteristics
1612
- this.melCloudServiceT
1608
+ this.melCloudService
1613
1609
  ?.updateCharacteristic(Characteristic.CurrentHeatingCoolingState, obj.currentOperationMode)
1614
1610
  .updateCharacteristic(Characteristic.TargetHeatingCoolingState, obj.targetOperationMode)
1615
1611
  .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
package/src/deviceerv.js CHANGED
@@ -316,9 +316,9 @@ class DeviceErv extends EventEmitter {
316
316
  switch (this.displayType) {
317
317
  case 1: //Heater Cooler
318
318
  if (this.logDebug) this.emit('debug', `Prepare heather/cooler service`);
319
- this.melCloudService = new Service.HeaterCooler(serviceName, `HeaterCooler ${deviceId}`);
320
- this.melCloudService.setPrimaryService(true);
321
- this.melCloudService.getCharacteristic(Characteristic.Active)
319
+ const melCloudService = new Service.HeaterCooler(serviceName, `HeaterCooler ${deviceId}`);
320
+ melCloudService.setPrimaryService(true);
321
+ melCloudService.getCharacteristic(Characteristic.Active)
322
322
  .onGet(async () => {
323
323
  const state = this.accessory.power;
324
324
  return state;
@@ -332,12 +332,12 @@ class DeviceErv extends EventEmitter {
332
332
  if (this.logWarn) this.emit('warn', `Set power error: ${error}`);
333
333
  };
334
334
  });
335
- this.melCloudService.getCharacteristic(Characteristic.CurrentHeaterCoolerState)
335
+ melCloudService.getCharacteristic(Characteristic.CurrentHeaterCoolerState)
336
336
  .onGet(async () => {
337
337
  const value = this.accessory.currentOperationMode;
338
338
  return value;
339
339
  });
340
- this.melCloudService.getCharacteristic(Characteristic.TargetHeaterCoolerState)
340
+ melCloudService.getCharacteristic(Characteristic.TargetHeaterCoolerState)
341
341
  .setProps({
342
342
  minValue: this.accessory.operationModeSetPropsMinValue,
343
343
  maxValue: this.accessory.operationModeSetPropsMaxValue,
@@ -367,13 +367,13 @@ class DeviceErv extends EventEmitter {
367
367
  if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
368
368
  };
369
369
  });
370
- this.melCloudService.getCharacteristic(Characteristic.CurrentTemperature)
370
+ melCloudService.getCharacteristic(Characteristic.CurrentTemperature)
371
371
  .onGet(async () => {
372
372
  const value = this.accessory.roomTemperature;
373
373
  return value;
374
374
  });
375
375
  if (supportsFanSpeed) {
376
- this.melCloudService.getCharacteristic(Characteristic.RotationSpeed)
376
+ melCloudService.getCharacteristic(Characteristic.RotationSpeed)
377
377
  .setProps({
378
378
  minValue: 0,
379
379
  maxValue: this.accessory.fanSpeedSetPropsMaxValue,
@@ -410,7 +410,7 @@ class DeviceErv extends EventEmitter {
410
410
  }
411
411
  //device can cool
412
412
  if (supportsAutoVentilationMode && supportsCoolOperationMode) {
413
- this.melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
413
+ melCloudService.getCharacteristic(Characteristic.CoolingThresholdTemperature)
414
414
  .setProps({
415
415
  minValue: this.accessory.minTempCoolDry,
416
416
  maxValue: this.accessory.maxTempCoolDry,
@@ -432,7 +432,7 @@ class DeviceErv extends EventEmitter {
432
432
  };
433
433
  //device can heat
434
434
  if (supportsAutoVentilationMode && supportsHeatOperationMode) {
435
- this.melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
435
+ melCloudService.getCharacteristic(Characteristic.HeatingThresholdTemperature)
436
436
  .setProps({
437
437
  minValue: this.accessory.minTempHeat,
438
438
  maxValue: this.accessory.maxTempHeat,
@@ -452,7 +452,7 @@ class DeviceErv extends EventEmitter {
452
452
  };
453
453
  });
454
454
  };
455
- this.melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
455
+ melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
456
456
  .onGet(async () => {
457
457
  const value = this.accessory.useFahrenheit;
458
458
  return value;
@@ -469,18 +469,19 @@ class DeviceErv extends EventEmitter {
469
469
  if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
470
470
  };
471
471
  });
472
- accessory.addService(this.melCloudService);
472
+ this.melCloudService = melCloudService;
473
+ accessory.addService(melCloudService);
473
474
  break;
474
475
  case 2: //Thermostat
475
476
  if (this.logDebug) this.emit('debug', `Prepare thermostat service`);
476
- this.melCloudService = new Service.Thermostat(serviceName, `Thermostat ${deviceId}`);
477
- this.melCloudService.setPrimaryService(true);
478
- this.melCloudService.getCharacteristic(Characteristic.CurrentHeatingCoolingState)
477
+ const melCloudServiceT = new Service.Thermostat(serviceName, `Thermostat ${deviceId}`);
478
+ melCloudServiceT.setPrimaryService(true);
479
+ melCloudServiceT.getCharacteristic(Characteristic.CurrentHeatingCoolingState)
479
480
  .onGet(async () => {
480
481
  const value = this.accessory.currentOperationMode;
481
482
  return value;
482
483
  });
483
- this.melCloudService.getCharacteristic(Characteristic.TargetHeatingCoolingState)
484
+ melCloudServiceT.getCharacteristic(Characteristic.TargetHeatingCoolingState)
484
485
  .setProps({
485
486
  minValue: this.accessory.operationModeSetPropsMinValue,
486
487
  maxValue: this.accessory.operationModeSetPropsMaxValue,
@@ -500,33 +501,33 @@ class DeviceErv extends EventEmitter {
500
501
  break;
501
502
  case 1: //HEAT - LOSSNAY
502
503
  deviceData.Device.Power = true;
503
- deviceData.Device.VentilationMode = 0;
504
504
  flag = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
505
505
  break;
506
506
  case 2: //COOL - BYPASS
507
507
  deviceData.Device.Power = true;
508
- deviceData.Device.VentilationMode = supportsBypassVentilationMode ? 1 : 0;
508
+ value = supportsBypassVentilationMode ? 1 : 0;
509
509
  flag = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
510
510
  break;
511
511
  case 3: //AUTO - AUTO
512
512
  deviceData.Device.Power = true;
513
- deviceData.Device.VentilationMode = supportsAutoVentilationMode ? 2 : 0;
513
+ value = supportsAutoVentilationMode ? 2 : 0;
514
514
  flag = Ventilation.EffectiveFlags.Power + Ventilation.EffectiveFlags.VentilationMode;
515
515
  break;
516
516
  };
517
517
 
518
+ deviceData.Device.VentilationMode = value;
518
519
  if (this.logInfo) this.emit('info', `Set operation mode: ${Ventilation.VentilationModeMapEnumToString[deviceData.Device.VentilationMode]}`);
519
520
  await this.melCloudErv.send(this.accountType, this.displayType, deviceData, flag);
520
521
  } catch (error) {
521
522
  if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
522
523
  };
523
524
  });
524
- this.melCloudService.getCharacteristic(Characteristic.CurrentTemperature)
525
+ melCloudServiceT.getCharacteristic(Characteristic.CurrentTemperature)
525
526
  .onGet(async () => {
526
527
  const value = this.accessory.roomTemperature;
527
528
  return value;
528
529
  });
529
- this.melCloudService.getCharacteristic(Characteristic.TargetTemperature)
530
+ melCloudServiceT.getCharacteristic(Characteristic.TargetTemperature)
530
531
  .setProps({
531
532
  minValue: this.accessory.minTempHeat,
532
533
  maxValue: this.accessory.maxTempHeat,
@@ -545,7 +546,7 @@ class DeviceErv extends EventEmitter {
545
546
  if (this.logWarn) this.emit('warn', `Set temperature error: ${error}`);
546
547
  };
547
548
  });
548
- this.melCloudService.getCharacteristic(Characteristic.TemperatureDisplayUnits)
549
+ melCloudServiceT.getCharacteristic(Characteristic.TemperatureDisplayUnits)
549
550
  .onGet(async () => {
550
551
  const value = this.accessory.useFahrenheit;
551
552
  return value;
@@ -562,7 +563,8 @@ class DeviceErv extends EventEmitter {
562
563
  if (this.logWarn) this.emit('warn', `Set temperature display unit error: ${error}`);
563
564
  };
564
565
  });
565
- accessory.addService(this.melCloudService);
566
+ this.melCloudService = melCloudServiceT;
567
+ accessory.addService(melCloudServiceT);
566
568
  break;
567
569
  };
568
570
 
@@ -1319,8 +1321,8 @@ class DeviceErv extends EventEmitter {
1319
1321
  .updateCharacteristic(Characteristic.RotationSpeed, obj.fanSpeed)
1320
1322
  .updateCharacteristic(Characteristic.LockPhysicalControls, obj.lockPhysicalControl)
1321
1323
  .updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit);
1322
- const updateDefCool = supportsCoolOperationMode ? this.melCloudService?.updateCharacteristic(Characteristic.CoolingThresholdTemperature, defaultCoolingSetTemperature) : false;
1323
- const updateDefHeat = supportsHeatOperationMode ? this.melCloudService?.updateCharacteristic(Characteristic.HeatingThresholdTemperature, defaultHeatingSetTemperature) : false;
1324
+ if (supportsCoolOperationMode) this.melCloudService?.updateCharacteristic(Characteristic.CoolingThresholdTemperature, defaultCoolingSetTemperature);
1325
+ if (supportsHeatOperationMode) this.melCloudService?.updateCharacteristic(Characteristic.HeatingThresholdTemperature, defaultHeatingSetTemperature);
1324
1326
  break;
1325
1327
  case 2: //Thermostat
1326
1328
  //operation mode - 0, HEAT, 2, COOL, 4, 5, 6, FAN, AUTO
@@ -181,25 +181,13 @@ class MelCloudAta extends EventEmitter {
181
181
  this.updateData(deviceData);
182
182
  return true;
183
183
  case "melcloudhome":
184
- if (displayType === 1 && deviceData.Device.OperationMode === 8) {
185
- deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
186
-
187
- if (this.deviceData.Device.DefaultCoolingSetTemperature !== deviceData.Device.DefaultCoolingSetTemperature || this.deviceData.Device.DefaultHeatingSetTemperature !== deviceData.Device.DefaultHeatingSetTemperature) {
188
- const temps = {
189
- defaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
190
- defaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature
191
- };
192
- await this.functions.saveData(this.defaultTempsFile, temps);
193
- }
194
- }
195
-
196
184
  switch (flag) {
197
185
  case 'frostprotection':
198
186
  payload = {
199
187
  enabled: deviceData.FrostProtection.Enabled,
200
188
  min: deviceData.FrostProtection.Min,
201
189
  max: deviceData.FrostProtection.Max,
202
- units: { "ATA": [deviceData.DeviceID] }
190
+ units: { ATA: [deviceData.DeviceID] }
203
191
  };
204
192
  method = 'POST';
205
193
  path = ApiUrlsHome.PostProtectionFrost;
@@ -210,7 +198,7 @@ class MelCloudAta extends EventEmitter {
210
198
  enabled: deviceData.OverheatProtection.Enabled,
211
199
  min: deviceData.OverheatProtection.Min,
212
200
  max: deviceData.OverheatProtection.Max,
213
- units: { "ATA": [deviceData.DeviceID] }
201
+ units: { ATA: [deviceData.DeviceID] }
214
202
  };
215
203
  method = 'POST';
216
204
  path = ApiUrlsHome.PostProtectionOverheat;
@@ -221,7 +209,7 @@ class MelCloudAta extends EventEmitter {
221
209
  enabled: deviceData.HolidayMode.Enabled,
222
210
  startDate: deviceData.HolidayMode.StartDate,
223
211
  endDate: deviceData.HolidayMode.EndDate,
224
- units: { "ATA": [deviceData.DeviceID] }
212
+ units: { ATA: [deviceData.DeviceID] }
225
213
  };
226
214
  method = 'POST';
227
215
  path = ApiUrlsHome.PostHolidayMode;
@@ -235,11 +223,22 @@ class MelCloudAta extends EventEmitter {
235
223
  break;
236
224
  case 'scene':
237
225
  method = 'PUT';
238
- const state = flagData.Enabled ? 'Enable' : 'Disable';
239
- path = ApiUrlsHome.PutScene[state].replace('sceneid', flagData.Id);
226
+ path = ApiUrlsHome.PutScene[flagData.Enabled ? 'Enable' : 'Disable'].replace('sceneid', flagData.Id);
240
227
  this.headers.Referer = ApiUrlsHome.Referers.GetPutScenes;
241
228
  break;
242
229
  default:
230
+ if (displayType === 1 && deviceData.Device.OperationMode === 8) {
231
+ deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
232
+
233
+ if (this.deviceData.Device.DefaultCoolingSetTemperature !== deviceData.Device.DefaultCoolingSetTemperature || this.deviceData.Device.DefaultHeatingSetTemperature !== deviceData.Device.DefaultHeatingSetTemperature) {
234
+ const temps = {
235
+ defaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
236
+ defaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature
237
+ };
238
+ await this.functions.saveData(this.defaultTempsFile, temps);
239
+ }
240
+ }
241
+
243
242
  payload = {
244
243
  power: deviceData.Device.Power,
245
244
  setTemperature: deviceData.Device.SetTemperature,
@@ -209,8 +209,7 @@ class MelCloudAtw extends EventEmitter {
209
209
  break;
210
210
  case 'scene':
211
211
  method = 'PUT';
212
- const state = flagData.Enabled ? 'Enable' : 'Disable';
213
- path = ApiUrlsHome.PutScene[state].replace('sceneid', flagData.Id);
212
+ path = ApiUrlsHome.PutScene[flagData.Enabled ? 'Enable' : 'Disable'].replace('sceneid', flagData.Id);
214
213
  this.headers.Referer = ApiUrlsHome.Referers.GetPutScenes;
215
214
  break;
216
215
  default:
@@ -192,18 +192,6 @@ class MelCloudErv extends EventEmitter {
192
192
  this.updateData(deviceData);
193
193
  return true;
194
194
  case "melcloudhome":
195
- if (displayType === 1 && deviceData.Device.VentilationMode === 2) {
196
- deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
197
-
198
- if (this.deviceData.Device.DefaultCoolingSetTemperature !== deviceData.Device.DefaultCoolingSetTemperature || this.deviceData.Device.DefaultHeatingSetTemperature !== deviceData.Device.DefaultHeatingSetTemperature) {
199
- const temps = {
200
- defaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
201
- defaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature
202
- };
203
- await this.functions.saveData(this.defaultTempsFile, temps);
204
- }
205
- }
206
-
207
195
  switch (flag) {
208
196
  case 'holidaymode':
209
197
  payload = {
@@ -224,11 +212,22 @@ class MelCloudErv extends EventEmitter {
224
212
  break;
225
213
  case 'scene':
226
214
  method = 'PUT';
227
- const state = flagData.Enabled ? 'Enable' : 'Disable';
228
- path = ApiUrlsHome.PutScene[state].replace('sceneid', flagData.Id);
215
+ path = ApiUrlsHome.PutScene[flagData.Enabled ? 'Enable' : 'Disable'].replace('sceneid', flagData.Id);
229
216
  this.headers.Referer = ApiUrlsHome.Referers.GetPutScenes;
230
217
  break;
231
218
  default:
219
+ if (displayType === 1 && deviceData.Device.VentilationMode === 2) {
220
+ deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
221
+
222
+ if (this.deviceData.Device.DefaultCoolingSetTemperature !== deviceData.Device.DefaultCoolingSetTemperature || this.deviceData.Device.DefaultHeatingSetTemperature !== deviceData.Device.DefaultHeatingSetTemperature) {
223
+ const temps = {
224
+ defaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
225
+ defaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature
226
+ };
227
+ await this.functions.saveData(this.defaultTempsFile, temps);
228
+ }
229
+ }
230
+
232
231
  payload = {
233
232
  power: deviceData.Device.Power,
234
233
  setTemperature: deviceData.Device.SetTemperature,