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.
- package/CHANGELOG.md +7 -2
- package/README.md +2 -2
- package/config.schema.json +1 -1
- package/dist/accessory/AccessoryFactory.d.ts +14 -15
- package/dist/accessory/AccessoryFactory.js +34 -40
- package/dist/accessory/AccessoryFactory.js.map +1 -1
- package/dist/accessory/AirConditionerAccessory.d.ts +98 -99
- package/dist/accessory/AirConditionerAccessory.js +666 -662
- package/dist/accessory/AirConditionerAccessory.js.map +1 -1
- package/dist/accessory/BaseAccessory.d.ts +11 -12
- package/dist/accessory/BaseAccessory.js +21 -21
- package/dist/accessory/BaseAccessory.js.map +1 -1
- package/dist/accessory/DehumidifierAccessory.d.ts +45 -46
- package/dist/accessory/DehumidifierAccessory.js +343 -344
- package/dist/accessory/DehumidifierAccessory.js.map +1 -1
- package/dist/accessory/DishwasherAccessory.d.ts +30 -31
- package/dist/accessory/DishwasherAccessory.js +59 -63
- package/dist/accessory/DishwasherAccessory.js.map +1 -1
- package/dist/accessory/ElectricWaterHeaterAccessory.d.ts +44 -45
- package/dist/accessory/ElectricWaterHeaterAccessory.js +172 -176
- package/dist/accessory/ElectricWaterHeaterAccessory.js.map +1 -1
- package/dist/accessory/FanAccessory.d.ts +39 -40
- package/dist/accessory/FanAccessory.js +120 -123
- package/dist/accessory/FanAccessory.js.map +1 -1
- package/dist/accessory/FrontLoadWasherAccessory.d.ts +30 -31
- package/dist/accessory/FrontLoadWasherAccessory.js +63 -66
- package/dist/accessory/FrontLoadWasherAccessory.js.map +1 -1
- package/dist/accessory/GasWaterHeaterAccessory.d.ts +51 -52
- package/dist/accessory/GasWaterHeaterAccessory.js +217 -216
- package/dist/accessory/GasWaterHeaterAccessory.js.map +1 -1
- package/dist/accessory/{HeatPumpWifiControllerAccessory.d.ts → HeatPumpWiFiControllerAccessory.d.ts} +34 -35
- package/dist/accessory/{HeatPumpWifiControllerAccessory.js → HeatPumpWiFiControllerAccessory.js} +55 -36
- package/dist/accessory/HeatPumpWiFiControllerAccessory.js.map +1 -0
- package/dist/core/MideaCloud.d.ts +34 -36
- package/dist/core/MideaCloud.js +349 -350
- package/dist/core/MideaCloud.js.map +1 -1
- package/dist/core/MideaConstants.d.ts +51 -52
- package/dist/core/MideaConstants.js +56 -59
- package/dist/core/MideaConstants.js.map +1 -1
- package/dist/core/MideaDevice.d.ts +75 -78
- package/dist/core/MideaDevice.js +430 -420
- package/dist/core/MideaDevice.js.map +1 -1
- package/dist/core/MideaDiscover.d.ts +34 -36
- package/dist/core/MideaDiscover.js +208 -212
- package/dist/core/MideaDiscover.js.map +1 -1
- package/dist/core/MideaMessage.d.ts +75 -76
- package/dist/core/MideaMessage.js +185 -184
- package/dist/core/MideaMessage.js.map +1 -1
- package/dist/core/MideaPacketBuilder.d.ts +9 -11
- package/dist/core/MideaPacketBuilder.js +60 -60
- package/dist/core/MideaPacketBuilder.js.map +1 -1
- package/dist/core/MideaSecurity.d.ts +62 -64
- package/dist/core/MideaSecurity.js +241 -251
- package/dist/core/MideaSecurity.js.map +1 -1
- package/dist/core/MideaUtils.d.ts +31 -33
- package/dist/core/MideaUtils.js +178 -181
- package/dist/core/MideaUtils.js.map +1 -1
- package/dist/devices/DeviceFactory.d.ts +14 -15
- package/dist/devices/DeviceFactory.js +34 -40
- package/dist/devices/DeviceFactory.js.map +1 -1
- package/dist/devices/a1/MideaA1Device.d.ts +75 -77
- package/dist/devices/a1/MideaA1Device.js +142 -145
- package/dist/devices/a1/MideaA1Device.js.map +1 -1
- package/dist/devices/a1/MideaA1Message.d.ts +39 -41
- package/dist/devices/a1/MideaA1Message.js +219 -198
- package/dist/devices/a1/MideaA1Message.js.map +1 -1
- package/dist/devices/ac/MideaACDevice.d.ts +105 -107
- package/dist/devices/ac/MideaACDevice.js +417 -400
- package/dist/devices/ac/MideaACDevice.js.map +1 -1
- package/dist/devices/ac/MideaACMessage.d.ts +97 -96
- package/dist/devices/ac/MideaACMessage.js +724 -621
- package/dist/devices/ac/MideaACMessage.js.map +1 -1
- package/dist/devices/c3/MideaC3Device.d.ts +73 -75
- package/dist/devices/c3/MideaC3Device.js +249 -255
- package/dist/devices/c3/MideaC3Device.js.map +1 -1
- package/dist/devices/c3/MideaC3Message.d.ts +81 -80
- package/dist/devices/c3/MideaC3Message.js +190 -152
- package/dist/devices/c3/MideaC3Message.js.map +1 -1
- package/dist/devices/db/MideaDBDevice.d.ts +28 -30
- package/dist/devices/db/MideaDBDevice.js +94 -100
- package/dist/devices/db/MideaDBDevice.js.map +1 -1
- package/dist/devices/db/MideaDBMessage.d.ts +31 -33
- package/dist/devices/db/MideaDBMessage.js +101 -101
- package/dist/devices/db/MideaDBMessage.js.map +1 -1
- package/dist/devices/e1/MideaE1Device.d.ts +55 -57
- package/dist/devices/e1/MideaE1Device.js +122 -128
- package/dist/devices/e1/MideaE1Device.js.map +1 -1
- package/dist/devices/e1/MideaE1Message.d.ts +27 -29
- package/dist/devices/e1/MideaE1Message.js +128 -107
- package/dist/devices/e1/MideaE1Message.js.map +1 -1
- package/dist/devices/e2/MideaE2Device.d.ts +43 -45
- package/dist/devices/e2/MideaE2Device.js +124 -129
- package/dist/devices/e2/MideaE2Device.js.map +1 -1
- package/dist/devices/e2/MideaE2Message.d.ts +34 -34
- package/dist/devices/e2/MideaE2Message.js +143 -132
- package/dist/devices/e2/MideaE2Message.js.map +1 -1
- package/dist/devices/e3/MideaE3Device.d.ts +42 -44
- package/dist/devices/e3/MideaE3Device.js +132 -137
- package/dist/devices/e3/MideaE3Device.js.map +1 -1
- package/dist/devices/e3/MideaE3Message.d.ts +51 -52
- package/dist/devices/e3/MideaE3Message.js +144 -136
- package/dist/devices/e3/MideaE3Message.js.map +1 -1
- package/dist/devices/fa/MideaFADevice.d.ts +35 -37
- package/dist/devices/fa/MideaFADevice.js +102 -106
- package/dist/devices/fa/MideaFADevice.js.map +1 -1
- package/dist/devices/fa/MideaFAMessage.d.ts +38 -39
- package/dist/devices/fa/MideaFAMessage.js +108 -98
- package/dist/devices/fa/MideaFAMessage.js.map +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/platform.d.ts +61 -61
- package/dist/platform.js +232 -212
- package/dist/platform.js.map +1 -1
- package/dist/platformUtils.d.ts +116 -117
- package/dist/platformUtils.js +107 -110
- package/dist/platformUtils.js.map +1 -1
- package/dist/settings.d.ts +8 -9
- package/dist/settings.js +8 -11
- package/dist/settings.js.map +1 -1
- package/docs/download_lua.md +9 -0
- package/eslint.config.js +43 -0
- package/homebridge-ui/public/js/bootstrap.min.js +1179 -1
- package/homebridge-ui/{server.js → server.cjs} +30 -30
- package/package.json +21 -31
- package/.eslintignore +0 -3
- package/.husky/pre-commit +0 -5
- package/.prettierrc +0 -19
- package/dist/accessory/AccessoryFactory.d.ts.map +0 -1
- package/dist/accessory/AirConditionerAccessory.d.ts.map +0 -1
- package/dist/accessory/BaseAccessory.d.ts.map +0 -1
- package/dist/accessory/DehumidifierAccessory.d.ts.map +0 -1
- package/dist/accessory/DishwasherAccessory.d.ts.map +0 -1
- package/dist/accessory/ElectricWaterHeaterAccessory.d.ts.map +0 -1
- package/dist/accessory/FanAccessory.d.ts.map +0 -1
- package/dist/accessory/FrontLoadWasherAccessory.d.ts.map +0 -1
- package/dist/accessory/GasWaterHeaterAccessory.d.ts.map +0 -1
- package/dist/accessory/HeatPumpWifiControllerAccessory.d.ts.map +0 -1
- package/dist/accessory/HeatPumpWifiControllerAccessory.js.map +0 -1
- package/dist/core/MideaCloud.d.ts.map +0 -1
- package/dist/core/MideaConstants.d.ts.map +0 -1
- package/dist/core/MideaDevice.d.ts.map +0 -1
- package/dist/core/MideaDiscover.d.ts.map +0 -1
- package/dist/core/MideaMessage.d.ts.map +0 -1
- package/dist/core/MideaPacketBuilder.d.ts.map +0 -1
- package/dist/core/MideaSecurity.d.ts.map +0 -1
- package/dist/core/MideaUtils.d.ts.map +0 -1
- package/dist/devices/DeviceFactory.d.ts.map +0 -1
- package/dist/devices/a1/MideaA1Device.d.ts.map +0 -1
- package/dist/devices/a1/MideaA1Message.d.ts.map +0 -1
- package/dist/devices/ac/MideaACDevice.d.ts.map +0 -1
- package/dist/devices/ac/MideaACMessage.d.ts.map +0 -1
- package/dist/devices/c3/MideaC3Device.d.ts.map +0 -1
- package/dist/devices/c3/MideaC3Message.d.ts.map +0 -1
- package/dist/devices/db/MideaDBDevice.d.ts.map +0 -1
- package/dist/devices/db/MideaDBMessage.d.ts.map +0 -1
- package/dist/devices/e1/MideaE1Device.d.ts.map +0 -1
- package/dist/devices/e1/MideaE1Message.d.ts.map +0 -1
- package/dist/devices/e2/MideaE2Device.d.ts.map +0 -1
- package/dist/devices/e2/MideaE2Message.d.ts.map +0 -1
- package/dist/devices/e3/MideaE3Device.d.ts.map +0 -1
- package/dist/devices/e3/MideaE3Message.d.ts.map +0 -1
- package/dist/devices/fa/MideaFADevice.d.ts.map +0 -1
- package/dist/devices/fa/MideaFAMessage.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/platform.d.ts.map +0 -1
- package/dist/platformUtils.d.ts.map +0 -1
- package/dist/settings.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MideaDevice.js","sourceRoot":"","sources":["../../src/core/MideaDevice.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MideaDevice.js","sourceRoot":"","sources":["../../src/core/MideaDevice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
private
|
|
6
|
-
private
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=MideaDiscover.d.ts.map
|
|
1
|
+
import { Logger } from 'homebridge';
|
|
2
|
+
import EventEmitter from 'events';
|
|
3
|
+
export default class Discover extends EventEmitter {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private socket;
|
|
6
|
+
private readonly xml_parser;
|
|
7
|
+
private security;
|
|
8
|
+
private ips;
|
|
9
|
+
constructor(logger: Logger);
|
|
10
|
+
/*********************************************************************
|
|
11
|
+
* discoverDeviceByIP
|
|
12
|
+
* Sends discover message to a single IP address. Will resend the message
|
|
13
|
+
* an additional "retries" times spaced by 3 seconds if the target IP
|
|
14
|
+
* address has not responded (recorded in the above callback).
|
|
15
|
+
*/
|
|
16
|
+
discoverDeviceByIP(ip: string, retries?: number, timeout?: number): void;
|
|
17
|
+
/*********************************************************************
|
|
18
|
+
* ifBroadcastAddrs
|
|
19
|
+
* Broadcasts to 255.255.255.255 only gets sent out on the first network inteface.
|
|
20
|
+
* This function finds all network interfaces and returns the broadcast address
|
|
21
|
+
* for each in an array, e.g. ['192.168.1.255', '192.168.100.255']. If there are
|
|
22
|
+
* multiple interfaces this will cause broadcast to be sent out on each interface
|
|
23
|
+
* so all appliances are properly discovered.
|
|
24
|
+
*/
|
|
25
|
+
private ifBroadcastAddrs;
|
|
26
|
+
/*********************************************************************
|
|
27
|
+
* startDiscover
|
|
28
|
+
* Sends broadcast to network discover Midea devices. Will continue sending
|
|
29
|
+
* up to an additional "retries" times each spaced by 3 seconds.
|
|
30
|
+
*/
|
|
31
|
+
startDiscover(retries?: number, timeout?: number): void;
|
|
32
|
+
private getDeviceVersion;
|
|
33
|
+
private getDeviceInfo;
|
|
34
|
+
}
|
|
@@ -1,213 +1,209 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
constructor(logger) {
|
|
25
|
-
super();
|
|
26
|
-
this.logger = logger;
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.socket
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
// const
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
const
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
exports.default = Discover;
|
|
1
|
+
/***********************************************************************
|
|
2
|
+
* Midea device discovery class where we broadcast to network to find
|
|
3
|
+
* connected devices.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2023 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
6
|
+
* Portions Copyright (c) 2023 David Kerr, https://github.com/dkerr64
|
|
7
|
+
*
|
|
8
|
+
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
import dgram from 'dgram';
|
|
12
|
+
import { DISCOVERY_MESSAGE, ProtocolVersion } from './MideaConstants.js';
|
|
13
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
14
|
+
import EventEmitter from 'events';
|
|
15
|
+
import { LocalSecurity } from './MideaSecurity.js';
|
|
16
|
+
// To access network interface detail...
|
|
17
|
+
import os from 'os';
|
|
18
|
+
export default class Discover extends EventEmitter {
|
|
19
|
+
logger;
|
|
20
|
+
socket;
|
|
21
|
+
xml_parser;
|
|
22
|
+
security;
|
|
23
|
+
ips = [];
|
|
24
|
+
constructor(logger) {
|
|
25
|
+
super();
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
this.security = new LocalSecurity();
|
|
28
|
+
this.xml_parser = new XMLParser();
|
|
29
|
+
this.socket = dgram.createSocket('udp4');
|
|
30
|
+
this.socket.bind(0, undefined, () => {
|
|
31
|
+
this.socket.setBroadcast(true);
|
|
32
|
+
});
|
|
33
|
+
this.socket.on('error', (err) => {
|
|
34
|
+
this.logger.debug(`server error:\n${err.stack}`);
|
|
35
|
+
});
|
|
36
|
+
// Register callback function executed when message received on the socket as
|
|
37
|
+
// result of sending broadcast messages out to network / IP address.
|
|
38
|
+
this.socket.on('message', async (msg, rinfo) => {
|
|
39
|
+
if (!this.ips.includes(rinfo.address)) {
|
|
40
|
+
// Only add device if it has not already been added.
|
|
41
|
+
this.ips.push(rinfo.address);
|
|
42
|
+
const device_version = this.getDeviceVersion(msg);
|
|
43
|
+
const device_info = await this.getDeviceInfo(rinfo.address, device_version, msg);
|
|
44
|
+
this.logger.info(`Discovered device: ${JSON.stringify(device_info)}`);
|
|
45
|
+
// Send signal to Homebridge platform with details on the discovered device
|
|
46
|
+
this.emit('device', device_info);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/*********************************************************************
|
|
51
|
+
* discoverDeviceByIP
|
|
52
|
+
* Sends discover message to a single IP address. Will resend the message
|
|
53
|
+
* an additional "retries" times spaced by 3 seconds if the target IP
|
|
54
|
+
* address has not responded (recorded in the above callback).
|
|
55
|
+
*/
|
|
56
|
+
discoverDeviceByIP(ip, retries = 3, timeout = 2000) {
|
|
57
|
+
let tries = 0;
|
|
58
|
+
function broadcast() {
|
|
59
|
+
if (this.ips.includes(ip) || tries++ > retries) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.logger.debug(`Sending discovery message to ${ip}, try ${tries}...`);
|
|
63
|
+
for (const port of [6445, 20086]) {
|
|
64
|
+
this.socket.send(Buffer.from(DISCOVERY_MESSAGE), port, ip, (err) => {
|
|
65
|
+
if (err) {
|
|
66
|
+
this.logger.error(`Error while sending message to ${ip}: ${err}`);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
setTimeout(broadcast.bind(this), timeout);
|
|
71
|
+
}
|
|
72
|
+
broadcast.bind(this)();
|
|
73
|
+
}
|
|
74
|
+
/*********************************************************************
|
|
75
|
+
* ifBroadcastAddrs
|
|
76
|
+
* Broadcasts to 255.255.255.255 only gets sent out on the first network inteface.
|
|
77
|
+
* This function finds all network interfaces and returns the broadcast address
|
|
78
|
+
* for each in an array, e.g. ['192.168.1.255', '192.168.100.255']. If there are
|
|
79
|
+
* multiple interfaces this will cause broadcast to be sent out on each interface
|
|
80
|
+
* so all appliances are properly discovered.
|
|
81
|
+
*/
|
|
82
|
+
ifBroadcastAddrs() {
|
|
83
|
+
const list = [];
|
|
84
|
+
try {
|
|
85
|
+
const ifaces = os.networkInterfaces();
|
|
86
|
+
for (const iface of Object.values(ifaces)) {
|
|
87
|
+
if (iface) {
|
|
88
|
+
for (const f of iface) {
|
|
89
|
+
if (!f.internal && f.family === 'IPv4') {
|
|
90
|
+
// With thanks to https://github.com/aal89/broadcast-address/blob/master/broadcast-address.js
|
|
91
|
+
const addr_splitted = f.address.split('.');
|
|
92
|
+
const netmask_splitted = f.netmask.split('.');
|
|
93
|
+
// Bitwise OR over the splitted NAND netmask, then glue them back together with a dot character to form an ip
|
|
94
|
+
// we have to do a NAND operation because of the 2-complements; getting rid of all the 'prepended' 1's with & 0xFF
|
|
95
|
+
const broadcast = addr_splitted.map((e, i) => (~netmask_splitted[i] & 0xff) | Number.parseInt(e)).join('.');
|
|
96
|
+
list.push(broadcast);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
const msg = e instanceof Error ? e.stack : e;
|
|
104
|
+
this.logger.error(`Fatal error during plugin initialization:\n${msg}`);
|
|
105
|
+
}
|
|
106
|
+
// this.logger.info(`Broadcast addresses: ${JSON.stringify(list)}`);
|
|
107
|
+
return list;
|
|
108
|
+
}
|
|
109
|
+
/*********************************************************************
|
|
110
|
+
* startDiscover
|
|
111
|
+
* Sends broadcast to network discover Midea devices. Will continue sending
|
|
112
|
+
* up to an additional "retries" times each spaced by 3 seconds.
|
|
113
|
+
*/
|
|
114
|
+
startDiscover(retries = 3, timeout = 2000) {
|
|
115
|
+
let tries = 0;
|
|
116
|
+
// force timeout to be between 500ms and 5 seconds
|
|
117
|
+
timeout = Math.max(500, Math.min(timeout, 5000));
|
|
118
|
+
const broadcastAddrs = this.ifBroadcastAddrs();
|
|
119
|
+
function broadcast() {
|
|
120
|
+
if (tries++ > retries) {
|
|
121
|
+
this.logger.debug(`Device discovery complete after ${retries + 1} network broadcasts.`);
|
|
122
|
+
this.emit('complete');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.emit('retry', tries, this.ips.length);
|
|
127
|
+
}
|
|
128
|
+
for (const ip of broadcastAddrs) {
|
|
129
|
+
this.logger.debug(`Sending discovery message to ${ip}, try ${tries}...`);
|
|
130
|
+
for (const port of [6445, 20086]) {
|
|
131
|
+
this.socket.send(Buffer.from(DISCOVERY_MESSAGE), port, ip, (err) => {
|
|
132
|
+
if (err) {
|
|
133
|
+
const msg = err instanceof Error ? err.stack : err;
|
|
134
|
+
this.logger.error(`Error while sending message to ${ip}:${port}:\n${msg}`);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
setTimeout(broadcast.bind(this), timeout);
|
|
140
|
+
}
|
|
141
|
+
broadcast.bind(this)();
|
|
142
|
+
}
|
|
143
|
+
getDeviceVersion(data) {
|
|
144
|
+
try {
|
|
145
|
+
this.xml_parser.parse(data.toString(), true);
|
|
146
|
+
return ProtocolVersion.V1;
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
const start_of_packet = data.subarray(0, 2);
|
|
150
|
+
if (start_of_packet.compare(Buffer.from([0x5a, 0x5a])) === 0) {
|
|
151
|
+
return ProtocolVersion.V2;
|
|
152
|
+
}
|
|
153
|
+
else if (start_of_packet.compare(Buffer.from([0x83, 0x70])) === 0) {
|
|
154
|
+
return ProtocolVersion.V3;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
throw new Error('Unknown device version.');
|
|
158
|
+
}
|
|
159
|
+
async getDeviceInfo(ip, version, data) {
|
|
160
|
+
if (version === ProtocolVersion.V1) {
|
|
161
|
+
// const root = this.xml_parser.parse(data.toString());
|
|
162
|
+
// const device = root["body"]["device"]
|
|
163
|
+
// if (device) {
|
|
164
|
+
// const port = device["port"];
|
|
165
|
+
// }
|
|
166
|
+
// throw new Error("Could not find 'body/device' in XML.");
|
|
167
|
+
throw new Error('Version 1 not implemented.');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
let buffer = data;
|
|
171
|
+
// Strip V3 header and hash
|
|
172
|
+
if (version === ProtocolVersion.V3) {
|
|
173
|
+
buffer = buffer.subarray(8, -16);
|
|
174
|
+
}
|
|
175
|
+
const encrypted_data = buffer.subarray(40, -16);
|
|
176
|
+
const device_id = buffer.readUIntLE(20, 6);
|
|
177
|
+
let decrypted_buffer;
|
|
178
|
+
try {
|
|
179
|
+
decrypted_buffer = this.security.aes_decrypt(encrypted_data);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
throw new Error(`Error while decrypting data: ${err}`);
|
|
183
|
+
}
|
|
184
|
+
const ip_address = `${decrypted_buffer.readUint8(3)}.${decrypted_buffer.readUint8(2)}.${decrypted_buffer.readUint8(1)}.${decrypted_buffer.readUint8(0)}`;
|
|
185
|
+
const port = decrypted_buffer.readUIntLE(4, 2);
|
|
186
|
+
if (ip_address !== ip) {
|
|
187
|
+
this.logger.warn(`IP address mismatch: ${ip_address} != ${ip}`);
|
|
188
|
+
}
|
|
189
|
+
const model = decrypted_buffer.subarray(17, 25).toString();
|
|
190
|
+
// Serial number
|
|
191
|
+
const sn = decrypted_buffer.subarray(8, 40).toString();
|
|
192
|
+
// Extract name/SSID
|
|
193
|
+
const name_length = decrypted_buffer.readUIntLE(40, 1);
|
|
194
|
+
const name = decrypted_buffer.subarray(41, 41 + name_length).toString();
|
|
195
|
+
const device_type = Number(`0x${name.split('_')[1]}`);
|
|
196
|
+
return {
|
|
197
|
+
ip: ip,
|
|
198
|
+
port: port,
|
|
199
|
+
id: device_id,
|
|
200
|
+
model: model,
|
|
201
|
+
sn: sn,
|
|
202
|
+
name: name,
|
|
203
|
+
type: device_type,
|
|
204
|
+
version: version,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
213
209
|
//# sourceMappingURL=MideaDiscover.js.map
|