homebridge-melcloud-control 4.2.2-beta.6 → 4.2.2-beta.8

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
@@ -22,6 +22,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
22
 
23
23
  - Do not use Homebridge UI > v5.5.0 because of break config.json
24
24
 
25
+ ## [4.2.2] - (xx.11.2025)
26
+
27
+ ## Changes
28
+
29
+ - added connect sensor
30
+ - config schema updated
31
+ - readme updated
32
+ - cleanup
33
+
25
34
  ## [4.2.1] - (13.11.2025)
26
35
 
27
36
  ## Changes
package/README.md CHANGED
@@ -245,6 +245,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
245
245
  | `ataDevices[].autoDryFanMode` | Here select the operatiing mode for `Auto`, if this mode is not supported, it will be disabled.. |
246
246
  | `ataDevices[].temperatureSensor` | This enable extra `Room` temperature sensor to use with automations in HomeKit app. |
247
247
  | `ataDevices[].temperatureOutdoorSensor` | This enable extra `Outdoor` temperature sensor to use with automations in HomeKit app. |
248
+ | `ataDevices[].connectSensor` | This enable `Connect` sensor to use with automations in HomeKit app. |
248
249
  | `ataDevices[].errorSensor` | This enable `Error` sensor to use with automations in HomeKit app. |
249
250
  | `ataDevices[].frostProtectionSupport` | This enable extra `Frost Protectio` control and sensors to use with automations in HomeKit app. |
250
251
  | `ataDevices[].overheatProtectionSupport` | This enable extra `Overheat Protection` control and sensors to use with automations in HomeKit app. |
@@ -279,6 +280,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
279
280
  | `atwDevices[].temperatureReturnWaterTankSensor` | This enable extra `Return Water Tank` temperature sensor to use with automations in HomeKit app. |
280
281
  | `atwDevices[].temperatureFlowZone2Sensor` | This enable extra `Flow Zone 2` temperature sensor to use with automations in HomeKit app. |
281
282
  | `atwDevices[].temperatureReturnZone2Sensor` | This enable extra `Return Zone 2` temperature sensor to use with automations in HomeKit app. |
283
+ | `atwDevices[].connectSensor` | This enable `Connect` sensor to use with automations in HomeKit app. |
282
284
  | `atwDevices[].errorSensor` | This enable `Error` sensors to use with automations in HomeKit app. |
283
285
  | `atwDevices[].holidayModeSupport` | This enable extra `Holiday Mode` control and sensors to use with automations in HomeKit app. |
284
286
  | `atwDevices[].refreshInterval` | Here set the background devices state refresh time in (sec), default `5s`. |
@@ -304,6 +306,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
304
306
  | `ervDevices[].temperatureSensor` | This enable extra `Room` temperature sensor to use with automations in HomeKit app. |
305
307
  | `ervDevices[].temperatureOutdoorSensor` | This enable extra `Outdoor` temperature sensor to use with automations in HomeKit app. |
306
308
  | `ervDevices[].temperatureSupplySensor` | This enable extra `Supply` temperature sensor to use with automations in HomeKit app. |
309
+ | `ervDevices[].connectSensor` | This enable `Connect` sensor to use with automations in HomeKit app. |
307
310
  | `ervDevices[].errorSensor` | This enable `Error` sensors to use with automations in HomeKit app. |
308
311
  | `ervDevices[].holidayModeSupport` | This enable extra `Holiday Mode` control and sensors to use with automations in HomeKit app. |
