homebridge-midea-platform 1.2.0-beta.7 → 1.2.1

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 (168) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/README.md +2 -2
  3. package/config.schema.json +1 -1
  4. package/dist/accessory/AccessoryFactory.d.ts +14 -15
  5. package/dist/accessory/AccessoryFactory.js +34 -40
  6. package/dist/accessory/AccessoryFactory.js.map +1 -1
  7. package/dist/accessory/AirConditionerAccessory.d.ts +98 -99
  8. package/dist/accessory/AirConditionerAccessory.js +666 -662
  9. package/dist/accessory/AirConditionerAccessory.js.map +1 -1
  10. package/dist/accessory/BaseAccessory.d.ts +11 -12
  11. package/dist/accessory/BaseAccessory.js +21 -21
  12. package/dist/accessory/BaseAccessory.js.map +1 -1
  13. package/dist/accessory/DehumidifierAccessory.d.ts +45 -46
  14. package/dist/accessory/DehumidifierAccessory.js +343 -344
  15. package/dist/accessory/DehumidifierAccessory.js.map +1 -1
  16. package/dist/accessory/DishwasherAccessory.d.ts +30 -31
  17. package/dist/accessory/DishwasherAccessory.js +59 -63
  18. package/dist/accessory/DishwasherAccessory.js.map +1 -1
  19. package/dist/accessory/ElectricWaterHeaterAccessory.d.ts +44 -45
  20. package/dist/accessory/ElectricWaterHeaterAccessory.js +172 -176
  21. package/dist/accessory/ElectricWaterHeaterAccessory.js.map +1 -1
  22. package/dist/accessory/FanAccessory.d.ts +39 -40
  23. package/dist/accessory/FanAccessory.js +120 -123
  24. package/dist/accessory/FanAccessory.js.map +1 -1
  25. package/dist/accessory/FrontLoadWasherAccessory.d.ts +30 -31
  26. package/dist/accessory/FrontLoadWasherAccessory.js +63 -66
  27. package/dist/accessory/FrontLoadWasherAccessory.js.map +1 -1
  28. package/dist/accessory/GasWaterHeaterAccessory.d.ts +51 -52
  29. package/dist/accessory/GasWaterHeaterAccessory.js +217 -216
  30. package/dist/accessory/GasWaterHeaterAccessory.js.map +1 -1
  31. package/dist/accessory/{HeatPumpWifiControllerAccessory.d.ts → HeatPumpWiFiControllerAccessory.d.ts} +34 -35
  32. package/dist/accessory/{HeatPumpWifiControllerAccessory.js → HeatPumpWiFiControllerAccessory.js} +55 -36
  33. package/dist/accessory/HeatPumpWiFiControllerAccessory.js.map +1 -0
  34. package/dist/core/MideaCloud.d.ts +34 -36
  35. package/dist/core/MideaCloud.js +349 -350
  36. package/dist/core/MideaCloud.js.map +1 -1
  37. package/dist/core/MideaConstants.d.ts +51 -52
  38. package/dist/core/MideaConstants.js +56 -59
  39. package/dist/core/MideaConstants.js.map +1 -1
  40. package/dist/core/MideaDevice.d.ts +75 -78
  41. package/dist/core/MideaDevice.js +430 -420
  42. package/dist/core/MideaDevice.js.map +1 -1
  43. package/dist/core/MideaDiscover.d.ts +34 -36
  44. package/dist/core/MideaDiscover.js +208 -212
  45. package/dist/core/MideaDiscover.js.map +1 -1
  46. package/dist/core/MideaMessage.d.ts +75 -76
  47. package/dist/core/MideaMessage.js +185 -184
  48. package/dist/core/MideaMessage.js.map +1 -1
  49. package/dist/core/MideaPacketBuilder.d.ts +9 -11
  50. package/dist/core/MideaPacketBuilder.js +60 -60
  51. package/dist/core/MideaPacketBuilder.js.map +1 -1
  52. package/dist/core/MideaSecurity.d.ts +62 -64
  53. package/dist/core/MideaSecurity.js +241 -251
  54. package/dist/core/MideaSecurity.js.map +1 -1
  55. package/dist/core/MideaUtils.d.ts +31 -33
  56. package/dist/core/MideaUtils.js +178 -181
  57. package/dist/core/MideaUtils.js.map +1 -1
  58. package/dist/devices/DeviceFactory.d.ts +14 -15
  59. package/dist/devices/DeviceFactory.js +34 -40
  60. package/dist/devices/DeviceFactory.js.map +1 -1
  61. package/dist/devices/a1/MideaA1Device.d.ts +75 -77
  62. package/dist/devices/a1/MideaA1Device.js +142 -145
  63. package/dist/devices/a1/MideaA1Device.js.map +1 -1
  64. package/dist/devices/a1/MideaA1Message.d.ts +39 -41
  65. package/dist/devices/a1/MideaA1Message.js +219 -198
  66. package/dist/devices/a1/MideaA1Message.js.map +1 -1
  67. package/dist/devices/ac/MideaACDevice.d.ts +105 -107
  68. package/dist/devices/ac/MideaACDevice.js +417 -400
  69. package/dist/devices/ac/MideaACDevice.js.map +1 -1
  70. package/dist/devices/ac/MideaACMessage.d.ts +97 -96
  71. package/dist/devices/ac/MideaACMessage.js +724 -621
  72. package/dist/devices/ac/MideaACMessage.js.map +1 -1
  73. package/dist/devices/c3/MideaC3Device.d.ts +73 -75
  74. package/dist/devices/c3/MideaC3Device.js +249 -255
  75. package/dist/devices/c3/MideaC3Device.js.map +1 -1
  76. package/dist/devices/c3/MideaC3Message.d.ts +81 -80
  77. package/dist/devices/c3/MideaC3Message.js +190 -152
  78. package/dist/devices/c3/MideaC3Message.js.map +1 -1
  79. package/dist/devices/db/MideaDBDevice.d.ts +28 -30
  80. package/dist/devices/db/MideaDBDevice.js +94 -100
  81. package/dist/devices/db/MideaDBDevice.js.map +1 -1
  82. package/dist/devices/db/MideaDBMessage.d.ts +31 -33
  83. package/dist/devices/db/MideaDBMessage.js +101 -101
  84. package/dist/devices/db/MideaDBMessage.js.map +1 -1
  85. package/dist/devices/e1/MideaE1Device.d.ts +55 -57
  86. package/dist/devices/e1/MideaE1Device.js +122 -128
  87. package/dist/devices/e1/MideaE1Device.js.map +1 -1
  88. package/dist/devices/e1/MideaE1Message.d.ts +27 -29
  89. package/dist/devices/e1/MideaE1Message.js +128 -107
  90. package/dist/devices/e1/MideaE1Message.js.map +1 -1
  91. package/dist/devices/e2/MideaE2Device.d.ts +43 -45
  92. package/dist/devices/e2/MideaE2Device.js +124 -129
  93. package/dist/devices/e2/MideaE2Device.js.map +1 -1
  94. package/dist/devices/e2/MideaE2Message.d.ts +34 -34
  95. package/dist/devices/e2/MideaE2Message.js +143 -132
  96. package/dist/devices/e2/MideaE2Message.js.map +1 -1
  97. package/dist/devices/e3/MideaE3Device.d.ts +42 -44
  98. package/dist/devices/e3/MideaE3Device.js +132 -137
  99. package/dist/devices/e3/MideaE3Device.js.map +1 -1
  100. package/dist/devices/e3/MideaE3Message.d.ts +51 -52
  101. package/dist/devices/e3/MideaE3Message.js +144 -136
  102. package/dist/devices/e3/MideaE3Message.js.map +1 -1
  103. package/dist/devices/fa/MideaFADevice.d.ts +35 -37
  104. package/dist/devices/fa/MideaFADevice.js +102 -106
  105. package/dist/devices/fa/MideaFADevice.js.map +1 -1
  106. package/dist/devices/fa/MideaFAMessage.d.ts +38 -39
  107. package/dist/devices/fa/MideaFAMessage.js +108 -98
  108. package/dist/devices/fa/MideaFAMessage.js.map +1 -1
  109. package/dist/index.d.ts +6 -7
  110. package/dist/index.js +8 -6
  111. package/dist/index.js.map +1 -1
  112. package/dist/platform.d.ts +61 -61
  113. package/dist/platform.js +232 -212
  114. package/dist/platform.js.map +1 -1
  115. package/dist/platformUtils.d.ts +116 -117
  116. package/dist/platformUtils.js +107 -110
  117. package/dist/platformUtils.js.map +1 -1
  118. package/dist/settings.d.ts +8 -9
  119. package/dist/settings.js +8 -11
  120. package/dist/settings.js.map +1 -1
  121. package/docs/download_lua.md +9 -0
  122. package/eslint.config.js +43 -0
  123. package/homebridge-ui/public/js/bootstrap.min.js +1179 -1
  124. package/homebridge-ui/{server.js → server.cjs} +30 -30
  125. package/package.json +21 -31
  126. package/.eslintignore +0 -3
  127. package/.husky/pre-commit +0 -5
  128. package/.prettierrc +0 -19
  129. package/dist/accessory/AccessoryFactory.d.ts.map +0 -1
  130. package/dist/accessory/AirConditionerAccessory.d.ts.map +0 -1
  131. package/dist/accessory/BaseAccessory.d.ts.map +0 -1
  132. package/dist/accessory/DehumidifierAccessory.d.ts.map +0 -1
  133. package/dist/accessory/DishwasherAccessory.d.ts.map +0 -1
  134. package/dist/accessory/ElectricWaterHeaterAccessory.d.ts.map +0 -1
  135. package/dist/accessory/FanAccessory.d.ts.map +0 -1
  136. package/dist/accessory/FrontLoadWasherAccessory.d.ts.map +0 -1
  137. package/dist/accessory/GasWaterHeaterAccessory.d.ts.map +0 -1
  138. package/dist/accessory/HeatPumpWifiControllerAccessory.d.ts.map +0 -1
  139. package/dist/accessory/HeatPumpWifiControllerAccessory.js.map +0 -1
  140. package/dist/core/MideaCloud.d.ts.map +0 -1
  141. package/dist/core/MideaConstants.d.ts.map +0 -1
  142. package/dist/core/MideaDevice.d.ts.map +0 -1
  143. package/dist/core/MideaDiscover.d.ts.map +0 -1
  144. package/dist/core/MideaMessage.d.ts.map +0 -1
  145. package/dist/core/MideaPacketBuilder.d.ts.map +0 -1
  146. package/dist/core/MideaSecurity.d.ts.map +0 -1
  147. package/dist/core/MideaUtils.d.ts.map +0 -1
  148. package/dist/devices/DeviceFactory.d.ts.map +0 -1
  149. package/dist/devices/a1/MideaA1Device.d.ts.map +0 -1
  150. package/dist/devices/a1/MideaA1Message.d.ts.map +0 -1
  151. package/dist/devices/ac/MideaACDevice.d.ts.map +0 -1
  152. package/dist/devices/ac/MideaACMessage.d.ts.map +0 -1
  153. package/dist/devices/c3/MideaC3Device.d.ts.map +0 -1
  154. package/dist/devices/c3/MideaC3Message.d.ts.map +0 -1
  155. package/dist/devices/db/MideaDBDevice.d.ts.map +0 -1
  156. package/dist/devices/db/MideaDBMessage.d.ts.map +0 -1
  157. package/dist/devices/e1/MideaE1Device.d.ts.map +0 -1
  158. package/dist/devices/e1/MideaE1Message.d.ts.map +0 -1
  159. package/dist/devices/e2/MideaE2Device.d.ts.map +0 -1
  160. package/dist/devices/e2/MideaE2Message.d.ts.map +0 -1
  161. package/dist/devices/e3/MideaE3Device.d.ts.map +0 -1
  162. package/dist/devices/e3/MideaE3Message.d.ts.map +0 -1
  163. package/dist/devices/fa/MideaFADevice.d.ts.map +0 -1
  164. package/dist/devices/fa/MideaFAMessage.d.ts.map +0 -1
  165. package/dist/index.d.ts.map +0 -1
  166. package/dist/platform.d.ts.map +0 -1
  167. package/dist/platformUtils.d.ts.map +0 -1
  168. package/dist/settings.d.ts.map +0 -1
