homebridge-melcloud-control 4.3.2-beta.2 → 4.3.2-beta.4

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": "4.3.2-beta.2",
4
+ "version": "4.3.2-beta.4",
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
@@ -649,7 +649,7 @@ class DeviceAta extends EventEmitter {
649
649
  return state;
650
650
  })
651
651
  accessory.addService(this.roomTemperatureSensorService);
652
- };
652
+ }
653
653
 
654
654
  if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
655
655
  if (this.logDebug) this.emit('debug', `Prepare outdoor temperature sensor service`);
@@ -662,7 +662,7 @@ class DeviceAta extends EventEmitter {
662
662
  return state;
663
663
  })
664
664
  accessory.addService(this.outdoorTemperatureSensorService);
665
- };
665
+ }
666
666
 
667
667
  //in standby sensor
668
668
  if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
@@ -922,7 +922,7 @@ class DeviceAta extends EventEmitter {
922
922
  accessory.addService(presetControlSensorService);
923
923
  }
924
924
  });
925
- };
925
+ }
926
926
 
927
927
  //schedules services
928
928
  if (this.schedules.length > 0 && this.accessory.scheduleEnabled !== null) {
@@ -996,7 +996,7 @@ class DeviceAta extends EventEmitter {
996
996
  accessory.addService(scheduleSensorService);
997
997
  }
998
998
  });
999
- };
999
+ }
1000
1000
 
1001
1001
  //scenes
1002
1002
  if (this.scenes.length > 0) {
@@ -1055,7 +1055,7 @@ class DeviceAta extends EventEmitter {
1055
1055
  accessory.addService(sceneControlSensorService);
1056
1056
  }
1057
1057
  });
1058
- };
1058
+ }
1059
1059
 
1060
1060
  //buttons services
1061
1061
  if (this.buttons.length > 0) {
@@ -1318,7 +1318,7 @@ class DeviceAta extends EventEmitter {
1318
1318
  accessory.addService(buttonControlSensorService);
1319
1319
  }
1320
1320
  });
1321
- };
1321
+ }
1322
1322
 
1323
1323
  return accessory;
1324
1324
  } catch (error) {
@@ -1690,7 +1690,7 @@ class DeviceAta extends EventEmitter {
1690
1690
  //sensor
1691
1691
  if (preset.displayType < 7) this.presetControlSensorServices?.[i]?.updateCharacteristic(characteristicType, preset.state);
1692
1692
  });
1693
- };
1693
+ }
1694
1694
 
1695
1695
  ///schedules
1696
1696
  if (this.schedules.length > 0 && scheduleEnabled !== null) {
@@ -1710,7 +1710,7 @@ class DeviceAta extends EventEmitter {
1710
1710
  //sensor
1711
1711
  if (schedule.displayType < 7) this.scheduleSensorServices?.[i]?.updateCharacteristic(characteristicType, schedule.state);
1712
1712
  });
1713
- };
1713
+ }
1714
1714
 
1715
1715
  //scenes
1716
1716
  if (this.scenes.length > 0) {
@@ -1727,7 +1727,7 @@ class DeviceAta extends EventEmitter {
1727
1727
  //sensor
1728
1728
  if (scene.displayType < 7) this.sceneControlSensorServices?.[i]?.updateCharacteristic(characteristicType, scene.state);
1729
1729
  });
1730
- };
1730
+ }
1731
1731
 
1732
1732
  //buttons
1733
1733
  if (this.buttons.length > 0) {
@@ -1851,10 +1851,11 @@ class DeviceAta extends EventEmitter {
1851
1851
  //sensor
1852
1852
  if (button.displayType < 7) this.buttonControlSensorServices?.[i]?.updateCharacteristic(characteristicType, button.state);
1853
1853
  });
1854
- };
1854
+ }
1855
1855
 
1856
1856
  //log current state
