homebridge-melcloud-control 3.8.4-beta.4 → 3.8.4-beta.5

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/deviceata.js +73 -71
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "3.8.4-beta.4",
4
+ "version": "3.8.4-beta.5",
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/deviceata.js CHANGED
@@ -86,7 +86,7 @@ class DeviceAta extends EventEmitter {
86
86
 
87
87
  //accessory
88
88
  this.accessory = {};
89
- this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
89
+ this.useFahrenheit = useFahrenheit ? 1 : 0;
90
90
  };
91
91
 
92
92
  async externalIntegrations() {
@@ -1012,7 +1012,7 @@ class DeviceAta extends EventEmitter {
1012
1012
  const outdoorTemperature = deviceData.Device.OutdoorTemperature;
1013
1013
 
1014
1014
  //accessory
1015
- this.accessory = {
1015
+ const obj = {
1016
1016
  presets: presetsOnServer,
1017
1017
  hasAutomaticFanSpeed: hasAutomaticFanSpeed,
1018
1018
  airDirectionFunction: airDirectionFunction,
@@ -1045,7 +1045,7 @@ class DeviceAta extends EventEmitter {
1045
1045
  swingMode: swingFunction && vaneHorizontalDirection === 12 && vaneVerticalDirection === 7 ? 1 : 0,
1046
1046
  lockPhysicalControl: prohibitSetTemperature && prohibitOperationMode && prohibitPower ? 1 : 0,
1047
1047
  temperatureIncrement: temperatureIncrement,
1048
- temperatureUnit: TemperatureDisplayUnits[this.accessory.useFahrenheit]
1048
+ temperatureUnit: TemperatureDisplayUnits[this.useFahrenheit]
1049
1049
  };
1050
1050
 
1051
1051
  //operating mode 0, HEAT, DRY, COOL, 4, 5, 6, FAN, AUTO, ISEE HEAT, ISEE DRY, ISEE COOL
@@ -1053,69 +1053,69 @@ class DeviceAta extends EventEmitter {
1053
1053
  case 1: //Heater Cooler
1054
1054
  switch (operationMode) {
1055
1055
  case 1: //HEAT
1056
- this.accessory.currentOperationMode = roomTemperature > setTemperature ? 1 : 2; //INACTIVE, IDLE, HEATING, COOLING
1057
- this.accessory.targetOperationMode = 1; //AUTO, HEAT, COOL
1056
+ obj.currentOperationMode = roomTemperature > setTemperature ? 1 : 2; //INACTIVE, IDLE, HEATING, COOLING
1057
+ obj.targetOperationMode = 1; //AUTO, HEAT, COOL
1058
1058
  break;
1059
1059
  case 2: //DRY
1060
- this.accessory.currentOperationMode = 1;
1061
- this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 0 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode ?? 0;
1060
+ obj.currentOperationMode = 1;
1061
+ obj.targetOperationMode = this.autoDryFanMode === 2 ? 0 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : obj.targetOperationMode ?? 0;
1062
1062
  break;
1063
1063
  case 3: //COOL
1064
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 1 : 3;
1065
- this.accessory.targetOperationMode = 2;
1064
+ obj.currentOperationMode = roomTemperature < setTemperature ? 1 : 3;
1065
+ obj.targetOperationMode = 2;
1066
1066
  break;
1067
1067
  case 7: //FAN
1068
- this.accessory.currentOperationMode = 1;
1069
- this.accessory.targetOperationMode = this.autoDryFanMode === 3 ? 0 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : this.accessory.targetOperationMode ?? 0;
1068
+ obj.currentOperationMode = 1;
1069
+ obj.targetOperationMode = this.autoDryFanMode === 3 ? 0 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : obj.targetOperationMode ?? 0;
1070
1070
  break;
1071
1071
  case 8: //AUTO
1072
- this.accessory.currentOperationMode = roomTemperature > setTemperature ? 3 : roomTemperature < setTemperature ? 2 : 1;
1073
- this.accessory.targetOperationMode = 0;
1072
+ obj.currentOperationMode = roomTemperature > setTemperature ? 3 : roomTemperature < setTemperature ? 2 : 1;
1073
+ obj.targetOperationMode = 0;
1074
1074
  break;
1075
1075
  case 9: //ISEE HEAT
1076
- this.accessory.currentOperationMode = roomTemperature > setTemperature ? 1 : 2
1077
- this.accessory.targetOperationMode = 1;
1076
+ obj.currentOperationMode = roomTemperature > setTemperature ? 1 : 2
1077
+ obj.targetOperationMode = 1;
1078
1078
  break;
1079
1079
  case 10: //ISEE DRY
1080
- this.accessory.currentOperationMode = 1;
1081
- this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 0 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode ?? 0;
1080
+ obj.currentOperationMode = 1;
1081
+ obj.targetOperationMode = this.autoDryFanMode === 2 ? 0 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : obj.targetOperationMode ?? 0;
1082
1082
  break;
1083
1083
  case 11: //ISEE COOL;
1084
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 1 : 3;
1085
- this.accessory.targetOperationMode = 2;
1084
+ obj.currentOperationMode = roomTemperature < setTemperature ? 1 : 3;
1085
+ obj.targetOperationMode = 2;
1086
1086
  break;
1087
1087
  default:
1088
1088
  this.emit('warn', `Unknown operating mode: ${operationMode}`);
1089
1089
  return
1090
1090
  };
1091
1091
 
1092
- this.accessory.currentOperationMode = !power ? 0 : inStandbyMode ? 1 : this.accessory.currentOperationMode;
1093
- this.accessory.operationModeSetPropsMinValue = modelSupportsAuto && modelSupportsHeat ? 0 : !modelSupportsAuto && modelSupportsHeat ? 1 : modelSupportsAuto && !modelSupportsHeat ? 0 : 2;
1094
- this.accessory.operationModeSetPropsMaxValue = 2
1095
- this.accessory.operationModeSetPropsValidValues = modelSupportsAuto && modelSupportsHeat ? [0, 1, 2] : !modelSupportsAuto && modelSupportsHeat ? [1, 2] : modelSupportsAuto && !modelSupportsHeat ? [0, 2] : [2];
1092
+ obj.currentOperationMode = !power ? 0 : inStandbyMode ? 1 : obj.currentOperationMode;
1093
+ obj.operationModeSetPropsMinValue = modelSupportsAuto && modelSupportsHeat ? 0 : !modelSupportsAuto && modelSupportsHeat ? 1 : modelSupportsAuto && !modelSupportsHeat ? 0 : 2;
1094
+ obj.operationModeSetPropsMaxValue = 2
1095
+ obj.operationModeSetPropsValidValues = modelSupportsAuto && modelSupportsHeat ? [0, 1, 2] : !modelSupportsAuto && modelSupportsHeat ? [1, 2] : modelSupportsAuto && !modelSupportsHeat ? [0, 2] : [2];
1096
1096
 
1097
1097
  //fan speed mode
1098
1098
  if (modelSupportsFanSpeed) {
1099
1099
  switch (numberOfFanSpeeds) {
1100
1100
  case 2: //Fan speed mode 2
1101
- this.accessory.fanSpeed = hasAutomaticFanSpeed ? [3, 1, 2][fanSpeed] : [0, 1, 2][fanSpeed];
1102
- this.accessory.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 3 : 2;
1101
+ obj.fanSpeed = hasAutomaticFanSpeed ? [3, 1, 2][fanSpeed] : [0, 1, 2][fanSpeed];
1102
+ obj.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 3 : 2;
1103
1103
  break;
1104
1104
  case 3: //Fan speed mode 3
1105
- this.accessory.fanSpeed = hasAutomaticFanSpeed ? [4, 1, 2, 3][fanSpeed] : [0, 1, 2, 3][fanSpeed];
1106
- this.accessory.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 4 : 3;
1105
+ obj.fanSpeed = hasAutomaticFanSpeed ? [4, 1, 2, 3][fanSpeed] : [0, 1, 2, 3][fanSpeed];
1106
+ obj.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 4 : 3;
1107
1107
  break;
1108
1108
  case 4: //Fan speed mode 4
1109
- this.accessory.fanSpeed = hasAutomaticFanSpeed ? [5, 1, 2, 3, 4][fanSpeed] : [0, 1, 2, 3, 4][fanSpeed];
1110
- this.accessory.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 5 : 4;
1109
+ obj.fanSpeed = hasAutomaticFanSpeed ? [5, 1, 2, 3, 4][fanSpeed] : [0, 1, 2, 3, 4][fanSpeed];
1110
+ obj.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 5 : 4;
1111
1111
  break;
1112
1112
  case 5: //Fan speed mode 5
1113
- this.accessory.fanSpeed = hasAutomaticFanSpeed ? [6, 1, 2, 3, 4, 5][fanSpeed] : [0, 1, 2, 3, 4, 5][fanSpeed];
1114
- this.accessory.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 6 : 5;
1113
+ obj.fanSpeed = hasAutomaticFanSpeed ? [6, 1, 2, 3, 4, 5][fanSpeed] : [0, 1, 2, 3, 4, 5][fanSpeed];
1114
+ obj.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 6 : 5;
1115
1115
  break;
1116
1116
  case 6: //Fan speed mode 6
1117
- this.accessory.fanSpeed = hasAutomaticFanSpeed ? [7, 1, 2, 3, 4, 5, 6][fanSpeed] : [0, 1, 2, 3, 4, 5, 6][fanSpeed];
1118
- this.accessory.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 7 : 6;
1117
+ obj.fanSpeed = hasAutomaticFanSpeed ? [7, 1, 2, 3, 4, 5, 6][fanSpeed] : [0, 1, 2, 3, 4, 5, 6][fanSpeed];
1118
+ obj.fanSpeedSetPropsMaxValue = hasAutomaticFanSpeed ? 7 : 6;
1119
1119
  break;
1120
1120
  };
1121
1121
  };
@@ -1124,74 +1124,76 @@ class DeviceAta extends EventEmitter {
1124
1124
  if (this.melCloudService) {
1125
1125
  this.melCloudService
1126
1126
  .updateCharacteristic(Characteristic.Active, power ? 1 : 0)
1127
- .updateCharacteristic(Characteristic.CurrentHeaterCoolerState, this.accessory.currentOperationMode)
1128
- .updateCharacteristic(Characteristic.TargetHeaterCoolerState, this.accessory.targetOperationMode)
1127
+ .updateCharacteristic(Characteristic.CurrentHeaterCoolerState, obj.currentOperationMode)
1128
+ .updateCharacteristic(Characteristic.TargetHeaterCoolerState, obj.targetOperationMode)
1129
1129
  .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
1130
- .updateCharacteristic(Characteristic.LockPhysicalControls, this.accessory.lockPhysicalControl)
1131
- .updateCharacteristic(Characteristic.TemperatureDisplayUnits, this.accessory.useFahrenheit)
1130
+ .updateCharacteristic(Characteristic.LockPhysicalControls, obj.lockPhysicalControl)
1131
+ .updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit)
1132
1132
  .updateCharacteristic(Characteristic.CoolingThresholdTemperature, defaultCoolingSetTemperature);
1133
1133
  const updateDefHeat = modelSupportsHeat ? this.melCloudService.updateCharacteristic(Characteristic.HeatingThresholdTemperature, defaultHeatingSetTemperature) : false;
1134
- const updateRS = modelSupportsFanSpeed ? this.melCloudService.updateCharacteristic(Characteristic.RotationSpeed, this.accessory.fanSpeed) : false;
1135
- const updateSM = swingFunction ? this.melCloudService.updateCharacteristic(Characteristic.SwingMode, this.accessory.swingMode) : false;
1134
+ const updateRS = modelSupportsFanSpeed ? this.melCloudService.updateCharacteristic(Characteristic.RotationSpeed, obj.fanSpeed) : false;
1135
+ const updateSM = swingFunction ? this.melCloudService.updateCharacteristic(Characteristic.SwingMode, obj.swingMode) : false;
1136
1136
  };
1137
1137
  break;
1138
1138
  case 2: //Thermostat
1139
1139
  switch (operationMode) {
1140
1140
  case 1: //HEAT
1141
- this.accessory.currentOperationMode = roomTemperature > setTemperature ? 0 : 1; //OFF, HEATING, COOLING
1142
- this.accessory.targetOperationMode = 1; //OFF, HEAT, COOL, AUTO
1141
+ obj.currentOperationMode = roomTemperature > setTemperature ? 0 : 1; //OFF, HEATING, COOLING
1142
+ obj.targetOperationMode = 1; //OFF, HEAT, COOL, AUTO
1143
1143
  break;
1144
1144
  case 2: //DRY
1145
- this.accessory.currentOperationMode = 0;
1146
- this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode ?? 0;
1145
+ obj.currentOperationMode = 0;
1146
+ obj.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : obj.targetOperationMode ?? 0;
1147
1147
  break;
1148
1148
  case 3: //COOL
1149
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
1150
- this.accessory.targetOperationMode = 2;
1149
+ obj.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
1150
+ obj.targetOperationMode = 2;
1151
1151
  break;
1152
1152
  case 7: //FAN
1153
- this.accessory.currentOperationMode = 0;
1154
- this.accessory.targetOperationMode = this.autoDryFanMode === 3 ? 3 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : this.accessory.targetOperationMode ?? 0;
1153
+ obj.currentOperationMode = 0;
1154
+ obj.targetOperationMode = this.autoDryFanMode === 3 ? 3 : this.heatDryFanMode === 3 ? 1 : this.coolDryFanMode === 3 ? 2 : obj.targetOperationMode ?? 0;
1155
1155
  break;
1156
1156
  case 8: //AUTO
1157
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 1 : roomTemperature > setTemperature ? 2 : 0;
1158
- this.accessory.targetOperationMode = 3;
1157
+ obj.currentOperationMode = roomTemperature < setTemperature ? 1 : roomTemperature > setTemperature ? 2 : 0;
1158
+ obj.targetOperationMode = 3;
1159
1159
  break;
1160
1160
  case 9: //ISEE HEAT
1161
- this.accessory.currentOperationMode = roomTemperature > setTemperature ? 0 : 1;
1162
- this.accessory.targetOperationMode = 1;
1161
+ obj.currentOperationMode = roomTemperature > setTemperature ? 0 : 1;
1162
+ obj.targetOperationMode = 1;
1163
1163
  break;
1164
1164
  case 10: //ISEE DRY
1165
- this.accessory.currentOperationMode = 0;
1166
- this.accessory.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : this.accessory.targetOperationMode ?? 0;
1165
+ obj.currentOperationMode = 0;
1166
+ obj.targetOperationMode = this.autoDryFanMode === 2 ? 3 : this.heatDryFanMode === 2 ? 1 : this.coolDryFanMode === 2 ? 2 : obj.targetOperationMode ?? 0;
1167
1167
  break;
1168
1168
  case 11: //ISEE COOL;
1169
- this.accessory.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
1170
- this.accessory.targetOperationMode = 2;
1169
+ obj.currentOperationMode = roomTemperature < setTemperature ? 0 : 2;
1170
+ obj.targetOperationMode = 2;
1171
1171
  break;
1172
1172
  default:
1173
1173
  this.emit('warn', `Unknown operating mode: ${operationMode}`);
1174
1174
  break;
1175
1175
  };
1176
1176
 
1177
- this.accessory.currentOperationMode = !power ? 0 : this.accessory.currentOperationMode;
1178
- this.accessory.targetOperationMode = !power ? 0 : this.accessory.targetOperationMode;
1179
- this.accessory.operationModeSetPropsMinValue = 0
1180
- this.accessory.operationModeSetPropsMaxValue = modelSupportsAuto && modelSupportsHeat ? 3 : !modelSupportsAuto && modelSupportsHeat ? 2 : modelSupportsAuto && !modelSupportsHeat ? 3 : 2;
1181
- this.accessory.operationModeSetPropsValidValues = modelSupportsAuto && modelSupportsHeat ? [0, 1, 2, 3] : !modelSupportsAuto && modelSupportsHeat ? [0, 1, 2] : modelSupportsAuto && !modelSupportsHeat ? [0, 2, 3] : [0, 2];
1177
+ obj.currentOperationMode = !power ? 0 : obj.currentOperationMode;
1178
+ obj.targetOperationMode = !power ? 0 : obj.targetOperationMode;
1179
+ obj.operationModeSetPropsMinValue = 0
1180
+ obj.operationModeSetPropsMaxValue = modelSupportsAuto && modelSupportsHeat ? 3 : !modelSupportsAuto && modelSupportsHeat ? 2 : modelSupportsAuto && !modelSupportsHeat ? 3 : 2;
1181
+ obj.operationModeSetPropsValidValues = modelSupportsAuto && modelSupportsHeat ? [0, 1, 2, 3] : !modelSupportsAuto && modelSupportsHeat ? [0, 1, 2] : modelSupportsAuto && !modelSupportsHeat ? [0, 2, 3] : [0, 2];
1182
1182
 
1183
1183
  //update characteristics
1184
1184
  if (this.melCloudService) {
1185
1185
  this.melCloudService
1186
- .updateCharacteristic(Characteristic.CurrentHeatingCoolingState, this.accessory.currentOperationMode)
1187
- .updateCharacteristic(Characteristic.TargetHeatingCoolingState, this.accessory.targetOperationMode)
1186
+ .updateCharacteristic(Characteristic.CurrentHeatingCoolingState, obj.currentOperationMode)
1187
+ .updateCharacteristic(Characteristic.TargetHeatingCoolingState, obj.targetOperationMode)
1188
1188
  .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
1189
1189
  .updateCharacteristic(Characteristic.TargetTemperature, setTemperature)
1190
- .updateCharacteristic(Characteristic.TemperatureDisplayUnits, this.accessory.useFahrenheit);
1190
+ .updateCharacteristic(Characteristic.TemperatureDisplayUnits, obj.useFahrenheit);
1191
1191
  };
1192
1192
  break;
1193
1193
  };
1194
1194
 
1195
+ this.accessory = obj;
1196
+
1195
1197
  if (this.roomTemperatureSensorService) {
1196
1198
  this.roomTemperatureSensorService
1197
1199
  .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
@@ -1321,7 +1323,7 @@ class DeviceAta extends EventEmitter {
1321
1323
  button.state = power ? (fanSpeed === 6) : false;
1322
1324
  break;
1323
1325
  case 37: //PHYSICAL LOCK CONTROLS ALL
1324
- button.state = (this.accessory.lockPhysicalControl === 1);
1326
+ button.state = (obj.lockPhysicalControl === 1);
1325
1327
  break;
1326
1328
  case 38: //PHYSICAL LOCK CONTROLS POWER
1327
1329
  button.state = (prohibitPower === true);
@@ -1350,17 +1352,17 @@ class DeviceAta extends EventEmitter {
1350
1352
  if (!this.disableLogInfo) {
1351
1353
  this.emit('info', `Power: ${power ? 'ON' : 'OFF'}`);
1352
1354
  this.emit('info', `Target operation mode: ${AirConditioner.DriveMode[operationMode]}`);
1353
- this.emit('info', `Current operation mode: ${this.displayMode === 1 ? AirConditioner.CurrentOperationModeHeatherCooler[this.accessory.currentOperationMode] : AirConditioner.CurrentOperationModeThermostat[this.accessory.currentOperationMode]}`);
1354
- this.emit('info', `Target temperature: ${setTemperature}${this.accessory.temperatureUnit}`);
1355
- this.emit('info', `Current temperature: ${roomTemperature}${this.accessory.temperatureUnit}`);
1356
- const info = hasOutdoorTemperature && outdoorTemperature !== null ? this.emit('info', `Outdoor temperature: ${outdoorTemperature}${this.accessory.temperatureUnit}`) : false;
1355
+ this.emit('info', `Current operation mode: ${this.displayMode === 1 ? AirConditioner.CurrentOperationModeHeatherCooler[obj.currentOperationMode] : AirConditioner.CurrentOperationModeThermostat[obj.currentOperationMode]}`);
1356
+ this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`);
1357
+ this.emit('info', `Current temperature: ${roomTemperature}${obj.temperatureUnit}`);
1358
+ const info = hasOutdoorTemperature && outdoorTemperature !== null ? this.emit('info', `Outdoor temperature: ${outdoorTemperature}${obj.temperatureUnit}`) : false;
1357
1359
  const info3 = modelSupportsFanSpeed ? this.emit('info', `Target fan speed: ${AirConditioner.FanSpeed[fanSpeed]}`) : false;
1358
1360
  const info4 = modelSupportsFanSpeed ? this.emit('info', `Current fan speed: ${AirConditioner.FanSpeed[actualFanSpeed]}`) : false;
1359
1361
  const info5 = vaneHorizontalDirection !== null ? this.emit('info', `Vane horizontal: ${AirConditioner.HorizontalVane[vaneHorizontalDirection] ?? vaneHorizontalDirection}`) : false;
1360
1362
  const info6 = vaneVerticalDirection !== null ? this.emit('info', `Vane vertical: ${AirConditioner.VerticalVane[vaneVerticalDirection] ?? vaneVerticalDirection}`) : false;
1361
- const info7 = swingFunction ? this.emit('info', `Air direction: ${AirConditioner.AirDirection[this.accessory.swingMode]}`) : false;
1362
- this.emit('info', `Temperature display unit: ${this.accessory.temperatureUnit}`);
1363
- this.emit('info', `Lock physical controls: ${this.accessory.lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
1363
+ const info7 = swingFunction ? this.emit('info', `Air direction: ${AirConditioner.AirDirection[obj.swingMode]}`) : false;
1364
+ this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
1365
+ this.emit('info', `Lock physical controls: ${obj.lockPhysicalControl ? 'LOCKED' : 'UNLOCKED'}`);
1364
1366
  };
1365
1367
 
1366
1368
  //prepare accessory