homebridge-melcloud-control 3.3.12-beta.0 → 3.3.12-beta.2

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/index.js CHANGED
@@ -95,7 +95,6 @@ class MelCloudPlatform {
95
95
  const response = await melCloud.connect();
96
96
  const accountInfo = response.accountInfo;
97
97
  const contextKey = response.contextKey;
98
- const useFahrenheit = response.useFahrenheit;
99
98
 
100
99
  //check devices list
101
100
  const devices = await melCloud.chackDevicesList(contextKey);
@@ -117,7 +116,7 @@ class MelCloudPlatform {
117
116
 
118
117
  const deviceName = device.name;
119
118
  const deviceTypeText = device.typeString;
120
- const airConditioner = new DeviceAta(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, deviceRefreshInterval, useFahrenheit)
119
+ const airConditioner = new DeviceAta(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, deviceRefreshInterval)
121
120
  airConditioner.on('publishAccessory', (accessory) => {
122
121
 
123
122
  //publish device
@@ -162,7 +161,7 @@ class MelCloudPlatform {
162
161
 
163
162
  const deviceName = device.name;
164
163
  const deviceTypeText = device.typeString;
165
- const heatPump = new DeviceAtw(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, deviceRefreshInterval, useFahrenheit)
164
+ const heatPump = new DeviceAtw(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, deviceRefreshInterval)
166
165
  heatPump.on('publishAccessory', (accessory) => {
167
166
 
168
167
  //publish device
@@ -207,7 +206,7 @@ class MelCloudPlatform {
207
206
 
208
207
  const deviceName = device.name;
209
208
  const deviceTypeText = device.typeString;
210
- const energyRecoveryVentilation = new DeviceErv(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, deviceRefreshInterval, useFahrenheit)
209
+ const energyRecoveryVentilation = new DeviceErv(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, deviceRefreshInterval)
211
210
  energyRecoveryVentilation.on('publishAccessory', (accessory) => {
212
211
 
213
212
  //publish device
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "3.3.12-beta.0",
4
+ "version": "3.3.12-beta.2",
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
@@ -7,7 +7,7 @@ const CONSTANTS = require('./constants.json');
7
7
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
8
8
 
9
9
  class DeviceAta extends EventEmitter {
10
- constructor(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, refreshInterval, useFahrenheit) {
10
+ constructor(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, refreshInterval) {
11
11
  super();
12
12
 
13
13
  Accessory = api.platformAccessory;
@@ -96,8 +96,6 @@ class DeviceAta extends EventEmitter {
96
96
  this.accessory.currentOperationMode = 0;
97
97
  this.accessory.targetOperationMode = 0;
98
98
  this.accessory.fanSpeed = 0;
99
- this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
100
- this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[this.accessory.useFahrenheit];
101
99
  };
102
100
 
103
101
  async start() {
@@ -210,6 +208,9 @@ class DeviceAta extends EventEmitter {
210
208
  this.displayDeviceInfo = false;
211
209
  })
212
210
  .on('deviceState', async (deviceData) => {
211
+ //use fahrenheit
212
+ const useFahrenheit = deviceData.useFahrenheit ? 1 : 0;
213
+
213
214
  //presets
214
215
  const presetsOnServer = deviceData.Presets ?? [];
215
216
 
@@ -242,10 +243,12 @@ class DeviceAta extends EventEmitter {
242
243
  const automaticFanSpeed = deviceData.Device.AutomaticFanSpeed;
243
244
  const fanSpeed = deviceData.Device.FanSpeed;
244
245
  const operationMode = deviceData.Device.OperationMode;
245
- const vaneVerticalDirection = deviceData.Device.VaneVerticalSwing;
246
- const vaneVerticalSwing = deviceData.Device.VaneVerticalDirection;
246
+ const vaneVerticalDirection = deviceData.Device.VaneVerticalDirection;
247
+ const vaneVerticalSwing = deviceData.Device.VaneVerticalSwing;
248
+ this.emit('message', `swing v: ${vaneVerticalSwing}`);
247
249
  const vaneHorizontalDirection = deviceData.Device.VaneHorizontalDirection;
248
250
  const vaneHorizontalSwing = deviceData.Device.VaneHorizontalSwing;
251
+ this.emit('message', `swing h: ${vaneHorizontalSwing}`);
249
252
  const prohibitSetTemperature = deviceData.Device.ProhibitSetTemperature ?? false;
250
253
  const prohibitOperationMode = deviceData.Device.ProhibitOperationMode ?? false;
251
254
  const prohibitPower = deviceData.Device.ProhibitPower ?? false;
@@ -253,22 +256,25 @@ class DeviceAta extends EventEmitter {
253
256
  const outdoorTemperature = deviceData.Device.OutdoorTemperature;
254
257
 
255
258
  //accessory
259
+ this.accessory.useFahrenheit = useFahrenheit;
260
+ this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[useFahrenheit];
256
261
  this.accessory.presets = presetsOnServer;
262
+ this.accessory.hasAutomaticFanSpeed = hasAutomaticFanSpeed;
263
+ this.accessory.airDirectionFunction = airDirectionFunction;
264
+ this.accessory.swingFunction = swingFunction;
265
+ this.accessory.hasOutdoorTemperature = hasOutdoorTemperature;
266
+ this.accessory.numberOfFanSpeeds = numberOfFanSpeeds;
257
267
  this.accessory.modelSupportsFanSpeed = modelSupportsFanSpeed;
258
268
  this.accessory.modelSupportsAuto = modelSupportsAuto;
259
269
  this.accessory.modelSupportsHeat = modelSupportsHeat;
260
270
  this.accessory.modelSupportsDry = modelSupportsDry;
261
271
  this.accessory.modelSupportsCool = modelSupportsCool;
262
- this.accessory.hasAutomaticFanSpeed = hasAutomaticFanSpeed;
263
- this.accessory.hasOutdoorTemperature = hasOutdoorTemperature;
264
- this.accessory.numberOfFanSpeeds = numberOfFanSpeeds;
265
- this.accessory.swingFunction = swingFunction;
266
272
  this.accessory.power = power ? 1 : 0;
267
273
  this.accessory.inStandbyMode = inStandbyMode;
268
274
  this.accessory.operationMode = operationMode;
269
- this.accessory.setTemperature = setTemperature;
270
275
  this.accessory.roomTemperature = roomTemperature;
271
276
  this.accessory.outdoorTemperature = outdoorTemperature;
277
+ this.accessory.setTemperature = setTemperature;
272
278
  this.accessory.defaultHeatingSetTemperature = defaultHeatingSetTemperature;
273
279
  this.accessory.defaultCoolingSetTemperature = defaultCoolingSetTemperature;
274
280
  this.accessory.actualFanSpeed = actualFanSpeed;
package/src/deviceatw.js CHANGED
@@ -7,7 +7,7 @@ const CONSTANTS = require('./constants.json');
7
7
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
8
8
 
9
9
  class DeviceAtw extends EventEmitter {
10
- constructor(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, refreshInterval, useFahrenheit) {
10
+ constructor(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, refreshInterval) {
11
11
  super();
12
12
 
13
13
  Accessory = api.platformAccessory;
@@ -97,8 +97,6 @@ class DeviceAtw extends EventEmitter {
97
97
 
98
98
  //accessory
99
99
  this.accessory = { zones: [{}, {}, {}, {}] };
100
- this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
101
- this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[this.accessory.useFahrenheit];
102
100
  };
103
101
 
104
102
  async start() {
@@ -213,9 +211,12 @@ class DeviceAtw extends EventEmitter {
213
211
  this.displayDeviceInfo = false;
214
212
  })
215
213
  .on('deviceState', async (deviceData) => {
216
- //presets
217
- const presetsOnServer = deviceData.Presets ?? [];
218
-
214
+ //use fahrenheit
215
+ const useFahrenheit = deviceData.useFahrenheit ? 1 : 0;
216
+
217
+ //presets
218
+ const presetsOnServer = deviceData.Presets ?? [];
219
+
219
220
  //device info
220
221
  const heatPumpName = 'Heat Pump';
221
222
  const hotWaterName = 'Hot Water';
@@ -273,6 +274,8 @@ class DeviceAtw extends EventEmitter {
273
274
  const idleZone2 = deviceData.Device.IdleZone2 ?? false;
274
275
 
275
276
  //accessory
277
+ this.accessory.useFahrenheit = useFahrenheit;
278
+ this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[useFahrenheit]
276
279
  this.accessory.power = power ? 1 : 0;
277
280
  this.accessory.operationMode = operationMode;
278
281
  this.accessory.operationModeZone1 = operationModeZone1;
package/src/deviceerv.js CHANGED
@@ -7,7 +7,7 @@ const CONSTANTS = require('./constants.json');
7
7
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
8
8
 
9
9
  class DeviceErv extends EventEmitter {
10
- constructor(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, refreshInterval, useFahrenheit) {
10
+ constructor(api, account, device, melCloud, accountInfo, contextKey, accountName, deviceId, deviceName, deviceTypeText, devicesFile, refreshInterval) {
11
11
  super();
12
12
 
13
13
  Accessory = api.platformAccessory;
@@ -94,8 +94,6 @@ class DeviceErv extends EventEmitter {
94
94
  this.accessory.currentOperationMode = 0;
95
95
  this.accessory.targetOperationMode = 0;
96
96
  this.accessory.fanSpeed = 0;
97
- this.accessory.useFahrenheit = useFahrenheit ? 1 : 0;
98
- this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[this.accessory.useFahrenheit];
99
97
  };
100
98
 
101
99
  async start() {
@@ -207,6 +205,9 @@ class DeviceErv extends EventEmitter {
207
205
  this.displayDeviceInfo = false;
208
206
  })
209
207
  .on('deviceState', async (deviceData) => {
208
+ //use fahrenheit
209
+ const useFahrenheit = deviceData.useFahrenheit ? 1 : 0;
210
+
210
211
  //presets
211
212
  const presetsOnServer = deviceData.Presets ?? [];
212
213
 
@@ -253,6 +254,8 @@ class DeviceErv extends EventEmitter {
253
254
  const ventilationMode = deviceData.Device.VentilationMode;
254
255
 
255
256
  //accessory
257
+ this.accessory.useFahrenheit = useFahrenheit;
258
+ this.accessory.temperatureUnit = CONSTANTS.TemperatureDisplayUnits[useFahrenheit];
256
259
  this.accessory.presets = presetsOnServer;
257
260
  this.accessory.hasRoomTemperature = hasRoomTemperature;
258
261
  this.accessory.hasSupplyTemperature = hasSupplyTemperature;
package/src/melcloud.js CHANGED
@@ -63,6 +63,7 @@ class MelCloud extends EventEmitter {
63
63
  const accountInfo = account.LoginData;
64
64
  const contextKey = accountInfo.ContextKey;
65
65
  const useFahrenheit = accountInfo.UseFahrenheit ?? false;
66
+ this.useFahrenheit = useFahrenheit;
66
67
  this.contextKey = contextKey;
67
68
 
68
69
  //remove sensitive data
@@ -108,8 +109,7 @@ class MelCloud extends EventEmitter {
108
109
 
109
110
  const obj = {
110
111
  accountInfo: accountInfo,
111
- contextKey: contextKey,
112
- useFahrenheit: useFahrenheit
112
+ contextKey: contextKey
113
113
  }
114
114
 
115
115
  return obj;
@@ -165,6 +165,10 @@ class MelCloud extends EventEmitter {
165
165
 
166
166
  //add all devices to the devices array
167
167
  devices.push(...allDevices);
168
+
169
+ for (const device of devices) {
170
+ device.useFahrenheit = this.useFahrenheit
171
+ }
168
172
  }
169
173
 
170
174
  const devicesCount = devices.length;
@@ -55,6 +55,7 @@ class MelCloudAta extends EventEmitter {
55
55
  const debug = this.debugLog ? this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`) : false;
56
56
 
57
57
  //device info
58
+ const useFahrenheit = deviceData.useFahrenheit;
58
59
  const deviceId = deviceData.DeviceID;
59
60
  const deviceName = deviceData.DeviceName;
60
61
  const buildingId = deviceData.BuildingID;
@@ -309,6 +310,7 @@ class MelCloudAta extends EventEmitter {
309
310
  };
310
311
 
311
312
  const deviceState = {
313
+ UseFahrenheit: useFahrenheit,
312
314
  Power: power,
313
315
  Offlin: offline,
314
316
  InStandbyMode: inStandbyMode,
@@ -55,6 +55,7 @@ class MelCloudAtw extends EventEmitter {
55
55
  const debug = this.debugLog ? this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`) : false;
56
56
 
57
57
  //device info
58
+ const useFahrenheit = deviceData.useFahrenheit;
58
59
  const deviceId = deviceData.DeviceID;
59
60
  const deviceName = deviceData.DeviceName;
60
61
  const buildingId = deviceData.BuildingID;
@@ -370,6 +371,7 @@ class MelCloudAtw extends EventEmitter {
370
371
  };
371
372
 
372
373
  const deviceState = {
374
+ UseFahrenheit: useFahrenheit,
373
375
  Power: power,
374
376
  Offlin: offline,
375
377
  IdleZone1: idleZone1,
@@ -55,6 +55,7 @@ class MelCloudErv extends EventEmitter {
55
55
  const debug = this.debugLog ? this.emit('debug', `Device Data: ${JSON.stringify(deviceData, null, 2)}`) : false;
56
56
 
57
57
  //deviceData
58
+ const useFahrenheit = deviceData.useFahrenheit;
58
59
  const deviceId = deviceData.DeviceID;
59
60
  const deviceName = deviceData.DeviceName;
60
61
  const buildingId = deviceData.BuildingID;
@@ -297,6 +298,7 @@ class MelCloudErv extends EventEmitter {
297
298
  };
298
299
 
299
300
  const deviceState = {
301
+ UseFahrenheit: useFahrenheit,
300
302
  Power: power,
301
303
  Offlin: offline,
302
304
  RoomTemperature: roomTemperature,