homebridge-melcloud-control 4.0.0-beta.101 → 4.0.0-beta.103
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/README.md +5 -5
- package/package.json +1 -1
- package/src/constants.js +0 -1
- package/src/deviceata.js +25 -24
- package/src/melcloudata.js +157 -70
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
[](https://github.com/grzegorz914/homebridge-melcloud-control/pulls)
|
|
14
14
|
[](https://github.com/grzegorz914/homebridge-melcloud-control/issues)
|
|
15
15
|
|
|
16
|
-
Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation Lossnay, manufactured by Mistsubishi and connected to MELCloud.
|
|
16
|
+
Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation Lossnay, manufactured by Mistsubishi and connected to MELCloud or MELCloud Home.
|
|
17
17
|
|
|
18
18
|
</span>
|
|
19
19
|
|
|
@@ -21,14 +21,14 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
21
21
|
|
|
22
22
|
| Package | Installation | Role | Required |
|
|
23
23
|
| --- | --- | --- | --- |
|
|
24
|
-
| [Homebridge
|
|
25
|
-
| [
|
|
24
|
+
| [Homebridge](https://github.com/homebridge/homebridge) | [Homebridge Wiki](https://github.com/homebridge/homebridge/wiki) | HomeKit Bridge | Required |
|
|
25
|
+
| [Homebridge UI](https://github.com/homebridge/homebridge-config-ui-x) | [Config UI X Wiki](https://github.com/homebridge/homebridge-config-ui-x/wiki) | Homebridge Web User Interface | Required |
|
|
26
26
|
| [MELCloud](https://github.com/grzegorz914/homebridge-melcloud-control) | [Plug-In Wiki](https://github.com/grzegorz914/homebridge-melcloud-control/wiki) | Homebridge Plug-In | Required |
|
|
27
27
|
|
|
28
28
|
### About The Plugin
|
|
29
29
|
|
|
30
30
|
* All devices are detected automatically.
|
|
31
|
-
* Control devices over MELCloud
|
|
31
|
+
* Control devices over MELCloud and MELCloud Home.
|
|
32
32
|
* Support multiple accounts, buildings, floors, areas.
|
|
33
33
|
* Support temperature display units `Celsius/Fahrenheit`.
|
|
34
34
|
* Support assing inividual operating mode for `Heat/Cool/Auto`.
|
|
@@ -187,7 +187,7 @@ Homebridge plugin for Air Conditioner, Heat Pump and Energy Recovery Ventilation
|
|
|
187
187
|
### Configuration
|
|
188
188
|
|
|
189
189
|
* Run this plugin as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) (Highly Recommended), this prevent crash Homebridge if plugin crashes.
|
|
190
|
-
* Install and use [Homebridge
|
|
190
|
+
* Install and use [Homebridge UI](https://github.com/homebridge/homebridge-config-ui-x/wiki) to configure this plugin, required for version v3 and above.
|
|
191
191
|
* The `sample-config.json` can be edited and used as an alternative.
|
|
192
192
|
|
|
193
193
|
<p align="center">
|
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.
|
|
4
|
+
"version": "4.0.0-beta.103",
|
|
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,6 @@ 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",
|
|
22
21
|
BaseURL: 'https://melcloudhome.com',
|
|
23
22
|
GetUserContext: "/api/user/context",
|
|
24
23
|
SetAta: "/api/ataunit/deviceid",
|
package/src/deviceata.js
CHANGED
|
@@ -17,6 +17,7 @@ class DeviceAta extends EventEmitter {
|
|
|
17
17
|
|
|
18
18
|
//account config
|
|
19
19
|
this.accountMelcloud = account.displayType === 'melcloud' ? true : false;
|
|
20
|
+
this.accountDisplayType = account.displayType;
|
|
20
21
|
this.device = device;
|
|
21
22
|
this.displayMode = device.displayMode;
|
|
22
23
|
this.temperatureSensor = device.temperatureSensor || false;
|
|
@@ -155,67 +156,67 @@ class DeviceAta extends EventEmitter {
|
|
|
155
156
|
case 'Power':
|
|
156
157
|
deviceData.Device[key] = value;
|
|
157
158
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Power;
|
|
158
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
159
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
159
160
|
break;
|
|
160
161
|
case 'OperationMode':
|
|
161
162
|
deviceData.Device[key] = value;
|
|
162
163
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.OperationModeSetTemperature;
|
|
163
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
164
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
164
165
|
break;
|
|
165
166
|
case 'SetTemperature':
|
|
166
167
|
deviceData.Device[key] = value;
|
|
167
168
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
|
|
168
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
169
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
169
170
|
break;
|
|
170
171
|
case 'DefaultCoolingSetTemperature':
|
|
171
172
|
deviceData.Device[key] = value;
|
|
172
173
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
|
|
173
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
174
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
174
175
|
break;
|
|
175
176
|
case 'DefaultHeatingSetTemperature':
|
|
176
177
|
deviceData.Device[key] = value;
|
|
177
178
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
|
|
178
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
179
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
179
180
|
break;
|
|
180
181
|
case 'FanSpeed':
|
|
181
182
|
deviceData.Device[key] = value;
|
|
182
183
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetFanSpeed;
|
|
183
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
184
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
184
185
|
break;
|
|
185
186
|
case 'VaneHorizontalDirection':
|
|
186
187
|
deviceData.Device[key] = value;
|
|
187
188
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.VaneHorizontal;
|
|
188
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
189
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
189
190
|
break;
|
|
190
191
|
case 'VaneVerticalDirection':
|
|
191
192
|
deviceData.Device[key] = value;
|
|
192
193
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.VaneVertical;
|
|
193
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
194
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
194
195
|
break;
|
|
195
196
|
case 'HideVaneControls':
|
|
196
197
|
deviceData[key] = value;
|
|
197
198
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
198
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
199
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
199
200
|
break;
|
|
200
201
|
case 'HideDryModeControl':
|
|
201
202
|
deviceData[key] = value;
|
|
202
203
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
203
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
204
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
204
205
|
break;
|
|
205
206
|
case 'ProhibitSetTemperature':
|
|
206
207
|
deviceData.Device[key] = value;
|
|
207
208
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
208
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
209
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
209
210
|
break;
|
|
210
211
|
case 'ProhibitOperationMode':
|
|
211
212
|
deviceData.Device[key] = value;
|
|
212
213
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
213
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
214
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
214
215
|
break;
|
|
215
216
|
case 'ProhibitPower':
|
|
216
217
|
deviceData.Device[key] = value;
|
|
217
218
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
218
|
-
set = await this.melCloudAta.send(deviceData, this.displayMode);
|
|
219
|
+
set = await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
219
220
|
break;
|
|
220
221
|
default:
|
|
221
222
|
this.emit('warn', `${integration}, received key: ${key}, value: ${value}`);
|
|
@@ -291,7 +292,7 @@ class DeviceAta extends EventEmitter {
|
|
|
291
292
|
try {
|
|
292
293
|
deviceData.Device.Power = [false, true][state];
|
|
293
294
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Power;
|
|
294
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
295
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
295
296
|
if (this.logInfo) this.emit('info', `Set power: ${state ? 'ON' : 'OFF'}`);
|
|
296
297
|
} catch (error) {
|
|
297
298
|
if (this.logWarn) this.emit('warn', `Set power error: ${error}`);
|
|
@@ -327,7 +328,7 @@ class DeviceAta extends EventEmitter {
|
|
|
327
328
|
};
|
|
328
329
|
|
|
329
330
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.OperationModeSetTemperature;
|
|
330
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
331
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
331
332
|
const operationModeText = AirConditioner.OperationMode[deviceData.Device.OperationMode];
|
|
332
333
|
if (this.logInfo) this.emit('info', `Set operation mode: ${operationModeText}`);
|
|
333
334
|
} catch (error) {
|
|
@@ -376,7 +377,7 @@ class DeviceAta extends EventEmitter {
|
|
|
376
377
|
break;
|
|
377
378
|
};
|
|
378
379
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetFanSpeed;
|
|
379
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
380
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
380
381
|
if (this.logInfo) this.emit('info', `Set fan speed mode: ${AirConditioner.FanSpeed[fanSpeedModeText]}`);
|
|
381
382
|
} catch (error) {
|
|
382
383
|
if (this.logWarn) this.emit('warn', `Set fan speed mode error: ${error}`);
|
|
@@ -395,7 +396,7 @@ class DeviceAta extends EventEmitter {
|
|
|
395
396
|
deviceData.Device.VaneHorizontal = value ? 12 : 0;
|
|
396
397
|
deviceData.Device.VaneVertical = value ? 7 : 0;
|
|
397
398
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.VaneVerticalVaneHorizontal;
|
|
398
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
399
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
399
400
|
if (this.logInfo) this.emit('info', `Set air direction mode: ${AirConditioner.AirDirection[value]}`);
|
|
400
401
|
} catch (error) {
|
|
401
402
|
if (this.logWarn) this.emit('warn', `Set vane swing mode error: ${error}`);
|
|
@@ -416,7 +417,7 @@ class DeviceAta extends EventEmitter {
|
|
|
416
417
|
try {
|
|
417
418
|
deviceData.Device.DefaultCoolingSetTemperature = value;
|
|
418
419
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
|
|
419
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
420
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
420
421
|
if (this.logInfo) this.emit('info', `Set cooling threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
421
422
|
} catch (error) {
|
|
422
423
|
if (this.logWarn) this.emit('warn', `Set cooling threshold temperature error: ${error}`);
|
|
@@ -437,7 +438,7 @@ class DeviceAta extends EventEmitter {
|
|
|
437
438
|
try {
|
|
438
439
|
deviceData.Device.DefaultHeatingSetTemperature = value;
|
|
439
440
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
|
|
440
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
441
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
441
442
|
if (this.logInfo) this.emit('info', `Set heating threshold temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
442
443
|
} catch (error) {
|
|
443
444
|
if (this.logWarn) this.emit('warn', `Set heating threshold temperature error: ${error}`);
|
|
@@ -456,7 +457,7 @@ class DeviceAta extends EventEmitter {
|
|
|
456
457
|
deviceData.Device.ProhibitOperationMode = value;
|
|
457
458
|
deviceData.Device.ProhibitPower = value;
|
|
458
459
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.Prohibit;
|
|
459
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
460
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
460
461
|
if (this.logInfo) this.emit('info', `Set local physical controls: ${value ? 'LOCK' : 'UNLOCK'}`);
|
|
461
462
|
} catch (error) {
|
|
462
463
|
if (this.logWarn) this.emit('warn', `Set lock physical controls error: ${error}`);
|
|
@@ -522,7 +523,7 @@ class DeviceAta extends EventEmitter {
|
|
|
522
523
|
break;
|
|
523
524
|
};
|
|
524
525
|
|
|
525
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
526
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
526
527
|
const operationModeText = AirConditioner.OperationMode[deviceData.Device.OperationMode];
|
|
527
528
|
if (this.logInfo) this.emit('info', `Set operation mode: ${operationModeText}`);
|
|
528
529
|
} catch (error) {
|
|
@@ -548,7 +549,7 @@ class DeviceAta extends EventEmitter {
|
|
|
548
549
|
try {
|
|
549
550
|
deviceData.Device.SetTemperature = value;
|
|
550
551
|
deviceData.Device.EffectiveFlags = AirConditioner.EffectiveFlags.SetTemperature;
|
|
551
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
552
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
552
553
|
if (this.logInfo) this.emit('info', `Set temperature: ${value}${this.accessory.temperatureUnit}`);
|
|
553
554
|
} catch (error) {
|
|
554
555
|
if (this.logWarn) this.emit('warn', `Set temperature error: ${error}`);
|
|
@@ -658,7 +659,7 @@ class DeviceAta extends EventEmitter {
|
|
|
658
659
|
break;
|
|
659
660
|
};
|
|
660
661
|
|
|
661
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
662
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
662
663
|
if (this.logInfo) this.emit('info', `${state ? 'Set:' : 'Unset:'} ${name}`);
|
|
663
664
|
} catch (error) {
|
|
664
665
|
if (this.logWarn) this.emit('warn', `Set preset error: ${error}`);
|
|
@@ -898,7 +899,7 @@ class DeviceAta extends EventEmitter {
|
|
|
898
899
|
break;
|
|
899
900
|
};
|
|
900
901
|
|
|
901
|
-
await this.melCloudAta.send(deviceData, this.displayMode);
|
|
902
|
+
await this.melCloudAta.send(this.accountDisplayType, deviceData, this.displayMode);
|
|
902
903
|
if (this.logInfo) this.emit('info', `${state ? `Set: ${name}` : `Unset: ${name}, Set: ${button.previousValue}`}`);
|
|
903
904
|
} catch (error) {
|
|
904
905
|
if (this.logWarn) this.emit('warn', `Set button error: ${error}`);
|
package/src/melcloudata.js
CHANGED
|
@@ -3,7 +3,7 @@ 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, ApiUrlsHome } from './constants.js';
|
|
7
7
|
|
|
8
8
|
class MelCloudAta extends EventEmitter {
|
|
9
9
|
constructor(device, contextKey, devicesFile) {
|
|
@@ -18,19 +18,44 @@ class MelCloudAta extends EventEmitter {
|
|
|
18
18
|
//set default values
|
|
19
19
|
this.deviceState = {};
|
|
20
20
|
|
|
21
|
+
this.axiosDefaults = {
|
|
22
|
+
timeout: 25000,
|
|
23
|
+
maxContentLength: 100000000,
|
|
24
|
+
maxBodyLength: 1000000000,
|
|
25
|
+
httpsAgent: new Agent({
|
|
26
|
+
keepAlive: false,
|
|
27
|
+
rejectUnauthorized: false
|
|
28
|
+
})
|
|
29
|
+
};
|
|
30
|
+
|
|
21
31
|
this.axiosInstancePost = axios.create({
|
|
22
32
|
method: 'POST',
|
|
23
33
|
baseURL: ApiUrls.BaseURL,
|
|
24
|
-
timeout: 25000,
|
|
25
34
|
headers: {
|
|
26
35
|
'X-MitsContextKey': contextKey,
|
|
27
36
|
'content-type': 'application/json'
|
|
28
37
|
},
|
|
29
38
|
withCredentials: true,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
...this.axiosDefaults
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
this.axiosInstancePut = axios.create({
|
|
43
|
+
method: 'PUT',
|
|
44
|
+
baseURL: ApiUrlsHome.BaseURL,
|
|
45
|
+
headers: {
|
|
46
|
+
'Accept': '*/*',
|
|
47
|
+
'Accept-Language': 'en-US,en;q=0.9',
|
|
48
|
+
'Cookie': contextKey,
|
|
49
|
+
'User-Agent': 'homebridge-melcloud-control/4.0.0',
|
|
50
|
+
'DNT': '1',
|
|
51
|
+
'Origin': 'https://melcloudhome.com',
|
|
52
|
+
'Referer': 'https://melcloudhome.com/dashboard',
|
|
53
|
+
'Sec-Fetch-Dest': 'empty',
|
|
54
|
+
'Sec-Fetch-Mode': 'cors',
|
|
55
|
+
'Sec-Fetch-Site': 'same-origin',
|
|
56
|
+
'X-CSRF': '1'
|
|
57
|
+
},
|
|
58
|
+
...this.axiosDefaults
|
|
34
59
|
});
|
|
35
60
|
|
|
36
61
|
//lock flags
|
|
@@ -206,76 +231,138 @@ class MelCloudAta extends EventEmitter {
|
|
|
206
231
|
};
|
|
207
232
|
};
|
|
208
233
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
case
|
|
222
|
-
deviceData.Device.
|
|
223
|
-
|
|
224
|
-
|
|
234
|
+
updateData(deviceData) {
|
|
235
|
+
setTimeout(() => {
|
|
236
|
+
this.emit('deviceState', deviceData);
|
|
237
|
+
}, 500);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
async send(displayType, deviceData, displayMode) {
|
|
241
|
+
switch (displayType) {
|
|
242
|
+
case "melcloud":
|
|
243
|
+
try {
|
|
244
|
+
//set target temp based on display mode and operation mode
|
|
245
|
+
switch (displayMode) {
|
|
246
|
+
case 1: //Heather/Cooler
|
|
247
|
+
switch (deviceData.Device.OperationMode) {
|
|
248
|
+
case 1: //HEAT
|
|
249
|
+
deviceData.Device.SetTemperature = deviceData.Device.DefaultHeatingSetTemperature;
|
|
250
|
+
break;
|
|
251
|
+
case 2: //DRY
|
|
252
|
+
deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
253
|
+
break;
|
|
254
|
+
case 3: //COOL
|
|
255
|
+
deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
256
|
+
break;
|
|
257
|
+
case 7: //FAN
|
|
258
|
+
deviceData.Device.SetTemperature = deviceData.Device.SetTemperature;
|
|
259
|
+
break;
|
|
260
|
+
case 8: //AUTO
|
|
261
|
+
const setTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
262
|
+
deviceData.Device.SetTemperature = setTemperature;
|
|
263
|
+
break;
|
|
264
|
+
case 9: //HISEE HEAT
|
|
265
|
+
deviceData.Device.SetTemperature = deviceData.Device.DefaultHeatingSetTemperature;
|
|
266
|
+
break;
|
|
267
|
+
case 10: //ISEE DRY
|
|
268
|
+
deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
269
|
+
break;
|
|
270
|
+
case 11: //ISEE COOL
|
|
271
|
+
deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
272
|
+
break;
|
|
273
|
+
};
|
|
274
|
+
case 2: //Thermostat
|
|
225
275
|
deviceData.Device.SetTemperature = deviceData.Device.SetTemperature;
|
|
226
276
|
break;
|
|
227
|
-
case 8: //AUTO
|
|
228
|
-
const setTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
229
|
-
deviceData.Device.SetTemperature = setTemperature;
|
|
230
|
-
break;
|
|
231
|
-
case 9: //HISEE HEAT
|
|
232
|
-
deviceData.Device.SetTemperature = deviceData.Device.DefaultHeatingSetTemperature;
|
|
233
|
-
break;
|
|
234
|
-
case 10: //ISEE DRY
|
|
235
|
-
deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
236
|
-
break;
|
|
237
|
-
case 11: //ISEE COOL
|
|
238
|
-
deviceData.Device.SetTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
239
|
-
break;
|
|
240
277
|
};
|
|
241
|
-
case 2: //Thermostat
|
|
242
|
-
deviceData.Device.SetTemperature = deviceData.Device.SetTemperature;
|
|
243
|
-
break;
|
|
244
|
-
};
|
|
245
278
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
279
|
+
const payload = {
|
|
280
|
+
data: {
|
|
281
|
+
DeviceID: deviceData.Device.DeviceID,
|
|
282
|
+
EffectiveFlags: deviceData.Device.EffectiveFlags,
|
|
283
|
+
Power: deviceData.Device.Power,
|
|
284
|
+
SetTemperature: deviceData.Device.SetTemperature,
|
|
285
|
+
SetFanSpeed: deviceData.Device.FanSpeed,
|
|
286
|
+
OperationMode: deviceData.Device.OperationMode,
|
|
287
|
+
VaneHorizontal: deviceData.Device.VaneHorizontalDirection,
|
|
288
|
+
VaneVertical: deviceData.Device.VaneVerticalDirection,
|
|
289
|
+
DefaultHeatingSetTemperature: deviceData.Device.DefaultHeatingSetTemperature,
|
|
290
|
+
DefaultCoolingSetTemperature: deviceData.Device.DefaultCoolingSetTemperature,
|
|
291
|
+
ProhibitSetTemperature: deviceData.Device.ProhibitSetTemperature,
|
|
292
|
+
ProhibitOperationMode: deviceData.Device.ProhibitOperationMode,
|
|
293
|
+
ProhibitPower: deviceData.Device.ProhibitPower,
|
|
294
|
+
HideVaneControls: deviceData.HideVaneControls,
|
|
295
|
+
HideDryModeControl: deviceData.HideDryModeControl,
|
|
296
|
+
HasPendingCommand: true
|
|
297
|
+
}
|
|
298
|
+
}
|
|
266
299
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
300
|
+
await this.axiosInstancePost(ApiUrls.SetAta, payload);
|
|
301
|
+
this.updateData(deviceData);
|
|
302
|
+
return true;
|
|
303
|
+
} catch (error) {
|
|
304
|
+
throw new Error(`Send data error: ${error}`);
|
|
305
|
+
};
|
|
306
|
+
case "melcloudhome":
|
|
307
|
+
try {
|
|
308
|
+
//set target temp based on display mode and operation mode
|
|
309
|
+
switch (displayMode) {
|
|
310
|
+
case 1: //Heather/Cooler
|
|
311
|
+
switch (deviceData.Device.OperationMode) {
|
|
312
|
+
case 1: //HEAT
|
|
313
|
+
setTemperature = deviceData.Device.DefaultHeatingSetTemperature;
|
|
314
|
+
break;
|
|
315
|
+
case 2: //DRY
|
|
316
|
+
setTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
317
|
+
break;
|
|
318
|
+
case 3: //COOL
|
|
319
|
+
setTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
320
|
+
break;
|
|
321
|
+
case 7: //FAN
|
|
322
|
+
setTemperature = deviceData.Device.SetTemperature;
|
|
323
|
+
break;
|
|
324
|
+
case 8: //AUTO
|
|
325
|
+
const setTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
|
|
326
|
+
setTemperature = setTemperature;
|
|
327
|
+
break;
|
|
328
|
+
case 9: //HISEE HEAT
|
|
329
|
+
setTemperature = deviceData.Device.DefaultHeatingSetTemperature;
|
|
330
|
+
break;
|
|
331
|
+
case 10: //ISEE DRY
|
|
332
|
+
setTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
333
|
+
break;
|
|
334
|
+
case 11: //ISEE COOL
|
|
335
|
+
setTemperature = deviceData.Device.DefaultCoolingSetTemperature;
|
|
336
|
+
break;
|
|
337
|
+
};
|
|
338
|
+
case 2: //Thermostat
|
|
339
|
+
setTemperature = deviceData.Device.SetTemperature;
|
|
340
|
+
break;
|
|
341
|
+
};
|
|
274
342
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
343
|
+
const payload = {
|
|
344
|
+
data: {
|
|
345
|
+
power: deviceData.Device.Power,
|
|
346
|
+
setTemperature: deviceData.Device.SetTemperature,
|
|
347
|
+
setFanSpeed: deviceData.Device.FanSpeed,
|
|
348
|
+
operationMode: deviceData.Device.OperationMode,
|
|
349
|
+
vaneHorizontalDirection: deviceData.Device.VaneHorizontalDirection,
|
|
350
|
+
vaneVerticalDirection: deviceData.Device.VaneVerticalDirection,
|
|
351
|
+
temperatureIncrementOverride: null,
|
|
352
|
+
inStandbyMode: null,
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
const path = ApiUrlsHome.SetAta.replace('deviceid', deviceData.DeviceID);
|
|
357
|
+
await this.axiosInstancePut(path, payload);
|
|
358
|
+
this.updateData(deviceData);
|
|
359
|
+
return true;
|
|
360
|
+
} catch (error) {
|
|
361
|
+
throw new Error(`Send data error: ${error}`);
|
|
362
|
+
};
|
|
363
|
+
default:
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
279
366
|
}
|
|
280
367
|
};
|
|
281
368
|
export default MelCloudAta;
|