@@ -1,77 +1,75 @@
1
- /// <reference types="node" />
2
- /***********************************************************************
3
- * Midea Dehumidifier Device class
4
- *
5
- * Copyright (c) 2023 David Kerr, https://github.com/dkerr64
6
- *
7
- * With thanks to https://github.com/kovapatrik/homebridge-midea-platform
8
- * And https://github.com/georgezhao2010/midea_ac_lan
9
- *
10
- * An instance of this class is created for each device the platform registers.
11
- *
12
- */
13
- import { Logger } from 'homebridge';
14
- import { DeviceInfo } from '../../core/MideaConstants';
15
- import MideaDevice, { DeviceAttributeBase } from '../../core/MideaDevice';
16
- import { MessageQuery, MessageSet } from './MideaA1Message';
17
- import { Config, DeviceConfig } from '../../platformUtils';
18
- export interface A1Attributes extends DeviceAttributeBase {
19
- POWER: boolean | undefined;
20
- PROMPT_TONE: boolean;
21
- CHILD_LOCK: boolean | undefined;
22
- MODE: number;
23
- FAN_SPEED: number;
24
- SWING: boolean | undefined;
25
- TARGET_HUMIDITY: number;
26
- ANION: boolean;
27
- TANK_LEVEL: number;
28
- WATER_LEVEL_SET: number;
29
- TANK_FULL: boolean;
30
- CURRENT_HUMIDITY: number;
31
- CURRENT_TEMPERATURE: number;
32
- DEFROSTING: boolean;
33
- FILTER_INDICATOR: boolean;
34
- PUMP: boolean;
35
- PUMP_SWITCH_FLAG: boolean;
36
- SLEEP_MODE: boolean;
37
- }
38
- export default class MideaA1Device extends MideaDevice {
39
- readonly MIN_HUMIDITY: number;
40
- readonly MAX_HUMIDITY: number;
41
- readonly HUMIDITY_STEP: number;
42
- attributes: A1Attributes;
43
- readonly MODES: {
44
- 0: string;
45
- 1: string;
46
- 2: string;
47
- 3: string;
48
- 4: string;
49
- };
50
- readonly SPEEDS: {
51
- 1: string;
52
- 40: string;
53
- 60: string;
54
- 80: string;
55
- 102: string;
56
- 127: string;
57
- };
58
- readonly WATER_LEVEL_SETS: {
59
- 25: string;
60
- 50: string;
61
- 75: string;
62
- 100: string;
63
- };
64
- /*********************************************************************
65
- * Constructor initializes all the attributes. We set some to invalid
66
- * values so that they are detected as "changed" on the first status
67
- * refresh... and passed back to the Homebridge/HomeKit accessory callback
68
- * function to set their initial values.
69
- */
70
- constructor(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig);
71
- build_query(): MessageQuery[];
72
- process_message(msg: Buffer): void;
73
- make_message_set(): MessageSet;
74
- set_attribute(attributes: Partial<A1Attributes>): Promise<void>;
75
- protected set_subtype(): void;
76
- }
77
- //# sourceMappingURL=MideaA1Device.d.ts.map
1
+ /***********************************************************************
2
+ * Midea Dehumidifier Device class
3
+ *
4
+ * Copyright (c) 2023 David Kerr, https://github.com/dkerr64
5
+ *
6
+ * With thanks to https://github.com/kovapatrik/homebridge-midea-platform
7
+ * And https://github.com/georgezhao2010/midea_ac_lan
8
+ *
9
+ * An instance of this class is created for each device the platform registers.
10
+ *
11
+ */
12
+ import { Logger } from 'homebridge';
13
+ import { DeviceInfo } from '../../core/MideaConstants.js';
14
+ import MideaDevice, { DeviceAttributeBase } from '../../core/MideaDevice.js';
15
+ import { MessageQuery, MessageSet } from './MideaA1Message.js';
16
+ import { Config, DeviceConfig } from '../../platformUtils.js';
17
+ export interface A1Attributes extends DeviceAttributeBase {
18
+ POWER: boolean | undefined;
19
+ PROMPT_TONE: boolean;
20
+ CHILD_LOCK: boolean | undefined;
21
+ MODE: number;
22
+ FAN_SPEED: number;
23
+ SWING: boolean | undefined;
24
+ TARGET_HUMIDITY: number;
25
+ ANION: boolean;
26
+ TANK_LEVEL: number;
27
+ WATER_LEVEL_SET: number;
28
+ TANK_FULL: boolean;
29
+ CURRENT_HUMIDITY: number;
30
+ CURRENT_TEMPERATURE: number;
31
+ DEFROSTING: boolean;
32
+ FILTER_INDICATOR: boolean;
33
+ PUMP: boolean;
34
+ PUMP_SWITCH_FLAG: boolean;
35
+ SLEEP_MODE: boolean;
36
+ }
37
+ export default class MideaA1Device extends MideaDevice {
38
+ readonly MIN_HUMIDITY: number;
39
+ readonly MAX_HUMIDITY: number;
40
+ readonly HUMIDITY_STEP: number;
41
+ attributes: A1Attributes;
42
+ readonly MODES: {
43
+ 0: string;
44
+ 1: string;
45
+ 2: string;
46
+ 3: string;
47
+ 4: string;
48
+ };
49
+ readonly SPEEDS: {
50
+ 1: string;
51
+ 40: string;
52
+ 60: string;
53
+ 80: string;
54
+ 102: string;
55
+ 127: string;
56
+ };
57
+ readonly WATER_LEVEL_SETS: {
58
+ 25: string;
59
+ 50: string;
60
+ 75: string;
61
+ 100: string;
62
+ };
63
+ /*********************************************************************
64
+ * Constructor initializes all the attributes. We set some to invalid
65
+ * values so that they are detected as "changed" on the first status
66
+ * refresh... and passed back to the Homebridge/HomeKit accessory callback
67
+ * function to set their initial values.
68
+ */
69
+ constructor(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig);
70
+ build_query(): MessageQuery[];
71
+ process_message(msg: Buffer): void;
72
+ make_message_set(): MessageSet;
73
+ set_attribute(attributes: Partial<A1Attributes>): Promise<void>;
74
+ protected set_subtype(): void;
75
+ }
@@ -1,146 +1,143 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const MideaDevice_1 = __importDefault(require("../../core/MideaDevice"));
7
- const MideaA1Message_1 = require("./MideaA1Message");
8
- class MideaA1Device extends MideaDevice_1.default {
9
- /*********************************************************************
10
- * Constructor initializes all the attributes. We set some to invalid
11
- * values so that they are detected as "changed" on the first status
12
- * refresh... and passed back to the Homebridge/HomeKit accessory callback
13
- * function to set their initial values.
14
- */
15
- constructor(logger, device_info, config, deviceConfig) {
16
- super(logger, device_info, config, deviceConfig);
17
- this.MODES = {
18
- 0: 'Off',
19
- 1: 'Auto',
20
- 2: 'Continuous',
21
- 3: 'Clothes-Dry',
22
- 4: 'Shoes-Dry',
23
- };
24
- this.SPEEDS = {
25
- 1: 'Lowest',
26
- 40: 'Low',
27
- 60: 'Medium',
28
- 80: 'High',
29
- 102: 'Auto',
30
- 127: 'Off',
31
- };
32
- this.WATER_LEVEL_SETS = {
33
- 25: 'Low',
34
- 50: 'Medium',
35
- 75: 'High',
36
- 100: 'Full',
37
- };
38
- this.attributes = {
39
- POWER: undefined,
40
- PROMPT_TONE: false,
41
- CHILD_LOCK: undefined,
42
- MODE: 0,
43
- FAN_SPEED: 0,
44
- SWING: undefined,
45
- TARGET_HUMIDITY: 0,
46
- ANION: false,
47
- TANK_LEVEL: 0,
48
- WATER_LEVEL_SET: 50,
49
- TANK_FULL: false,
50
- CURRENT_HUMIDITY: 0,
51
- CURRENT_TEMPERATURE: 0,
52
- DEFROSTING: false,
53
- FILTER_INDICATOR: false,
54
- PUMP: false,
55
- PUMP_SWITCH_FLAG: false,
56
- SLEEP_MODE: false,
57
- };
58
- this.MIN_HUMIDITY = deviceConfig.A1_options.minHumidity;
59
- this.MAX_HUMIDITY = deviceConfig.A1_options.maxHumidity;
60
- this.HUMIDITY_STEP = deviceConfig.A1_options.humidityStep;
61
- }
62
- build_query() {
63
- return [new MideaA1Message_1.MessageQuery(this.device_protocol_version)];
64
- }
65
- process_message(msg) {
66
- const message = new MideaA1Message_1.MessageA1Response(msg);
67
- if (this.verbose) {
68
- this.logger.debug(`[${this.name}] Body:\n${JSON.stringify(message.body)}`);
69
- }
70
- const changed = {};
71
- for (const status of Object.keys(this.attributes)) {
72
- const value = message.get_body_attribute(status.toLowerCase());
73
- if (value !== undefined) {
74
- if (this.attributes[status] !== value) {
75
- // Track only those attributes that change value. So when we send to the Homebridge /
76
- // HomeKit accessory we only update values that change. First time through this
77
- // should be most/all attributes having initialized them to invalid values.
78
- this.logger.debug(`[${this.name}] Value for ${status} changed from '${this.attributes[status]}' to '${value}'`);
79
- changed[status] = value;
80
- }
81
- this.attributes[status] = value;
82
- }
83
- }
84
- // Now we update Homebridge / Homekit accessory
85
- if (Object.keys(changed).length > 0) {
86
- this.update(changed);
87
- }
88
- else {
89
- this.logger.debug(`[${this.name}] Status unchanged`);
90
- }
91
- }
92
- make_message_set() {
93
- const message = new MideaA1Message_1.MessageSet(this.device_protocol_version);
94
- message.power = !!this.attributes.POWER; // force to boolean
95
- message.prompt_tone = this.attributes.PROMPT_TONE;
96
- message.mode = this.attributes.MODE;
97
- message.child_lock = !!this.attributes.CHILD_LOCK; // force to boolean
98
- message.fan_speed = this.attributes.FAN_SPEED;
99
- message.target_humidity = this.attributes.TARGET_HUMIDITY;
100
- message.swing = !!this.attributes.SWING;
101
- message.anion = this.attributes.ANION;
102
- message.water_level_set = this.attributes.WATER_LEVEL_SET;
103
- return message;
104
- }
105
- async set_attribute(attributes) {
106
- var _a;
107
- const messageToSend = {
108
- SET: undefined,
109
- };
110
- try {
111
- for (const [k, v] of Object.entries(attributes)) {
112
- if (v === this.attributes[k]) {
113
- this.logger.info(`[${this.name}] Attribute ${k} already set to ${v}`);
114
- continue;
115
- }
116
- this.logger.info(`[${this.name}] Set device attribute ${k} to: ${v}`);
117
- this.attributes[k] = v;
118
- // not sensor data
119
- if (!['CURRENT_TEMPERATURE', 'CURRENT_HUMIDITY', 'TANK_FULL', 'DEFROSTING', 'FILTER_INDICATOR', 'PUMP'].includes(k)) {
120
- if (k === 'PROMPT_TONE') {
121
- this.attributes.PROMPT_TONE = !!v;
122
- }
123
- else {
124
- (_a = messageToSend.SET) !== null && _a !== void 0 ? _a : (messageToSend.SET = this.make_message_set());
125
- // TODO handle MODE, FAN_SPEED and WATER_LEVEL_SET to ensure valid value.
126
- }
127
- }
128
- }
129
- for (const [k, v] of Object.entries(messageToSend)) {
130
- if (v !== undefined) {
131
- this.logger.debug(`[${this.name}] Set message ${k}:\n${JSON.stringify(v)}`);
132
- await this.build_send(v);
133
- }
134
- }
135
- }
136
- catch (err) {
137
- const msg = err instanceof Error ? err.stack : err;
138
- this.logger.debug(`[${this.name}] Error in set_attribute (${this.ip}:${this.port}):\n${msg}`);
139
- }
140
- }
141
- set_subtype() {
142
- this.logger.debug('No subtype for A1 (dehumidifier) device');
143
- }
144
- }
145
- exports.default = MideaA1Device;
1
+ import MideaDevice from '../../core/MideaDevice.js';
2
+ import { MessageQuery, MessageA1Response, MessageSet } from './MideaA1Message.js';
3
+ export default class MideaA1Device extends MideaDevice {
4
+ MIN_HUMIDITY;
5
+ MAX_HUMIDITY;
6
+ HUMIDITY_STEP;
7
+ attributes;
8
+ MODES = {
9
+ 0: 'Off',
10
+ 1: 'Auto',
11
+ 2: 'Continuous',
12
+ 3: 'Clothes-Dry',
13
+ 4: 'Shoes-Dry',
14
+ };
15
+ SPEEDS = {
16
+ 1: 'Lowest',
17
+ 40: 'Low',
18
+ 60: 'Medium',
19
+ 80: 'High',
20
+ 102: 'Auto',
21
+ 127: 'Off',
22
+ };
23
+ WATER_LEVEL_SETS = {
24
+ 25: 'Low',
25
+ 50: 'Medium',
26
+ 75: 'High',
27
+ 100: 'Full',
28
+ };
29
+ /*********************************************************************
30
+ * Constructor initializes all the attributes. We set some to invalid
31
+ * values so that they are detected as "changed" on the first status
32
+ * refresh... and passed back to the Homebridge/HomeKit accessory callback
33
+ * function to set their initial values.
34
+ */
35
+ constructor(logger, device_info, config, deviceConfig) {
36
+ super(logger, device_info, config, deviceConfig);
37
+ this.attributes = {
38
+ POWER: undefined, // invalid
39
+ PROMPT_TONE: false,
40
+ CHILD_LOCK: undefined,
41
+ MODE: 0,
42
+ FAN_SPEED: 0,
43
+ SWING: undefined, // invalid
44
+ TARGET_HUMIDITY: 0,
45
+ ANION: false,
46
+ TANK_LEVEL: 0,
47
+ WATER_LEVEL_SET: 50,
48
+ TANK_FULL: false,
49
+ CURRENT_HUMIDITY: 0,
50
+ CURRENT_TEMPERATURE: 0,
51
+ DEFROSTING: false,
52
+ FILTER_INDICATOR: false,
53
+ PUMP: false,
54
+ PUMP_SWITCH_FLAG: false,
55
+ SLEEP_MODE: false,
56
+ };
57
+ this.MIN_HUMIDITY = deviceConfig.A1_options.minHumidity;
58
+ this.MAX_HUMIDITY = deviceConfig.A1_options.maxHumidity;
59
+ this.HUMIDITY_STEP = deviceConfig.A1_options.humidityStep;
60
+ }
61
+ build_query() {
62
+ return [new MessageQuery(this.device_protocol_version)];
63
+ }
64
+ process_message(msg) {
65
+ const message = new MessageA1Response(msg);
66
+ if (this.verbose) {
67
+ this.logger.debug(`[${this.name}] Body:\n${JSON.stringify(message.body)}`);
68
+ }
69
+ const changed = {};
70
+ for (const status of Object.keys(this.attributes)) {
71
+ const value = message.get_body_attribute(status.toLowerCase());
72
+ if (value !== undefined) {
73
+ if (this.attributes[status] !== value) {
74
+ // Track only those attributes that change value. So when we send to the Homebridge /
75
+ // HomeKit accessory we only update values that change. First time through this
76
+ // should be most/all attributes having initialized them to invalid values.
77
+ this.logger.debug(`[${this.name}] Value for ${status} changed from '${this.attributes[status]}' to '${value}'`);
78
+ changed[status] = value;
79
+ }
80
+ this.attributes[status] = value;
81
+ }
82
+ }
83
+ // Now we update Homebridge / Homekit accessory
84
+ if (Object.keys(changed).length > 0) {
85
+ this.update(changed);
86
+ }
87
+ else {
88
+ this.logger.debug(`[${this.name}] Status unchanged`);
89
+ }
90
+ }
91
+ make_message_set() {
92
+ const message = new MessageSet(this.device_protocol_version);
93
+ message.power = !!this.attributes.POWER; // force to boolean
94
+ message.prompt_tone = this.attributes.PROMPT_TONE;
95
+ message.mode = this.attributes.MODE;
96
+ message.child_lock = !!this.attributes.CHILD_LOCK; // force to boolean
97
+ message.fan_speed = this.attributes.FAN_SPEED;
98
+ message.target_humidity = this.attributes.TARGET_HUMIDITY;
99
+ message.swing = !!this.attributes.SWING;
100
+ message.anion = this.attributes.ANION;
101
+ message.water_level_set = this.attributes.WATER_LEVEL_SET;
102
+ return message;
103
+ }
104
+ async set_attribute(attributes) {
105
+ const messageToSend = {
106
+ SET: undefined,
107
+ };
108
+ try {
109
+ for (const [k, v] of Object.entries(attributes)) {
110
+ if (v === this.attributes[k]) {
111
+ this.logger.info(`[${this.name}] Attribute ${k} already set to ${v}`);
112
+ continue;
113
+ }
114
+ this.logger.info(`[${this.name}] Set device attribute ${k} to: ${v}`);
115
+ this.attributes[k] = v;
116
+ // not sensor data
117
+ if (!['CURRENT_TEMPERATURE', 'CURRENT_HUMIDITY', 'TANK_FULL', 'DEFROSTING', 'FILTER_INDICATOR', 'PUMP'].includes(k)) {
118
+ if (k === 'PROMPT_TONE') {
119
+ this.attributes.PROMPT_TONE = !!v;
120
+ }
121
+ else {
122
+ messageToSend.SET ??= this.make_message_set();
123
+ // TODO handle MODE, FAN_SPEED and WATER_LEVEL_SET to ensure valid value.
124
+ }
125
+ }
126
+ }
127
+ for (const [k, v] of Object.entries(messageToSend)) {
128
+ if (v !== undefined) {
129
+ this.logger.debug(`[${this.name}] Set message ${k}:\n${JSON.stringify(v)}`);
130
+ await this.build_send(v);
131
+ }
132
+ }
133
+ }
134
+ catch (err) {
135
+ const msg = err instanceof Error ? err.stack : err;
136
+ this.logger.debug(`[${this.name}] Error in set_attribute (${this.ip}:${this.port}):\n${msg}`);
137
+ }
138
+ }
139
+ set_subtype() {
140
+ this.logger.debug('No subtype for A1 (dehumidifier) device');
141
+ }
142
+ }
146
143
  //# sourceMappingURL=MideaA1Device.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MideaA1Device.js","sourceRoot":"","sources":["../../../src/devices/a1/MideaA1Device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MideaA1Device.js","sourceRoot":"","sources":["../../../src/devices/a1/MideaA1Device.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,39 @@
