homebridge-midea-platform 1.2.0-beta.1 → 1.2.0-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/.husky/pre-commit +0 -0
- package/config.schema.json +6 -0
- package/dist/accessory/AccessoryFactory.d.ts +12 -12
- package/dist/accessory/AccessoryFactory.js +31 -31
- package/dist/accessory/AirConditionerAccessory.d.ts +92 -89
- package/dist/accessory/AirConditionerAccessory.d.ts.map +1 -1
- package/dist/accessory/AirConditionerAccessory.js +607 -584
- package/dist/accessory/AirConditionerAccessory.js.map +1 -1
- package/dist/accessory/BaseAccessory.d.ts +11 -11
- package/dist/accessory/BaseAccessory.js +21 -21
- package/dist/accessory/DehumidifierAccessory.d.ts +45 -45
- package/dist/accessory/DehumidifierAccessory.js +344 -344
- package/dist/accessory/DishwasherAccessory.d.ts +30 -28
- package/dist/accessory/DishwasherAccessory.d.ts.map +1 -1
- package/dist/accessory/DishwasherAccessory.js +63 -62
- package/dist/accessory/DishwasherAccessory.js.map +1 -1
- package/dist/accessory/ElectricWaterHeaterAccessory.d.ts +44 -44
- package/dist/accessory/ElectricWaterHeaterAccessory.js +176 -176
- package/dist/accessory/FanAccessory.d.ts +39 -39
- package/dist/accessory/FanAccessory.js +123 -123
- package/dist/accessory/FrontLoadWasherAccessory.d.ts +30 -30
- package/dist/accessory/FrontLoadWasherAccessory.d.ts.map +1 -1
- package/dist/accessory/FrontLoadWasherAccessory.js +66 -60
- package/dist/accessory/FrontLoadWasherAccessory.js.map +1 -1
- package/dist/accessory/GasWaterHeaterAccessory.d.ts +51 -51
- package/dist/accessory/GasWaterHeaterAccessory.js +216 -216
- package/dist/core/MideaCloud.d.ts +35 -35
- package/dist/core/MideaCloud.js +350 -350
- package/dist/core/MideaConstants.d.ts +50 -50
- package/dist/core/MideaConstants.js +58 -58
- package/dist/core/MideaDevice.d.ts +76 -76
- package/dist/core/MideaDevice.js +409 -409
- package/dist/core/MideaDiscover.d.ts +35 -35
- package/dist/core/MideaDiscover.js +212 -212
- package/dist/core/MideaMessage.d.ts +75 -75
- package/dist/core/MideaMessage.js +184 -184
- package/dist/core/MideaPacketBuilder.d.ts +10 -10
- package/dist/core/MideaPacketBuilder.js +60 -60
- package/dist/core/MideaSecurity.d.ts +63 -63
- package/dist/core/MideaSecurity.js +251 -251
- package/dist/core/MideaUtils.d.ts +32 -32
- package/dist/core/MideaUtils.js +181 -181
- package/dist/devices/DeviceFactory.d.ts +13 -13
- package/dist/devices/DeviceFactory.js +36 -36
- package/dist/devices/a1/MideaA1Device.d.ts +76 -76
- package/dist/devices/a1/MideaA1Device.js +145 -145
- package/dist/devices/a1/MideaA1Device.js.map +1 -1
- package/dist/devices/a1/MideaA1Message.d.ts +40 -40
- package/dist/devices/a1/MideaA1Message.js +198 -198
- package/dist/devices/ac/MideaACDevice.d.ts +104 -100
- package/dist/devices/ac/MideaACDevice.d.ts.map +1 -1
- package/dist/devices/ac/MideaACDevice.js +384 -367
- package/dist/devices/ac/MideaACDevice.js.map +1 -1
- package/dist/devices/ac/MideaACMessage.d.ts +94 -92
- package/dist/devices/ac/MideaACMessage.d.ts.map +1 -1
- package/dist/devices/ac/MideaACMessage.js +611 -589
- package/dist/devices/ac/MideaACMessage.js.map +1 -1
- package/dist/devices/db/MideaDBDevice.d.ts +29 -29
- package/dist/devices/db/MideaDBDevice.js +100 -100
- package/dist/devices/db/MideaDBDevice.js.map +1 -1
- package/dist/devices/db/MideaDBMessage.d.ts +32 -32
- package/dist/devices/db/MideaDBMessage.js +101 -101
- package/dist/devices/e1/MideaE1Device.d.ts +56 -56
- package/dist/devices/e1/MideaE1Device.js +128 -128
- package/dist/devices/e1/MideaE1Device.js.map +1 -1
- package/dist/devices/e1/MideaE1Message.d.ts +28 -28
- package/dist/devices/e1/MideaE1Message.js +107 -107
- package/dist/devices/e2/MideaE2Device.d.ts +44 -44
- package/dist/devices/e2/MideaE2Device.js +129 -129
- package/dist/devices/e2/MideaE2Device.js.map +1 -1
- package/dist/devices/e2/MideaE2Message.d.ts +33 -33
- package/dist/devices/e2/MideaE2Message.js +132 -132
- package/dist/devices/e3/MideaE3Device.d.ts +43 -43
- package/dist/devices/e3/MideaE3Device.js +137 -137
- package/dist/devices/e3/MideaE3Device.js.map +1 -1
- package/dist/devices/e3/MideaE3Message.d.ts +51 -51
- package/dist/devices/e3/MideaE3Message.js +136 -136
- package/dist/devices/fa/MideaFADevice.d.ts +36 -36
- package/dist/devices/fa/MideaFADevice.js +106 -106
- package/dist/devices/fa/MideaFADevice.js.map +1 -1
- package/dist/devices/fa/MideaFAMessage.d.ts +38 -38
- package/dist/devices/fa/MideaFAMessage.js +98 -98
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/platform.d.ts +60 -60
- package/dist/platform.js +212 -212
- package/dist/platformUtils.d.ts +106 -105
- package/dist/platformUtils.d.ts.map +1 -1
- package/dist/platformUtils.js +101 -100
- package/dist/platformUtils.js.map +1 -1
- package/dist/settings.d.ts +8 -8
- package/dist/settings.js +11 -11
- package/package.json +1 -1
- package/AC_ori.lua +0 -5150
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MessageE3Response = exports.E3GeneralMessageBody = exports.MessageNewProtocolSet = exports.MessageSet = exports.MessagePower = exports.MessageQuery = exports.NewProtocolTags = void 0;
|
|
4
|
-
/***********************************************************************
|
|
5
|
-
* Midea Gas Water Heater Device message handler class
|
|
6
|
-
*
|
|
7
|
-
* Copyright (c) 2024 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
8
|
-
*
|
|
9
|
-
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
const MideaConstants_1 = require("../../core/MideaConstants");
|
|
13
|
-
const MideaMessage_1 = require("../../core/MideaMessage");
|
|
14
|
-
var NewProtocolTags;
|
|
15
|
-
(function (NewProtocolTags) {
|
|
16
|
-
NewProtocolTags[NewProtocolTags["ZERO_COLD_WATER"] = 3] = "ZERO_COLD_WATER";
|
|
17
|
-
NewProtocolTags[NewProtocolTags["ZERO_COLD_PULSE"] = 4] = "ZERO_COLD_PULSE";
|
|
18
|
-
NewProtocolTags[NewProtocolTags["SMART_VOLUME"] = 7] = "SMART_VOLUME";
|
|
19
|
-
NewProtocolTags[NewProtocolTags["TARGET_TEMPERATURE"] = 8] = "TARGET_TEMPERATURE";
|
|
20
|
-
})(NewProtocolTags = exports.NewProtocolTags || (exports.NewProtocolTags = {}));
|
|
21
|
-
class MessageE3Base extends MideaMessage_1.MessageRequest {
|
|
22
|
-
constructor(device_protocol_version, message_type, body_type) {
|
|
23
|
-
super(MideaConstants_1.DeviceType.GAS_WATER_HEATER, message_type, body_type, device_protocol_version);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
class MessageQuery extends MessageE3Base {
|
|
27
|
-
constructor(device_protocol_version) {
|
|
28
|
-
super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0x01);
|
|
29
|
-
}
|
|
30
|
-
get _body() {
|
|
31
|
-
return Buffer.from([0x01]);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.MessageQuery = MessageQuery;
|
|
35
|
-
class MessagePower extends MessageE3Base {
|
|
36
|
-
constructor(device_protocol_version) {
|
|
37
|
-
super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x02);
|
|
38
|
-
this.power = false;
|
|
39
|
-
}
|
|
40
|
-
get _body() {
|
|
41
|
-
if (this.power) {
|
|
42
|
-
this.body_type = 0x01;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.body_type = 0x02;
|
|
46
|
-
}
|
|
47
|
-
return Buffer.from([0x01]);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.MessagePower = MessagePower;
|
|
51
|
-
class MessageSet extends MessageE3Base {
|
|
52
|
-
constructor(device_protocol_version) {
|
|
53
|
-
super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x04);
|
|
54
|
-
this.target_temperature = 0;
|
|
55
|
-
this.zero_cold_water = false;
|
|
56
|
-
this.bathtub_volume = 0;
|
|
57
|
-
this.protection = false;
|
|
58
|
-
this.zero_cold_pulse = false;
|
|
59
|
-
this.smart_volume = false;
|
|
60
|
-
}
|
|
61
|
-
get _body() {
|
|
62
|
-
// Byte 2 zero_cold_water mode
|
|
63
|
-
const zero_cold_water = this.zero_cold_water ? 0x01 : 0x00;
|
|
64
|
-
// Byte 3
|
|
65
|
-
const protection = this.protection ? 0x08 : 0x00;
|
|
66
|
-
const zero_cold_pulse = this.zero_cold_pulse ? 0x10 : 0x00;
|
|
67
|
-
const smart_volume = this.smart_volume ? 0x20 : 0x00;
|
|
68
|
-
// Byte 5
|
|
69
|
-
const target_temperature = this.target_temperature & 0xff;
|
|
70
|
-
return Buffer.from([
|
|
71
|
-
0x01,
|
|
72
|
-
zero_cold_water | 0x02,
|
|
73
|
-
protection | zero_cold_pulse | smart_volume,
|
|
74
|
-
0x00,
|
|
75
|
-
target_temperature,
|
|
76
|
-
0x00,
|
|
77
|
-
0x00,
|
|
78
|
-
0x00,
|
|
79
|
-
0x00,
|
|
80
|
-
0x00,
|
|
81
|
-
0x00,
|
|
82
|
-
0x00,
|
|
83
|
-
0x00,
|
|
84
|
-
0x00,
|
|
85
|
-
]);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.MessageSet = MessageSet;
|
|
89
|
-
class MessageNewProtocolSet extends MessageE3Base {
|
|
90
|
-
constructor(device_protocol_version) {
|
|
91
|
-
super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x14);
|
|
92
|
-
}
|
|
93
|
-
get _body() {
|
|
94
|
-
if (this.key === undefined || this.value === undefined) {
|
|
95
|
-
throw new Error('key and value must be set');
|
|
96
|
-
}
|
|
97
|
-
const key = NewProtocolTags[this.key];
|
|
98
|
-
if (key === undefined) {
|
|
99
|
-
throw new Error('Invalid key');
|
|
100
|
-
}
|
|
101
|
-
let value;
|
|
102
|
-
if (this.key === 'TARGET_TEMPERATURE') {
|
|
103
|
-
value = this.value;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
value = this.value ? 0x01 : 0x00;
|
|
107
|
-
}
|
|
108
|
-
return Buffer.from([key, value, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.MessageNewProtocolSet = MessageNewProtocolSet;
|
|
112
|
-
class E3GeneralMessageBody extends MideaMessage_1.MessageBody {
|
|
113
|
-
constructor(body) {
|
|
114
|
-
super(body);
|
|
115
|
-
this.power = (body[2] & 0x01) > 0;
|
|
116
|
-
this.burning_state = (body[2] & 0x02) > 0;
|
|
117
|
-
this.zero_cold_water = (body[2] & 0x04) > 0;
|
|
118
|
-
this.current_temperature = body[5];
|
|
119
|
-
this.target_temperature = body[6];
|
|
120
|
-
this.protection = (body[8] & 0x08) > 0;
|
|
121
|
-
this.zero_cold_pulse = body.length > 20 ? (body[20] & 0x01) > 0 : false;
|
|
122
|
-
this.smart_volume = body.length > 20 ? (body[20] & 0x02) > 0 : false;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
exports.E3GeneralMessageBody = E3GeneralMessageBody;
|
|
126
|
-
class MessageE3Response extends MideaMessage_1.MessageResponse {
|
|
127
|
-
constructor(message) {
|
|
128
|
-
super(message);
|
|
129
|
-
if ((this.message_type === MideaMessage_1.MessageType.QUERY && this.body_type === 0x01) ||
|
|
130
|
-
(this.message_type === MideaMessage_1.MessageType.SET && [0x01, 0x02, 0x04, 0x14].includes(this.body_type)) ||
|
|
131
|
-
(this.message_type === MideaMessage_1.MessageType.NOTIFY1 && [0x00, 0x01].includes(this.body_type))) {
|
|
132
|
-
this.set_body(new E3GeneralMessageBody(this.body));
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
exports.MessageE3Response = MessageE3Response;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessageE3Response = exports.E3GeneralMessageBody = exports.MessageNewProtocolSet = exports.MessageSet = exports.MessagePower = exports.MessageQuery = exports.NewProtocolTags = void 0;
|
|
4
|
+
/***********************************************************************
|
|
5
|
+
* Midea Gas Water Heater Device message handler class
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2024 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
8
|
+
*
|
|
9
|
+
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
const MideaConstants_1 = require("../../core/MideaConstants");
|
|
13
|
+
const MideaMessage_1 = require("../../core/MideaMessage");
|
|
14
|
+
var NewProtocolTags;
|
|
15
|
+
(function (NewProtocolTags) {
|
|
16
|
+
NewProtocolTags[NewProtocolTags["ZERO_COLD_WATER"] = 3] = "ZERO_COLD_WATER";
|
|
17
|
+
NewProtocolTags[NewProtocolTags["ZERO_COLD_PULSE"] = 4] = "ZERO_COLD_PULSE";
|
|
18
|
+
NewProtocolTags[NewProtocolTags["SMART_VOLUME"] = 7] = "SMART_VOLUME";
|
|
19
|
+
NewProtocolTags[NewProtocolTags["TARGET_TEMPERATURE"] = 8] = "TARGET_TEMPERATURE";
|
|
20
|
+
})(NewProtocolTags = exports.NewProtocolTags || (exports.NewProtocolTags = {}));
|
|
21
|
+
class MessageE3Base extends MideaMessage_1.MessageRequest {
|
|
22
|
+
constructor(device_protocol_version, message_type, body_type) {
|
|
23
|
+
super(MideaConstants_1.DeviceType.GAS_WATER_HEATER, message_type, body_type, device_protocol_version);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
class MessageQuery extends MessageE3Base {
|
|
27
|
+
constructor(device_protocol_version) {
|
|
28
|
+
super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0x01);
|
|
29
|
+
}
|
|
30
|
+
get _body() {
|
|
31
|
+
return Buffer.from([0x01]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.MessageQuery = MessageQuery;
|
|
35
|
+
class MessagePower extends MessageE3Base {
|
|
36
|
+
constructor(device_protocol_version) {
|
|
37
|
+
super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x02);
|
|
38
|
+
this.power = false;
|
|
39
|
+
}
|
|
40
|
+
get _body() {
|
|
41
|
+
if (this.power) {
|
|
42
|
+
this.body_type = 0x01;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.body_type = 0x02;
|
|
46
|
+
}
|
|
47
|
+
return Buffer.from([0x01]);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.MessagePower = MessagePower;
|
|
51
|
+
class MessageSet extends MessageE3Base {
|
|
52
|
+
constructor(device_protocol_version) {
|
|
53
|
+
super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x04);
|
|
54
|
+
this.target_temperature = 0;
|
|
55
|
+
this.zero_cold_water = false;
|
|
56
|
+
this.bathtub_volume = 0;
|
|
57
|
+
this.protection = false;
|
|
58
|
+
this.zero_cold_pulse = false;
|
|
59
|
+
this.smart_volume = false;
|
|
60
|
+
}
|
|
61
|
+
get _body() {
|
|
62
|
+
// Byte 2 zero_cold_water mode
|
|
63
|
+
const zero_cold_water = this.zero_cold_water ? 0x01 : 0x00;
|
|
64
|
+
// Byte 3
|
|
65
|
+
const protection = this.protection ? 0x08 : 0x00;
|
|
66
|
+
const zero_cold_pulse = this.zero_cold_pulse ? 0x10 : 0x00;
|
|
67
|
+
const smart_volume = this.smart_volume ? 0x20 : 0x00;
|
|
68
|
+
// Byte 5
|
|
69
|
+
const target_temperature = this.target_temperature & 0xff;
|
|
70
|
+
return Buffer.from([
|
|
71
|
+
0x01,
|
|
72
|
+
zero_cold_water | 0x02,
|
|
73
|
+
protection | zero_cold_pulse | smart_volume,
|
|
74
|
+
0x00,
|
|
75
|
+
target_temperature,
|
|
76
|
+
0x00,
|
|
77
|
+
0x00,
|
|
78
|
+
0x00,
|
|
79
|
+
0x00,
|
|
80
|
+
0x00,
|
|
81
|
+
0x00,
|
|
82
|
+
0x00,
|
|
83
|
+
0x00,
|
|
84
|
+
0x00,
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.MessageSet = MessageSet;
|
|
89
|
+
class MessageNewProtocolSet extends MessageE3Base {
|
|
90
|
+
constructor(device_protocol_version) {
|
|
91
|
+
super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x14);
|
|
92
|
+
}
|
|
93
|
+
get _body() {
|
|
94
|
+
if (this.key === undefined || this.value === undefined) {
|
|
95
|
+
throw new Error('key and value must be set');
|
|
96
|
+
}
|
|
97
|
+
const key = NewProtocolTags[this.key];
|
|
98
|
+
if (key === undefined) {
|
|
99
|
+
throw new Error('Invalid key');
|
|
100
|
+
}
|
|
101
|
+
let value;
|
|
102
|
+
if (this.key === 'TARGET_TEMPERATURE') {
|
|
103
|
+
value = this.value;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
value = this.value ? 0x01 : 0x00;
|
|
107
|
+
}
|
|
108
|
+
return Buffer.from([key, value, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.MessageNewProtocolSet = MessageNewProtocolSet;
|
|
112
|
+
class E3GeneralMessageBody extends MideaMessage_1.MessageBody {
|
|
113
|
+
constructor(body) {
|
|
114
|
+
super(body);
|
|
115
|
+
this.power = (body[2] & 0x01) > 0;
|
|
116
|
+
this.burning_state = (body[2] & 0x02) > 0;
|
|
117
|
+
this.zero_cold_water = (body[2] & 0x04) > 0;
|
|
118
|
+
this.current_temperature = body[5];
|
|
119
|
+
this.target_temperature = body[6];
|
|
120
|
+
this.protection = (body[8] & 0x08) > 0;
|
|
121
|
+
this.zero_cold_pulse = body.length > 20 ? (body[20] & 0x01) > 0 : false;
|
|
122
|
+
this.smart_volume = body.length > 20 ? (body[20] & 0x02) > 0 : false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.E3GeneralMessageBody = E3GeneralMessageBody;
|
|
126
|
+
class MessageE3Response extends MideaMessage_1.MessageResponse {
|
|
127
|
+
constructor(message) {
|
|
128
|
+
super(message);
|
|
129
|
+
if ((this.message_type === MideaMessage_1.MessageType.QUERY && this.body_type === 0x01) ||
|
|
130
|
+
(this.message_type === MideaMessage_1.MessageType.SET && [0x01, 0x02, 0x04, 0x14].includes(this.body_type)) ||
|
|
131
|
+
(this.message_type === MideaMessage_1.MessageType.NOTIFY1 && [0x00, 0x01].includes(this.body_type))) {
|
|
132
|
+
this.set_body(new E3GeneralMessageBody(this.body));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.MessageE3Response = MessageE3Response;
|
|
137
137
|
//# sourceMappingURL=MideaE3Message.js.map
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
/***********************************************************************
|
|
2
|
-
* Midea Fan class
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) 2024 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
5
|
-
*
|
|
6
|
-
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
/// <reference types="node" />
|
|
10
|
-
import { Logger } from 'homebridge';
|
|
11
|
-
import MideaDevice, { DeviceAttributeBase } from '../../core/MideaDevice';
|
|
12
|
-
import { DeviceInfo } from '../../core/MideaConstants';
|
|
13
|
-
import { Config, DeviceConfig } from '../../platformUtils';
|
|
14
|
-
import { MessageRequest } from '../../core/MideaMessage';
|
|
15
|
-
import { MessageSet } from './MideaFAMessage';
|
|
16
|
-
export interface FAAttributes extends DeviceAttributeBase {
|
|
17
|
-
POWER: boolean;
|
|
18
|
-
CHILD_LOCK: boolean;
|
|
19
|
-
MODE: number;
|
|
20
|
-
FAN_SPEED: number;
|
|
21
|
-
OSCILLATE: boolean;
|
|
22
|
-
OSCILLATION_ANGLE: number;
|
|
23
|
-
OSCILLATION_MODE: number;
|
|
24
|
-
TILTING_ANGLE: number;
|
|
25
|
-
}
|
|
26
|
-
export default class MideaFADevice extends MideaDevice {
|
|
27
|
-
attributes: FAAttributes;
|
|
28
|
-
private default_speed_count;
|
|
29
|
-
private speed_count;
|
|
30
|
-
constructor(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig);
|
|
31
|
-
build_query(): MessageRequest[];
|
|
32
|
-
process_message(msg: Buffer): void;
|
|
33
|
-
set_subtype(): void;
|
|
34
|
-
make_message_set(): MessageSet;
|
|
35
|
-
set_attribute(attributes: Partial<FAAttributes>): Promise<void>;
|
|
36
|
-
}
|
|
1
|
+
/***********************************************************************
|
|
2
|
+
* Midea Fan class
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2024 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
5
|
+
*
|
|
6
|
+
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
/// <reference types="node" />
|
|
10
|
+
import { Logger } from 'homebridge';
|
|
11
|
+
import MideaDevice, { DeviceAttributeBase } from '../../core/MideaDevice';
|
|
12
|
+
import { DeviceInfo } from '../../core/MideaConstants';
|
|
13
|
+
import { Config, DeviceConfig } from '../../platformUtils';
|
|
14
|
+
import { MessageRequest } from '../../core/MideaMessage';
|
|
15
|
+
import { MessageSet } from './MideaFAMessage';
|
|
16
|
+
export interface FAAttributes extends DeviceAttributeBase {
|
|
17
|
+
POWER: boolean;
|
|
18
|
+
CHILD_LOCK: boolean;
|
|
19
|
+
MODE: number;
|
|
20
|
+
FAN_SPEED: number;
|
|
21
|
+
OSCILLATE: boolean;
|
|
22
|
+
OSCILLATION_ANGLE: number;
|
|
23
|
+
OSCILLATION_MODE: number;
|
|
24
|
+
TILTING_ANGLE: number;
|
|
25
|
+
}
|
|
26
|
+
export default class MideaFADevice extends MideaDevice {
|
|
27
|
+
attributes: FAAttributes;
|
|
28
|
+
private default_speed_count;
|
|
29
|
+
private speed_count;
|
|
30
|
+
constructor(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig);
|
|
31
|
+
build_query(): MessageRequest[];
|
|
32
|
+
process_message(msg: Buffer): void;
|
|
33
|
+
set_subtype(): void;
|
|
34
|
+
make_message_set(): MessageSet;
|
|
35
|
+
set_attribute(attributes: Partial<FAAttributes>): Promise<void>;
|
|
36
|
+
}
|
|
37
37
|
//# sourceMappingURL=MideaFADevice.d.ts.map
|
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/***********************************************************************
|
|
3
|
-
* Midea Fan class
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) 2024 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
6
|
-
*
|
|
7
|
-
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
const MideaDevice_1 = __importDefault(require("../../core/MideaDevice"));
|
|
15
|
-
const MideaFAMessage_1 = require("./MideaFAMessage");
|
|
16
|
-
class MideaFADevice extends MideaDevice_1.default {
|
|
17
|
-
constructor(logger, device_info, config, deviceConfig) {
|
|
18
|
-
super(logger, device_info, config, deviceConfig);
|
|
19
|
-
this.attributes = {
|
|
20
|
-
POWER: false,
|
|
21
|
-
CHILD_LOCK: false,
|
|
22
|
-
MODE: 0,
|
|
23
|
-
FAN_SPEED: 0,
|
|
24
|
-
OSCILLATE: false,
|
|
25
|
-
OSCILLATION_ANGLE: 0,
|
|
26
|
-
OSCILLATION_MODE: 0,
|
|
27
|
-
TILTING_ANGLE: 0,
|
|
28
|
-
};
|
|
29
|
-
this.default_speed_count = 3;
|
|
30
|
-
this.speed_count = this.default_speed_count;
|
|
31
|
-
}
|
|
32
|
-
build_query() {
|
|
33
|
-
return [new MideaFAMessage_1.MessageQuery(this.device_protocol_version)];
|
|
34
|
-
}
|
|
35
|
-
process_message(msg) {
|
|
36
|
-
const message = new MideaFAMessage_1.MessageFAResponse(msg);
|
|
37
|
-
if (this.verbose) {
|
|
38
|
-
this.logger.debug(`[${this.name}] Body:\n${JSON.stringify(message.body)}`);
|
|
39
|
-
}
|
|
40
|
-
const changed = {};
|
|
41
|
-
for (const status of Object.keys(this.attributes)) {
|
|
42
|
-
const value = message.get_body_attribute(status.toLowerCase());
|
|
43
|
-
if (value !== undefined) {
|
|
44
|
-
if (this.attributes[status] !== value) {
|
|
45
|
-
// Track only those attributes that change value. So when we send to the Homebridge /
|
|
46
|
-
// HomeKit accessory we only update values that change. First time through this
|
|
47
|
-
// should be most/all attributes having initialized them to invalid values.
|
|
48
|
-
this.logger.debug(`[${this.name}] Value for ${status} changed from '${this.attributes[status]}' to '${value}'`);
|
|
49
|
-
changed[status] = value;
|
|
50
|
-
}
|
|
51
|
-
this.attributes[status] = value;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Now we update Homebridge / Homekit accessory
|
|
55
|
-
if (Object.keys(changed).length > 0) {
|
|
56
|
-
this.update(changed);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.logger.debug(`[${this.name}] Status unchanged`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
set_subtype() {
|
|
63
|
-
this.logger.debug('No subtype for FA device');
|
|
64
|
-
}
|
|
65
|
-
make_message_set() {
|
|
66
|
-
const message = new MideaFAMessage_1.MessageSet(this.device_protocol_version, this.sub_type);
|
|
67
|
-
message.power = this.attributes.POWER;
|
|
68
|
-
message.lock = this.attributes.CHILD_LOCK;
|
|
69
|
-
message.mode = this.attributes.MODE;
|
|
70
|
-
message.fan_speed = this.attributes.FAN_SPEED;
|
|
71
|
-
message.oscillate = this.attributes.OSCILLATE;
|
|
72
|
-
message.oscillation_angle = this.attributes.OSCILLATION_ANGLE;
|
|
73
|
-
message.oscillation_mode = this.attributes.OSCILLATION_MODE;
|
|
74
|
-
message.tilting_angle = this.attributes.TILTING_ANGLE;
|
|
75
|
-
return message;
|
|
76
|
-
}
|
|
77
|
-
async set_attribute(attributes) {
|
|
78
|
-
var _a;
|
|
79
|
-
const messageToSend = {
|
|
80
|
-
SET: undefined,
|
|
81
|
-
};
|
|
82
|
-
try {
|
|
83
|
-
for (const [k, v] of Object.entries(attributes)) {
|
|
84
|
-
if (v === this.attributes[k]) {
|
|
85
|
-
this.logger.info(`[${this.name}] Attribute ${k} already set to ${v}`);
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
this.logger.info(`[${this.name}] Set device attribute ${k} to: ${v}`);
|
|
89
|
-
this.attributes[k] = v;
|
|
90
|
-
|
|
91
|
-
messageToSend.SET[k.toLowerCase()] = v;
|
|
92
|
-
}
|
|
93
|
-
for (const [k, v] of Object.entries(messageToSend)) {
|
|
94
|
-
if (v !== undefined) {
|
|
95
|
-
this.logger.debug(`[${this.name}] Set message ${k}:\n${JSON.stringify(v)}`);
|
|
96
|
-
await this.build_send(v);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
const msg = err instanceof Error ? err.stack : err;
|
|
102
|
-
this.logger.debug(`[${this.name}] Error in set_attribute (${this.ip}:${this.port}):\n${msg}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
exports.default = MideaFADevice;
|
|
1
|
+
"use strict";
|
|
2
|
+
/***********************************************************************
|
|
3
|
+
* Midea Fan class
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2024 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
6
|
+
*
|
|
7
|
+
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
const MideaDevice_1 = __importDefault(require("../../core/MideaDevice"));
|
|
15
|
+
const MideaFAMessage_1 = require("./MideaFAMessage");
|
|
16
|
+
class MideaFADevice extends MideaDevice_1.default {
|
|
17
|
+
constructor(logger, device_info, config, deviceConfig) {
|
|
18
|
+
super(logger, device_info, config, deviceConfig);
|
|
19
|
+
this.attributes = {
|
|
20
|
+
POWER: false,
|
|
21
|
+
CHILD_LOCK: false,
|
|
22
|
+
MODE: 0,
|
|
23
|
+
FAN_SPEED: 0,
|
|
24
|
+
OSCILLATE: false,
|
|
25
|
+
OSCILLATION_ANGLE: 0,
|
|
26
|
+
OSCILLATION_MODE: 0,
|
|
27
|
+
TILTING_ANGLE: 0,
|
|
28
|
+
};
|
|
29
|
+
this.default_speed_count = 3;
|
|
30
|
+
this.speed_count = this.default_speed_count;
|
|
31
|
+
}
|
|
32
|
+
build_query() {
|
|
33
|
+
return [new MideaFAMessage_1.MessageQuery(this.device_protocol_version)];
|
|
34
|
+
}
|
|
35
|
+
process_message(msg) {
|
|
36
|
+
const message = new MideaFAMessage_1.MessageFAResponse(msg);
|
|
37
|
+
if (this.verbose) {
|
|
38
|
+
this.logger.debug(`[${this.name}] Body:\n${JSON.stringify(message.body)}`);
|
|
39
|
+
}
|
|
40
|
+
const changed = {};
|
|
41
|
+
for (const status of Object.keys(this.attributes)) {
|
|
42
|
+
const value = message.get_body_attribute(status.toLowerCase());
|
|
43
|
+
if (value !== undefined) {
|
|
44
|
+
if (this.attributes[status] !== value) {
|
|
45
|
+
// Track only those attributes that change value. So when we send to the Homebridge /
|
|
46
|
+
// HomeKit accessory we only update values that change. First time through this
|
|
47
|
+
// should be most/all attributes having initialized them to invalid values.
|
|
48
|
+
this.logger.debug(`[${this.name}] Value for ${status} changed from '${this.attributes[status]}' to '${value}'`);
|
|
49
|
+
changed[status] = value;
|
|
50
|
+
}
|
|
51
|
+
this.attributes[status] = value;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Now we update Homebridge / Homekit accessory
|
|
55
|
+
if (Object.keys(changed).length > 0) {
|
|
56
|
+
this.update(changed);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.logger.debug(`[${this.name}] Status unchanged`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
set_subtype() {
|
|
63
|
+
this.logger.debug('No subtype for FA device');
|
|
64
|
+
}
|
|
65
|
+
make_message_set() {
|
|
66
|
+
const message = new MideaFAMessage_1.MessageSet(this.device_protocol_version, this.sub_type);
|
|
67
|
+
message.power = this.attributes.POWER;
|
|
68
|
+
message.lock = this.attributes.CHILD_LOCK;
|
|
69
|
+
message.mode = this.attributes.MODE;
|
|
70
|
+
message.fan_speed = this.attributes.FAN_SPEED;
|
|
71
|
+
message.oscillate = this.attributes.OSCILLATE;
|
|
72
|
+
message.oscillation_angle = this.attributes.OSCILLATION_ANGLE;
|
|
73
|
+
message.oscillation_mode = this.attributes.OSCILLATION_MODE;
|
|
74
|
+
message.tilting_angle = this.attributes.TILTING_ANGLE;
|
|
75
|
+
return message;
|
|
76
|
+
}
|
|
77
|
+
async set_attribute(attributes) {
|
|
78
|
+
var _a;
|
|
79
|
+
const messageToSend = {
|
|
80
|
+
SET: undefined,
|
|
81
|
+
};
|
|
82
|
+
try {
|
|
83
|
+
for (const [k, v] of Object.entries(attributes)) {
|
|
84
|
+
if (v === this.attributes[k]) {
|
|
85
|
+
this.logger.info(`[${this.name}] Attribute ${k} already set to ${v}`);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
this.logger.info(`[${this.name}] Set device attribute ${k} to: ${v}`);
|
|
89
|
+
this.attributes[k] = v;
|
|
90
|
+
(_a = messageToSend.SET) !== null && _a !== void 0 ? _a : (messageToSend.SET = this.make_message_set());
|
|
91
|
+
messageToSend.SET[k.toLowerCase()] = v;
|
|
92
|
+
}
|
|
93
|
+
for (const [k, v] of Object.entries(messageToSend)) {
|
|
94
|
+
if (v !== undefined) {
|
|
95
|
+
this.logger.debug(`[${this.name}] Set message ${k}:\n${JSON.stringify(v)}`);
|
|
96
|
+
await this.build_send(v);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
const msg = err instanceof Error ? err.stack : err;
|
|
102
|
+
this.logger.debug(`[${this.name}] Error in set_attribute (${this.ip}:${this.port}):\n${msg}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.default = MideaFADevice;
|
|
107
107
|
//# sourceMappingURL=MideaFADevice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MideaFADevice.js","sourceRoot":"","sources":["../../../src/devices/fa/MideaFADevice.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MideaFADevice.js","sourceRoot":"","sources":["../../../src/devices/fa/MideaFADevice.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;AAGH,yEAA0E;AAI1E,qDAA+E;AAe/E,MAAqB,aAAc,SAAQ,qBAAW;IAMpD,YAAY,MAAc,EAAE,WAAuB,EAAE,MAAc,EAAE,YAA0B;QAC7F,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,GAAG;YAChB,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,CAAC;YACpB,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,CAAC;SACjB,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC9C,CAAC;IAED,WAAW;QACT,OAAO,CAAC,IAAI,6BAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,MAAM,OAAO,GAAG,IAAI,kCAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5E;QACD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/D,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;oBACrC,sFAAsF;oBACtF,gFAAgF;oBAChF,2EAA2E;oBAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,eAAe,MAAM,kBAAkB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;oBAChH,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;iBACzB;gBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;aACjC;SACF;QAED,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC;SACtD;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAG,IAAI,2BAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACtC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACpC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9C,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9D,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC5D,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAiC;;QACnD,MAAM,aAAa,GAEf;YACF,GAAG,EAAE,SAAS;SACf,CAAC;QAEF,IAAI;YACF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;oBACtE,SAAS;iBACV;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAEvB,MAAA,aAAa,CAAC,GAAG,oCAAjB,aAAa,CAAC,GAAG,GAAK,IAAI,CAAC,gBAAgB,EAAE,EAAC;gBAC9C,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;aACxC;YAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,SAAS,EAAE;oBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC5E,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAC1B;aACF;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,6BAA6B,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC;SAC/F;IACH,CAAC;CACF;AAxGD,gCAwGC"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage';
|
|
3
|
-
declare abstract class MessageFABase extends MessageRequest {
|
|
4
|
-
constructor(device_protocol_version: number, message_type: MessageType, body_type: number | null);
|
|
5
|
-
}
|
|
6
|
-
export declare class MessageQuery extends MessageFABase {
|
|
7
|
-
constructor(device_protocol_version: number);
|
|
8
|
-
get _body(): Buffer;
|
|
9
|
-
get body(): Buffer;
|
|
10
|
-
}
|
|
11
|
-
export declare class MessageSet extends MessageFABase {
|
|
12
|
-
private subtype;
|
|
13
|
-
power?: boolean;
|
|
14
|
-
lock?: boolean;
|
|
15
|
-
mode?: number;
|
|
16
|
-
fan_speed?: number;
|
|
17
|
-
oscillate?: boolean;
|
|
18
|
-
oscillation_angle?: number;
|
|
19
|
-
oscillation_mode?: number;
|
|
20
|
-
tilting_angle?: number;
|
|
21
|
-
constructor(device_protocol_version: number, subtype: number);
|
|
22
|
-
get _body(): Buffer;
|
|
23
|
-
}
|
|
24
|
-
export declare class FAGeneralMessageBody extends MessageBody {
|
|
25
|
-
child_lock: boolean;
|
|
26
|
-
power: boolean;
|
|
27
|
-
mode: number;
|
|
28
|
-
fan_speed: number;
|
|
29
|
-
oscillate: boolean;
|
|
30
|
-
oscillation_angle: number;
|
|
31
|
-
oscillation_mode: number;
|
|
32
|
-
tilting_angle: number;
|
|
33
|
-
constructor(body: Buffer);
|
|
34
|
-
}
|
|
35
|
-
export declare class MessageFAResponse extends MessageResponse {
|
|
36
|
-
constructor(message: Buffer);
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage';
|
|
3
|
+
declare abstract class MessageFABase extends MessageRequest {
|
|
4
|
+
constructor(device_protocol_version: number, message_type: MessageType, body_type: number | null);
|
|
5
|
+
}
|
|
6
|
+
export declare class MessageQuery extends MessageFABase {
|
|
7
|
+
constructor(device_protocol_version: number);
|
|
8
|
+
get _body(): Buffer;
|
|
9
|
+
get body(): Buffer;
|
|
10
|
+
}
|
|
11
|
+
export declare class MessageSet extends MessageFABase {
|
|
12
|
+
private subtype;
|
|
13
|
+
power?: boolean;
|
|
14
|
+
lock?: boolean;
|
|
15
|
+
mode?: number;
|
|
16
|
+
fan_speed?: number;
|
|
17
|
+
oscillate?: boolean;
|
|
18
|
+
oscillation_angle?: number;
|
|
19
|
+
oscillation_mode?: number;
|
|
20
|
+
tilting_angle?: number;
|
|
21
|
+
constructor(device_protocol_version: number, subtype: number);
|
|
22
|
+
get _body(): Buffer;
|
|
23
|
+
}
|
|
24
|
+
export declare class FAGeneralMessageBody extends MessageBody {
|
|
25
|
+
child_lock: boolean;
|
|
26
|
+
power: boolean;
|
|
27
|
+
mode: number;
|
|
28
|
+
fan_speed: number;
|
|
29
|
+
oscillate: boolean;
|
|
30
|
+
oscillation_angle: number;
|
|
31
|
+
oscillation_mode: number;
|
|
32
|
+
tilting_angle: number;
|
|
33
|
+
constructor(body: Buffer);
|
|
34
|
+
}
|
|
35
|
+
export declare class MessageFAResponse extends MessageResponse {
|
|
36
|
+
constructor(message: Buffer);
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
39
|
//# sourceMappingURL=MideaFAMessage.d.ts.map
|