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 +3 -4
- package/package.json +1 -1
- package/src/deviceata.js +16 -10
- package/src/deviceatw.js +9 -6
- package/src/deviceerv.js +6 -3
- package/src/melcloud.js +6 -2
- package/src/melcloudata.js +2 -0
- package/src/melcloudatw.js +2 -0
- package/src/melclouderv.js +2 -0
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
246
|
-
const vaneVerticalSwing = deviceData.Device.
|
|
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
|
|
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
|
-
|
|
217
|
-
|
|
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
|
|
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;
|
package/src/melcloudata.js
CHANGED
|
@@ -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,
|
package/src/melcloudatw.js
CHANGED
|
@@ -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,
|
package/src/melclouderv.js
CHANGED
|
@@ -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,
|