homebridge-midea-platform 1.2.0-beta.8 → 1.2.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.
Files changed (167) hide show
  1. package/CHANGELOG.md +5 -2
  2. package/README.md +2 -2
  3. package/dist/accessory/AccessoryFactory.d.ts +14 -15
  4. package/dist/accessory/AccessoryFactory.js +34 -40
  5. package/dist/accessory/AccessoryFactory.js.map +1 -1
  6. package/dist/accessory/AirConditionerAccessory.d.ts +98 -99
  7. package/dist/accessory/AirConditionerAccessory.js +666 -662
  8. package/dist/accessory/AirConditionerAccessory.js.map +1 -1
  9. package/dist/accessory/BaseAccessory.d.ts +11 -12
  10. package/dist/accessory/BaseAccessory.js +21 -21
  11. package/dist/accessory/BaseAccessory.js.map +1 -1
  12. package/dist/accessory/DehumidifierAccessory.d.ts +45 -46
  13. package/dist/accessory/DehumidifierAccessory.js +343 -344
  14. package/dist/accessory/DehumidifierAccessory.js.map +1 -1
  15. package/dist/accessory/DishwasherAccessory.d.ts +30 -31
  16. package/dist/accessory/DishwasherAccessory.js +59 -63
  17. package/dist/accessory/DishwasherAccessory.js.map +1 -1
  18. package/dist/accessory/ElectricWaterHeaterAccessory.d.ts +44 -45
  19. package/dist/accessory/ElectricWaterHeaterAccessory.js +172 -176
  20. package/dist/accessory/ElectricWaterHeaterAccessory.js.map +1 -1
  21. package/dist/accessory/FanAccessory.d.ts +39 -40
  22. package/dist/accessory/FanAccessory.js +120 -123
  23. package/dist/accessory/FanAccessory.js.map +1 -1
  24. package/dist/accessory/FrontLoadWasherAccessory.d.ts +30 -31
  25. package/dist/accessory/FrontLoadWasherAccessory.js +63 -66
  26. package/dist/accessory/FrontLoadWasherAccessory.js.map +1 -1
  27. package/dist/accessory/GasWaterHeaterAccessory.d.ts +51 -52
  28. package/dist/accessory/GasWaterHeaterAccessory.js +217 -216
  29. package/dist/accessory/GasWaterHeaterAccessory.js.map +1 -1
  30. package/dist/accessory/{HeatPumpWifiControllerAccessory.d.ts → HeatPumpWiFiControllerAccessory.d.ts} +34 -35
  31. package/dist/accessory/{HeatPumpWifiControllerAccessory.js → HeatPumpWiFiControllerAccessory.js} +55 -36
  32. package/dist/accessory/HeatPumpWiFiControllerAccessory.js.map +1 -0
  33. package/dist/core/MideaCloud.d.ts +34 -36
  34. package/dist/core/MideaCloud.js +349 -350
  35. package/dist/core/MideaCloud.js.map +1 -1
  36. package/dist/core/MideaConstants.d.ts +51 -52
  37. package/dist/core/MideaConstants.js +56 -59
  38. package/dist/core/MideaConstants.js.map +1 -1
  39. package/dist/core/MideaDevice.d.ts +75 -78
  40. package/dist/core/MideaDevice.js +430 -420
  41. package/dist/core/MideaDevice.js.map +1 -1
  42. package/dist/core/MideaDiscover.d.ts +34 -36
  43. package/dist/core/MideaDiscover.js +208 -212
  44. package/dist/core/MideaDiscover.js.map +1 -1
  45. package/dist/core/MideaMessage.d.ts +75 -76
  46. package/dist/core/MideaMessage.js +185 -184
  47. package/dist/core/MideaMessage.js.map +1 -1
  48. package/dist/core/MideaPacketBuilder.d.ts +9 -11
  49. package/dist/core/MideaPacketBuilder.js +60 -60
  50. package/dist/core/MideaPacketBuilder.js.map +1 -1
  51. package/dist/core/MideaSecurity.d.ts +62 -64
  52. package/dist/core/MideaSecurity.js +241 -251
  53. package/dist/core/MideaSecurity.js.map +1 -1
  54. package/dist/core/MideaUtils.d.ts +31 -33
  55. package/dist/core/MideaUtils.js +178 -181
  56. package/dist/core/MideaUtils.js.map +1 -1
  57. package/dist/devices/DeviceFactory.d.ts +14 -15
  58. package/dist/devices/DeviceFactory.js +34 -40
  59. package/dist/devices/DeviceFactory.js.map +1 -1
  60. package/dist/devices/a1/MideaA1Device.d.ts +75 -77
  61. package/dist/devices/a1/MideaA1Device.js +142 -145
  62. package/dist/devices/a1/MideaA1Device.js.map +1 -1
  63. package/dist/devices/a1/MideaA1Message.d.ts +39 -41
  64. package/dist/devices/a1/MideaA1Message.js +219 -198
  65. package/dist/devices/a1/MideaA1Message.js.map +1 -1
  66. package/dist/devices/ac/MideaACDevice.d.ts +105 -107
  67. package/dist/devices/ac/MideaACDevice.js +417 -400
  68. package/dist/devices/ac/MideaACDevice.js.map +1 -1
  69. package/dist/devices/ac/MideaACMessage.d.ts +97 -96
  70. package/dist/devices/ac/MideaACMessage.js +724 -621
  71. package/dist/devices/ac/MideaACMessage.js.map +1 -1
  72. package/dist/devices/c3/MideaC3Device.d.ts +73 -75
  73. package/dist/devices/c3/MideaC3Device.js +249 -255
  74. package/dist/devices/c3/MideaC3Device.js.map +1 -1
  75. package/dist/devices/c3/MideaC3Message.d.ts +81 -80
  76. package/dist/devices/c3/MideaC3Message.js +190 -152
  77. package/dist/devices/c3/MideaC3Message.js.map +1 -1
  78. package/dist/devices/db/MideaDBDevice.d.ts +28 -30
  79. package/dist/devices/db/MideaDBDevice.js +94 -100
  80. package/dist/devices/db/MideaDBDevice.js.map +1 -1
  81. package/dist/devices/db/MideaDBMessage.d.ts +31 -33
  82. package/dist/devices/db/MideaDBMessage.js +101 -101
  83. package/dist/devices/db/MideaDBMessage.js.map +1 -1
  84. package/dist/devices/e1/MideaE1Device.d.ts +55 -57
  85. package/dist/devices/e1/MideaE1Device.js +122 -128
  86. package/dist/devices/e1/MideaE1Device.js.map +1 -1
  87. package/dist/devices/e1/MideaE1Message.d.ts +27 -29
  88. package/dist/devices/e1/MideaE1Message.js +128 -107
  89. package/dist/devices/e1/MideaE1Message.js.map +1 -1
  90. package/dist/devices/e2/MideaE2Device.d.ts +43 -45
  91. package/dist/devices/e2/MideaE2Device.js +124 -129
  92. package/dist/devices/e2/MideaE2Device.js.map +1 -1
  93. package/dist/devices/e2/MideaE2Message.d.ts +34 -34
  94. package/dist/devices/e2/MideaE2Message.js +143 -132
  95. package/dist/devices/e2/MideaE2Message.js.map +1 -1
  96. package/dist/devices/e3/MideaE3Device.d.ts +42 -44
  97. package/dist/devices/e3/MideaE3Device.js +132 -137
  98. package/dist/devices/e3/MideaE3Device.js.map +1 -1
  99. package/dist/devices/e3/MideaE3Message.d.ts +51 -52
  100. package/dist/devices/e3/MideaE3Message.js +144 -136
  101. package/dist/devices/e3/MideaE3Message.js.map +1 -1
  102. package/dist/devices/fa/MideaFADevice.d.ts +35 -37
  103. package/dist/devices/fa/MideaFADevice.js +102 -106
  104. package/dist/devices/fa/MideaFADevice.js.map +1 -1
  105. package/dist/devices/fa/MideaFAMessage.d.ts +38 -39
  106. package/dist/devices/fa/MideaFAMessage.js +108 -98
  107. package/dist/devices/fa/MideaFAMessage.js.map +1 -1
  108. package/dist/index.d.ts +6 -7
  109. package/dist/index.js +8 -6
  110. package/dist/index.js.map +1 -1
  111. package/dist/platform.d.ts +61 -61
  112. package/dist/platform.js +232 -212
  113. package/dist/platform.js.map +1 -1
  114. package/dist/platformUtils.d.ts +116 -117
  115. package/dist/platformUtils.js +107 -110
  116. package/dist/platformUtils.js.map +1 -1
  117. package/dist/settings.d.ts +8 -9
  118. package/dist/settings.js +8 -11
  119. package/dist/settings.js.map +1 -1
  120. package/docs/download_lua.md +9 -0
  121. package/eslint.config.js +43 -0
  122. package/homebridge-ui/public/js/bootstrap.min.js +1179 -1
  123. package/homebridge-ui/server.js +157 -84
  124. package/package.json +21 -31
  125. package/.eslintignore +0 -3
  126. package/.husky/pre-commit +0 -5
  127. package/.prettierrc +0 -19
  128. package/dist/accessory/AccessoryFactory.d.ts.map +0 -1
  129. package/dist/accessory/AirConditionerAccessory.d.ts.map +0 -1
  130. package/dist/accessory/BaseAccessory.d.ts.map +0 -1
  131. package/dist/accessory/DehumidifierAccessory.d.ts.map +0 -1
  132. package/dist/accessory/DishwasherAccessory.d.ts.map +0 -1
  133. package/dist/accessory/ElectricWaterHeaterAccessory.d.ts.map +0 -1
  134. package/dist/accessory/FanAccessory.d.ts.map +0 -1
  135. package/dist/accessory/FrontLoadWasherAccessory.d.ts.map +0 -1
  136. package/dist/accessory/GasWaterHeaterAccessory.d.ts.map +0 -1
  137. package/dist/accessory/HeatPumpWifiControllerAccessory.d.ts.map +0 -1
  138. package/dist/accessory/HeatPumpWifiControllerAccessory.js.map +0 -1
  139. package/dist/core/MideaCloud.d.ts.map +0 -1
  140. package/dist/core/MideaConstants.d.ts.map +0 -1
  141. package/dist/core/MideaDevice.d.ts.map +0 -1
  142. package/dist/core/MideaDiscover.d.ts.map +0 -1
  143. package/dist/core/MideaMessage.d.ts.map +0 -1
  144. package/dist/core/MideaPacketBuilder.d.ts.map +0 -1
  145. package/dist/core/MideaSecurity.d.ts.map +0 -1
  146. package/dist/core/MideaUtils.d.ts.map +0 -1
  147. package/dist/devices/DeviceFactory.d.ts.map +0 -1
  148. package/dist/devices/a1/MideaA1Device.d.ts.map +0 -1
  149. package/dist/devices/a1/MideaA1Message.d.ts.map +0 -1
  150. package/dist/devices/ac/MideaACDevice.d.ts.map +0 -1
  151. package/dist/devices/ac/MideaACMessage.d.ts.map +0 -1
  152. package/dist/devices/c3/MideaC3Device.d.ts.map +0 -1
  153. package/dist/devices/c3/MideaC3Message.d.ts.map +0 -1
  154. package/dist/devices/db/MideaDBDevice.d.ts.map +0 -1
  155. package/dist/devices/db/MideaDBMessage.d.ts.map +0 -1
  156. package/dist/devices/e1/MideaE1Device.d.ts.map +0 -1
  157. package/dist/devices/e1/MideaE1Message.d.ts.map +0 -1
  158. package/dist/devices/e2/MideaE2Device.d.ts.map +0 -1
  159. package/dist/devices/e2/MideaE2Message.d.ts.map +0 -1
  160. package/dist/devices/e3/MideaE3Device.d.ts.map +0 -1
  161. package/dist/devices/e3/MideaE3Message.d.ts.map +0 -1
  162. package/dist/devices/fa/MideaFADevice.d.ts.map +0 -1
  163. package/dist/devices/fa/MideaFAMessage.d.ts.map +0 -1
  164. package/dist/index.d.ts.map +0 -1
  165. package/dist/platform.d.ts.map +0 -1
  166. package/dist/platformUtils.d.ts.map +0 -1
  167. package/dist/settings.d.ts.map +0 -1
