homebridge-melcloud-control 4.6.7-beta.7 → 4.6.7-beta.9

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/deviceatw.js +54 -47
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.6.7-beta.7",
4
+ "version": "4.6.7-beta.9",
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
@@ -1798,26 +1798,24 @@ class DeviceAtw extends EventEmitter {
1798
1798
  zonesSensors: []
1799
1799
  };
1800
1800
 
1801
- //characteristics array
1802
- const characteristics = [];
1803
-
1804
- //default values
1805
- let name = 'Heat Pump'
1806
- let operationModeZone = 0;
1807
- let currentOperationMode = 0;
1808
- let targetOperationMode = 0;
1809
- let roomTemperature = 20;
1810
- let setTemperature = 20;
1811
- let lockPhysicalControl = 0;
1812
- let flowTemperature = 0;
1813
- let returnTemperature = 0;
1814
- let operationModeSetPropsMinValue = 0;
1815
- let operationModeSetPropsMaxValue = 3;
1816
- let operationModeSetPropsValidValues = [0];
1817
- let temperatureSetPropsMinValue = -35;
1818
- let temperatureSetPropsMaxValue = 100;
1819
-
1820
1801
  for (let i = 0; i < zonesCount; i++) {
1802
+ //characteristics array
1803
+ const characteristics = [];
1804
+
1805
+ let name = '';
1806
+ let operationModeZone = 0;
1807
+ let currentOperationMode = 0;
1808
+ let targetOperationMode = 0;
1809
+ let roomTemperature = null;
1810
+ let setTemperature = null;
1811
+ let lockPhysicalControl = 0;
1812
+ let operationModeSetPropsMinValue = 0;
1813
+ let operationModeSetPropsMaxValue = 0;
1814
+ let operationModeSetPropsValidValues = [];
1815
+ let temperatureSetPropsMinValue = 0;
1816
+ let temperatureSetPropsMaxValue = 0;
1817
+
1818
+
1821
1819
  switch (this.displayType) {
1822
1820
  case 1: //Heater Cooler
1823
1821
  switch (i) {
@@ -1927,7 +1925,8 @@ class DeviceAtw extends EventEmitter {
1927
1925
  { type: Characteristic.TemperatureDisplayUnits, value: obj.useFahrenheit }
1928
1926
  );
1929
1927
 
1930
- if (heatCoolModes === 0 || heatCoolModes === 2) characteristics.push({ type: Characteristic.CoolingThresholdTemperature, value: setTemperature });
1928
+ if (heatCoolModes === 0 || heatCoolModes === 1) characteristics.push({ type: Characteristic.HeatingThresholdTemperature, value: setTemperature });
1929
+ if ((heatCoolModes === 0 || heatCoolModes === 2) && i !== caseHotWater) characteristics.push({ type: Characteristic.CoolingThresholdTemperature, value: setTemperature });
1931
1930
  break;
1932
1931
  case 2: //Thermostat
1933
1932
  switch (i) {
@@ -2034,6 +2033,12 @@ class DeviceAtw extends EventEmitter {
2034
2033
  break;
2035
2034
  };
2036
2035
 
2036
+ //update services
2037
+ for (const { type, value } of characteristics) {
2038
+ if (!this.functions.isValidValue(value)) continue;
2039
+ this.melCloudServices?.[i]?.updateCharacteristic(type, value);
2040
+ }
2041
+
2037
2042
  //add every zone to array
2038
2043
  const zone = {
2039
2044
  name: name,
@@ -2093,52 +2098,60 @@ class DeviceAtw extends EventEmitter {
2093
2098
 
2094
2099
  //update sensors characteristics
2095
2100
  for (let i = 0; i < zonesSensorsCount; i++) {
2101
+
2102
+ // helper function to update sensor characteristics
2103
+ const updateSensorCharacteristics = (service, value) => {
2104
+ if (this.functions.isValidValue(value)) service?.updateCharacteristic(Characteristic.CurrentTemperature, value);
2105
+ };
2106
+
2107
+ // default values
2108
+ let name = '';
2109
+ let roomTemperature = null;
2110
+ let flowTemperature = null;
2111
+ let returnTemperature = null;
2112
+
2096
2113
  switch (i) {
2097
- case caseHeatPumpSensor: //Heat Pump
2114
+ case caseHeatPumpSensor: // Heat Pump
2098
2115
  name = heatPumpName;
2099
2116
  roomTemperature = outdoorTemperature;
2100
2117
  flowTemperature = flowTemperatureHeatPump;
2101
2118
  returnTemperature = returnTemperatureHeatPump;
2102
2119
 
2103
- //updte characteristics
2104
- this.roomTemperatureSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, outdoorTemperature);
2105
- this.flowTemperatureSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, flowTemperatureHeatPump);
2106
- this.returnTemperatureSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureHeatPump);
2120
+ updateSensorCharacteristics(this.roomTemperatureSensorService, outdoorTemperature);
2121
+ updateSensorCharacteristics(this.flowTemperatureSensorService, flowTemperatureHeatPump);
2122
+ updateSensorCharacteristics(this.returnTemperatureSensorService, returnTemperatureHeatPump);
2107
2123
  break;
2108
- case caseZone1Sensor: //Zone 1
2124
+ case caseZone1Sensor: // Zone 1
2109
2125
  name = zone1Name;
2110
2126
  roomTemperature = roomTemperatureZone1;
2111
2127
  flowTemperature = flowTemperatureZone1;
2112
2128
  returnTemperature = returnTemperatureZone1;
2113
2129
 
2114
- //updte characteristics
2115
- this.roomTemperatureZone1SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperatureZone1);
2116
- this.flowTemperatureZone1SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, flowTemperatureZone1);
2117
- this.returnTemperatureZone1SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureZone1);
2130
+ updateSensorCharacteristics(this.roomTemperatureZone1SensorService, roomTemperatureZone1);
2131
+ updateSensorCharacteristics(this.flowTemperatureZone1SensorService, flowTemperatureZone1);
2132
+ updateSensorCharacteristics(this.returnTemperatureZone1SensorService, returnTemperatureZone1);
2118
2133
  break;
2119
- case caseHotWaterSensor: //Hot Water
2134
+ case caseHotWaterSensor: // Hot Water
2120
2135
  name = hotWaterName;
2121
2136
  roomTemperature = tankWaterTemperature;
2122
2137
  flowTemperature = flowTemperatureWaterTank;
2123
2138
  returnTemperature = returnTemperatureWaterTank;
2124
2139
 
2125
- //updte characteristics
2126
- this.roomTemperatureWaterTankSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, tankWaterTemperature);
2127
- this.flowTemperatureWaterTankSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, flowTemperatureWaterTank);
2128
- this.returnTemperatureWaterTankSensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureWaterTank);
2140
+ updateSensorCharacteristics(this.roomTemperatureWaterTankSensorService, tankWaterTemperature);
2141
+ updateSensorCharacteristics(this.flowTemperatureWaterTankSensorService, flowTemperatureWaterTank);
2142
+ updateSensorCharacteristics(this.returnTemperatureWaterTankSensorService, returnTemperatureWaterTank);
2129
2143
  break;
