homebridge-melcloud-control 3.3.12-beta.1 → 3.3.12-beta.11

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": "3.3.12-beta.1",
4
+ "version": "3.3.12-beta.11",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
@@ -73,12 +73,6 @@
73
73
  ],
74
74
  "AirDirection": [
75
75
  "AUTO",
76
- "1",
77
- "2",
78
- "3",
79
- "4",
80
- "5",
81
- "6",
82
76
  "SWING"
83
77
  ],
84
78
  "FanSpeed": [
package/src/deviceata.js CHANGED
@@ -243,34 +243,34 @@ class DeviceAta extends EventEmitter {
243
243
  const fanSpeed = deviceData.Device.FanSpeed;
244
244
  const operationMode = deviceData.Device.OperationMode;
245
245
  const vaneVerticalDirection = deviceData.Device.VaneVerticalDirection;
246
- const vaneVerticalSwing = deviceData.Device.vaneVerticalSwing;
247
- this.emit('message', `swing v: ${vaneVerticalSwing}`);
246
+ const vaneVerticalSwing = deviceData.Device.VaneVerticalSwing;
248
247
  const vaneHorizontalDirection = deviceData.Device.VaneHorizontalDirection;
249
248
  const vaneHorizontalSwing = deviceData.Device.VaneHorizontalSwing;
250
- this.emit('message', `swing h: ${vaneHorizontalSwing}`);
251
249
  const prohibitSetTemperature = deviceData.Device.ProhibitSetTemperature ?? false;
252
250
  const prohibitOperationMode = deviceData.Device.ProhibitOperationMode ?? false;
253
251
  const prohibitPower = deviceData.Device.ProhibitPower ?? false;
254
252
  const temperatureIncrement = deviceData.Device.TemperatureIncrement ?? 1;
255
253
  const outdoorTemperature = deviceData.Device.OutdoorTemperature;
256
254
 
255
+ this.emit('message', `Target temp: ${setTemperature}`);
257
256
  //accessory
258
257
  this.accessory.presets = presetsOnServer;
258
+ this.accessory.hasAutomaticFanSpeed = hasAutomaticFanSpeed;
259
+ this.accessory.airDirectionFunction = airDirectionFunction;
260
+ this.accessory.swingFunction = swingFunction;
261
+ this.accessory.hasOutdoorTemperature = hasOutdoorTemperature;
262
+ this.accessory.numberOfFanSpeeds = numberOfFanSpeeds;
259
263
  this.accessory.modelSupportsFanSpeed = modelSupportsFanSpeed;
260
264
  this.accessory.modelSupportsAuto = modelSupportsAuto;
261
265
  this.accessory.modelSupportsHeat = modelSupportsHeat;
262
266
  this.accessory.modelSupportsDry = modelSupportsDry;
263
267
  this.accessory.modelSupportsCool = modelSupportsCool;
264
- this.accessory.hasAutomaticFanSpeed = hasAutomaticFanSpeed;
265
- this.accessory.hasOutdoorTemperature = hasOutdoorTemperature;
266
- this.accessory.numberOfFanSpeeds = numberOfFanSpeeds;
267
- this.accessory.swingFunction = swingFunction;
268
268
  this.accessory.power = power ? 1 : 0;
269
269
  this.accessory.inStandbyMode = inStandbyMode;
270
270
  this.accessory.operationMode = operationMode;
271
- this.accessory.setTemperature = setTemperature;
272
271
  this.accessory.roomTemperature = roomTemperature;
273
272
  this.accessory.outdoorTemperature = outdoorTemperature;
273
+ this.accessory.setTemperature = setTemperature;
274
274
  this.accessory.defaultHeatingSetTemperature = defaultHeatingSetTemperature;
275
275
  this.accessory.defaultCoolingSetTemperature = defaultCoolingSetTemperature;
276
276
  this.accessory.actualFanSpeed = actualFanSpeed;
@@ -307,18 +307,17 @@ class DeviceAta extends EventEmitter {
307
307
  this.accessory.targetOperationMode = this.autoDryFanMode === 3 ? 0 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : this.accessory.targetOperationMode;
308
308
  break;
309
309
  case 8: //AUTO
310
- const curentModeInAuto = roomTemperature < defaultHeatingSetTemperature ? 'HEATING' : roomTemperature > defaultCoolingSetTemperature ? 'COOLING' : '';
311
- switch (curentModeInAuto) {
312
- case 'HEATING': //HEATING
313
- const heatingToFan = roomTemperature > defaultHeatingSetTemperature + 1;
310
+ switch (this.accessory.currentOperationMode) {
311
+ case 2: //HEATING
312
+ const heatingToFan = roomTemperature > (defaultHeatingSetTemperature + 1);
314
313
  this.accessory.currentOperationMode = heatingToFan ? 1 : 2;
315
314
  break;
316
- case 'COOLING': //COOLING
317
- const coolingToFan = roomTemperature < defaultCoolingSetTemperature - 1;
315
+ case 3: //COOLING
316
+ const coolingToFan = roomTemperature < (defaultCoolingSetTemperature - 1);
318
317
  this.accessory.currentOperationMode = coolingToFan ? 1 : 3;
319
318
  break;
320
319
  default: //FAN
321
- this.accessory.currentOperationMode = roomTemperature <= defaultHeatingSetTemperature ? 2 : roomTemperature >= defaultCoolingSetTemperature ? 3 : 1;
320
+ this.accessory.currentOperationMode = roomTemperature >= defaultHeatingSetTemperature && roomTemperature <= defaultCoolingSetTemperature ? 1 : roomTemperature < defaultHeatingSetTemperature ? 2 : roomTemperature > defaultCoolingSetTemperature ? 3 : this.accessory.currentOperationMode;
322
321
  break;
323
322
  };
324
323
  this.accessory.targetOperationMode = 0;
@@ -402,15 +401,15 @@ class DeviceAta extends EventEmitter {
402
401
  case true:
403
402
  switch (operationMode) {
404
403
  case 1: //HEAT
405
- this.accessory.currentOperationMode = 1; //OFF, HEATING, COOLING
404
+ this.accessory.currentOperationMode = roomTemperature > setTemperature ? 0 : 1; //OFF, HEATING, COOLING
406
405
  this.accessory.targetOperationMode = 1; //OFF, HEAT, COOL, AUTO
407
406
  break;
408
407
  case 2: //DRY
409
- this.accessory.currentOperationMode = 2;
408
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
410
409
  this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode;
411
410
  break;
412
411
  case 3: //COOL
413
- this.accessory.currentOperationMode = 2;
412
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
414
413
  this.accessory.targetOperationMode = 2;
415
414
  break;
416
415
  case 7: //FAN
@@ -418,32 +417,31 @@ class DeviceAta extends EventEmitter {
418
417
  this.accessory.targetOperationMode = this.autoDryFanMode === 3 ? 3 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : this.accessory.targetOperationMode;
419
418
  break;
420
419
  case 8: //AUTO
421
- const curentModeInAuto = roomTemperature < defaultHeatingSetTemperature ? 'HEATING' : roomTemperature > defaultCoolingSetTemperature ? 'COOLING' : '';
422
- switch (curentModeInAuto) {
423
- case 'HEATING': //HEATING
424
- const heatingToFan = roomTemperature > defaultHeatingSetTemperature + 1;
420
+ switch (this.accessory.currentOperationMode) {
421
+ case 2: //HEATING
422
+ const heatingToFan = roomTemperature > (defaultHeatingSetTemperature + 1);
425
423
  this.accessory.currentOperationMode = heatingToFan ? 0 : 1;
426
424
  break;
427
- case 'COOLING': //COOLING
428
- const coolingToFan = roomTemperature < defaultCoolingSetTemperature - 1;
429
- this.accessory.currentOperationMode = cooling ? 0 : 2;
425
+ case 3: //COOLING
426
+ const coolingToFan = roomTemperature < (defaultCoolingSetTemperature - 1);
427
+ this.accessory.currentOperationMode = coolingToFan ? 0 : 2;
430
428
  break;
431
429
  default: //FAN
432
- this.accessory.currentOperationMode = roomTemperature <= defaultHeatingSetTemperature ? 1 : roomTemperature >= defaultCoolingSetTemperature ? 2 : 0;
430
+ this.accessory.currentOperationMode = roomTemperature >= defaultHeatingSetTemperature && roomTemperature <= defaultCoolingSetTemperature ? 0 : roomTemperature < defaultHeatingSetTemperature ? 1 : roomTemperature > defaultCoolingSetTemperature ? 2 : this.accessory.currentOperationMode;
433
431
  break;
434
432
  };
435
433
  this.accessory.targetOperationMode = 3;
436
434
  break;
437
435
  case 9: //ISEE HEAT
438
- this.accessory.currentOperationMode = 1
436
+ this.accessory.currentOperationMode = roomTemperature > setTemperature ? 0 : 1;
439
437
  this.accessory.targetOperationMode = 1;
440
438
  break;
441
439
  case 10: //ISEE DRY
442
- this.accessory.currentOperationMode = 2;
440
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
443
441
  this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode;
444
442
  break;
445
443
  case 11: //ISEE COOL;
446
- this.accessory.currentOperationMode = 2;
444
+ this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
447
445
  this.accessory.targetOperationMode = 2;
448
446
  break;
449
447
  default:
@@ -648,7 +646,7 @@ class DeviceAta extends EventEmitter {
648
646
  const info4 = modelSupportsFanSpeed ? this.emit('message', `Current fan speed: ${CONSTANTS.AirConditioner.FanSpeed[actualFanSpeed]}`) : false;
649
647
  const info5 = vaneHorizontalDirection !== null ? this.emit('message', `Vane horizontal: ${CONSTANTS.AirConditioner.HorizontalVane[vaneHorizontalDirection]}`) : false;
650
648
  const info6 = vaneVerticalDirection !== null ? this.emit('message', `Vane vertical: ${CONSTANTS.AirConditioner.VerticalVane[vaneVerticalDirection]}`) : false;
651
- const info7 = swingFunction ? this.emit('message', `Air direction: ${CONSTANTS.AirConditioner.AirDirection[this.accessory.swingMode ? 7 : 0]}`) : false;
649
+ const info7 = swingFunction ? this.emit('message', `Air direction: ${CONSTANTS.AirConditioner.AirDirection[this.accessory.swingMode]}`) : false;
652
650
  this.emit('message', `Temperature display unit: ${this.accessory.temperatureUnit}`);
653
651
  this.emit('message', `Lock physical controls: ${this.accessory.lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
654
652
  };
@@ -922,7 +920,7 @@ class DeviceAta extends EventEmitter {
922
920
  deviceData.Device.VaneVertical = value ? 7 : 0;
923
921
  deviceData.Device.EffectiveFlags = CONSTANTS.AirConditioner.EffectiveFlags.VaneHorizontal + CONSTANTS.AirConditioner.EffectiveFlags.VaneVertical;
924
922
  await this.melCloudAta.send(deviceData);
925
- const info = this.disableLogInfo ? false : this.emit('message', `Set air direction mode: ${CONSTANTS.AirConditioner.AirDirection[value ? 7 : 0]}`);
923
+ const info = this.disableLogInfo ? false : this.emit('message', `Set air direction mode: ${CONSTANTS.AirConditioner.AirDirection[value]}`);
926
924
  } catch (error) {
927
925
  this.emit('warn', `Set vane swing mode error: ${error}`);
928
926
  };
@@ -1014,6 +1012,7 @@ class DeviceAta extends EventEmitter {
1014
1012
  try {
1015
1013
  accountInfo.UseFahrenheit = [false, true][value];
1016
1014
  await this.melCloud.send(accountInfo);
1015
+ this.accessory.useFahrenheit = value;
1017
1016
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
1018
1017
  } catch (error) {
1019
1018
  this.emit('warn', `Set temperature display unit error: ${error}`);
@@ -1150,6 +1149,7 @@ class DeviceAta extends EventEmitter {
1150
1149
  try {
1151
1150
  accountInfo.UseFahrenheit = [false, true][value];
1152
1151
  await this.melCloud.send(accountInfo);
1152
+ this.accessory.useFahrenheit = value;
1153
1153
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
1154
1154
  } catch (error) {
1155
1155
  this.emit('warn', `Set temperature display unit error: ${error}`);
package/src/deviceatw.js CHANGED
@@ -213,9 +213,8 @@ class DeviceAtw extends EventEmitter {
213
213
  this.displayDeviceInfo = false;
214
214
  })
215
215
  .on('deviceState', async (deviceData) => {
216
- //presets
217
- const presetsOnServer = deviceData.Presets ?? [];
218
-
216
+ //presets
217
+ const presetsOnServer = deviceData.Presets ?? [];
219
218
  //device info
220
219
  const heatPumpName = 'Heat Pump';
221
220
  const hotWaterName = 'Hot Water';
@@ -1257,6 +1256,7 @@ class DeviceAtw extends EventEmitter {
1257
1256
  try {
1258
1257
  accountInfo.UseFahrenheit = [false, true][value];
1259
1258
  await this.melCloud.send(accountInfo);
1259
+ this.accessory.useFahrenheit = value;
1260
1260
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
1261
1261
  } catch (error) {
1262
1262
  this.emit('warn', `Set temperature display unit error: ${error}`);
@@ -1549,6 +1549,7 @@ class DeviceAtw extends EventEmitter {
1549
1549
  try {
1550
1550
  accountInfo.UseFahrenheit = [false, true][value];
1551
1551
  await this.melCloud.send(accountInfo);
1552
+ this.accessory.useFahrenheit = value;
1552
1553
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
1553
1554
  } catch (error) {
1554
1555
  this.emit('warn', `Set temperature display unit error: ${error}`);
package/src/deviceerv.js CHANGED
@@ -879,6 +879,7 @@ class DeviceErv extends EventEmitter {
879
879
  try {
880
880
  accountInfo.UseFahrenheit = [false, true][value];
881
881
  await this.melCloud.send(accountInfo);
882
+ this.accessory.useFahrenheit = value;
882
883
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
883
884
  } catch (error) {
884
885
  this.emit('warn', `Set temperature display unit error: ${error}`);
@@ -1015,6 +1016,7 @@ class DeviceErv extends EventEmitter {
1015
1016
  try {
1016
1017
  accountInfo.UseFahrenheit = [false, true][value];
1017
1018
  await this.melCloud.send(accountInfo);
1019
+ this.accessory.useFahrenheit = value;
1018
1020
  const info = this.disableLogInfo ? false : this.emit('message', `Set temperature display unit: ${CONSTANTS.TemperatureDisplayUnits[value]}`);
1019
1021
  } catch (error) {
1020
1022
  this.emit('warn', `Set temperature display unit error: ${error}`);
@@ -331,7 +331,7 @@ class MelCloudAta extends EventEmitter {
331
331
  ProhibitSetTemperature: prohibitSetTemperature,
332
332
  ProhibitOperationMode: prohibitOperationMode,
333
333
  ProhibitPower: prohibitPower,
334
- EffectiveFlags:effectiveFlags
334
+ EffectiveFlags: effectiveFlags
335
335
  }
336
336
 
337
337
  //check state changes
@@ -396,7 +396,7 @@ class MelCloudAtw extends EventEmitter {
396
396
  ProhibitZone1: prohibitHeatingZone1,
397
397
  ProhibitZone2: prohibitHeatingZone2,
398
398
  ProhibitHotWater: prohibitHotWater,
399
- EffectiveFlags:effectiveFlags
399
+ EffectiveFlags: effectiveFlags
400
400
  }
401
401
 
402
402
  //check state changes