homebridge-melcloud-control 4.0.0-beta.66 → 4.0.0-beta.68

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.0.0-beta.66",
4
+ "version": "4.0.0-beta.68",
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/constants.js CHANGED
@@ -18,7 +18,7 @@ export const ApiUrls = {
18
18
  };
19
19
 
20
20
  export const ApiUrlsHome = {
21
- LoginUrl:"https://live-melcloudhome.auth.eu-west-1.amazoncognito.com/login?client_id=3g4d5l5kivuqi7oia68gib7uso&redirect_uri=https%3A%2F%2Fauth.melcloudhome.com%2Fsignin-oidc-meu&response_type=code&scope=openid%20profile&response_mode=form_post",
21
+ LoginUrl: "https://live-melcloudhome.auth.eu-west-1.amazoncognito.com/login?client_id=3g4d5l5kivuqi7oia68gib7uso&redirect_uri=https%3A%2F%2Fauth.melcloudhome.com%2Fsignin-oidc-meu&response_type=code&scope=openid%20profile&response_mode=form_post",
22
22
  BaseURL: 'https://melcloudhome.com',
23
23
  GetUserContext: "/api/user/context",
24
24
  SetAta: "/api/ataunit/deviceid",
@@ -37,7 +37,7 @@ export const TemperatureDisplayUnits = ["°C", "°F"];
37
37
 
38
38
  export const AirConditioner = {
39
39
  System: ["AIR CONDITIONER OFF", "AIR CONDITIONER ON", "AIR CONDITIONER OFFLINE"],
40
- DriveMode: [
40
+ OperationMode: [
41
41
  "0", "HEAT", "DRY", "COOL", "4", "5", "6", "FAN", "AUTO",
42
42
  "ISEE HEAT", "ISEE DRY", "ISEE COOL"
43
43
  ],
@@ -74,7 +74,8 @@ export const AirConditioner = {
74
74
  Presets: 287,
75
75
  HolidayMode: 131072,
76
76
  All: 281483566710825
77
- }
77
+ },
78
+ OperationModeMap: { "0": 0, "Heat": 1, "Dry": 2, "Cool": 3, "4": 4, "5": 5, "6": 6, "Fan": 7, "Auto": 8, "Isee Heat": 9, "Isee Dry": 10, "Isee Cool": 11 },
78
79
  };
79
80
 
80
81
  export const HeatPump = {
package/src/deviceata.js CHANGED
@@ -16,6 +16,7 @@ class DeviceAta extends EventEmitter {
16
16
  AccessoryUUID = api.hap.uuid;
17
17
 
18
18
  //account config
19
+ this.account = account;
19
20
  this.device = device;
20
21
  this.displayMode = device.displayMode;
21
22
  this.temperatureSensor = device.temperatureSensor || false;
@@ -327,7 +328,7 @@ class DeviceAta extends EventEmitter {
327
328
 
328
329
  deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.OperationModeSetTemperature;
329
330
  await this.melCloudAta.send(deviceData, this.displayMode);
330
- const operationModeText = AirConditioner.DriveMode[deviceData.Device.OperationMode];
331
+ const operationModeText = AirConditioner.OperationMode[deviceData.Device.OperationMode];
331
332
  if (this.logInfo) this.emit('info', `Set operation mode: ${operationModeText}`);
332
333
  } catch (error) {
333
334
  if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
@@ -522,7 +523,7 @@ class DeviceAta extends EventEmitter {
522
523
  };
523
524
 
524
525
  await this.melCloudAta.send(deviceData, this.displayMode);
525
- const operationModeText = AirConditioner.DriveMode[deviceData.Device.OperationMode];
526
+ const operationModeText = AirConditioner.OperationMode[deviceData.Device.OperationMode];
526
527
  if (this.logInfo) this.emit('info', `Set operation mode: ${operationModeText}`);
527
528
  } catch (error) {
528
529
  if (this.logWarn) this.emit('warn', `Set operation mode error: ${error}`);
@@ -918,7 +919,7 @@ class DeviceAta extends EventEmitter {
918
919
  async start() {
919
920
  try {
920
921
  //melcloud device
921
- this.melCloudAta = new MelCloudAta(this.device, this.contextKey, this.devicesFile)
922
+ this.melCloudAta = new MelCloudAta(this.account, this.device, this.contextKey, this.devicesFile)
922
923
  .on('deviceInfo', (manufacturer, modelIndoor, modelOutdoor, serialNumber, firmwareAppVersion) => {
923
924
  if (this.logDeviceInfo && this.displayDeviceInfo) {
924
925
  this.emit('devInfo', `---- ${this.deviceTypeText}: ${this.deviceName} ----`);
@@ -1312,7 +1313,7 @@ class DeviceAta extends EventEmitter {
1312
1313
  //log current state
1313
1314
  if (this.logInfo) {
1314
1315
  this.emit('info', `Power: ${power ? 'ON' : 'OFF'}`);
1315
- this.emit('info', `Target operation mode: ${AirConditioner.DriveMode[operationMode]}`);
1316
+ this.emit('info', `Target operation mode: ${AirConditioner.OperationMode[operationMode]}`);
1316
1317
  this.emit('info', `Current operation mode: ${this.displayMode === 1 ? AirConditioner.CurrentOperationModeHeatherCooler[obj.currentOperationMode] : AirConditioner.CurrentOperationModeThermostat[obj.currentOperationMode]}`);
1317
1318
  this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`);
1318
1319
  this.emit('info', `Current temperature: ${roomTemperature}${obj.temperatureUnit}`);
@@ -3,11 +3,12 @@ import axios from 'axios';
3
3
  import EventEmitter from 'events';
4
4
  import ImpulseGenerator from './impulsegenerator.js';
5
5
  import Functions from './functions.js';
6
- import { ApiUrls } from './constants.js';
6
+ import { ApiUrls, AirConditioner } from './constants.js';
7
7
 
8
8
  class MelCloudAta extends EventEmitter {
9
- constructor(device, contextKey, devicesFile) {
9
+ constructor(account, device, contextKey, devicesFile) {
10
10
  super();
11
+ this.accountType = account.displayType
11
12
  this.deviceId = device.id;
12
13
  this.logWarn = device.log?.warn;
13
14
  this.logDebug = device.log?.debug;
@@ -72,82 +73,12 @@ class MelCloudAta extends EventEmitter {
72
73
  if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
73
74
 
74
75
  //device info
75
- const deviceId = deviceData.DeviceID;
76
- const deviceName = deviceData.DeviceName;
77
- const buildingId = deviceData.BuildingID;
78
- const buildingName = deviceData.BuildingName;
79
- const floorId = deviceData.FloorID;
80
- const floorName = deviceData.FloorName;
81
- const areaId = deviceData.AreaID;
82
- const areaName = deviceData.AreaName;
83
- const imageId = deviceData.ImageID;
84
- const installationDate = deviceData.InstallationDate;
85
- const lastServiceDate = deviceData.LastServiceDate;
86
-
87
- //presets
88
- const presets = deviceData.Presets ?? [];
89
-
90
- const ownerId = deviceData.OwnerID;
91
- const ownerName = deviceData.OwnerName;
92
- const ownerEmail = deviceData.OwnerEmail;
93
- const accessLevel = deviceData.AccessLevel;
94
- const directAccess = deviceData.DirectAccess;
95
- const endDate = deviceData.EndDate;
96
- const zone1Name = deviceData.Zone1Name;
97
- const zone2Name = deviceData.Zone2Name;
98
- const minTemperature = deviceData.MinTemperature;
99
- const maxTemperature = deviceData.MaxTemperature;
100
76
  const hideVaneControls = deviceData.HideVaneControls ?? false;
101
77
  const hideDryModeControl = deviceData.HideDryModeControl ?? false;
102
- const hideRoomTemperature = deviceData.HideRoomTemperature;
103
- const hideSupplyTemperature = deviceData.HideSupplyTemperature;
104
- const hideOutdoorTemperature = deviceData.HideOutdoorTemperature;
105
- const buildingCountry = deviceData.BuildingCountry;
106
- const ownerCountry = deviceData.OwnerCountry;
107
- const adaptorType = deviceData.AdaptorType;
108
- const linkedDevice = deviceData.LinkedDevice;
109
- const type = deviceData.Type;
110
- const macAddress = deviceData.MacAddress;
111
78
  const serialNumber = deviceData.SerialNumber ?? 'Undefined';
112
79
 
113
80
  //device
114
81
  const device = deviceData.Device ?? {};
115
- const pCycleActual = device.PCycleActual;
116
- const errorMessages = device.ErrorMessages;
117
- const deviceType = device.DeviceType;
118
- const canCool = device.CanCool;
119
- const canHeat = device.CanHeat;
120
- const canDry = device.CanDry;
121
- const canAuto = device.CanAuto;
122
- const hasAutomaticFanSpeed = device.HasAutomaticFanSpeed;
123
- const airDirectionFunction = device.AirDirectionFunction;
124
- const swingFunction = device.SwingFunction;
125
- const numberOfFanSpeeds = device.NumberOfFanSpeeds;
126
- const useTemperatureA = device.UseTemperatureA;
127
- const temperatureIncrementOverride = device.TemperatureIncrementOverride; //Auto, 1, 0.5
128
- const temperatureIncrement = device.TemperatureIncrement; //1, 0.5
129
- const minTempCoolDry = device.MinTempCoolDry;
130
- const maxTempCoolDry = device.MaxTempCoolDry;
131
- const minTempHeat = device.MinTempHeat;
132
- const maxTempHeat = device.MaxTempHeat;
133
- const minTempAutomatic = device.MinTempAutomatic;
134
- const maxTempAutomatic = device.MaxTempAutomatic;
135
- const legacyDevice = device.LegacyDevice;
136
- const unitSupportsStandbyMode = device.UnitSupportsStandbyMode;
137
- const isSplitSystem = device.IsSplitSystem;
138
- const hasHalfDegreeIncrements = device.HasHalfDegreeIncrements;
139
- const hasOutdoorTemperature = device.HasOutdoorTemperature;
140
- const modelIsAirCurtain = device.ModelIsAirCurtain;
141
- const modelSupportsFanSpeed = device.ModelSupportsFanSpeed;
142
- const modelSupportsAuto = device.ModelSupportsAuto;
143
- const modelSupportsHeat = device.ModelSupportsHeat;
144
- const modelSupportsDry = device.ModelSupportsDry;
145
- const modelSupportsVaneVertical = device.ModelSupportsVaneVertical;
146
- const modelSupportsVaneHorizontal = device.ModelSupportsVaneHorizontal;
147
- const modelSupportsWideVane = device.ModelSupportsWideVane;
148
- const modelDisableEnergyReport = device.ModelDisableEnergyReport;
149
- const modelSupportsStandbyMode = device.ModelSupportsStandbyMode;
150
- const modelSupportsEnergyReporting = device.ModelSupportsEnergyReporting;
151
82
  const prohibitSetTemperature = device.ProhibitSetTemperature;
152
83
  const prohibitOperationMode = device.ProhibitOperationMode;
153
84
  const prohibitPower = device.ProhibitPower;
@@ -162,91 +93,11 @@ class MelCloudAta extends EventEmitter {
162
93
  const vaneVerticalSwing = device.VaneVerticalSwing;
163
94
  const vaneHorizontalDirection = device.VaneHorizontalDirection;
164
95
  const vaneHorizontalSwing = device.VaneHorizontalSwing;
165
- const operationMode = device.OperationMode;
166
- const effectiveFlags = device.EffectiveFlags;
96
+ const operationMode = this.accountType === 'melcloud' ? device.OperationMode : AirConditioner.OperationModeMap[device.OperationMode];
167
97
  const inStandbyMode = device.InStandbyMode;
168
- const demandPercentage = device.DemandPercentage;
169
- const configuredDemandPercentage = device.ConfiguredDemandPercentage;
170
- const hasDemandSideControl = device.HasDemandSideControl;
171
98
  const defaultCoolingSetTemperature = device.DefaultCoolingSetTemperature;
172
99
  const defaultHeatingSetTemperature = device.DefaultHeatingSetTemperature;
173
- const roomTemperatureLabel = device.RoomTemperatureLabel;
174
- const heatingEnergyConsumedRate1 = device.HeatingEnergyConsumedRate1;
175
- const heatingEnergyConsumedRate2 = device.HeatingEnergyConsumedRate2;
176
- const coolingEnergyConsumedRate1 = device.CoolingEnergyConsumedRate1;
177
- const coolingEnergyConsumedRate2 = device.CoolingEnergyConsumedRate2;
178
- const autoEnergyConsumedRate1 = device.AutoEnergyConsumedRate1;
179
- const autoEnergyConsumedRate2 = device.AutoEnergyConsumedRate2;
180
- const dryEnergyConsumedRate1 = device.DryEnergyConsumedRate1;
181
- const dryEnergyConsumedRate2 = device.DryEnergyConsumedRate2;
182
- const fanEnergyConsumedRate1 = device.FanEnergyConsumedRate1;
183
- const fanEnergyConsumedRate2 = device.FanEnergyConsumedRate2;
184
- const otherEnergyConsumedRate1 = device.OtherEnergyConsumedRate1;
185
- const otherEnergyConsumedRate2 = device.OtherEnergyConsumedRate2;
186
- const hasEnergyConsumedMeter = device.HasEnergyConsumedMeter;
187
- const currentEnergyConsumed = device.CurrentEnergyConsumed;
188
- const currentEnergyMode = device.CurrentEnergyMode;
189
- const coolingDisabled = device.CoolingDisabled
190
- const energyCorrectionModel = device.EnergyCorrectionModel;
191
- const energyCorrectionActive = device.EnergyCorrectionActive;
192
- const minPcycle = device.MinPcycle;
193
- const maxPcycle = device.MaxPcycle;
194
- const effectivePCycle = device.EffectivePCycle;
195
- const maxOutdoorUnits = device.MaxOutdoorUnits;
196
- const maxIndoorUnits = device.MaxIndoorUnits;
197
- const maxTemperatureControlUnits = device.MaxTemperatureControlUnits;
198
- const modelCode = device.ModelCode;
199
- //const deviceId = device.DeviceID;
200
- //const macAddress = device.MacAddress;
201
- //const serialNumber = device.SerialNumber;
202
- const timeZoneID = device.TimeZoneID;
203
- const diagnosticMode = device.DiagnosticMode;
204
- const diagnosticEndDate = device.DiagnosticEndDate;
205
- const expectedCommand = device.ExpectedCommand;
206
- const owner = device.Owner;
207
- const detectedCountry = device.DetectedCountry;
208
- //const adaptorType = device.AdaptorType;
209
- const firmwareDeployment = device.FirmwareDeployment;
210
- const firmwareUpdateAborted = device.FirmwareUpdateAborted;
211
- //const linkedDevice = device.LinkedDevice;
212
- const wifiSignalStrength = device.WifiSignalStrength;
213
- const wifiAdapterStatus = device.WifiAdapterStatus;
214
- const position = device.Position;
215
- const pCycle = device.PCycle;
216
- const pCycleConfigured = device.PCycleConfigured;
217
- const recordNumMax = device.RecordNumMax;
218
- const lastTimeStamp = device.LastTimeStamp;
219
- const errorCode = device.ErrorCode;
220
- const hasError = device.HasError;
221
- const lastReset = device.LastReset;
222
- const flashWrites = device.FlashWrites;
223
- const scene = device.Scene;
224
- const sSLExpirationDate = device.SSLExpirationDate;
225
- const sPTimeout = device.SPTimeout;
226
- const passcode = device.Passcode;
227
- const serverCommunicationDisabled = device.ServerCommunicationDisabled;
228
- const consecutiveUploadErrors = device.ConsecutiveUploadErrors;
229
- const doNotRespondAfter = device.DoNotRespondAfter;
230
- const ownerRoleAccessLevel = device.OwnerRoleAccessLevel;
231
- //const ownerCountry = device.OwnerCountry;
232
- const hideEnergyReport = device.HideEnergyReport;
233
- const exceptionHash = device.ExceptionHash;
234
- const exceptionDate = device.ExceptionDate;
235
- const exceptionCount = device.ExceptionCount;
236
- const rate1StartTime = device.Rate1StartTime;
237
- const rate2StartTime = device.Rate2StartTime;
238
- const protocolVersion = device.ProtocolVersion;
239
- const unitVersion = device.UnitVersion;
240
100
  const firmwareAppVersion = device.FirmwareAppVersion?.toString() ?? 'Undefined';
241
- const firmwareWebVersion = device.FirmwareWebVersion;
242
- const firmwareWlanVersion = device.FirmwareWlanVersion;
243
- const linkToMELCloudHome = device.LinkToMELCloudHome;
244
- const linkedByUserFromMELCloudHome = device.LinkedByUserFromMELCloudHome;
245
- const mqttFlags = device.MqttFlags;
246
- const hasErrorMessages = device.HasErrorMessages;
247
- const hasZone2 = device.HasZone2;
248
- const offline = device.Offline ?? false;
249
- const supportsHourlyEnergyReport = device.SupportsHourlyEnergyReport;
250
101
 
251
102
  //units
252
103
  const units = Array.isArray(device.Units) ? device.Units : [];
@@ -299,21 +150,6 @@ class MelCloudAta extends EventEmitter {
299
150
  }
300
151
  }
301
152
 
302
- //diagnostic
303
- //const diagnosticMode = deviceData.DiagnosticMode;
304
- //const diagnosticEndDate = deviceData.DiagnosticEndDate;
305
- const location = deviceData.Location;
306
- //const detectedCountry = deviceData.DetectedCountry;
307
- const registrations = deviceData.Registrations;
308
- const localIPAddress = deviceData.LocalIPAddress;
309
- const timeZone = deviceData.TimeZone;
310
- const registReason = deviceData.RegistReason;
311
- //const expectedCommand = deviceData.ExpectedCommand;
312
- const registRetry = deviceData.RegistRetry;
313
- const dateCreated = deviceData.DateCreated;
314
- //const firmwareDeployment = deviceData.FirmwareDeployment;
315
- //const firmwareUpdateAborted = deviceData.FirmwareUpdateAborted;
316
-
317
153
  //display info if units are not configured in MELCloud service
318
154
  if (unitsCount === 0) {
319
155
  if (this.logWarn) this.emit('warn', `Units are not configured in MELCloud service`);
@@ -72,110 +72,17 @@ class MelCloudAtw extends EventEmitter {
72
72
  if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
73
73
 
74
74
  //device info
75
- const deviceId = deviceData.DeviceID;
76
- const deviceName = deviceData.DeviceName;
77
- const buildingId = deviceData.BuildingID;
78
- const buildingName = deviceData.BuildingName;
79
- const floorId = deviceData.FloorID;
80
- const floorName = deviceData.FloorName;
81
- const areaId = deviceData.AreaID;
82
- const areaName = deviceData.AreaName;
83
- const imageId = deviceData.ImageID;
84
- const installationDate = deviceData.InstallationDate;
85
- const lastServiceDate = deviceData.LastServiceDate;
86
-
87
- //presets
88
- const presets = deviceData.Presets ?? [];
89
-
90
- //device info
91
- const ownerId = deviceData.OwnerID;
92
- const ownerName = deviceData.OwnerName;
93
- const ownerEmail = deviceData.OwnerEmail;
94
- const accessLevel = deviceData.AccessLevel;
95
- const directAccess = deviceData.DirectAccess;
96
- const endDate = deviceData.EndDate;
97
- const zone1Name = deviceData.Zone1Name;
98
- const zone2Name = deviceData.Zone2Name;
99
- const minTemperature = deviceData.MinTemperature;
100
- const maxTemperature = deviceData.MaxTemperature;
101
- const hideVaneControls = deviceData.HideVaneControls;
102
- const hideDryModeControl = deviceData.HideDryModeControl;
103
- const hideRoomTemperature = deviceData.HideRoomTemperature;
104
- const hideSupplyTemperature = deviceData.HideSupplyTemperature;
105
- const hideOutdoorTemperature = deviceData.HideOutdoorTemperature;
106
- const buildingCountry = deviceData.BuildingCountry;
107
- const ownerCountry = deviceData.OwnerCountry;
108
- const adaptorType = deviceData.AdaptorType;
109
- const linkedDevice = deviceData.LinkedDevice;
110
- const type = deviceData.Type;
111
- const macAddress = deviceData.MacAddress;
112
75
  const serialNumber = deviceData.SerialNumber ?? 'Undefined';
113
76
 
114
77
  //device
115
78
  const device = deviceData.Device ?? {};
116
- const listHistory24Formatters = Array.isArray(device.ListHistory24Formatters) ? device.ListHistory24Formatters : [];
117
- const listHistory24FormattersCount = listHistory24Formatters.length;
118
- const pCycleActual = device.PCycleActual;
119
- const errorMessages = device.ErrorMessages;
120
- const deviceType = device.DeviceType;
121
- const canHeat = device.CanHeat;
122
- const canCool = device.CanCool;
123
79
  const hasHotWaterTank = device.HasHotWaterTank ?? false;
124
- const fTCVersion = device.FTCVersion;
125
- const fTCRevision = device.FTCRevision;
126
- const lastFTCVersion = device.LastFTCVersion;
127
- const lastFTCRevision = device.LastFTCRevision;
128
- const fTCModel = device.FTCModel;
129
- const refridgerentAddress = device.RefridgerentAddress; // TODO: Typo in MELCloud service?
130
- const dipSwitch1 = device.DipSwitch1;
131
- const dipSwitch2 = device.DipSwitch2;
132
- const dipSwitch3 = device.DipSwitch3;
133
- const minTempHeat = device.DipSwitch4;
134
- const dipSwitch5 = device.DipSwitch5;
135
- const dipSwitch6 = device.DipSwitch6;
136
- const hasThermostatZone1 = device.HasThermostatZone1;
137
- const hasThermostatZone2 = device.HasThermostatZone2;
138
80
  const temperatureIncrement = device.TemperatureIncrement;
139
- const defrostMode = device.DefrostMode;
140
- const heatPumpFrequency = device.HeatPumpFrequency;
141
- const maxSetTemperature = device.MaxSetTemperature;
142
- const minSetTemperature = device.MinSetTemperature;
143
81
  const roomTemperatureZone1 = device.RoomTemperatureZone1;
144
82
  const roomTemperatureZone2 = device.RoomTemperatureZone2;
145
83
  const outdoorTemperature = device.OutdoorTemperature;
146
- const flowTemperature = device.FlowTemperature;
147
- const flowTemperatureZone1 = device.FlowTemperatureZone1;
148
- const flowTemperatureZone2 = device.FlowTemperatureZone2;
149
- const flowTemperatureBoiler = device.FlowTemperatureBoiler;
150
- const returnTemperature = device.ReturnTemperature;
151
- const returnTemperatureZone1 = device.ReturnTemperatureZone1;
152
- const returnTemperatureZone2 = device.ReturnTemperatureZone2;
153
- const returnTemperatureBoiler = device.ReturnTemperatureBoiler;
154
- const boilerStatus = device.BoilerStatus;
155
- const boosterHeater1Status = device.BoosterHeater1Status;
156
- const boosterHeater2Status = device.BoosterHeater2Status;
157
- const boosterHeater2PlusStatus = device.BoosterHeater2PlusStatus;
158
- const immersionHeaterStatus = device.ImmersionHeaterStatus;
159
- const waterPump1Status = device.WaterPump1Status;
160
- const waterPump2Status = device.WaterPump2Status;
161
- const waterPump3Status = device.WaterPump3Status;
162
- const valveStatus3Way = device.ValveStatus3Way;
163
- const valveStatus2Way = device.ValveStatus2Way;
164
- const waterPump4Status = device.WaterPump4Status;
165
- const valveStatus2Way2a = device.ValveStatus2Way2a;
166
- const valveStatus2Way2b = device.ValveStatus2Way2b;
167
84
  const tankWaterTemperature = device.TankWaterTemperature;
168
85
  const unitStatus = device.UnitStatus;
169
- const heatingFunctionEnabled = device.HeatingFunctionEnabled;
170
- const serverTimerEnabled = device.ServerTimerEnabled;
171
- const thermostatStatusZone1 = device.ThermostatStatusZone1;
172
- const thermostatStatusZone2 = device.ThermostatStatusZone2;
173
- const thermostatTypeZone1 = device.ThermostatTypeZone1;
174
- const thermostatTypeZone2 = device.ThermostatTypeZone2;
175
- const mixingTankWaterTemperature = device.MixingTankWaterTemperature;
176
- const condensingTemperature = device.CondensingTemperature;
177
- const effectiveFlags = device.EffectiveFlags;
178
- const lastEffectiveFlags = device.LastEffectiveFlags;
179
86
  const power = device.Power;
180
87
  const ecoHotWater = device.EcoHotWater;
181
88
  const operationMode = device.OperationMode;
@@ -184,126 +91,18 @@ class MelCloudAtw extends EventEmitter {
184
91
  const setTemperatureZone1 = device.SetTemperatureZone1;
185
92
  const setTemperatureZone2 = device.SetTemperatureZone2;
186
93
  const setTankWaterTemperature = device.SetTankWaterTemperature;
187
- const targetHCTemperatureZone1 = device.TargetHCTemperatureZone1;
188
- const targetHCTemperatureZone2 = device.TargetHCTemperatureZone2;
189
94
  const forcedHotWaterMode = device.ForcedHotWaterMode;
190
95
  const holidayMode = device.HolidayMode;
191
96
  const prohibitHotWater = device.ProhibitHotWater;
192
97
  const prohibitHeatingZone1 = device.ProhibitHeatingZone1;
193
98
  const prohibitHeatingZone2 = device.ProhibitHeatingZone2;
194
- const prohibitCoolingZone1 = device.ProhibitCoolingZone1;
195
- const prohibitCoolingZone2 = device.ProhibitCoolingZone2;
196
- const serverTimerDesired = device.ServerTimerDesired;
197
- const secondaryZoneHeatCurve = device.SecondaryZoneHeatCurve;
198
99
  const setHeatFlowTemperatureZone1 = device.SetHeatFlowTemperatureZone1;
199
100
  const setHeatFlowTemperatureZone2 = device.SetHeatFlowTemperatureZone2;
200
101
  const setCoolFlowTemperatureZone1 = device.SetCoolFlowTemperatureZone1;
201
102
  const setCoolFlowTemperatureZone2 = device.SetCoolFlowTemperatureZone2;
202
- const thermostatTemperatureZone1 = device.ThermostatTemperatureZone1;
203
- const thermostatTemperatureZone2 = device.ThermostatTemperatureZone2;
204
- const dECCReport = device.DECCReport;
205
- const cSVReport1min = device.CSVReport1min;
206
- const zone2Master = device.Zone2Master;
207
- const dailyEnergyConsumedDate = device.DailyEnergyConsumedDate;
208
- const dailyEnergyProducedDate = device.DailyEnergyProducedDate;
209
- const currentEnergyConsumed = device.CurrentEnergyConsumed;
210
- const currentEnergyProduced = device.CurrentEnergyProduced;
211
- const currentEnergyMode = device.CurrentEnergyMode;
212
- const heatingEnergyConsumedRate1 = device.HeatingEnergyConsumedRate1;
213
- const heatingEnergyConsumedRate2 = device.HeatingEnergyConsumedRate2
214
- const coolingEnergyConsumedRate1 = device.CoolingEnergyConsumedRate1;
215
- const coolingEnergyConsumedRate2 = device.CoolingEnergyConsumedRate2;
216
- const hotWaterEnergyConsumedRate1 = device.HotWaterEnergyConsumedRate1;
217
- const hotWaterEnergyConsumedRate2 = device.HotWaterEnergyConsumedRate2;
218
- const heatingEnergyProducedRate1 = device.HeatingEnergyProducedRate1;
219
- const heatingEnergyProducedRate2 = device.HeatingEnergyProducedRate2;
220
- const coolingEnergyProducedRate1 = device.CoolingEnergyProducedRate1;
221
- const coolingEnergyProducedRate2 = device.CoolingEnergyProducedRate2;
222
- const hotWaterEnergyProducedRate1 = device.HotWaterEnergyProducedRate1;
223
- const hotWaterEnergyProducedRate2 = device.HotWaterEnergyProducedRate2;
224
- const errorCode2Digit = device.ErrorCode2Digit;
225
- const sendSpecialFunctions = device.SendSpecialFunctions;
226
- const requestSpecialFunctions = device.RequestSpecialFunctions;
227
- const specialFunctionsState = device.SpecialFunctionsState;
228
- const pendingSendSpecialFunctions = device.PendingSendSpecialFunctions;
229
- const pendingRequestSpecialFunctions = device.PendingRequestSpecialFunctions;
230
- const hasSimplifiedZone2 = device.HasSimplifiedZone2;
231
- const canSetTankTemperature = device.CanSetTankTemperature;
232
- const canSetEcoHotWater = device.CanSetEcoHotWater;
233
- const hasEnergyConsumedMeter = device.HasEnergyConsumedMeter;
234
- const hasEnergyProducedMeter = device.HasEnergyProducedMeter;
235
- const canMeasureEnergyProduced = device.CanMeasureEnergyProduced;
236
- const canMeasureEnergyConsumed = device.CanMeasureEnergyConsumed;
237
- const zone1InRoomMode = device.Zone1InRoomMode;
238
- const zone2InRoomMode = device.Zone2InRoomMode;
239
- const zone1InHeatMode = device.Zone1InHeatMode;
240
- const zone2InHeatMode = device.Zone2InHeatMode;
241
- const zone1InCoolMode = device.Zone1InCoolMode;
242
- const zone2InCoolMode = device.Zone2InCoolMode;
243
- const allowDualRoomTemperature = device.AllowDualRoomTemperature;
244
- const isGeodan = device.IsGeodan;
245
- const hasEcoCuteSettings = device.HasEcoCuteSettings;
246
- const hasFTC45Settings = device.HasFTC45Settings;
247
- const hasFTC6Settings = device.HasFTC6Settings;
248
- const canEstimateEnergyUsage = device.CanEstimateEnergyUsage;
249
- const canUseRoomTemperatureCooling = device.CanUseRoomTemperatureCooling;
250
- const isFtcModelSupported = device.IsFtcModelSupported;
251
- const maxTankTemperature = device.MaxTankTemperature;
252
103
  const idleZone1 = device.IdleZone1 ?? false;
253
104
  const idleZone2 = device.IdleZone2 ?? false;
254
- const minPcycle = device.MinPcycle;
255
- const maxPcycle = device.MaxPcycle;
256
- const maxOutdoorUnits = device.MaxOutdoorUnits;
257
- const maxIndoorUnits = device.MaxIndoorUnits;
258
- const maxTemperatureControlUnits = device.MaxTemperatureControlUnits;
259
- //const deviceId = device.DeviceID;
260
- //const macAddress = device.MacAddress;
261
- //const serialNumber = device.SerialNumber;
262
- const timeZoneId = device.TimeZoneID;
263
- const diagnosticMode = device.DiagnosticMode;
264
- const diagnosticEndDate = device.DiagnosticEndDate;
265
- const expectedCommand = device.ExpectedCommand;
266
- const owner = device.Owner;
267
- const detectedCountry = device.DetectedCountry;
268
- //const adaptorType = device.AdaptorType;
269
- const firmwareDeployment = device.FirmwareDeployment;
270
- const firmwareUpdateAborted = device.FirmwareUpdateAborted;
271
- //const linkedDevice = device.LinkedDevice;
272
- const wifiSignalStrength = device.WifiSignalStrength;
273
- const wifiAdapterStatus = device.WifiAdapterStatus;
274
- const position = device.Position;
275
- const pCycle = device.PCycle;
276
- const recordNumMax = device.RecordNumMax;
277
- const lastTimeStamp = device.LastTimeStamp;
278
- const errorCode = device.ErrorCode;
279
- const hasError = device.HasError;
280
- const lastReset = device.LastReset;
281
- const flashWrites = device.FlashWrites;
282
- const scene = device.Scene;
283
- const sSLExpirationDate = device.SSLExpirationDate;
284
- const sPTimeout = device.SPTimeout;
285
- const passcode = device.Passcode;
286
- const serverCommunicationDisabled = device.ServerCommunicationDisabled;
287
- const consecutiveUploadErrors = device.ConsecutiveUploadErrors;
288
- const doNotRespondAfter = device.DoNotRespondAfter;
289
- const ownerRoleAccessLevel = device.OwnerRoleAccessLevel;
290
- //const ownerCountry = device.OwnerCountry;
291
- const hideEnergyReport = device.HideEnergyReport;
292
- const exceptionHash = device.ExceptionHash;
293
- const exceptionDate = device.ExceptionDate;
294
- const exceptionCount = device.ExceptionCount;
295
- const rate1StartTime = device.Rate1StartTime;
296
- const rate2StartTime = device.Rate2StartTime;
297
- const protocolVersion = device.ProtocolVersion;
298
- const unitVersion = device.UnitVersion;
299
105
  const firmwareAppVersion = device.FirmwareAppVersion?.toString() ?? 'Undefined';
300
- const firmwareWebVersion = device.FirmwareWebVersion;
301
- const firmwareWlanVersion = device.FirmwareWlanVersion;
302
- const effectivePCycle = device.EffectivePCycle;
303
- const mqttFlags = device.MqttFlags;
304
- const hasErrorMessages = device.HasErrorMessages;
305
- const offline = device.Offline ?? false;
306
- const supportsHourlyEnergyReport = device.SupportsHourlyEnergyReport;
307
106
  const hasZone2 = device.HasZone2 ?? false;
308
107
 
309
108
  //units
@@ -357,21 +156,6 @@ class MelCloudAtw extends EventEmitter {
357
156
  }
358
157
  }
359
158
 
360
- //diagnostic
361
- //const diagnosticMode = deviceData.DiagnosticMode;
362
- //const diagnosticEndDate = deviceData.DiagnosticEndDate;
363
- const location = deviceData.Location;
364
- //const detectedCountry = deviceData.DetectedCountry;
365
- const registrations = deviceData.Registrations;
366
- const localIPAddress = deviceData.LocalIPAddress;
367
- const timeZone = deviceData.TimeZone;
368
- const registReason = deviceData.RegistReason;
369
- //const expectedCommand = deviceData.ExpectedCommand;
370
- const registRetry = deviceData.RegistRetry;
371
- const dateCreated = deviceData.DateCreated;
372
- //const firmwareDeployment = deviceData.FirmwareDeployment;
373
- //const firmwareUpdateAborted = deviceData.FirmwareUpdateAborted;
374
-
375
159
  //display info if units are not configured in MELCloud service
376
160
  if (unitsCount === 0) {
377
161
  this.emit('message', `Units are not configured in MELCloud service`);
@@ -71,86 +71,18 @@ class MelCloudErv extends EventEmitter {
71
71
  const deviceData = devicesData.find(device => device.DeviceID === this.deviceId);
72
72
  if (this.logDebug) this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`);
73
73
 
74
- //deviceData
75
- const deviceId = deviceData.DeviceID;
76
- const deviceName = deviceData.DeviceName;
77
- const buildingId = deviceData.BuildingID;
78
- const buildingName = deviceData.BuildingName;
79
- const floorId = deviceData.FloorID;
80
- const floorName = deviceData.FloorName;
81
- const areaId = deviceData.AreaID;
82
- const areaName = deviceData.AreaName;
83
- const imageId = deviceData.ImageID;
84
- const installationDate = deviceData.InstallationDate;
85
- const lastServiceDate = deviceData.LastServiceDate;
86
74
 
87
75
  //presets
88
- const presets = deviceData.Presets ?? [];
89
-
90
- const ownerId = deviceData.OwnerID;
91
- const ownerName = deviceData.OwnerName;
92
- const ownerEmail = deviceData.OwnerEmail;
93
- const accessLevel = deviceData.AccessLevel;
94
- const directAccess = deviceData.DirectAccess;
95
- const endDate = deviceData.EndDate;
96
- const zone1Name = deviceData.Zone1Name;
97
- const zone2Name = deviceData.Zone2Name;
98
- const minTemperature = deviceData.MinTemperature;
99
- const maxTemperature = deviceData.MaxTemperature;
100
- const hideVaneControls = deviceData.HideVaneControls;
101
- const hideDryModeControl = deviceData.HideDryModeControl;
102
76
  const hideRoomTemperature = deviceData.HideRoomTemperature ?? false;
103
77
  const hideSupplyTemperature = deviceData.HideSupplyTemperature ?? false;
104
78
  const hideOutdoorTemperature = deviceData.HideOutdoorTemperature ?? false;
105
- const buildingCountry = deviceData.BuildingCountry;
106
- const ownerCountry = deviceData.OwnerCountry;
107
- const adaptorType = deviceData.AdaptorType;
108
- const linkedDevice = deviceData.LinkedDevice;
109
- const type = deviceData.Type;
110
- const macAddress = deviceData.MacAddress;
111
79
  const serialNumber = deviceData.SerialNumber ?? 'Undefined';
112
80
 
113
81
  //device
114
82
  const device = deviceData.Device ?? {};
115
- const pCycleActual = device.PCycleActual;
116
- const errorMessages = device.ErrorMessages;
117
- const deviceType = device.DeviceType;
118
- const ervFlags = device.ErvFlags;
119
- const ervModel = device.ErvModel;
120
- const labelControls = device.LabelControls;
121
- const devicePowerDisabled = device.DevicePowerDisabled;
122
- const silentMode = device.SilentMode;
123
- const deviceHolidayMode = device.DeviceHolidayMode;
124
- const externalControl = device.ExternalControl;
125
- const bypassVentilationSkipped = device.BypassVentilationSkipped;
126
- const autoVentilationSkipped = device.AutoVentilationSkipped;
127
- const fanSpeedSkipped = device.FanSpeedSkipped;
128
- const fanSpeedRestricted = device.FanSpeedRestricted;
129
- const hasTemperatureControlUnit = device.HasTemperatureControlUnit;
130
- const hasCoolOperationMode = device.HasCoolOperationMode;
131
- const hasHeatOperationMode = device.HasHeatOperationMode;
132
- const hasAutoOperationMode = device.HasAutoOperationMode;
133
- const hasBypassVentilationMode = device.HasBypassVentilationMode ?? false;
134
- const hasAutoVentilationMode = device.HasAutoVentilationMode ?? false;
135
- const hasRoomTemperature = device.HasRoomTemperature ?? false;
136
- const hasSupplyTemperature = device.HasSupplyTemperature ?? false;
137
- const hasOutdoorTemperature = device.HasOutdoorTemperature ?? false;
138
- const hasCO2Sensor = device.HasCO2Sensor;
139
- const hasPM25Sensor = device.HasPM25Sensor;
140
83
  const pM25SensorStatus = device.PM25SensorStatus;
141
84
  const pM25Level = device.PM25Level;
142
- const numberOfFanSpeeds = device.NumberOfFanSpeeds;
143
- const hasHalfDegreeIncrements = device.HasHalfDegreeIncrements;
144
- const temperatureIncrementOverride = device.TemperatureIncrementOverride;
145
85
  const temperatureIncrement = device.TemperatureIncrement;
146
- const minTempCoolDry = device.MinTempCoolDry;
147
- const maxTempCoolDry = device.MaxTempCoolDry;
148
- const minTempHeat = device.MinTempHeat;
149
- const maxTempHeat = device.MaxTempHeat;
150
- const minTempAutomatic = device.MinTempAutomatic;
151
- const maxTempAutomatic = device.MaxTempAutomatic;
152
- const setSupplyTemperatureMode = device.SetSupplyTemperatureMode;
153
- const hasAutomaticFanSpeed = device.HasAutomaticFanSpeed ?? false;
154
86
  const coreMaintenanceRequired = device.CoreMaintenanceRequired ?? false;
155
87
  const filterMaintenanceRequired = device.FilterMaintenanceRequired ?? false;
156
88
  const power = device.Power ?? false;
@@ -159,80 +91,15 @@ class MelCloudErv extends EventEmitter {
159
91
  const outdoorTemperature = device.OutdoorTemperature;
160
92
  const roomCO2Level = device.RoomCO2Level;
161
93
  const nightPurgeMode = device.NightPurgeMode ?? false;
162
- const thermostatOn = device.ThermostatOn;
163
94
  const setTemperature = device.SetTemperature;
164
95
  const actualSupplyFanSpeed = device.ActualSupplyFanSpeed;
165
96
  const actualExhaustFanSpeed = device.ActualExhaustFanSpeed;
166
97
  const setFanSpeed = device.SetFanSpeed;
167
- const automaticFanSpeed = device.AutomaticFanSpeed;
168
98
  const operationMode = device.OperationMode; //0, Heat, 2, Cool, 4, 5, 6, Fan, Auto
169
- const actualOperationMode = device.ActualOperationMode;
170
99
  const ventilationMode = device.VentilationMode; //Lossnay, Bypass, Auto
171
- const actualVentilationMode = device.ActualVentilationMode; //Lossnay, Bypass
172
- const effectiveFlags = device.EffectiveFlags;
173
- const lastEffectiveFlags = device.LastEffectiveFlags;
174
100
  const defaultCoolingSetTemperature = device.DefaultCoolingSetTemperature ?? 23;
175
101
  const defaultHeatingSetTemperature = device.DefaultHeatingSetTemperature ?? 21;
176
- const hasEnergyConsumedMeter = device.HasEnergyConsumedMeter;
177
- const currentEnergyConsumed = device.CurrentEnergyConsumed
178
- const currentEnergyAssignment = device.CurrentEnergyAssignment;
179
- const coolingDisabled = device.CoolingDisabled
180
- const maxOutdoorUnits = device.MaxOutdoorUnits;
181
- const maxIndoorUnits = device.MaxIndoorUnits;
182
- const maxTemperatureControlUnits = device.MaxTemperatureControlUnits;
183
- const modelCode = device.ModelCode;
184
- //const deviceId = device.DeviceID;
185
- //const macAddress = device.MacAddress;
186
- //const serialNumber = device.SerialNumber;
187
- const timeZoneId = device.TimeZoneID;
188
- const diagnosticMode = device.DiagnosticMode;
189
- const diagnosticEndDate = device.DiagnosticEndDate;
190
- const expectedCommand = device.ExpectedCommand;
191
- const owner = device.Owner;
192
- const detectedCountry = device.DetectedCountry;
193
- //const adaptorType = device.AdaptorType;
194
- const firmwareDeployment = device.FirmwareDeployment;
195
- const firmwareUpdateAborted = device.FirmwareUpdateAborted;
196
- //const linkedDevice = device.LinkedDevice;
197
- const wifiSignalStrength = device.WifiSignalStrength;
198
- const wifiAdapterStatus = device.WifiAdapterStatus;
199
- const position = device.Position;
200
- const pCycle = device.PCycle;
201
- const pCycleConfigured = device.PCycleConfigured;
202
- const recordNumMax = device.RecordNumMax;
203
- const lastTimeStamp = device.LastTimeStamp;
204
- const errorCode = device.ErrorCode;
205
- const hasError = device.HasError;
206
- const lastReset = device.LastReset;
207
- const flashWrites = device.FlashWrites;
208
- const scene = device.Scene;
209
- const sSLExpirationDate = device.SSLExpirationDate;
210
- const sPTimeout = device.SPTimeout;
211
- const passcode = device.Passcode;
212
- const serverCommunicationDisabled = device.ServerCommunicationDisabled;
213
- const consecutiveUploadErrors = device.ConsecutiveUploadErrors;
214
- const doNotRespondAfter = device.DoNotRespondAfter;
215
- const ownerRoleAccessLevel = device.OwnerRoleAccessLevel;
216
- //const ownerCountry = device.OwnerCountry;
217
- const hideEnergyReport = device.HideEnergyReport;
218
- const exceptionHash = device.ExceptionHash;
219
- const exceptionDate = device.ExceptionDate;
220
- const exceptionCount = device.ExceptionCount;
221
- const rate1StartTime = device.Rate1StartTime;
222
- const rate2StartTime = device.Rate2StartTime;
223
- const protocolVersion = device.ProtocolVersion;
224
- const unitVersion = device.UnitVersion;
225
102
  const firmwareAppVersion = device.FirmwareAppVersion?.toString() ?? 'Undefined';
226
- const firmwareWebVersion = device.FirmwareWebVersion;
227
- const firmwareWlanVersion = device.FirmwareWlanVersion;
228
- const effectivePCycle = device.EffectivePCycle;
229
- const mqttFlags = device.MqttFlags;
230
- const hasErrorMessages = device.HasErrorMessages;
231
- const hasZone2 = device.HasZone2;
232
- const offline = device.Offline ?? false;
233
- const minPcycle = device.MinPcycle;
234
- const maxPcycle = device.MaxPcycle;
235
- const supportsHourlyEnergyReport = device.SupportsHourlyEnergyReport;
236
103
 
237
104
  //units
238
105
  const units = Array.isArray(device.Units) ? device.Units : [];
@@ -285,21 +152,6 @@ class MelCloudErv extends EventEmitter {
285
152
  }
286
153
  }
287
154
 
288
- //diagnostic
289
- //const diagnosticMode = deviceData.DiagnosticMode;
290
- //const diagnosticEndDate = deviceData.DiagnosticEndDate;
291
- const location = deviceData.Location;
292
- //const detectedCountry = deviceData.DetectedCountry;
293
- const registrations = deviceData.Registrations;
294
- const localIPAddress = deviceData.LocalIPAddress;
295
- const timeZone = deviceData.TimeZone;
296
- const registReason = deviceData.RegistReason;
297
- //const expectedCommand = deviceData.ExpectedCommand;
298
- const registRetry = deviceData.RegistRetry;
299
- const dateCreated = deviceData.DateCreated;
300
- //const firmwareDeployment = deviceData.FirmwareDeployment;
301
- //const firmwareUpdateAborted = deviceData.FirmwareUpdateAborted;
302
-
303
155
  //display info if units are not configured in MELCloud service
304
156
  if (unitsCount === 0) {
305
157
  this.emit('message', `Units are not configured in MELCloud service`);