@@ -1,80 +1,81 @@
1
- /// <reference types="node" />
2
- import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage';
3
- declare abstract class MessageC3Base extends MessageRequest {
4
- constructor(device_protocol_version: number, message_type: MessageType, body_type: number);
5
- }
6
- export declare class MessageQuery extends MessageC3Base {
7
- constructor(device_protocol_version: number);
8
- get _body(): Buffer;
9
- }
10
- export declare class MessageSet extends MessageC3Base {
11
- zone1_power: boolean;
12
- zone2_power: boolean;
13
- dhw_power: boolean;
14
- mode: number;
15
- zone_target_temperature: number[];
16
- dhw_target_temperature: number;
17
- room_target_temperature: number;
18
- zone1_curve: boolean;
19
- zone2_curve: boolean;
20
- disinfect: boolean;
21
- fast_dhw: boolean;
22
- tbh: boolean;
23
- constructor(device_protocol_version: number);
24
- get _body(): Buffer;
25
- }
26
- export declare class MessageSetSilent extends MessageC3Base {
27
- silent_mode: boolean;
28
- super_silent: boolean;
29
- constructor(device_protocol_version: number);
30
- get _body(): Buffer;
31
- }
32
- export declare class MessageSetECO extends MessageC3Base {
33
- eco_mode: boolean;
34
- constructor(device_protocol_version: number);
35
- get _body(): Buffer;
36
- }
37
- export declare class C3MessageBody extends MessageBody {
38
- zone1_power: boolean;
39
- zone2_power: boolean;
40
- dhw_power: boolean;
41
- zone1_curve: boolean;
42
- zone2_curve: boolean;
43
- disinfect: boolean;
44
- tbh: boolean;
45
- fast_dhw: boolean;
46
- zone_temperature_type: boolean[];
47
- silent_mode: boolean;
48
- eco_mode: boolean;
49
- mode: number;
50
- mode_auto: number;
51
- zone_target_temp: number[];
52
- dhw_target_temp: number;
53
- room_target_temp: number;
54
- zone_heating_temperature_max: number[];
55
- zone_heating_temperature_min: number[];
56
- zone_cooling_temperature_max: number[];
57
- zone_cooling_temperature_min: number[];
58
- room_temperature_max: number;
59
- room_temperature_min: number;
60
- dhw_temperature_max: number;
61
- dhw_temperature_min: number;
62
- tank_actual_temperature: number;
63
- error_code: number;
64
- constructor(body: Buffer, data_offset?: number);
65
- }
66
- export declare class C3Notify1MessageBody extends MessageBody {
67
- status_tbh: boolean;
68
- status_dhw: boolean;
69
- status_ibh: boolean;
70
- status_heating: boolean;
71
- total_energy_consumption: number;
72
- total_produced_energy: number;
73
- outdoor_temperature: number;
74
- constructor(body: Buffer, data_offset?: number);
75
- }
76
- export declare class MessageC3Response extends MessageResponse {
77
- constructor(message: Buffer);
78
- }
79
- export {};
80
- //# sourceMappingURL=MideaC3Message.d.ts.map
1
+ import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage.js';
2
+ declare abstract class MessageC3Base extends MessageRequest {
3
+ constructor(device_protocol_version: number, message_type: MessageType, body_type: number);
4
+ }
5
+ export declare class MessageQuery extends MessageC3Base {
6
+ constructor(device_protocol_version: number);
7
+ get _body(): Buffer;
8
+ }
9
+ export declare class MessageSet extends MessageC3Base {
10
+ [key: string]: any;
11
+ zone1_power: boolean;
12
+ zone2_power: boolean;
13
+ dhw_power: boolean;
14
+ mode: number;
15
+ zone_target_temperature: number[];
16
+ dhw_target_temperature: number;
17
+ room_target_temperature: number;
18
+ zone1_curve: boolean;
19
+ zone2_curve: boolean;
20
+ disinfect: boolean;
21
+ fast_dhw: boolean;
22
+ tbh: boolean;
23
+ constructor(device_protocol_version: number);
24
+ get _body(): Buffer;
25
+ }
26
+ export declare class MessageSetSilent extends MessageC3Base {
27
+ [key: string]: any;
28
+ silent_mode: boolean;
29
+ super_silent: boolean;
30
+ constructor(device_protocol_version: number);
31
+ get _body(): Buffer;
32
+ }
33
+ export declare class MessageSetECO extends MessageC3Base {
34
+ [key: string]: any;
35
+ eco_mode: boolean;
36
+ constructor(device_protocol_version: number);
37
+ get _body(): Buffer;
38
+ }
39
+ export declare class C3MessageBody extends MessageBody {
40
+ zone1_power: boolean;
41
+ zone2_power: boolean;
42
+ dhw_power: boolean;
43
+ zone1_curve: boolean;
44
+ zone2_curve: boolean;
45
+ disinfect: boolean;
46
+ tbh: boolean;
47
+ fast_dhw: boolean;
48
+ zone_temperature_type: boolean[];
49
+ silent_mode: boolean;
50
+ eco_mode: boolean;
51
+ mode: number;
52
+ mode_auto: number;
53
+ zone_target_temp: number[];
54
+ dhw_target_temp: number;
55
+ room_target_temp: number;
56
+ zone_heating_temperature_max: number[];
57
+ zone_heating_temperature_min: number[];
58
+ zone_cooling_temperature_max: number[];
59
+ zone_cooling_temperature_min: number[];
60
+ room_temperature_max: number;
61
+ room_temperature_min: number;
62
+ dhw_temperature_max: number;
63
+ dhw_temperature_min: number;
64
+ tank_actual_temperature: number;
65
+ error_code: number;
66
+ constructor(body: Buffer, data_offset?: number);
67
+ }
68
+ export declare class C3Notify1MessageBody extends MessageBody {
69
+ status_tbh: boolean;
70
+ status_dhw: boolean;
71
+ status_ibh: boolean;
72
+ status_heating: boolean;
73
+ total_energy_consumption: number;
74
+ total_produced_energy: number;
75
+ outdoor_temperature: number;
76
+ constructor(body: Buffer, data_offset?: number);
77
+ }
78
+ export declare class MessageC3Response extends MessageResponse {
79
+ constructor(message: Buffer);
80
+ }
81
+ export {};
@@ -1,153 +1,191 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageC3Response = exports.C3Notify1MessageBody = exports.C3MessageBody = exports.MessageSetECO = exports.MessageSetSilent = exports.MessageSet = exports.MessageQuery = void 0;
4
- /***********************************************************************
5
- * Midea Heat Pump WiFi Controller 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
- class MessageC3Base extends MideaMessage_1.MessageRequest {
15
- constructor(device_protocol_version, message_type, body_type) {
16
- super(MideaConstants_1.DeviceType.HEAT_PUMP_WIFI_CONTROLLER, message_type, body_type, device_protocol_version);
17
- }
18
- }
19
- class MessageQuery extends MessageC3Base {
20
- constructor(device_protocol_version) {
21
- super(device_protocol_version, MideaMessage_1.MessageType.QUERY, 0x01);
22
- }
23
- get _body() {
24
- return Buffer.alloc(0);
25
- }
26
- }
27
- exports.MessageQuery = MessageQuery;
28
- class MessageSet extends MessageC3Base {
29
- constructor(device_protocol_version) {
30
- super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x01);
31
- this.zone1_power = false;
32
- this.zone2_power = false;
33
- this.dhw_power = false;
34
- this.mode = 0;
35
- this.zone_target_temperature = [25, 25];
36
- this.dhw_target_temperature = 40;
37
- this.room_target_temperature = 25;
38
- this.zone1_curve = false;
39
- this.zone2_curve = false;
40
- this.disinfect = false;
41
- this.fast_dhw = false;
42
- this.tbh = false;
43
- }
44
- get _body() {
45
- // Byte 1
46
- const zone1_power = this.zone1_power ? 0x01 : 0x00;
47
- const zone2_power = this.zone2_power ? 0x02 : 0x00;
48
- const dhw_power = this.dhw_power ? 0x04 : 0x00;
49
- // Byte 7
50
- const zone1_curve = this.zone1_curve ? 0x01 : 0x00;
51
- const zone2_curve = this.zone2_curve ? 0x02 : 0x00;
52
- const disinfect = this.disinfect || this.tbh ? 0x04 : 0x00;
53
- const fast_dhw = this.fast_dhw ? 0x08 : 0x00;
54
- const room_target_temperature = (this.room_target_temperature * 2) | 0;
55
- const zone1_target_temperature = this.zone_target_temperature[0] | 0;
56
- const zone2_target_temperature = this.zone_target_temperature[1] | 0;
57
- const dhw_target_temperature = this.dhw_target_temperature | 0;
58
- return Buffer.from([
59
- zone1_power | zone2_power | dhw_power,
60
- this.mode,
61
- zone1_target_temperature,
62
- zone2_target_temperature,
63
- dhw_target_temperature,
64
- room_target_temperature,
65
- zone1_curve | zone2_curve | disinfect | fast_dhw,
66
- ]);
67
- }
68
- }
69
- exports.MessageSet = MessageSet;
70
- class MessageSetSilent extends MessageC3Base {
71
- constructor(device_protocol_version) {
72
- super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x05);
73
- this.silent_mode = false;
74
- this.super_silent = false;
75
- }
76
- get _body() {
77
- const silent_mode = this.silent_mode ? 0x01 : 0x00;
78
- const super_silent = this.super_silent ? 0x02 : 0x00;
79
- return Buffer.from([silent_mode | super_silent, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
80
- }
81
- }
82
- exports.MessageSetSilent = MessageSetSilent;
83
- class MessageSetECO extends MessageC3Base {
84
- constructor(device_protocol_version) {
85
- super(device_protocol_version, MideaMessage_1.MessageType.SET, 0x07);
86
- this.eco_mode = false;
87
- }
88
- get _body() {
89
- const eco_mode = this.eco_mode ? 0x01 : 0x00;
90
- return Buffer.from([eco_mode, 0x00, 0x00, 0x00, 0x00, 0x00]);
91
- }
92
- }
93
- exports.MessageSetECO = MessageSetECO;
94
- class C3MessageBody extends MideaMessage_1.MessageBody {
95
- constructor(body, data_offset = 0) {
96
- super(body);
97
- this.zone1_power = (body[data_offset + 0] & 0x01) > 0;
98
- this.zone2_power = (body[data_offset + 0] & 0x02) > 0;
99
- this.dhw_power = (body[data_offset + 0] & 0x04) > 0;
100
- this.zone1_curve = (body[data_offset + 0] & 0x08) > 0;
101
- this.zone2_curve = (body[data_offset + 0] & 0x10) > 0;
102
- this.disinfect = (body[data_offset + 0] & 0x20) > 0;
103
- this.tbh = (body[data_offset + 0] & 0x20) > 0;
104
- this.fast_dhw = (body[data_offset + 0] & 0x40) > 0;
105
- this.zone_temperature_type = [(body[data_offset + 1] & 0x10) > 0, (body[data_offset + 1] & 0x20) > 0];
106
- this.silent_mode = (body[data_offset + 2] & 0x02) > 0;
107
- this.eco_mode = (body[data_offset + 2] & 0x08) > 0;
108
- this.mode = body[data_offset + 3];
109
- this.mode_auto = body[data_offset + 4];
110
- this.zone_target_temp = [body[data_offset + 5], body[data_offset + 6]];
111
- this.dhw_target_temp = body[data_offset + 7];
112
- this.room_target_temp = body[data_offset + 8] / 2;
113
- this.zone_heating_temperature_max = [body[data_offset + 9], body[data_offset + 13]];
114
- this.zone_heating_temperature_min = [body[data_offset + 10], body[data_offset + 14]];
115
- this.zone_cooling_temperature_max = [body[data_offset + 11], body[data_offset + 15]];
116
- this.zone_cooling_temperature_min = [body[data_offset + 12], body[data_offset + 16]];
117
- this.room_temperature_max = body[data_offset + 17] / 2;
118
- this.room_temperature_min = body[data_offset + 18] / 2;
119
- this.dhw_temperature_max = body[data_offset + 19];
120
- this.dhw_temperature_min = body[data_offset + 20];
121
- this.tank_actual_temperature = body[data_offset + 21];
122
- this.error_code = body[data_offset + 22];
123
- }
124
- }
125
- exports.C3MessageBody = C3MessageBody;
126
- class C3Notify1MessageBody extends MideaMessage_1.MessageBody {
127
- constructor(body, data_offset = 0) {
128
- super(body);
129
- const status_byte = body[data_offset];
130
- this.status_tbh = (status_byte & 0x08) > 0;
131
- this.status_dhw = (status_byte & 0x04) > 0;
132
- this.status_ibh = (status_byte & 0x02) > 0;
133
- this.status_heating = (status_byte & 0x01) > 0;
134
- this.total_energy_consumption = body.readUInt32LE(data_offset + 1);
135
- this.total_produced_energy = body.readUInt32LE(data_offset + 5);
136
- this.outdoor_temperature = body[data_offset + 9] | 0;
137
- }
138
- }
139
- exports.C3Notify1MessageBody = C3Notify1MessageBody;
140
- class MessageC3Response extends MideaMessage_1.MessageResponse {
141
- constructor(message) {
142
- super(message);
143
- if (([MideaMessage_1.MessageType.SET, MideaMessage_1.MessageType.NOTIFY1, MideaMessage_1.MessageType.QUERY].includes(this.message_type) && this.body_type === 0x01) ||
144
- this.message_type === MideaMessage_1.MessageType.NOTIFY2) {
145
- this.set_body(new C3MessageBody(this.body, 1));
146
- }
147
- else if (this.message_type === MideaMessage_1.MessageType.NOTIFY1 && this.body_type === 0x04) {
148
- this.set_body(new C3Notify1MessageBody(this.body, 1));
149
- }
150
- }
151
- }
152
- exports.MessageC3Response = MessageC3Response;
1
+ /***********************************************************************
2
+ * Midea Heat Pump WiFi Controller Device message handler 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
+ import { DeviceType } from '../../core/MideaConstants.js';
10
+ import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage.js';
11
+ class MessageC3Base extends MessageRequest {
12
+ constructor(device_protocol_version, message_type, body_type) {
13
+ super(DeviceType.HEAT_PUMP_WIFI_CONTROLLER, message_type, body_type, device_protocol_version);
14
+ }
15
+ }
16
+ export class MessageQuery extends MessageC3Base {
17
+ constructor(device_protocol_version) {
18
+ super(device_protocol_version, MessageType.QUERY, 0x01);
19
+ }
20
+ get _body() {
21
+ return Buffer.alloc(0);
22
+ }
23
+ }
24
+ export class MessageSet extends MessageC3Base {
25
+ zone1_power;
26
+ zone2_power;
27
+ dhw_power;
28
+ mode;
29
+ zone_target_temperature;
30
+ dhw_target_temperature;
31
+ room_target_temperature;
32
+ zone1_curve;
33
+ zone2_curve;
34
+ disinfect;
35
+ fast_dhw;
36
+ tbh;
37
+ constructor(device_protocol_version) {
38
+ super(device_protocol_version, MessageType.SET, 0x01);
39
+ this.zone1_power = false;
40
+ this.zone2_power = false;
41
+ this.dhw_power = false;
42
+ this.mode = 0;
43
+ this.zone_target_temperature = [25, 25];
44
+ this.dhw_target_temperature = 40;
45
+ this.room_target_temperature = 25;
46
+ this.zone1_curve = false;
47
+ this.zone2_curve = false;
48
+ this.disinfect = false;
49
+ this.fast_dhw = false;
50
+ this.tbh = false;
51
+ }
52
+ get _body() {
53
+ // Byte 1
54
+ const zone1_power = this.zone1_power ? 0x01 : 0x00;
55
+ const zone2_power = this.zone2_power ? 0x02 : 0x00;
56
+ const dhw_power = this.dhw_power ? 0x04 : 0x00;
57
+ // Byte 7
58
+ const zone1_curve = this.zone1_curve ? 0x01 : 0x00;
59
+ const zone2_curve = this.zone2_curve ? 0x02 : 0x00;
60
+ const disinfect = this.disinfect || this.tbh ? 0x04 : 0x00;
61
+ const fast_dhw = this.fast_dhw ? 0x08 : 0x00;
62
+ const room_target_temperature = (this.room_target_temperature * 2) | 0;
63
+ const zone1_target_temperature = this.zone_target_temperature[0] | 0;
64
+ const zone2_target_temperature = this.zone_target_temperature[1] | 0;
65
+ const dhw_target_temperature = this.dhw_target_temperature | 0;
66
+ return Buffer.from([
67
+ zone1_power | zone2_power | dhw_power,
68
+ this.mode,
69
+ zone1_target_temperature,
70
+ zone2_target_temperature,
71
+ dhw_target_temperature,
72
+ room_target_temperature,
73
+ zone1_curve | zone2_curve | disinfect | fast_dhw,
74
+ ]);
75
+ }
76
+ }
77
+ export class MessageSetSilent extends MessageC3Base {
78
+ silent_mode;
79
+ super_silent;
80
+ constructor(device_protocol_version) {
81
+ super(device_protocol_version, MessageType.SET, 0x05);
82
+ this.silent_mode = false;
83
+ this.super_silent = false;
84
+ }
85
+ get _body() {
86
+ const silent_mode = this.silent_mode ? 0x01 : 0x00;
87
+ const super_silent = this.super_silent ? 0x02 : 0x00;
88
+ return Buffer.from([silent_mode | super_silent, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
89
+ }
90
+ }
91
+ export class MessageSetECO extends MessageC3Base {
92
+ eco_mode;
93
+ constructor(device_protocol_version) {
94
+ super(device_protocol_version, MessageType.SET, 0x07);
95
+ this.eco_mode = false;
96
+ }
97
+ get _body() {
98
+ const eco_mode = this.eco_mode ? 0x01 : 0x00;
99
+ return Buffer.from([eco_mode, 0x00, 0x00, 0x00, 0x00, 0x00]);
100
+ }
101
+ }
102
+ export class C3MessageBody extends MessageBody {
103
+ zone1_power;
104
+ zone2_power;
105
+ dhw_power;
106
+ zone1_curve;
107
+ zone2_curve;
108
+ disinfect;
109
+ tbh;
110
+ fast_dhw;
111
+ zone_temperature_type;
112
+ silent_mode;
113
+ eco_mode;
114
+ mode;
115
+ mode_auto;
116
+ zone_target_temp;
117
+ dhw_target_temp;
118
+ room_target_temp;
119
+ zone_heating_temperature_max;
120
+ zone_heating_temperature_min;
121
+ zone_cooling_temperature_max;
122
+ zone_cooling_temperature_min;
123
+ room_temperature_max;
124
+ room_temperature_min;
125
+ dhw_temperature_max;
126
+ dhw_temperature_min;
127
+ tank_actual_temperature;
128
+ error_code;
129
+ constructor(body, data_offset = 0) {
130
+ super(body);
131
+ this.zone1_power = (body[data_offset + 0] & 0x01) > 0;
132
+ this.zone2_power = (body[data_offset + 0] & 0x02) > 0;
133
+ this.dhw_power = (body[data_offset + 0] & 0x04) > 0;
134
+ this.zone1_curve = (body[data_offset + 0] & 0x08) > 0;
135
+ this.zone2_curve = (body[data_offset + 0] & 0x10) > 0;
136
+ this.disinfect = (body[data_offset + 0] & 0x20) > 0;
137
+ this.tbh = (body[data_offset + 0] & 0x20) > 0;
138
+ this.fast_dhw = (body[data_offset + 0] & 0x40) > 0;
139
+ this.zone_temperature_type = [(body[data_offset + 1] & 0x10) > 0, (body[data_offset + 1] & 0x20) > 0];
140
+ this.silent_mode = (body[data_offset + 2] & 0x02) > 0;
141
+ this.eco_mode = (body[data_offset + 2] & 0x08) > 0;
142
+ this.mode = body[data_offset + 3];
143
+ this.mode_auto = body[data_offset + 4];
144
+ this.zone_target_temp = [body[data_offset + 5], body[data_offset + 6]];
145
+ this.dhw_target_temp = body[data_offset + 7];
146
+ this.room_target_temp = body[data_offset + 8] / 2;
147
+ this.zone_heating_temperature_max = [body[data_offset + 9], body[data_offset + 13]];
148
+ this.zone_heating_temperature_min = [body[data_offset + 10], body[data_offset + 14]];
149
+ this.zone_cooling_temperature_max = [body[data_offset + 11], body[data_offset + 15]];
150
+ this.zone_cooling_temperature_min = [body[data_offset + 12], body[data_offset + 16]];
151
+ this.room_temperature_max = body[data_offset + 17] / 2;
152
+ this.room_temperature_min = body[data_offset + 18] / 2;
153
+ this.dhw_temperature_max = body[data_offset + 19];
154
+ this.dhw_temperature_min = body[data_offset + 20];
155
+ this.tank_actual_temperature = body[data_offset + 21];
156
+ this.error_code = body[data_offset + 22];
157
+ }
158
+ }
159
+ export class C3Notify1MessageBody extends MessageBody {
160
+ status_tbh;
161
+ status_dhw;
162
+ status_ibh;
163
+ status_heating;
164
+ total_energy_consumption;
165
+ total_produced_energy;
166
+ outdoor_temperature;
167
+ constructor(body, data_offset = 0) {
168
+ super(body);
169
+ const status_byte = body[data_offset];
170
+ this.status_tbh = (status_byte & 0x08) > 0;
171
+ this.status_dhw = (status_byte & 0x04) > 0;
172
+ this.status_ibh = (status_byte & 0x02) > 0;
173
+ this.status_heating = (status_byte & 0x01) > 0;
174
+ this.total_energy_consumption = body.readUInt32LE(data_offset + 1);
175
+ this.total_produced_energy = body.readUInt32LE(data_offset + 5);
176
+ this.outdoor_temperature = body[data_offset + 9] | 0;
177
+ }
178
+ }
179
+ export class MessageC3Response extends MessageResponse {
180
+ constructor(message) {
181
+ super(message);
182
+ if (([MessageType.SET, MessageType.NOTIFY1, MessageType.QUERY].includes(this.message_type) && this.body_type === 0x01) ||
183
+ this.message_type === MessageType.NOTIFY2) {
184
+ this.set_body(new C3MessageBody(this.body, 1));
185
+ }
186
+ else if (this.message_type === MessageType.NOTIFY1 && this.body_type === 0x04) {
187
+ this.set_body(new C3Notify1MessageBody(this.body, 1));
188
+ }
189
+ }
190
+ }
153
191
  //# sourceMappingURL=MideaC3Message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MideaC3Message.js","sourceRoot":"","sources":["../../../src/devices/c3/MideaC3Message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MideaC3Message.js","sourceRoot":"","sources":["../../../src/devices/c3/MideaC3Message.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEvG,MAAe,aAAc,SAAQ,cAAc;IACjD,YAAY,uBAA+B,EAAE,YAAyB,EAAE,SAAiB;QACvF,KAAK,CAAC,UAAU,CAAC,yBAAyB,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAChG,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,YAAY,uBAA+B;QACzC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,aAAa;IAG3C,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,IAAI,CAAS;IACb,uBAAuB,CAAW;IAClC,sBAAsB,CAAS;IAC/B,uBAAuB,CAAS;IAChC,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,QAAQ,CAAU;IAClB,GAAG,CAAU;IAEb,YAAY,uBAA+B;QACzC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,KAAK;QACP,SAAS;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,SAAS;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7C,MAAM,uBAAuB,GAAG,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC;YACjB,WAAW,GAAG,WAAW,GAAG,SAAS;YACrC,IAAI,CAAC,IAAI;YACT,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,uBAAuB;YACvB,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ;SACjD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAGjD,WAAW,CAAU;IACrB,YAAY,CAAU;IAEtB,YAAY,uBAA+B;QACzC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAErD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,aAAa;IAG9C,QAAQ,CAAU;IAElB,YAAY,uBAA+B;QACzC,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,WAAW,CAAU;IACrB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,GAAG,CAAU;IACb,QAAQ,CAAU;IAClB,qBAAqB,CAAY;IACjC,WAAW,CAAU;IACrB,QAAQ,CAAU;IAClB,IAAI,CAAS;IACb,SAAS,CAAS;IAClB,gBAAgB,CAAW;IAC3B,eAAe,CAAS;IACxB,gBAAgB,CAAS;IACzB,4BAA4B,CAAW;IACvC,4BAA4B,CAAW;IACvC,4BAA4B,CAAW;IACvC,4BAA4B,CAAW;IACvC,oBAAoB,CAAS;IAC7B,oBAAoB,CAAS;IAC7B,mBAAmB,CAAS;IAC5B,mBAAmB,CAAS;IAC5B,uBAAuB,CAAS;IAChC,UAAU,CAAS;IAEnB,YAAY,IAAY,EAAE,WAAW,GAAG,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD,UAAU,CAAU;IACpB,UAAU,CAAU;IACpB,UAAU,CAAU;IACpB,cAAc,CAAU;IACxB,wBAAwB,CAAS;IACjC,qBAAqB,CAAS;IAC9B,mBAAmB,CAAS;IAE5B,YAAY,IAAY,EAAE,WAAW,GAAG,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IACE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;YAClH,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,OAAO,EACzC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAChF,IAAI,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF"}
@@ -1,30 +1,28 @@
1
- /***********************************************************************
2
- * Midea Front Load Washer 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
- export interface DBAttributes extends DeviceAttributeBase {
16
- POWER: boolean;
17
- START: boolean;
18
- WASHING_DATA: Buffer;
19
- PROGRESS: number;
20
- TIME_REMAINING: number;
21
- }
22
- export default class MideaDBDevice extends MideaDevice {
23
- attributes: DBAttributes;
24
- constructor(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig);
25
- build_query(): MessageRequest[];
26
- process_message(msg: Buffer): void;
27
- set_subtype(): void;
28
- set_attribute(attributes: Partial<DBAttributes>): Promise<void>;
29
- }
30
- //# sourceMappingURL=MideaDBDevice.d.ts.map
1
+ /***********************************************************************
2
+ * Midea Front Load Washer 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
+ import { Logger } from 'homebridge';
10
+ import MideaDevice, { DeviceAttributeBase } from '../../core/MideaDevice.js';
11
+ import { DeviceInfo } from '../../core/MideaConstants.js';
12
+ import { Config, DeviceConfig } from '../../platformUtils.js';
13
+ import { MessageRequest } from '../../core/MideaMessage.js';
14
+ export interface DBAttributes extends DeviceAttributeBase {
15
+ POWER: boolean;
16
+ START: boolean;
17
+ WASHING_DATA: Buffer;
18
+ PROGRESS: number;
19
+ TIME_REMAINING: number;
20
+ }
21
+ export default class MideaDBDevice extends MideaDevice {
22
+ attributes: DBAttributes;
23
+ constructor(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig);
24
+ build_query(): MessageRequest[];
25
+ process_message(msg: Buffer): void;
26
+ set_subtype(): void;
27
+ set_attribute(attributes: Partial<DBAttributes>): Promise<void>;
28
+ }