1
- /// <reference types="node" />
2
- import { MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage';
3
- declare abstract class MessageA1Base extends MessageRequest {
4
- private static message_serial;
5
- private message_id;
6
- constructor(device_protocol_version: number, message_type: MessageType, body_type: number);
7
- get body(): Buffer;
8
- }
9
- export declare class MessageQuery extends MessageA1Base {
10
- constructor(device_protocol_version: number);
11
- get _body(): Buffer;
12
- }
13
- export declare class MessageNewProtocolQuery extends MessageA1Base {
14
- private readonly alternate_display;
15
- constructor(device_protocol_version: number, alternate_display?: boolean);
16
- get _body(): Buffer;
17
- }
18
- export declare class MessageSet extends MessageA1Base {
19
- power: boolean;
20
- prompt_tone: boolean;
21
- mode: number;
22
- fan_speed: number;
23
- child_lock: boolean;
24
- target_humidity: number;
25
- swing: boolean;
26
- anion: boolean;
27
- water_level_set: number;
28
- constructor(device_protocol_version: number);
29
- get _body(): Buffer;
30
- }
31
- export declare class MessageNewProtocolSet extends MessageA1Base {
32
- light: boolean;
33
- constructor(device_protocol_version: number);
34
- get _body(): Buffer;
35
- }
36
- export declare class MessageA1Response extends MessageResponse {
37
- private readonly message;
38
- constructor(message: Buffer);
39
- }
40
- export {};
41
- //# sourceMappingURL=MideaA1Message.d.ts.map
1
+ import { MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage.js';
2
+ declare abstract class MessageA1Base extends MessageRequest {
3
+ private static message_serial;
4
+ private message_id;
5
+ constructor(device_protocol_version: number, message_type: MessageType, body_type: number);
6
+ get body(): Buffer;
7
+ }
8
+ export declare class MessageQuery extends MessageA1Base {
9
+ constructor(device_protocol_version: number);
10
+ get _body(): Buffer;
11
+ }
12
+ export declare class MessageNewProtocolQuery extends MessageA1Base {
13
+ private readonly alternate_display;
14
+ constructor(device_protocol_version: number, alternate_display?: boolean);
15
+ get _body(): Buffer;
16
+ }
17
+ export declare class MessageSet extends MessageA1Base {
18
+ power: boolean;
19
+ prompt_tone: boolean;
20
+ mode: number;
21
+ fan_speed: number;
22
+ child_lock: boolean;
23
+ target_humidity: number;
24
+ swing: boolean;
25
+ anion: boolean;
26
+ water_level_set: number;
27
+ constructor(device_protocol_version: number);
28
+ get _body(): Buffer;
29
+ }
30
+ export declare class MessageNewProtocolSet extends MessageA1Base {
31
+ light: boolean;
32
+ constructor(device_protocol_version: number);
33
+ get _body(): Buffer;
34
+ }
35
+ export declare class MessageA1Response extends MessageResponse {
36
+ private readonly message;
37
+ constructor(message: Buffer);
38
+ }
39
+ export {};