2130
- case caseZone2Sensor: //Zone 2
2144
+ case caseZone2Sensor: // Zone 2
2131
2145
  name = zone2Name;
2132
2146
  roomTemperature = roomTemperatureZone2;
2133
2147
  flowTemperature = flowTemperatureZone2;
2134
2148
  returnTemperature = returnTemperatureZone2;
2135
2149
 
2136
- //updte characteristics
2137
- this.roomTemperatureZone2SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperatureZone2);
2138
- this.flowTemperatureZone2SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, flowTemperatureZone2);
2139
- this.returnTemperatureZone2SensorService?.updateCharacteristic(Characteristic.CurrentTemperature, returnTemperatureZone2);
2150
+ updateSensorCharacteristics(this.roomTemperatureZone2SensorService, roomTemperatureZone2);
2151
+ updateSensorCharacteristics(this.flowTemperatureZone2SensorService, flowTemperatureZone2);
2152
+ updateSensorCharacteristics(this.returnTemperatureZone2SensorService, returnTemperatureZone2);
2140
2153
  break;
2141
- };
2154
+ }
2142
2155
 
2143
2156
  //add every sensor to array
2144
2157
  const sensor = {
@@ -2177,12 +2190,6 @@ class DeviceAtw extends EventEmitter {
2177
2190
  }
2178
2191
  this.accessory = obj;
2179
2192
 
2180
- //update services
2181
- for (const { type, value } of characteristics) {
2182
- if (!this.functions.isValidValue(value)) continue;
2183
- this.melCloudServices?.[i]?.updateCharacteristic(type, value);
2184
- }
2185
-
2186
2193
  //other sensors
2187
2194
  this.inStandbyService?.updateCharacteristic(Characteristic.ContactSensorState, inStandbyMode);
2188
2195
  this.connectService?.updateCharacteristic(Characteristic.ContactSensorState, isConnected);