homebridge-midea-platform 0.1.0

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.
Files changed (72) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +9 -0
  3. package/config.schema.json +137 -0
  4. package/dist/accessory/AccessoryFactory.d.ts +8 -0
  5. package/dist/accessory/AccessoryFactory.d.ts.map +1 -0
  6. package/dist/accessory/AccessoryFactory.js +17 -0
  7. package/dist/accessory/AccessoryFactory.js.map +1 -0
  8. package/dist/accessory/AirConditionerAccessory.d.ts +25 -0
  9. package/dist/accessory/AirConditionerAccessory.d.ts.map +1 -0
  10. package/dist/accessory/AirConditionerAccessory.js +182 -0
  11. package/dist/accessory/AirConditionerAccessory.js.map +1 -0
  12. package/dist/accessory/BaseAccessory.d.ts +9 -0
  13. package/dist/accessory/BaseAccessory.d.ts.map +1 -0
  14. package/dist/accessory/BaseAccessory.js +29 -0
  15. package/dist/accessory/BaseAccessory.js.map +1 -0
  16. package/dist/core/MideaCloud.d.ts +32 -0
  17. package/dist/core/MideaCloud.d.ts.map +1 -0
  18. package/dist/core/MideaCloud.js +152 -0
  19. package/dist/core/MideaCloud.js.map +1 -0
  20. package/dist/core/MideaConstants.d.ts +41 -0
  21. package/dist/core/MideaConstants.d.ts.map +1 -0
  22. package/dist/core/MideaConstants.js +56 -0
  23. package/dist/core/MideaConstants.js.map +1 -0
  24. package/dist/core/MideaDevice.d.ts +58 -0
  25. package/dist/core/MideaDevice.d.ts.map +1 -0
  26. package/dist/core/MideaDevice.js +263 -0
  27. package/dist/core/MideaDevice.js.map +1 -0
  28. package/dist/core/MideaDiscover.d.ts +17 -0
  29. package/dist/core/MideaDiscover.d.ts.map +1 -0
  30. package/dist/core/MideaDiscover.js +129 -0
  31. package/dist/core/MideaDiscover.js.map +1 -0
  32. package/dist/core/MideaMessage.d.ts +76 -0
  33. package/dist/core/MideaMessage.d.ts.map +1 -0
  34. package/dist/core/MideaMessage.js +186 -0
  35. package/dist/core/MideaMessage.js.map +1 -0
  36. package/dist/core/MideaPacketBuilder.d.ts +11 -0
  37. package/dist/core/MideaPacketBuilder.d.ts.map +1 -0
  38. package/dist/core/MideaPacketBuilder.js +60 -0
  39. package/dist/core/MideaPacketBuilder.js.map +1 -0
  40. package/dist/core/MideaSecurity.d.ts +35 -0
  41. package/dist/core/MideaSecurity.d.ts.map +1 -0
  42. package/dist/core/MideaSecurity.js +168 -0
  43. package/dist/core/MideaSecurity.js.map +1 -0
  44. package/dist/core/MideaUtils.d.ts +18 -0
  45. package/dist/core/MideaUtils.d.ts.map +1 -0
  46. package/dist/core/MideaUtils.js +187 -0
  47. package/dist/core/MideaUtils.js.map +1 -0
  48. package/dist/devices/DeviceFactory.d.ts +8 -0
  49. package/dist/devices/DeviceFactory.d.ts.map +1 -0
  50. package/dist/devices/DeviceFactory.js +17 -0
  51. package/dist/devices/DeviceFactory.js.map +1 -0
  52. package/dist/devices/ac/MideaACDevice.d.ts +80 -0
  53. package/dist/devices/ac/MideaACDevice.d.ts.map +1 -0
  54. package/dist/devices/ac/MideaACDevice.js +271 -0
  55. package/dist/devices/ac/MideaACDevice.js.map +1 -0
  56. package/dist/devices/ac/MideaACMessage.d.ts +90 -0
  57. package/dist/devices/ac/MideaACMessage.d.ts.map +1 -0
  58. package/dist/devices/ac/MideaACMessage.js +528 -0
  59. package/dist/devices/ac/MideaACMessage.js.map +1 -0
  60. package/dist/index.d.ts +7 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +7 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/platform.d.ts +20 -0
  65. package/dist/platform.d.ts.map +1 -0
  66. package/dist/platform.js +110 -0
  67. package/dist/platform.js.map +1 -0
  68. package/dist/settings.d.ts +9 -0
  69. package/dist/settings.d.ts.map +1 -0
  70. package/dist/settings.js +12 -0
  71. package/dist/settings.js.map +1 -0
  72. package/package.json +45 -0