309
312
  | `ervDevices[].refreshInterval` | Here set the background devices state refresh time in (sec), default `5s`. |
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.2-beta.6",
4
+ "version": "4.2.2-beta.8",
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
@@ -659,9 +659,9 @@ class DeviceAta extends EventEmitter {
659
659
  //connect sensor
660
660
  if (this.connectSensor && this.accessory.isConnected !== null) {
661
661
  if (this.logDebug) this.emit('debug', `Prepare error service`);
662
- this.connectService = new Service.ContactSensor(`${serviceName} Connect`, `connectService${deviceId}`);
662
+ this.connectService = new Service.ContactSensor(`${serviceName} Connected`, `connectService${deviceId}`);
663
663
  this.connectService.addOptionalCharacteristic(Characteristic.ConfiguredName);
664
- this.connectService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Connect`);
664
+ this.connectService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Connected`);
665
665
  this.connectService.getCharacteristic(Characteristic.ContactSensorState)
666
666
  .onGet(async () => {
667
667
  const state = this.accessory.isConnected;
@@ -1221,17 +1221,18 @@ class DeviceAta extends EventEmitter {
1221
1221
  this.deviceData = deviceData;
1222
1222
 
1223
1223
  //keys
1224
- const fanKey = this.accountType === 'melcloud' ? 'FanSpeed' : 'SetFanSpeed';
1225
- const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
1226
- const connectKey = this.accountType === 'melcloud' ? 'Offline' : 'IsConnected';
1227
- const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
1228
- const supportAirDirectionKey = this.accountType === 'melcloud' ? 'AirDirectionFunction' : 'HasAirDirectionFunction';
1229
- const supportSwingKey = this.accountType === 'melcloud' ? 'SwingFunction' : 'HasSwing';
1230
- const supportVideWaneKey = this.accountType === 'melcloud' ? 'ModelSupportsWideVane' : 'SupportsWideVane';
1231
- const supportAutoKey = this.accountType === 'melcloud' ? 'ModelSupportsAuto' : 'HasAutoOperationMode';
1232
- const supportHeatKey = this.accountType === 'melcloud' ? 'ModelSupportsHeat' : 'HasHeatOperationMode';
1233
- const supportDryKey = this.accountType === 'melcloud' ? 'ModelSupportsDry' : 'HasDryOperationMode';
1234
- const supportCoolKey = this.accountType === 'melcloud' ? 'ModelSupportsCool' : 'HasCoolOperationMode';
1224
+ const accountTypeMelcloud = this.accountType === 'melcloud';
1225
+ const fanKey = accountTypeMelcloud ? 'FanSpeed' : 'SetFanSpeed';
1226
+ const tempStepKey = accountTypeMelcloud ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
1227
+ const connectKey = accountTypeMelcloud ? 'Offline' : 'IsConnected';
1228
+ const errorKey = accountTypeMelcloud ? 'HasError' : 'IsInError';
1229
+ const supportAirDirectionKey = accountTypeMelcloud ? 'AirDirectionFunction' : 'HasAirDirectionFunction';
1230
+ const supportSwingKey = accountTypeMelcloud ? 'SwingFunction' : 'HasSwing';
1231
+ const supportVideWaneKey = accountTypeMelcloud ? 'ModelSupportsWideVane' : 'SupportsWideVane';
1232
+ const supportAutoKey = accountTypeMelcloud ? 'ModelSupportsAuto' : 'HasAutoOperationMode';
1233
+ const supportHeatKey = accountTypeMelcloud ? 'ModelSupportsHeat' : 'HasHeatOperationMode';
1234
+ const supportDryKey = accountTypeMelcloud ? 'ModelSupportsDry' : 'HasDryOperationMode';
1235
+ const supportCoolKey = accountTypeMelcloud ? 'ModelSupportsCool' : 'HasCoolOperationMode';
1235
1236
 
1236
1237
  //presets schedules
1237
1238
  const scheduleEnabled = deviceData.ScheduleEnabled;
@@ -1251,7 +1252,6 @@ class DeviceAta extends EventEmitter {
1251
1252
  const hideDryModeControl = deviceData.HideDryModeControl ?? false;
1252
1253
 
1253
1254
  //device info
1254
- const accountTypeMelcloud = this.accountType === 'melcloud';
1255
1255
  const supportsAutomaticFanSpeed = deviceData.Device.HasAutomaticFanSpeed ?? false;
1256
1256
  const supportsAirDirectionFunction = deviceData.Device[supportAirDirectionKey];
1257
1257
  const supportsSwingFunction = deviceData.Device[supportSwingKey];
@@ -1291,7 +1291,7 @@ class DeviceAta extends EventEmitter {
1291
1291
  const prohibitPower = deviceData.Device.ProhibitPower ?? false;
1292
1292
  const temperatureStep = deviceData.Device[tempStepKey] ? 0.5 : 1;
1293
1293
  const outdoorTemperature = deviceData.Device.OutdoorTemperature;
1294
- const isConnected = deviceData.Device[connectKey];
1294
+ const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
1295
1295
  const isInError = deviceData.Device[errorKey];
1296
1296
 
1297
1297
  //accessory
package/src/deviceatw.js CHANGED
@@ -1072,9 +1072,9 @@ class DeviceAtw extends EventEmitter {
1072
1072
  //connect sensor
1073
1073
  if (this.connectSensor && this.accessory.isConnected !== null) {
1074
1074
  if (this.logDebug) this.emit('debug', `Prepare error service`);
1075
- this.connectService = new Service.ContactSensor(`${serviceName} Connect`, `connectService${deviceId}`);
1075
+ this.connectService = new Service.ContactSensor(`${serviceName} Connected`, `connectService${deviceId}`);
1076
1076
  this.connectService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1077
- this.connectService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Connect`);
1077
+ this.connectService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Connected`);
1078
1078
  this.connectService.getCharacteristic(Characteristic.ContactSensorState)
1079
1079
  .onGet(async () => {
1080
1080
  const state = this.accessory.isConnected;
@@ -1486,6 +1486,7 @@ class DeviceAtw extends EventEmitter {
1486
1486
  this.deviceData = deviceData;
1487
1487
 
1488
1488
  //keys
1489
+ const accountTypeMelcloud = this.accountType === 'melcloud';
1489
1490
  const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
1490
1491
  const connectKey = this.accountType === 'melcloud' ? 'Offline' : 'IsConnected';
1491
1492
  const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
@@ -1535,7 +1536,7 @@ class DeviceAtw extends EventEmitter {
1535
1536
  const holidayMode = deviceData.Device.HolidayMode ?? false;
1536
1537
  const flowTemperatureHeatPump = deviceData.Device.FlowTemperature;
1537
1538
  const returnTemperatureHeatPump = deviceData.Device.ReturnTemperature;
1538
- const isConnected = deviceData.Device[connectKey];
1539
+ const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
1539
1540
  const isInError = deviceData.Device[errorKey];
1540
1541
 
1541
1542
  //zone 1
package/src/deviceerv.js CHANGED
@@ -691,9 +691,9 @@ class DeviceErv extends EventEmitter {
691
691
  //connect sensor
692
692
  if (this.connectSensor && this.accessory.isConnected !== null) {
693
693
  if (this.logDebug) this.emit('debug', `Prepare error service`);
694
- this.connectService = new Service.ContactSensor(`${serviceName} Connect`, `connectService${deviceId}`);
694
+ this.connectService = new Service.ContactSensor(`${serviceName} Connected`, `connectService${deviceId}`);
695
695
  this.connectService.addOptionalCharacteristic(Characteristic.ConfiguredName);
696
- this.connectService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Connect`);
696
+ this.connectService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Connected`);
697
697
  this.connectService.getCharacteristic(Characteristic.ContactSensorState)
698
698
  .onGet(async () => {
699
699
  const state = this.accessory.isConnected;
@@ -1031,6 +1031,7 @@ class DeviceErv extends EventEmitter {
1031
1031
  this.deviceData = deviceData;
1032
1032
 
1033
1033
  //keys
1034
+ const accountTypeMelcloud = this.accountType === 'melcloud';
1034
1035
  const tempStepKey = this.accountType === 'melcloud' ? 'TemperatureIncrement' : 'HasHalfDegreeIncrements';
1035
1036
  const connectKey = this.accountType === 'melcloud' ? 'Offline' : 'IsConnected';
1036
1037
  const errorKey = this.accountType === 'melcloud' ? 'HasError' : 'IsInError';
@@ -1086,7 +1087,7 @@ class DeviceErv extends EventEmitter {
1086
1087
  const setFanSpeed = deviceData.Device.SetFanSpeed;
1087
1088
  const operationMode = deviceData.Device.OperationMode;
1088
1089
  const ventilationMode = deviceData.Device.VentilationMode;
1089
- const isConnected = deviceData.Device[connectKey];
1090
+ const isConnected = accountTypeMelcloud ? !deviceData.Device[connectKey] : deviceData.Device[connectKey];
1090
1091
  const isInError = deviceData.Device[errorKey];
1091
1092
 
1092
1093
  //accessory