1857
1857
  if (this.logInfo) {
1858
+ this.emit('info', `---------------- ${this.deviceName} State ----------------`);
1858
1859
  this.emit('info', `Power: ${power ? 'On' : 'Off'}`);
1859
1860
  this.emit('info', `Target operation mode: ${AirConditioner.OperationModeMapEnumToString[operationMode]}`);
1860
1861
  this.emit('info', `Current operation mode: ${this.displayType === 1 ? AirConditioner.CurrentOperationModeHeatherCoolerMapEnumToString[obj.currentOperationMode] : AirConditioner.CurrentOperationModeThermostatMapEnumToString[obj.currentOperationMode]}`);
@@ -1869,7 +1870,7 @@ class DeviceAta extends EventEmitter {
1869
1870
  this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
1870
1871
  this.emit('info', `Lock physical controls: ${obj.lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
1871
1872
  if (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
1872
- };
1873
+ }
1873
1874
  })
1874
1875
  .on('success', (success) => this.emit('success', success))
1875
1876
  .on('info', (info) => this.emit('info', info))
package/src/deviceatw.js CHANGED
@@ -852,7 +852,7 @@ class DeviceAtw extends EventEmitter {
852
852
  break;
853
853
  };
854
854
  });
855
- };
855
+ }
856
856
 
857
857
  //sensor services
858
858
  if (zonesSensorsCount > 0) {
@@ -1023,7 +1023,7 @@ class DeviceAtw extends EventEmitter {
1023
1023
  break;
1024
1024
  };
1025
1025
  });
1026
- };
1026
+ }
1027
1027
 
1028
1028
  //in standby sensor
1029
1029
  if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
@@ -1237,7 +1237,7 @@ class DeviceAtw extends EventEmitter {
1237
1237
  accessory.addService(presetControlSensorService);
1238
1238
  }
1239
1239
  });
1240
- };
1240
+ }
1241
1241
 
1242
1242
  //schedules services
1243
1243
  if (this.schedules.length > 0 && this.accessory.scheduleEnabled !== null) {
@@ -1311,7 +1311,7 @@ class DeviceAtw extends EventEmitter {
1311
1311
  accessory.addService(scheduleSensorService);
1312
1312
  }
1313
1313
  });
1314
- };
1314
+ }
1315
1315
 
1316
1316
  //scenes
1317
1317
  if (this.scenes.length > 0) {
@@ -1370,7 +1370,7 @@ class DeviceAtw extends EventEmitter {
1370
1370
  accessory.addService(sceneControlSensorService);
1371
1371
  }
1372
1372
  });
1373
- };
1373
+ }
1374
1374
 
1375
1375
  //buttons services
1376
1376
  if (this.buttons.length > 0) {
@@ -1565,7 +1565,7 @@ class DeviceAtw extends EventEmitter {
1565
1565
  accessory.addService(buttonControlSensorService);
1566
1566
  }
1567
1567
  });
1568
- };
1568
+ }
1569
1569
 
1570
1570
  return accessory;
1571
1571
  } catch (error) {
@@ -2001,40 +2001,44 @@ class DeviceAtw extends EventEmitter {
2001
2001
  let operationModeText = '';
2002
2002
  switch (i) {
2003
2003
  case caseHeatPump: //Heat Pump - HEAT, COOL, OFF
2004
- this.emit('info', `${heatPumpName}, Power: ${power ? 'On' : 'Off'}`)
2005
- this.emit('info', `${heatPumpName}, Operation mode: ${HeatPump.SystemMapEnumToString[unitStatus]}`);
2006
- this.emit('info', `${heatPumpName},'Outdoor temperature: ${roomTemperature}${obj.temperatureUnit}`);
2007
- this.emit('info', `${heatPumpName}, Temperature display unit: ${obj.temperatureUnit}`);
2008
- this.emit('info', `${heatPumpName}, Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2004
+ this.emit('info', `---------------- ${heatPumpName} State ----------------`);
2005
+ this.emit('info', `Power: ${power ? 'On' : 'Off'}`)
2006
+ this.emit('info', `Operation mode: ${HeatPump.SystemMapEnumToString[unitStatus]}`);
2007
+ this.emit('info', `Outdoor temperature: ${roomTemperature}${obj.temperatureUnit}`);
2008
+ this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
2009
+ this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2009
2010
  if (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
2010
2011
  break;
2011
2012
  case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
2013
+ this.emit('info', `---------------- ${zone1Name} State ----------------`);
2012
2014
  operationModeText = idleZone1 ? HeatPump.ZoneOperationMapEnumToString[6] : HeatPump.ZoneOperationMapEnumToString[operationModeZone1];
2013
- this.emit('info', `${zone1Name}, Operation mode: ${operationModeText}`);
2014
- this.emit('info', `${zone1Name}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
2015
- this.emit('info', `${zone1Name}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
2016
- this.emit('info', `${zone1Name}, Temperature display unit: ${obj.temperatureUnit}`);
2017
- this.emit('info', `${zone1Name}, Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2015
+ this.emit('info', `Operation mode: ${operationModeText}`);
2016
+ this.emit('info', `Temperature: ${roomTemperature}${obj.temperatureUnit}`);
2017
+ this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`)
2018
+ this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
2019
+ this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2018
2020
  break;
2019
2021
  case caseHotWater: //Hot Water - AUTO, HEAT NOW
2022
+ this.emit('info', `---------------- ${hotWaterName} State ----------------`);
2020
2023
  operationModeText = operationMode === 1 ? HeatPump.ForceDhwMapEnumToString[1] : HeatPump.ForceDhwMapEnumToString[forcedHotWaterMode ? 1 : 0];
2021
- this.emit('info', `${hotWaterName}, Operation mode: ${operationModeText}`);
2022
- this.emit('info', `${hotWaterName}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
2023
- this.emit('info', `${hotWaterName}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
2024
- this.emit('info', `${hotWaterName}, Temperature display unit: ${obj.temperatureUnit}`);
2025
- this.emit('info', `${hotWaterName}, Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2024
+ this.emit('info', `Operation mode: ${operationModeText}`);
2025
+ this.emit('info', `Temperature: ${roomTemperature}${obj.temperatureUnit}`);
2026
+ this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`)
2027
+ this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
2028
+ this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2026
2029
  break;
2027
2030
  case caseZone2: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
2031
+ this.emit('info', `---------------- ${zone2Name} State ----------------`);
2028
2032
  operationModeText = idleZone2 ? HeatPump.ZoneOperationMapEnumToString[6] : HeatPump.ZoneOperationMapEnumToString[operationModeZone2];
2029
- this.emit('info', `${zone2Name}, Operation mode: ${operationModeText}`);
2030
- this.emit('info', `${zone2Name}, Temperature: ${roomTemperature}${obj.temperatureUnit}`);
2031
- this.emit('info', `${zone2Name}, Target temperature: ${setTemperature}${obj.temperatureUnit}`)
2032
- this.emit('info', `${zone2Name}, Temperature display unit: ${obj.temperatureUnit}`);
2033
- this.emit('info', `${zone2Name}, Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2033
+ this.emit('info', `Operation mode: ${operationModeText}`);
2034
+ this.emit('info', `Temperature: ${roomTemperature}${obj.temperatureUnit}`);
2035
+ this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`)
2036
+ this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
2037
+ this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
2034
2038
  break;
2035
2039
  };
2036
- };
2037
- };
2040
+ }
2041
+ }
2038
2042
 
2039
2043
  //update sensors characteristics
2040
2044
  for (let i = 0; i < zonesSensorsCount; i++) {
@@ -2119,7 +2123,7 @@ class DeviceAtw extends EventEmitter {
2119
2123
  break;
2120
2124
  };
2121
2125
  };
2122
- };
2126
+ }
2123
2127
  this.accessory = obj;
2124
2128
 
2125
2129
  //update services
@@ -2174,7 +2178,7 @@ class DeviceAtw extends EventEmitter {
2174
2178
  //sensor
2175
2179
  if (preset.displayType < 7) this.presetControlSensorServices?.[i]?.updateCharacteristic(characteristicType, preset.state);
2176
2180
  });
2177
- };
2181
+ }
2178
2182
 
2179
2183
  ///schedules
2180
2184
  if (this.schedules.length > 0 && scheduleEnabled !== null) {
@@ -2194,7 +2198,7 @@ class DeviceAtw extends EventEmitter {
2194
2198
  //sensor
2195
2199
  if (schedule.displayType < 7) this.scheduleSensorServices?.[i]?.updateCharacteristic(characteristicType, schedule.state);
2196
2200
  });
2197
- };
2201
+ }
2198
2202
 
2199
2203
  //scenes
2200
2204
  if (this.scenes.length > 0) {
@@ -2211,7 +2215,7 @@ class DeviceAtw extends EventEmitter {
2211
2215
  //sensor
2212
2216
  if (scene.displayType < 7) this.sceneControlSensorServices?.[i]?.updateCharacteristic(characteristicType, scene.state);
2213
2217
  });
2214
- };
2218
+ }
2215
2219
 
2216
2220
  //buttons
2217
2221
  if (this.buttons.length > 0) {
@@ -2299,7 +2303,7 @@ class DeviceAtw extends EventEmitter {
2299
2303
  //sensor
2300
2304
  if (button.displayType < 7) this.buttonControlSensorServices?.[i]?.updateCharacteristic(characteristicType, button.state);
2301
2305
  });
2302
- };
2306
+ }
2303
2307
  })
2304
2308
  .on('success', (success) => this.emit('success', success))
2305
2309
  .on('info', (info) => this.emit('info', info))
package/src/deviceerv.js CHANGED
@@ -586,7 +586,7 @@ class DeviceErv extends EventEmitter {
586
586
  return state;
587
587
  })
588
588
  accessory.addService(this.roomTemperatureSensorService);
589
- };
589
+ }
590
590
 
591
591
  //temperature sensor service supply
592
592
  if (this.temperatureSupplySensor && supportsSupplyTemperature && this.accessory.supplyTemperature !== null) {
@@ -600,7 +600,7 @@ class DeviceErv extends EventEmitter {
600
600
  return state;
601
601
  })
602
602
  accessory.addService(this.supplyTemperatureSensorService);
603
- };
603
+ }
604
604
 
605
605
  //temperature sensor service outdoor
606
606
  if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
@@ -614,7 +614,7 @@ class DeviceErv extends EventEmitter {
614
614
  return state;
615
615
  })
616
616
  accessory.addService(this.outdoorTemperatureSensorService);
617
- };
617
+ }
618
618
 
619
619
  //core maintenance
620
620
  if (this.accessory.coreMaintenanceRequired !== null) {
@@ -849,7 +849,7 @@ class DeviceErv extends EventEmitter {
849
849
  accessory.addService(presetControlSensorService);
850
850
  }
851
851
  });
852
- };
852
+ }
853
853
 
854
854
  //schedules services
855
855
  if (this.schedules.length > 0 && this.accessory.scheduleEnabled !== null) {
@@ -923,7 +923,7 @@ class DeviceErv extends EventEmitter {
923
923
  accessory.addService(scheduleSensorService);
924
924
  }
925
925
  });
926
- };
926
+ }
927
927
 
928
928
  //scenes
929
929
  if (this.scenes.length > 0) {
@@ -982,7 +982,7 @@ class DeviceErv extends EventEmitter {
982
982
  accessory.addService(sceneControlSensorService);
983
983
  }
984
984
  });
985
- };
985
+ }
986
986
 
987
987
  //buttons services
988
988
  if (this.buttons.length > 0) {
@@ -1118,7 +1118,7 @@ class DeviceErv extends EventEmitter {
1118
1118
  accessory.addService(buttonControlSensorService);
1119
1119
  }
1120
1120
  });
1121
- };
1121
+ }
1122
1122
 
1123
1123
  return accessory;
1124
1124
  } catch (error) {
@@ -1454,7 +1454,7 @@ class DeviceErv extends EventEmitter {
1454
1454
  //sensor
1455
1455
  if (preset.displayType < 7) this.presetControlSensorServices?.[i]?.updateCharacteristic(characteristicType, preset.state);
1456
1456
  });
1457
- };
1457
+ }
1458
1458
 
1459
1459
  ///schedules
1460
1460
  if (this.schedules.length > 0 && scheduleEnabled !== null) {
@@ -1474,7 +1474,7 @@ class DeviceErv extends EventEmitter {
1474
1474
  //sensor
1475
1475
  if (schedule.displayType < 7) this.scheduleSensorServices?.[i]?.updateCharacteristic(characteristicType, schedule.state);
1476
1476
  });
1477
- };
1477
+ }
1478
1478
 
1479
1479
  //scenes
1480
1480
  if (this.scenes.length > 0) {
@@ -1491,7 +1491,7 @@ class DeviceErv extends EventEmitter {
1491
1491
  //sensor
1492
1492
  if (scene.displayType < 7) this.sceneControlSensorServices?.[i]?.updateCharacteristic(characteristicType, scene.state);
1493
1493
  });
1494
- };
1494
+ }
1495
1495
 
1496
1496
  //buttons
1497
1497
  if (this.buttons.length > 0) {
@@ -1552,10 +1552,11 @@ class DeviceErv extends EventEmitter {
1552
1552
  //sensor
1553
1553
  if (button.displayType < 7) this.buttonControlSensorServices?.[i]?.updateCharacteristic(characteristicType, button.state);
1554
1554
  });
1555
- };
1555
+ }
1556
1556
 
1557
1557
  //log current state
1558
1558
  if (this.logInfo) {
1559
+ this.emit('info', `---------------- ${this.deviceName} State ----------------`);
1559
1560
  this.emit('info', `Power: ${power ? 'On' : 'Off'}`);
1560
1561
  this.emit('info', `Target ventilation mode: ${Ventilation.OperationModeMapEnumToString[ventilationMode]}`);
1561
1562
  this.emit('info', `Current ventilation mode: ${Ventilation.OperationModeMapEnumToString[actualVentilationMode]}`);
@@ -1572,7 +1573,7 @@ class DeviceErv extends EventEmitter {
1572
1573
  if (supportsPM25Sensor) this.emit('info', `PM2.5 air quality: ${Ventilation.PM25AirQualityMapEnumToString[pM25AirQuality]}`);
1573
1574
  if (supportsPM25Sensor) this.emit('info', `PM2.5 level: ${pM25Level} µg/m`);
1574
1575
  if (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
1575
- };
1576
+ }
1576
1577
  })
1577
1578
  .on('success', (success) => this.emit('success', success))
1578
1579
  .on('info', (info) => this.emit('info', info))
@@ -154,7 +154,7 @@ class MelCloudAta extends EventEmitter {
154
154
  updateDeviceState = true;
155
155
  break;
156
156
  case 'unitWifiSignalChanged':
157
- Object.assign(deviceData, messageData.rssi);
157
+ deviceData.Rssi = messageData.rssi;
158
158
  updateDeviceState = true;
159
159
  break;
160
160
  default: