homebridge-melcloud-control 4.7.6 → 4.7.8-beta.0

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/CHANGELOG.md CHANGED
@@ -24,6 +24,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
24
24
  - For plugin < v4.6.0 use Homebridge UI <= v5.5.0
25
25
  - For plugin >= v4.6.0 use Homebridge UI >= v5.13.0
26
26
 
27
+ # [4.7.7] - (01.02.2026)
28
+
29
+ ## Changes
30
+
31
+ - fix frost protection characteristics current temp update for ATW
32
+ - cleanup
33
+
27
34
  # [4.7.6] - (31.01.2026)
28
35
 
29
36
  ## Changes
package/index.js CHANGED
@@ -107,10 +107,6 @@ class MelCloudPlatform {
107
107
  return;
108
108
  }
109
109
  if (logLevel.debug) log.info(melCloudDevicesData.Status);
110
- await new Promise(r => setTimeout(r, 1000));
111
-
112
- //start account impulse generator
113
- await melCloudClass.impulseGenerator.state(true, timmers, false);
114
110
 
115
111
  //filter configured devices
116
112
  const devicesIds = (melCloudDevicesData.Devices ?? []).map(d => String(d.DeviceID));
@@ -203,6 +199,9 @@ class MelCloudPlatform {
203
199
 
204
200
  //stop start impulse generator
205
201
  await impulseGenerator.state(false);
202
+
203
+ //start account impulse generator
204
+ await melCloudClass.impulseGenerator.state(true, timmers, false);
206
205
  } catch (error) {
207
206
  if (logLevel.error) log.error(`${name}, Start impulse generator error, ${error.message ?? error}, trying again.`);
208
207
  }
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.6",
4
+ "version": "4.7.8-beta.0",
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
@@ -1786,24 +1786,26 @@ class DeviceAta extends EventEmitter {
1786
1786
 
1787
1787
  //frost protection
1788
1788
  if (this.frostProtectionSupport && frostProtection.Enabled !== null) {
1789
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.Active, frostProtection.Enabled);
1790
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.CurrentHeaterCoolerState, frostProtection.Active ? 2 : 1);
1791
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0);
1792
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature);
1793
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.CoolingThresholdTemperature, frostProtection.Max);
1794
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.HeatingThresholdTemperature, frostProtection.Min);
1789
+ this.frostProtectionControlService
1790
+ ?.updateCharacteristic(Characteristic.Active, frostProtection.Enabled)
1791
+ .updateCharacteristic(Characteristic.CurrentHeaterCoolerState, frostProtection.Active ? 2 : 1)
1792
+ .updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0)
1793
+ .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
1794
+ .updateCharacteristic(Characteristic.CoolingThresholdTemperature, frostProtection.Max)
1795
+ .updateCharacteristic(Characteristic.HeatingThresholdTemperature, frostProtection.Min);
1795
1796
  this.frostProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState, frostProtection.Enabled);
1796
1797
  this.frostProtectionSensorService?.updateCharacteristic(Characteristic.ContactSensorState, frostProtection.Active);
1797
1798
  }
1798
1799
 
1799
1800
  //overheat protection
1800
1801
  if (this.overheatProtectionSupport && overheatProtection.Enabled !== null) {
1801
- this.overheatProtectionControlService?.updateCharacteristic(Characteristic.Active, overheatProtection.Enabled);
1802
- this.overheatProtectionControlService?.updateCharacteristic(Characteristic.CurrentHeaterCoolerState, overheatProtection.Active ? 2 : 1);
1803
- this.overheatProtectionControlService?.updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0);
1804
- this.overheatProtectionControlService?.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature);
1805
- this.overheatProtectionControlService?.updateCharacteristic(Characteristic.CoolingThresholdTemperature, overheatProtection.Max);
1806
- this.overheatProtectionControlService?.updateCharacteristic(Characteristic.HeatingThresholdTemperature, overheatProtection.Min);
1802
+ this.overheatProtectionControlService
1803
+ ?.updateCharacteristic(Characteristic.Active, overheatProtection.Enabled)
1804
+ .updateCharacteristic(Characteristic.CurrentHeaterCoolerState, overheatProtection.Active ? 2 : 1)
1805
+ .updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0)
1806
+ .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature)
1807
+ .updateCharacteristic(Characteristic.CoolingThresholdTemperature, overheatProtection.Max)
1808
+ .updateCharacteristic(Characteristic.HeatingThresholdTemperature, overheatProtection.Min);
1807
1809
  this.overheatProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState, overheatProtection.Enabled);