@@ -0,0 +1,528 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageACResponse = exports.MessageNewProtocolSet = exports.MessageGeneralSet = exports.MessageSubProtocolSet = exports.MessageSubProtocolQuery = exports.MessageSubProtocol = exports.MessageNewProtocolQuery = exports.MessageSwitchDisplay = exports.MessagePowerQuery = exports.MessageQuery = void 0;
4
+ const MideaConstants_1 = require("../../core/MideaConstants");
5
+ const MideaMessage_1 = require("../../core/MideaMessage");
6
+ const MideaUtils_1 = require("../../core/MideaUtils");
7
+ var NewProtocolTags;
8
+ (function (NewProtocolTags) {
9
+ NewProtocolTags[NewProtocolTags["INDOOR_HUMIDITY"] = 21] = "INDOOR_HUMIDITY";
10
+ NewProtocolTags[NewProtocolTags["SCREEN_DISPLAY"] = 23] = "SCREEN_DISPLAY";
11
+ NewProtocolTags[NewProtocolTags["BREEZELESS"] = 24] = "BREEZELESS";
12
+ NewProtocolTags[NewProtocolTags["PROMPT_TONE"] = 26] = "PROMPT_TONE";
13
+ NewProtocolTags[NewProtocolTags["INDIRECT_WIND"] = 66] = "INDIRECT_WIND";
14
+ NewProtocolTags[NewProtocolTags["FRESH_AIR_1"] = 563] = "FRESH_AIR_1";
15
+ NewProtocolTags[NewProtocolTags["FRESH_AIR_2"] = 75] = "FRESH_AIR_2";
16
+ })(NewProtocolTags || (NewProtocolTags = {}));
17
+ const BB_AC_MODES = [0, 3, 1, 2, 4, 5];
18
+ class MessageACBase extends MideaMessage_1.MessageRequest {
19
+ constructor(device_protocol_version, message_type, body_type) {
20
+ super(MideaConstants_1.DeviceType.AIR_CONDITIONER, message_type, body_type, device_protocol_version);
21
+ MessageACBase.message_serial += 1;
22
+ if (MessageACBase.message_serial >= 254) {
23
+ MessageACBase.message_serial = 1;
24
+ }
25
+ this.message_id = MessageACBase.message_serial;
26
+ }
27
+ get body() {
28
+ let body = Buffer.concat([Buffer.from([this.body_type]), this._body, Buffer.from([this.message_id])]);
29
+ body = Buffer.concat([body, Buffer.from([(0, MideaUtils_1.calculate)(body)])]);
30
+ return body;
31
+ }
32
+ }
33
+ MessageACBase.message_serial = 0;
34
+ class MessageQuery extends MessageACBase {
35
+ constructor(device_protocol_version) {
36
+ super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0x41);
37
+ }
38
+ get _body() {
39
+ return Buffer.from([
40
+ 0x81, 0x00, 0xFF, 0x03,
41
+ 0xFF, 0x00, 0x02,
42
+ 0x00, 0x00, 0x00, 0x00,
43
+ 0x00, 0x00, 0x00, 0x00,
44
+ 0x00, 0x00, 0x00, 0x00,
45
+ ]);
46
+ }
47
+ }
48
+ exports.MessageQuery = MessageQuery;
49
+ class MessagePowerQuery extends MessageACBase {
50
+ constructor(device_protocol_version) {
51
+ super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0x41);
52
+ }
53
+ get _body() {
54
+ return Buffer.from([
55
+ 0x21, 0x01, 0x44, 0x00, 0x01,
56
+ ]);
57
+ }
58
+ get body() {
59
+ let body = Buffer.concat([Buffer.from([this.body_type]), this._body]);
60
+ body = Buffer.concat([body, Buffer.from([(0, MideaUtils_1.calculate)(body)])]);
61
+ return body;
62
+ }
63
+ }
64
+ exports.MessagePowerQuery = MessagePowerQuery;
65
+ class MessageSwitchDisplay extends MessageACBase {
66
+ constructor(device_protocol_version) {
67
+ super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0x41);
68
+ }
69
+ get _body() {
70
+ return Buffer.from([
71
+ 0x81, 0x00, 0xFF, 0x02,
72
+ 0xFF, 0x02, 0x02,
73
+ 0x00, 0x00, 0x00, 0x00,
74
+ 0x00, 0x00, 0x00, 0x00,
75
+ 0x00, 0x00, 0x00, 0x00,
76
+ ]);
77
+ }
78
+ }
79
+ exports.MessageSwitchDisplay = MessageSwitchDisplay;
80
+ class MessageNewProtocolQuery extends MessageACBase {
81
+ constructor(device_protocol_version) {
82
+ super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0xB1);
83
+ }
84
+ get _body() {
85
+ const query_params = [
86
+ NewProtocolTags.INDIRECT_WIND,
87
+ NewProtocolTags.BREEZELESS,
88
+ NewProtocolTags.INDOOR_HUMIDITY,
89
+ NewProtocolTags.SCREEN_DISPLAY,
90
+ NewProtocolTags.FRESH_AIR_1,
91
+ NewProtocolTags.FRESH_AIR_2,
92
+ ];
93
+ let body = Buffer.from([query_params.length]);
94
+ for (const param of query_params) {
95
+ body = Buffer.concat([body, Buffer.from([param & 0xFF, param >> 8])]);
96
+ }
97
+ return body;
98
+ }
99
+ }
100
+ exports.MessageNewProtocolQuery = MessageNewProtocolQuery;
101
+ class MessageSubProtocol extends MessageACBase {
102
+ constructor(device_protocol_version, message_type, subprotocol_query_type) {
103
+ super(device_protocol_version, message_type, 0xAA);
104
+ this.subprotocol_query_type = subprotocol_query_type;
105
+ }
106
+ get body() {
107
+ let body = Buffer.concat([Buffer.from([this.body_type]), this._body]);
108
+ body = Buffer.concat([body, Buffer.from([(0, MideaUtils_1.calculate)(body)])]);
109
+ body = Buffer.concat([body, Buffer.from([this.checksum(body)])]);
110
+ return body;
111
+ }
112
+ get _body() {
113
+ let body = Buffer.from([
114
+ 6 + 2 + (this.subprotocol_body ? this.subprotocol_body.length : 0),
115
+ 0x00, 0xFF, 0xFF, this.subprotocol_query_type,
116
+ ]);
117
+ if (this.subprotocol_body) {
118
+ body = Buffer.concat([body, this.subprotocol_body]);
119
+ }
120
+ return body;
121
+ }
122
+ }
123
+ exports.MessageSubProtocol = MessageSubProtocol;
124
+ class MessageSubProtocolQuery extends MessageSubProtocol {
125
+ constructor(device_protocol_version, subprotocol_query_type) {
126
+ super(device_protocol_version, MideaMessage_1.MessageType.QUERY, subprotocol_query_type);
127
+ }
128
+ }
129
+ exports.MessageSubProtocolQuery = MessageSubProtocolQuery;
130
+ class MessageSubProtocolSet extends MessageSubProtocol {
131
+ constructor(device_protocol_version) {
132
+ super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x20);
133
+ this.power = false;
134
+ this.mode = 0;
135
+ this.target_temperature = 20.0;
136
+ this.fan_speed = 102;
137
+ this.boost_mode = false;
138
+ this.aux_heating = false;
139
+ this.dry = false;
140
+ this.eco_mode = false;
141
+ this.sleep_mode = false;
142
+ this.sn8_flag = false;
143
+ this.timer = false;
144
+ this.prompt_tone = false;
145
+ }
146
+ get subprotocol_body() {
147
+ const power = this.power ? 0x01 : 0x00;
148
+ const dry = this.dry && this.power ? 0x10 : 0;
149
+ const boost_mode = this.boost_mode ? 0x20 : 0;
150
+ const aux_heating = this.aux_heating ? 0x40 : 0;
151
+ const sleep_mode = this.sleep_mode ? 0x80 : 0;
152
+ const mode = this.mode === 0 ? 0 : this.mode < BB_AC_MODES.length ? BB_AC_MODES[this.mode] - 1 : 2;
153
+ const target_temperature = (this.target_temperature * 2 + 30) | 0;
154
+ const water_model_temperature_set = ((this.target_temperature - 1) * 2 + 50) | 0;
155
+ const fan_speed = this.fan_speed;
156
+ const eco = this.eco_mode ? 0x40 : 0;
157
+ const prompt_tone = this.prompt_tone ? 0x01 : 0;
158
+ const timer = this.sn8_flag && this.timer ? 0x04 : 0;
159
+ return Buffer.from([
160
+ boost_mode | power | dry, aux_heating, sleep_mode, 0x00,
161
+ 0x00, mode, target_temperature, fan_speed,
162
+ 0x32, 0x00, 0x00, 0x00,
163
+ 0x00, 0x00, 0x00, 0x01,
164
+ 0x01, 0x00, 0x01, water_model_temperature_set,
165
+ prompt_tone, target_temperature, 0x32, 0x66,
166
+ 0x00, eco | timer, 0x00, 0x00,
167
+ 0x00, 0x00, 0x00, 0x00,
168
+ 0x00, 0x00, 0x00, 0x00,
169
+ 0x08,
170
+ ]);
171
+ }
172
+ }
173
+ exports.MessageSubProtocolSet = MessageSubProtocolSet;
174
+ class MessageGeneralSet extends MessageACBase {
175
+ constructor(device_protocol_version) {
176
+ super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x40);
177
+ this.power = false;
178
+ this.prompt_tone = true;
179
+ this.mode = 0;
180
+ this.target_temperature = 20.0;
181
+ this.fan_speed = 102;
182
+ this.swing_vertical = false;
183
+ this.swing_horizontal = false;
184
+ this.boost_mode = false;
185
+ this.smart_eye = false;
186
+ this.dry = false;
187
+ this.aux_heating = false;
188
+ this.eco_mode = false;
189
+ this.temp_fahrenheit = false;
190
+ this.sleep_mode = false;
191
+ this.natural_wind = false;
192
+ this.frost_protect = false;
193
+ this.comfort_mode = false;
194
+ }
195
+ get _body() {
196
+ // Byte1, Power, prompt_tone
197
+ const power = this.power ? 0x01 : 0x00;
198
+ const prompt_tone = this.prompt_tone ? 0x40 : 0x00;
199
+ // Byte2, mode target_temperature
200
+ const mode = (this.mode << 5) & 0xe0;
201
+ const target_temperature = ((this.target_temperature | 0) & 0xf) |
202
+ ((Math.round(this.target_temperature * 2) | 0) % 2 !== 0 ? 0x10 : 0);
203
+ // Byte 3, fan_speed
204
+ const fan_speed = this.fan_speed & 0x7f;
205
+ // Byte 7, swing_mode
206
+ const swing_mode = 0x30 |
207
+ (this.swing_vertical ? 0x0c : 0) |
208
+ (this.swing_horizontal ? 0x03 : 0);
209
+ // Byte 8, turbo
210
+ const boost_mode = this.boost_mode ? 0x20 : 0;
211
+ // Byte 9 aux_heating eco_mode
212
+ const smart_eye = this.smart_eye ? 0x01 : 0;
213
+ const dry = this.dry ? 0x04 : 0;
214
+ const aux_heating = this.aux_heating ? 0x08 : 0;
215
+ const eco_mode = this.eco_mode ? 0x80 : 0;
216
+ // Byte 10 temp_fahrenheit
217
+ const temp_fahrenheit = this.temp_fahrenheit ? 0x04 : 0;
218
+ const sleep_mode = this.sleep_mode ? 0x01 : 0;
219
+ const boost_mode_1 = this.boost_mode ? 0x02 : 0;
220
+ // Byte 17 natural_wind
221
+ const natural_wind = this.natural_wind ? 0x40 : 0;
222
+ // Byte 21 frost_protect
223
+ const frost_protect = this.frost_protect ? 0x80 : 0;
224
+ // Byte 22 comfort_mode
225
+ const comfort_mode = this.comfort_mode ? 0x01 : 0;
226
+ return Buffer.from([
227
+ power | prompt_tone,
228
+ mode | target_temperature,
229
+ fan_speed,
230
+ 0x00, 0x00, 0x00,
231
+ swing_mode,
232
+ boost_mode,
233
+ smart_eye | dry | aux_heating | eco_mode,
234
+ temp_fahrenheit | sleep_mode | boost_mode_1,
235
+ 0x00, 0x00, 0x00, 0x00,
236
+ 0x00, 0x00,
237
+ natural_wind,
238
+ 0x00, 0x00, 0x00,
239
+ frost_protect,
240
+ comfort_mode,
241
+ ]);
242
+ }
243
+ }
244
+ exports.MessageGeneralSet = MessageGeneralSet;
245
+ class MessageNewProtocolSet extends MessageACBase {
246
+ constructor(device_protocol_version) {
247
+ super(device_protocol_version, MideaMessage_1.MessageType.SET, 0xB0);
248
+ }
249
+ get _body() {
250
+ let pack_count = 0;
251
+ let payload = Buffer.from([0x00]);
252
+ if (this.breezeless !== undefined) {
253
+ pack_count += 1;
254
+ payload = Buffer.concat([payload,
255
+ MideaMessage_1.NewProtocolMessageBody.packet(NewProtocolTags.BREEZELESS, Buffer.from([this.breezeless ? 0x01 : 0x00]))]);
256
+ }
257
+ if (this.indirect_wind !== undefined) {
258
+ pack_count += 1;
259
+ payload = Buffer.concat([payload,
260
+ MideaMessage_1.NewProtocolMessageBody.packet(NewProtocolTags.INDIRECT_WIND, Buffer.from([this.indirect_wind ? 0x02 : 0x01]))]);
261
+ }
262
+ if (this.prompt_tone !== undefined) {
263
+ pack_count += 1;
264
+ payload = Buffer.concat([payload,
265
+ MideaMessage_1.NewProtocolMessageBody.packet(NewProtocolTags.PROMPT_TONE, Buffer.from([this.prompt_tone ? 0x01 : 0x00]))]);
266
+ }
267
+ if (this.screen_display !== undefined) {
268
+ pack_count += 1;
269
+ payload = Buffer.concat([payload,
270
+ MideaMessage_1.NewProtocolMessageBody.packet(NewProtocolTags.SCREEN_DISPLAY, Buffer.from([this.screen_display ? 0x64 : 0x00]))]);
271
+ }
272
+ if (this.fresh_air_1 !== undefined && this.fresh_air_1.length === 2) {
273
+ pack_count += 1;
274
+ const fresh_air_power = this.fresh_air_1[0] > 0 ? 2 : 1;
275
+ const fresh_air_fan_speed = this.fresh_air_1[1];
276
+ payload = Buffer.concat([payload,
277
+ MideaMessage_1.NewProtocolMessageBody.packet(NewProtocolTags.FRESH_AIR_1, Buffer.from([
278
+ fresh_air_power,
279
+ fresh_air_fan_speed,
280
+ 0x00, 0x00, 0x00, 0x00,
281
+ 0x00, 0x00, 0x00, 0x00,
282
+ ]))]);
283
+ }
284
+ if (this.fresh_air_2 !== undefined && this.fresh_air_2.length === 2) {
285
+ pack_count += 1;
286
+ const fresh_air_power = this.fresh_air_2[0] > 0 ? 1 : 0;
287
+ const fresh_air_fan_speed = this.fresh_air_2[1];
288
+ payload = Buffer.concat([payload,
289
+ MideaMessage_1.NewProtocolMessageBody.packet(NewProtocolTags.FRESH_AIR_2, Buffer.from([
290
+ fresh_air_power,
291
+ fresh_air_fan_speed,
292
+ 0xFF,
293
+ ]))]);
294
+ }
295
+ payload[0] = pack_count;
296
+ return payload;
297
+ }
298
+ }
299
+ exports.MessageNewProtocolSet = MessageNewProtocolSet;
300
+ class XA0MessageBody extends MideaMessage_1.MessageBody {
301
+ constructor(body) {
302
+ super(body);
303
+ this.power = (body[1] & 0x1) > 0;
304
+ this.target_temperature = ((body[1] & 0x3E) >> 1) - 4 + 16.0 + ((body[1] & 0x40) > 0 ? 0.5 : 0.0);
305
+ this.mode = (body[2] & 0xe0) >> 5;
306
+ this.fan_speed = body[3] & 0x7f;
307
+ this.swing_vertical = (body[7] & 0xC) > 0;
308
+ this.swing_horizontal = (body[7] & 0x3) > 0;
309
+ this.boost_mode = ((body[8] & 0x20) > 0) || ((body[10] & 0x2) > 0);
310
+ this.smart_eye = (body[9] & 0x01) > 0;
311
+ this.dry = (body[9] & 0x04) > 0;
312
+ this.aux_heating = (body[9] & 0x08) > 0;
313
+ this.eco_mode = (body[9] & 0x10) > 0;
314
+ this.sleep_mode = (body[10] & 0x01) > 0;
315
+ this.natural_wind = (body[10] & 0x40) > 0;
316
+ this.full_dust = (body[13] & 0x20) > 0;
317
+ this.comfort_mode = body.length > 16 ? (body[14] & 0x1) > 0 : false;
318
+ }
319
+ }
320
+ class XA1MessageBody extends MideaMessage_1.MessageBody {
321
+ constructor(body) {
322
+ super(body);
323
+ if (body[13] !== 0xFF) {
324
+ const temp_integer = ((body[13] - 50) / 2) | 0;
325
+ const temp_decimal = body.length > 20 ? ((body[18] & 0xF) * 0.1) : 0;
326
+ if (body[13] > 49) {
327
+ this.indoor_temperature = temp_integer + temp_decimal;
328
+ }
329
+ else {
330
+ this.indoor_temperature = temp_integer - temp_decimal;
331
+ }
332
+ }
333
+ if (body[14] === 0xFF) {
334
+ this.outdoor_temperature = undefined;
335
+ }
336
+ else {
337
+ const temp_integer = ((body[14] - 50) / 2) | 0;
338
+ const temp_decimal = body.length > 20 ? (((body[18] & 0xF0) >> 4) * 0.1) : 0;
339
+ if (body[14] > 49) {
340
+ this.outdoor_temperature = temp_integer + temp_decimal;
341
+ }
342
+ else {
343
+ this.outdoor_temperature = temp_integer - temp_decimal;
344
+ }
345
+ }
346
+ this.indoor_humidity = body[17];
347
+ }
348
+ }
349
+ class XBXMessageBody extends MideaMessage_1.NewProtocolMessageBody {
350
+ constructor(body, body_type) {
351
+ super(body, body_type);
352
+ const params = this.parse();
353
+ if (NewProtocolTags.INDIRECT_WIND in params) {
354
+ this.indirect_wind = (params[NewProtocolTags.INDIRECT_WIND][0] === 0x02);
355
+ }
356
+ if (NewProtocolTags.INDOOR_HUMIDITY in params) {
357
+ this.indoor_humidity = params[NewProtocolTags.INDOOR_HUMIDITY][0];
358
+ }
359
+ if (NewProtocolTags.BREEZELESS in params) {
360
+ this.breezeless = (params[NewProtocolTags.BREEZELESS][0] === 1);
361
+ }
362
+ if (NewProtocolTags.SCREEN_DISPLAY in params) {
363
+ this.screen_display = (params[NewProtocolTags.SCREEN_DISPLAY][0] > 0);
364
+ this.screen_display_new = true;
365
+ }
366
+ if (NewProtocolTags.FRESH_AIR_1 in params) {
367
+ this.fresh_air_1 = true;
368
+ const data = params[NewProtocolTags.FRESH_AIR_1];
369
+ this.fresh_air_power = data[0] === 0x02;
370
+ this.fresh_air_fan_speed = data[1];
371
+ }
372
+ if (NewProtocolTags.FRESH_AIR_2 in params) {
373
+ this.fresh_air_2 = true;
374
+ const data = params[NewProtocolTags.FRESH_AIR_2];
375
+ this.fresh_air_power = data[0] > 0;
376
+ this.fresh_air_fan_speed = data[1];
377
+ }
378
+ }
379
+ }
380
+ class XC0MessageBody extends MideaMessage_1.MessageBody {
381
+ constructor(body) {
382
+ super(body);
383
+ this.power = (body[1] & 0x1) > 0;
384
+ this.mode = (body[2] & 0xe0) >> 5;
385
+ this.target_temperature = (body[2] & 0x0F) + 16.0 + ((body[2] & 0x10) > 0 ? 0.5 : 0.0);
386
+ this.fan_speed = body[3] & 0x7F;
387
+ this.swing_vertical = (body[7] & 0x0C) > 0;
388
+ this.swing_horizontal = (body[7] & 0x03) > 0;
389
+ this.boost_mode = ((body[8] & 0x20) > 0) || ((body[10] & 0x2) > 0);
390
+ this.smart_eye = (body[8] & 0x40) > 0;
391
+ this.natural_wind = (body[9] & 0x2) > 0;
392
+ this.dry = (body[9] & 0x4) > 0;
393
+ this.eco_mode = (body[9] & 0x10) > 0;
394
+ this.aux_heating = (body[9] & 0x08) > 0;
395
+ this.temp_fahrenheit = (body[10] & 0x04) > 0;
396
+ this.sleep_mode = (body[10] & 0x01) > 0;
397
+ if (body[11] !== 0xFF) {
398
+ const temp_integer = ((body[11] - 50) / 2) | 0;
399
+ const temp_decimal = (body[15] & 0x0F) * 0.1;
400
+ if (body[11] > 49) {
401
+ this.indoor_temperature = temp_integer + temp_decimal;
402
+ }
403
+ else {
404
+ this.indoor_temperature = temp_integer - temp_decimal;
405
+ }
406
+ }
407
+ if (body[12] === 0xFF) {
408
+ this.outdoor_temperature = undefined;
409
+ }
410
+ else {
411
+ const temp_integer = ((body[12] - 50) / 2) | 0;
412
+ const temp_decimal = ((body[15] & 0xF0) >> 4) * 0.1;
413
+ if (body[12] > 49) {
414
+ this.outdoor_temperature = temp_integer + temp_decimal;
415
+ }
416
+ else {
417
+ this.outdoor_temperature = temp_integer - temp_decimal;
418
+ }
419
+ }
420
+ this.full_dust = (body[13] & 0x20) > 0;
421
+ this.screen_display = ((body[14] >> 4 & 0x7) !== 0x07) && this.power;
422
+ this.frost_protect = body.length > 23 ? (body[21] & 0x80) > 0 : false;
423
+ this.comfort_mode = body.length > 24 ? (body[22] & 0x1) > 0 : false;
424
+ }
425
+ }
426
+ class XC1MessageBody extends MideaMessage_1.MessageBody {
427
+ constructor(body, analysis_method = 3) {
428
+ super(body);
429
+ if (body[3] === 0x44) {
430
+ this.total_energy_consumption = XC1MessageBody.parse_consumption(analysis_method, body[4], body[5], body[6], body[7]);
431
+ this.current_energy_consumption = XC1MessageBody.parse_consumption(analysis_method, body[12], body[13], body[14], body[15]);
432
+ this.realtime_power = XC1MessageBody.parse_power(analysis_method, body[16], body[17], body[18]);
433
+ }
434
+ }
435
+ static parse_power(analysis_method, byte1, byte2, byte3) {
436
+ if (analysis_method === 1) {
437
+ return byte1 + byte2 / 100 + byte3 / 10000;
438
+ }
439
+ else if (analysis_method === 2) {
440
+ return ((byte1 << 16) + (byte2 << 8) + byte3) / 1000;
441
+ }
442
+ else {
443
+ return (byte1 * 10000 + byte2 * 100 + byte3) / 10;
444
+ }
445
+ }
446
+ static parse_consumption(analysis_method, byte1, byte2, byte3, byte4) {
447
+ if (analysis_method === 1) {
448
+ return byte1 * 10000 + byte2 * 100 + byte3 + byte4 / 100;
449
+ }
450
+ else if (analysis_method === 2) {
451
+ return ((byte1 << 32) + (byte2 << 16) + (byte3 << 8) + byte4) / 1000;
452
+ }
453
+ else {
454
+ return (byte1 * 1000000 + byte2 * 10000 + byte3 * 100 + byte4) / 100;
455
+ }
456
+ }
457
+ }
458
+ class XBBMessageBody extends MideaMessage_1.MessageBody {
459
+ constructor(body) {
460
+ super(body);
461
+ const subprotocol_head = body.subarray(0, 6);
462
+ const subprotocol_body = body.subarray(6, body.length);
463
+ const data_type = subprotocol_head[subprotocol_head.length - 1];
464
+ const subprotocol_body_len = subprotocol_body.length;
465
+ if (data_type === 0x20 || data_type === 0x11) {
466
+ this.power = (subprotocol_body[0] & 0x1) > 0;
467
+ this.dry = (subprotocol_body[0] & 0x10) > 0;
468
+ this.boost_mode = (subprotocol_body[0] & 0x20) > 0;
469
+ this.aux_heating = (subprotocol_body[1] & 0x40) > 0;
470
+ this.sleep_mode = (subprotocol_body[2] & 0x80) > 0;
471
+ this.mode = BB_AC_MODES.indexOf(subprotocol_body[5] + 1);
472
+ if (this.mode === -1) {
473
+ this.mode = 0;
474
+ }
475
+ this.target_temperature = (subprotocol_body[6] - 30) / 2;
476
+ this.fan_speed = subprotocol_body[7];
477
+ this.timer = subprotocol_body_len > 27 ? (subprotocol_body[25] & 0x04) > 0 : false;
478
+ this.eco_mode = subprotocol_body_len > 27 ? (subprotocol_body[25] & 0x40) > 0 : false;
479
+ }
480
+ else if (data_type === 0x10) {
481
+ if ((subprotocol_body[8] & 0x80) === 0x80) {
482
+ this.indoor_temperature = (0 - (~(subprotocol_body[7] + subprotocol_body[8] * 256) + 1) & 0xffff) / 100;
483
+ }
484
+ else {
485
+ this.indoor_temperature = (subprotocol_body[7] + subprotocol_body[8] * 256) / 100;
486
+ }
487
+ this.indoor_humidity = subprotocol_body[30];
488
+ this.sn8_flag = subprotocol_body[80] === 0x31;
489
+ }
490
+ else if (data_type === 0x30) {
491
+ if ((subprotocol_body[6] & 0x80) === 0x80) {
492
+ this.outdoor_temperature = (0 - (~(subprotocol_body[5] + subprotocol_body[6] * 256) + 1) & 0xffff) / 100;
493
+ }
494
+ else {
495
+ this.outdoor_temperature = (subprotocol_body[5] + subprotocol_body[6] * 256) / 100;
496
+ }
497
+ }
498
+ }
499
+ }
500
+ class MessageACResponse extends MideaMessage_1.MessageResponse {
501
+ constructor(message, power_analysis_method = 3) {
502
+ super(message);
503
+ this.message = message;
504
+ if (this.message_type === MideaMessage_1.MessageType.NOTIFY2 && this.body_type === 0xA0) {
505
+ this.set_body(new XA0MessageBody(this.body));
506
+ }
507
+ else if (this.message_type === MideaMessage_1.MessageType.NOTIFY1 && this.body_type === 0xA1) {
508
+ this.set_body(new XA1MessageBody(this.body));
509
+ }
510
+ else if ([MideaMessage_1.MessageType.QUERY, MideaMessage_1.MessageType.SET, MideaMessage_1.MessageType.NOTIFY2].includes(this.message_type) &&
511
+ [0xB0, 0xB1, 0xB5].includes(this.body_type)) {
512
+ this.set_body(new XBXMessageBody(this.body, this.body_type));
513
+ }
514
+ else if ([MideaMessage_1.MessageType.QUERY, MideaMessage_1.MessageType.SET].includes(this.message_type) && this.body_type === 0xC0) {
515
+ this.set_body(new XC0MessageBody(this.body));
516
+ }
517
+ else if (this.message_type === MideaMessage_1.MessageType.QUERY && this.body_type === 0xC1) {
518
+ this.set_body(new XC1MessageBody(this.body, power_analysis_method));
519
+ }
520
+ else if ([MideaMessage_1.MessageType.QUERY, MideaMessage_1.MessageType.SET, MideaMessage_1.MessageType.NOTIFY2].includes(this.message_type) &&
521
+ this.body_type === 0xBB && this.body.length >= 21) {
522
+ this.used_subprotocol = true;
523
+ this.set_body(new XBBMessageBody(this.body));
524
+ }
525
+ }
526
+ }
527
+ exports.MessageACResponse = MessageACResponse;
528
+ //# sourceMappingURL=MideaACMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MideaACMessage.js","sourceRoot":"","sources":["../../../src/devices/ac/MideaACMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { API } from 'homebridge';
2
+ /**
3
+ * This method registers the platform with Homebridge
4
+ */
5
+ declare const _default: (api: API) => void;
6
+ export = _default;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAKjC;;GAEG;8BACY,GAAG;AAAlB,kBAEE"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ const settings_1 = require("./settings");
3
+ const platform_1 = require("./platform");
4
+ module.exports = (api) => {
5
+ api.registerPlatform(settings_1.PLATFORM_NAME, platform_1.MideaPlatform);
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,yCAA2C;AAC3C,yCAA2C;AAK3C,iBAAS,CAAC,GAAQ,EAAE,EAAE;IACpB,GAAG,CAAC,gBAAgB,CAAC,wBAAa,EAAE,wBAAa,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
2
+ import { DeviceInfo } from './core/MideaConstants';
3
+ export declare class MideaPlatform implements DynamicPlatformPlugin {
4
+ readonly log: Logger;
5
+ readonly config: PlatformConfig;
6
+ readonly api: API;
7
+ readonly Service: typeof Service;
8
+ readonly Characteristic: typeof Characteristic;
9
+ readonly accessories: PlatformAccessory[];
10
+ private readonly cloud;
11
+ private readonly discover;
12
+ constructor(log: Logger, config: PlatformConfig, api: API);
13
+ addDevice(device_info: DeviceInfo): Promise<void>;
14
+ /**
15
+ * This function is invoked when homebridge restores cached accessories from disk at startup.
16
+ * It should be used to setup event handlers for characteristics and update respective values.
17
+ */
18
+ configureAccessory(accessory: PlatformAccessory): void;
19
+ }
20
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAO,EAAE,UAAU,EAAc,MAAM,uBAAuB,CAAC;AAS/D,qBAAa,aAAc,YAAW,qBAAqB;aAWvC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAX1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAEpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAGlB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAqCpB,SAAS,CAAC,WAAW,EAAE,UAAU;IAgDvC;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;CAMhD"}