1808
1810
  this.overheatProtectionSensorService?.updateCharacteristic(Characteristic.ContactSensorState, overheatProtection.Active);
1809
1811
  }
@@ -2019,7 +2021,7 @@ class DeviceAta extends EventEmitter {
2019
2021
  if (supportsSwingFunction) this.emit('info', `Air direction: ${AirConditioner.AirDirectionMapEnumToString[currentSwingMode]}`);
2020
2022
  this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
2021
2023
  this.emit('info', `Lock physical controls: ${obj.lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2022
- if (!this.accountTypeMelCloud) this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
2024
+ if (!accountTypeMelCloud) this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
2023
2025
  }
2024
2026
  })
2025
2027
  .on('success', (success) => this.emit('success', success))
package/src/deviceatw.js CHANGED
@@ -1760,7 +1760,6 @@ class DeviceAtw extends EventEmitter {
1760
1760
  this.emit('devInfo', `Hot Water Tank: ${supportsHotWaterTank ? 'Yes' : 'No'}`);
1761
1761
  this.emit('devInfo', `Zone 2: ${supportsZone2 ? 'Yes' : 'No'}`);
1762
1762
  this.emit('devInfo', '----------------------------------');
1763
- if (!this.accountTypeMelCloud) this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
1764
1763
  this.displayDeviceInfo = false;
1765
1764
  }
1766
1765
 
@@ -2400,12 +2399,13 @@ class DeviceAtw extends EventEmitter {
2400
2399
 
2401
2400
  //frost protection
2402
2401
  if (this.frostProtectionSupport && frostProtection.Enabled !== null) {
2403
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.Active, frostProtection.Enabled);
2404
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.CurrentHeaterCoolerState, frostProtection.Active ? 2 : 1);
2405
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0);
2406
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.CurrentTemperature, roomTemperature);
2407
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.CoolingThresholdTemperature, frostProtection.Max);
2408
- this.frostProtectionControlService?.updateCharacteristic(Characteristic.HeatingThresholdTemperature, frostProtection.Min);
2402
+ this.frostProtectionControlService
2403
+ ?.updateCharacteristic(Characteristic.Active, frostProtection.Enabled)
2404
+ .updateCharacteristic(Characteristic.CurrentHeaterCoolerState, frostProtection.Active ? 2 : 1)
2405
+ .updateCharacteristic(Characteristic.TargetHeaterCoolerState, 0)
2406
+ .updateCharacteristic(Characteristic.CurrentTemperature, roomTemperatureZone1)
2407
+ .updateCharacteristic(Characteristic.CoolingThresholdTemperature, frostProtection.Max)
2408
+ .updateCharacteristic(Characteristic.HeatingThresholdTemperature, frostProtection.Min);
2409
2409
  this.frostProtectionControlSensorService?.updateCharacteristic(Characteristic.ContactSensorState, frostProtection.Enabled);
2410
2410
  this.frostProtectionSensorService?.updateCharacteristic(Characteristic.ContactSensorState, frostProtection.Active);
2411
2411
  }
package/src/deviceerv.js CHANGED
@@ -1566,7 +1566,7 @@ class DeviceErv extends EventEmitter {
1566
1566
  if (supportsCO2Sensor) this.emit('info', `CO2 level: ${roomCO2Level} ppm`);
1567
1567
  if (supportsPM25Sensor) this.emit('info', `PM2.5 air quality: ${Ventilation.PM25AirQualityMapEnumToString[pM25AirQuality]}`);
1568
1568
  if (supportsPM25Sensor) this.emit('info', `PM2.5 level: ${pM25Level} µg/m`);
1569
- if (!this.accountTypeMelCloud) this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
1569
+ if (!accountTypeMelCloud) this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
1570
1570
  }
1571
1571
  })
1572
1572
  .on('success', (success) => this.emit('success', success))