homebridge-midea-platform 1.1.2-beta.3 → 1.1.2-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.husky/pre-commit +0 -0
- package/dist/accessory/AccessoryFactory.d.ts +12 -12
- package/dist/accessory/AccessoryFactory.js +31 -31
- package/dist/accessory/AirConditionerAccessory.d.ts +86 -86
- package/dist/accessory/AirConditionerAccessory.js +560 -560
- package/dist/accessory/AirConditionerAccessory.js.map +1 -1
- package/dist/accessory/BaseAccessory.d.ts +11 -11
- package/dist/accessory/BaseAccessory.js +21 -21
- package/dist/accessory/DehumidifierAccessory.d.ts +45 -45
- package/dist/accessory/DehumidifierAccessory.js +344 -344
- package/dist/accessory/ElectricWaterHeaterAccessory.d.ts +44 -44
- package/dist/accessory/ElectricWaterHeaterAccessory.js +176 -176
- package/dist/accessory/FanAccessory.d.ts +39 -39
- package/dist/accessory/FanAccessory.js +123 -123
- package/dist/accessory/FrontLoadWasherAccessory.d.ts +30 -30
- package/dist/accessory/FrontLoadWasherAccessory.js +60 -60
- package/dist/accessory/GasWaterHeaterAccessory.d.ts +51 -51
- package/dist/accessory/GasWaterHeaterAccessory.js +216 -216
- package/dist/core/MideaCloud.d.ts +35 -35
- package/dist/core/MideaCloud.js +350 -350
- package/dist/core/MideaConstants.d.ts +49 -49
- package/dist/core/MideaConstants.js +57 -57
- package/dist/core/MideaDevice.d.ts +76 -76
- package/dist/core/MideaDevice.js +409 -409
- package/dist/core/MideaDiscover.d.ts +35 -35
- package/dist/core/MideaDiscover.js +212 -212
- package/dist/core/MideaMessage.d.ts +75 -75
- package/dist/core/MideaMessage.js +184 -184
- package/dist/core/MideaPacketBuilder.d.ts +10 -10
- package/dist/core/MideaPacketBuilder.js +60 -60
- package/dist/core/MideaSecurity.d.ts +63 -63
- package/dist/core/MideaSecurity.js +242 -242
- package/dist/core/MideaUtils.d.ts +32 -32
- package/dist/core/MideaUtils.js +181 -181
- package/dist/devices/DeviceFactory.d.ts +12 -12
- package/dist/devices/DeviceFactory.js +33 -33
- package/dist/devices/a1/MideaA1Device.d.ts +76 -76
- package/dist/devices/a1/MideaA1Device.js +136 -136
- package/dist/devices/a1/MideaA1Message.d.ts +40 -40
- package/dist/devices/a1/MideaA1Message.js +198 -198
- package/dist/devices/ac/MideaACDevice.d.ts +100 -100
- package/dist/devices/ac/MideaACDevice.js +370 -370
- package/dist/devices/ac/MideaACMessage.d.ts +92 -92
- package/dist/devices/ac/MideaACMessage.js +589 -589
- package/dist/devices/db/MideaDBDevice.d.ts +29 -29
- package/dist/devices/db/MideaDBDevice.js +88 -88
- package/dist/devices/db/MideaDBMessage.d.ts +32 -32
- package/dist/devices/db/MideaDBMessage.js +101 -101
- package/dist/devices/e2/MideaE2Device.d.ts +44 -44
- package/dist/devices/e2/MideaE2Device.js +119 -119
- package/dist/devices/e2/MideaE2Message.d.ts +33 -33
- package/dist/devices/e2/MideaE2Message.js +132 -132
- package/dist/devices/e3/MideaE3Device.d.ts +43 -43
- package/dist/devices/e3/MideaE3Device.js +125 -125
- package/dist/devices/e3/MideaE3Message.d.ts +51 -51
- package/dist/devices/e3/MideaE3Message.js +136 -136
- package/dist/devices/fa/MideaFADevice.d.ts +36 -36
- package/dist/devices/fa/MideaFADevice.js +92 -92
- package/dist/devices/fa/MideaFAMessage.d.ts +38 -38
- package/dist/devices/fa/MideaFAMessage.js +98 -98
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/platform.d.ts +60 -60
- package/dist/platform.js +213 -213
- package/dist/platformUtils.d.ts +98 -98
- package/dist/platformUtils.js +96 -96
- package/dist/settings.d.ts +8 -8
- package/dist/settings.js +11 -11
- package/package.json +1 -1
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
export declare const DISCOVERY_MESSAGE: Int8Array;
|
|
2
|
-
export declare const DEVICE_INFO_MESSAGE: Int8Array;
|
|
3
|
-
export declare enum DeviceType {
|
|
4
|
-
UNKNOWN = 0,
|
|
5
|
-
AIR_CONDITIONER = 172,
|
|
6
|
-
DEHUMIDIFIER = 161,
|
|
7
|
-
FRONT_LOAD_WASHER = 219,
|
|
8
|
-
ELECTRIC_WATER_HEATER = 226,
|
|
9
|
-
GAS_WATER_HEATER = 227,
|
|
10
|
-
FAN = 250
|
|
11
|
-
}
|
|
12
|
-
export declare enum ParseMessageResult {
|
|
13
|
-
SUCCESS = 0,
|
|
14
|
-
PADDING = 1,
|
|
15
|
-
ERROR = 99
|
|
16
|
-
}
|
|
17
|
-
export type DeviceInfo = {
|
|
18
|
-
ip: string;
|
|
19
|
-
port: number;
|
|
20
|
-
id: number;
|
|
21
|
-
model: string | undefined;
|
|
22
|
-
sn: string | undefined;
|
|
23
|
-
name: string;
|
|
24
|
-
type: number;
|
|
25
|
-
version: number;
|
|
26
|
-
};
|
|
27
|
-
export declare enum FrameType {
|
|
28
|
-
UNKNOWN = 0,
|
|
29
|
-
SET = 2,
|
|
30
|
-
REQUEST = 3,
|
|
31
|
-
RESPONSE = 4,
|
|
32
|
-
ABNORMAL_REPORT = 6
|
|
33
|
-
}
|
|
34
|
-
export declare enum TCPMessageType {
|
|
35
|
-
HANDSHAKE_REQUEST = 0,
|
|
36
|
-
HANDSHAKE_RESPONSE = 1,
|
|
37
|
-
ENCRYPTED_RESPONSE = 3,
|
|
38
|
-
ENCRYPTED_REQUEST = 6
|
|
39
|
-
}
|
|
40
|
-
export declare enum ProtocolVersion {
|
|
41
|
-
UNKNOWN = 0,
|
|
42
|
-
V1 = 1,
|
|
43
|
-
V2 = 2,
|
|
44
|
-
V3 = 3
|
|
45
|
-
}
|
|
46
|
-
export declare enum Endianness {
|
|
47
|
-
Little = 0,
|
|
48
|
-
Big = 1
|
|
49
|
-
}
|
|
1
|
+
export declare const DISCOVERY_MESSAGE: Int8Array;
|
|
2
|
+
export declare const DEVICE_INFO_MESSAGE: Int8Array;
|
|
3
|
+
export declare enum DeviceType {
|
|
4
|
+
UNKNOWN = 0,
|
|
5
|
+
AIR_CONDITIONER = 172,
|
|
6
|
+
DEHUMIDIFIER = 161,
|
|
7
|
+
FRONT_LOAD_WASHER = 219,
|
|
8
|
+
ELECTRIC_WATER_HEATER = 226,
|
|
9
|
+
GAS_WATER_HEATER = 227,
|
|
10
|
+
FAN = 250
|
|
11
|
+
}
|
|
12
|
+
export declare enum ParseMessageResult {
|
|
13
|
+
SUCCESS = 0,
|
|
14
|
+
PADDING = 1,
|
|
15
|
+
ERROR = 99
|
|
16
|
+
}
|
|
17
|
+
export type DeviceInfo = {
|
|
18
|
+
ip: string;
|
|
19
|
+
port: number;
|
|
20
|
+
id: number;
|
|
21
|
+
model: string | undefined;
|
|
22
|
+
sn: string | undefined;
|
|
23
|
+
name: string;
|
|
24
|
+
type: number;
|
|
25
|
+
version: number;
|
|
26
|
+
};
|
|
27
|
+
export declare enum FrameType {
|
|
28
|
+
UNKNOWN = 0,
|
|
29
|
+
SET = 2,
|
|
30
|
+
REQUEST = 3,
|
|
31
|
+
RESPONSE = 4,
|
|
32
|
+
ABNORMAL_REPORT = 6
|
|
33
|
+
}
|
|
34
|
+
export declare enum TCPMessageType {
|
|
35
|
+
HANDSHAKE_REQUEST = 0,
|
|
36
|
+
HANDSHAKE_RESPONSE = 1,
|
|
37
|
+
ENCRYPTED_RESPONSE = 3,
|
|
38
|
+
ENCRYPTED_REQUEST = 6
|
|
39
|
+
}
|
|
40
|
+
export declare enum ProtocolVersion {
|
|
41
|
+
UNKNOWN = 0,
|
|
42
|
+
V1 = 1,
|
|
43
|
+
V2 = 2,
|
|
44
|
+
V3 = 3
|
|
45
|
+
}
|
|
46
|
+
export declare enum Endianness {
|
|
47
|
+
Little = 0,
|
|
48
|
+
Big = 1
|
|
49
|
+
}
|
|
50
50
|
//# sourceMappingURL=MideaConstants.d.ts.map
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Endianness = exports.ProtocolVersion = exports.TCPMessageType = exports.FrameType = exports.ParseMessageResult = exports.DeviceType = exports.DEVICE_INFO_MESSAGE = exports.DISCOVERY_MESSAGE = void 0;
|
|
4
|
-
exports.DISCOVERY_MESSAGE = new Int8Array([
|
|
5
|
-
0x5a, 0x5a, 0x01, 0x11, 0x48, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
6
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x75, 0xbd, 0x6b, 0x3e, 0x4f,
|
|
7
|
-
0x8b, 0x76, 0x2e, 0x84, 0x9c, 0x6e, 0x57, 0x8d, 0x65, 0x90, 0x03, 0x6e, 0x9d, 0x43, 0x42, 0xa5, 0x0f, 0x1f, 0x56, 0x9e, 0xb8, 0xec, 0x91,
|
|
8
|
-
0x8e, 0x92, 0xe5,
|
|
9
|
-
]);
|
|
10
|
-
exports.DEVICE_INFO_MESSAGE = new Int8Array([
|
|
11
|
-
0x5a, 0x5a, 0x15, 0x00, 0x00, 0x38, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x33, 0x05, 0x13, 0x06, 0x14, 0x14, 0x00, 0x00, 0x00,
|
|
12
|
-
0x00, 0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x8d, 0x9b, 0xf9, 0xa0, 0x30,
|
|
13
|
-
0x1a, 0xe3, 0xb7, 0xe4, 0x2d, 0x53, 0x49, 0x47, 0x62, 0xbe,
|
|
14
|
-
]);
|
|
15
|
-
var DeviceType;
|
|
16
|
-
(function (DeviceType) {
|
|
17
|
-
DeviceType[DeviceType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
18
|
-
DeviceType[DeviceType["AIR_CONDITIONER"] = 172] = "AIR_CONDITIONER";
|
|
19
|
-
DeviceType[DeviceType["DEHUMIDIFIER"] = 161] = "DEHUMIDIFIER";
|
|
20
|
-
DeviceType[DeviceType["FRONT_LOAD_WASHER"] = 219] = "FRONT_LOAD_WASHER";
|
|
21
|
-
DeviceType[DeviceType["ELECTRIC_WATER_HEATER"] = 226] = "ELECTRIC_WATER_HEATER";
|
|
22
|
-
DeviceType[DeviceType["GAS_WATER_HEATER"] = 227] = "GAS_WATER_HEATER";
|
|
23
|
-
DeviceType[DeviceType["FAN"] = 250] = "FAN";
|
|
24
|
-
})(DeviceType = exports.DeviceType || (exports.DeviceType = {}));
|
|
25
|
-
var ParseMessageResult;
|
|
26
|
-
(function (ParseMessageResult) {
|
|
27
|
-
ParseMessageResult[ParseMessageResult["SUCCESS"] = 0] = "SUCCESS";
|
|
28
|
-
ParseMessageResult[ParseMessageResult["PADDING"] = 1] = "PADDING";
|
|
29
|
-
ParseMessageResult[ParseMessageResult["ERROR"] = 99] = "ERROR";
|
|
30
|
-
})(ParseMessageResult = exports.ParseMessageResult || (exports.ParseMessageResult = {}));
|
|
31
|
-
var FrameType;
|
|
32
|
-
(function (FrameType) {
|
|
33
|
-
FrameType[FrameType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
34
|
-
FrameType[FrameType["SET"] = 2] = "SET";
|
|
35
|
-
FrameType[FrameType["REQUEST"] = 3] = "REQUEST";
|
|
36
|
-
FrameType[FrameType["RESPONSE"] = 4] = "RESPONSE";
|
|
37
|
-
FrameType[FrameType["ABNORMAL_REPORT"] = 6] = "ABNORMAL_REPORT";
|
|
38
|
-
})(FrameType = exports.FrameType || (exports.FrameType = {}));
|
|
39
|
-
var TCPMessageType;
|
|
40
|
-
(function (TCPMessageType) {
|
|
41
|
-
TCPMessageType[TCPMessageType["HANDSHAKE_REQUEST"] = 0] = "HANDSHAKE_REQUEST";
|
|
42
|
-
TCPMessageType[TCPMessageType["HANDSHAKE_RESPONSE"] = 1] = "HANDSHAKE_RESPONSE";
|
|
43
|
-
TCPMessageType[TCPMessageType["ENCRYPTED_RESPONSE"] = 3] = "ENCRYPTED_RESPONSE";
|
|
44
|
-
TCPMessageType[TCPMessageType["ENCRYPTED_REQUEST"] = 6] = "ENCRYPTED_REQUEST";
|
|
45
|
-
})(TCPMessageType = exports.TCPMessageType || (exports.TCPMessageType = {}));
|
|
46
|
-
var ProtocolVersion;
|
|
47
|
-
(function (ProtocolVersion) {
|
|
48
|
-
ProtocolVersion[ProtocolVersion["UNKNOWN"] = 0] = "UNKNOWN";
|
|
49
|
-
ProtocolVersion[ProtocolVersion["V1"] = 1] = "V1";
|
|
50
|
-
ProtocolVersion[ProtocolVersion["V2"] = 2] = "V2";
|
|
51
|
-
ProtocolVersion[ProtocolVersion["V3"] = 3] = "V3";
|
|
52
|
-
})(ProtocolVersion = exports.ProtocolVersion || (exports.ProtocolVersion = {}));
|
|
53
|
-
var Endianness;
|
|
54
|
-
(function (Endianness) {
|
|
55
|
-
Endianness[Endianness["Little"] = 0] = "Little";
|
|
56
|
-
Endianness[Endianness["Big"] = 1] = "Big";
|
|
57
|
-
})(Endianness = exports.Endianness || (exports.Endianness = {}));
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Endianness = exports.ProtocolVersion = exports.TCPMessageType = exports.FrameType = exports.ParseMessageResult = exports.DeviceType = exports.DEVICE_INFO_MESSAGE = exports.DISCOVERY_MESSAGE = void 0;
|
|
4
|
+
exports.DISCOVERY_MESSAGE = new Int8Array([
|
|
5
|
+
0x5a, 0x5a, 0x01, 0x11, 0x48, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
6
|
+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x75, 0xbd, 0x6b, 0x3e, 0x4f,
|
|
7
|
+
0x8b, 0x76, 0x2e, 0x84, 0x9c, 0x6e, 0x57, 0x8d, 0x65, 0x90, 0x03, 0x6e, 0x9d, 0x43, 0x42, 0xa5, 0x0f, 0x1f, 0x56, 0x9e, 0xb8, 0xec, 0x91,
|
|
8
|
+
0x8e, 0x92, 0xe5,
|
|
9
|
+
]);
|
|
10
|
+
exports.DEVICE_INFO_MESSAGE = new Int8Array([
|
|
11
|
+
0x5a, 0x5a, 0x15, 0x00, 0x00, 0x38, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x33, 0x05, 0x13, 0x06, 0x14, 0x14, 0x00, 0x00, 0x00,
|
|
12
|
+
0x00, 0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x8d, 0x9b, 0xf9, 0xa0, 0x30,
|
|
13
|
+
0x1a, 0xe3, 0xb7, 0xe4, 0x2d, 0x53, 0x49, 0x47, 0x62, 0xbe,
|
|
14
|
+
]);
|
|
15
|
+
var DeviceType;
|
|
16
|
+
(function (DeviceType) {
|
|
17
|
+
DeviceType[DeviceType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
18
|
+
DeviceType[DeviceType["AIR_CONDITIONER"] = 172] = "AIR_CONDITIONER";
|
|
19
|
+
DeviceType[DeviceType["DEHUMIDIFIER"] = 161] = "DEHUMIDIFIER";
|
|
20
|
+
DeviceType[DeviceType["FRONT_LOAD_WASHER"] = 219] = "FRONT_LOAD_WASHER";
|
|
21
|
+
DeviceType[DeviceType["ELECTRIC_WATER_HEATER"] = 226] = "ELECTRIC_WATER_HEATER";
|
|
22
|
+
DeviceType[DeviceType["GAS_WATER_HEATER"] = 227] = "GAS_WATER_HEATER";
|
|
23
|
+
DeviceType[DeviceType["FAN"] = 250] = "FAN";
|
|
24
|
+
})(DeviceType = exports.DeviceType || (exports.DeviceType = {}));
|
|
25
|
+
var ParseMessageResult;
|
|
26
|
+
(function (ParseMessageResult) {
|
|
27
|
+
ParseMessageResult[ParseMessageResult["SUCCESS"] = 0] = "SUCCESS";
|
|
28
|
+
ParseMessageResult[ParseMessageResult["PADDING"] = 1] = "PADDING";
|
|
29
|
+
ParseMessageResult[ParseMessageResult["ERROR"] = 99] = "ERROR";
|
|
30
|
+
})(ParseMessageResult = exports.ParseMessageResult || (exports.ParseMessageResult = {}));
|
|
31
|
+
var FrameType;
|
|
32
|
+
(function (FrameType) {
|
|
33
|
+
FrameType[FrameType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
34
|
+
FrameType[FrameType["SET"] = 2] = "SET";
|
|
35
|
+
FrameType[FrameType["REQUEST"] = 3] = "REQUEST";
|
|
36
|
+
FrameType[FrameType["RESPONSE"] = 4] = "RESPONSE";
|
|
37
|
+
FrameType[FrameType["ABNORMAL_REPORT"] = 6] = "ABNORMAL_REPORT";
|
|
38
|
+
})(FrameType = exports.FrameType || (exports.FrameType = {}));
|
|
39
|
+
var TCPMessageType;
|
|
40
|
+
(function (TCPMessageType) {
|
|
41
|
+
TCPMessageType[TCPMessageType["HANDSHAKE_REQUEST"] = 0] = "HANDSHAKE_REQUEST";
|
|
42
|
+
TCPMessageType[TCPMessageType["HANDSHAKE_RESPONSE"] = 1] = "HANDSHAKE_RESPONSE";
|
|
43
|
+
TCPMessageType[TCPMessageType["ENCRYPTED_RESPONSE"] = 3] = "ENCRYPTED_RESPONSE";
|
|
44
|
+
TCPMessageType[TCPMessageType["ENCRYPTED_REQUEST"] = 6] = "ENCRYPTED_REQUEST";
|
|
45
|
+
})(TCPMessageType = exports.TCPMessageType || (exports.TCPMessageType = {}));
|
|
46
|
+
var ProtocolVersion;
|
|
47
|
+
(function (ProtocolVersion) {
|
|
48
|
+
ProtocolVersion[ProtocolVersion["UNKNOWN"] = 0] = "UNKNOWN";
|
|
49
|
+
ProtocolVersion[ProtocolVersion["V1"] = 1] = "V1";
|
|
50
|
+
ProtocolVersion[ProtocolVersion["V2"] = 2] = "V2";
|
|
51
|
+
ProtocolVersion[ProtocolVersion["V3"] = 3] = "V3";
|
|
52
|
+
})(ProtocolVersion = exports.ProtocolVersion || (exports.ProtocolVersion = {}));
|
|
53
|
+
var Endianness;
|
|
54
|
+
(function (Endianness) {
|
|
55
|
+
Endianness[Endianness["Little"] = 0] = "Little";
|
|
56
|
+
Endianness[Endianness["Big"] = 1] = "Big";
|
|
57
|
+
})(Endianness = exports.Endianness || (exports.Endianness = {}));
|
|
58
58
|
//# sourceMappingURL=MideaConstants.js.map
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/***********************************************************************
|
|
4
|
-
* Midea Device class from which specfic device support is inherited.
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) 2023 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
7
|
-
* Portions Copyright (c) 2023 David Kerr, https://github.com/dkerr64
|
|
8
|
-
*
|
|
9
|
-
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
import { Logger } from 'homebridge';
|
|
13
|
-
import { KeyToken, LocalSecurity } from './MideaSecurity';
|
|
14
|
-
import { DeviceInfo, DeviceType, ProtocolVersion, ParseMessageResult } from './MideaConstants';
|
|
15
|
-
import { MessageRequest, MessageType } from './MideaMessage';
|
|
16
|
-
import { Config, DeviceConfig } from '../platformUtils';
|
|
17
|
-
import EventEmitter from 'events';
|
|
18
|
-
export type DeviceAttributeBase = {
|
|
19
|
-
[key: string]: number | string | boolean | Buffer | undefined;
|
|
20
|
-
};
|
|
21
|
-
export default abstract class MideaDevice extends EventEmitter {
|
|
22
|
-
protected readonly logger: Logger;
|
|
23
|
-
private readonly SOCKET_TIMEOUT;
|
|
24
|
-
readonly ip: string;
|
|
25
|
-
protected readonly port: number;
|
|
26
|
-
readonly id: number;
|
|
27
|
-
readonly model: string;
|
|
28
|
-
readonly sn: string;
|
|
29
|
-
readonly name: string;
|
|
30
|
-
readonly type: DeviceType;
|
|
31
|
-
protected readonly version: ProtocolVersion;
|
|
32
|
-
protected is_running: boolean;
|
|
33
|
-
protected available: boolean;
|
|
34
|
-
private unsupported_protocol;
|
|
35
|
-
protected device_protocol_version: number;
|
|
36
|
-
protected refresh_interval: number;
|
|
37
|
-
protected heartbeat_interval: number;
|
|
38
|
-
protected verbose: boolean;
|
|
39
|
-
protected logRecoverableErrors: boolean;
|
|
40
|
-
private _sub_type?;
|
|
41
|
-
token: KeyToken;
|
|
42
|
-
key: KeyToken;
|
|
43
|
-
protected readonly security: LocalSecurity;
|
|
44
|
-
private buffer;
|
|
45
|
-
private promiseSocket;
|
|
46
|
-
abstract attributes: DeviceAttributeBase;
|
|
47
|
-
protected abstract build_query(): MessageRequest[];
|
|
48
|
-
protected abstract process_message(message: Buffer): void;
|
|
49
|
-
protected abstract set_subtype(): void;
|
|
50
|
-
abstract set_attribute(status: DeviceAttributeBase): Promise<void>;
|
|
51
|
-
constructor(logger: Logger, device_info: DeviceInfo, config: Config, configDev: DeviceConfig);
|
|
52
|
-
get sub_type(): number;
|
|
53
|
-
setCredentials(token: KeyToken, key: KeyToken): void;
|
|
54
|
-
fetch_v2_message(message: Buffer): [Buffer[], Buffer];
|
|
55
|
-
connect(refresh_status?: boolean): Promise<boolean>;
|
|
56
|
-
private authenticate;
|
|
57
|
-
send_message(data: Buffer): Promise<void>;
|
|
58
|
-
private send_message_v2;
|
|
59
|
-
private send_message_v3;
|
|
60
|
-
build_send(command: MessageRequest): Promise<void>;
|
|
61
|
-
refresh_status(wait_response?: boolean, ignore_unsupported?: boolean): Promise<boolean>;
|
|
62
|
-
preprocess_message(message: Buffer): boolean;
|
|
63
|
-
parse_message(message: Buffer): ParseMessageResult;
|
|
64
|
-
send_command(command_type: MessageType, command_body: Buffer): Promise<void>;
|
|
65
|
-
send_heartbeat(): Promise<void>;
|
|
66
|
-
protected update(values: DeviceAttributeBase): Promise<void>;
|
|
67
|
-
open(): void;
|
|
68
|
-
close(): void;
|
|
69
|
-
private close_socket;
|
|
70
|
-
/*********************************************************************
|
|
71
|
-
* run
|
|
72
|
-
* Continuous loop that runs listening for network traffic from the device
|
|
73
|
-
* and proceses each message as received.
|
|
74
|
-
*/
|
|
75
|
-
private run;
|
|
76
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/***********************************************************************
|
|
4
|
+
* Midea Device class from which specfic device support is inherited.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2023 Kovalovszky Patrik, https://github.com/kovapatrik
|
|
7
|
+
* Portions Copyright (c) 2023 David Kerr, https://github.com/dkerr64
|
|
8
|
+
*
|
|
9
|
+
* With thanks to https://github.com/georgezhao2010/midea_ac_lan
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
import { Logger } from 'homebridge';
|
|
13
|
+
import { KeyToken, LocalSecurity } from './MideaSecurity';
|
|
14
|
+
import { DeviceInfo, DeviceType, ProtocolVersion, ParseMessageResult } from './MideaConstants';
|
|
15
|
+
import { MessageRequest, MessageType } from './MideaMessage';
|
|
16
|
+
import { Config, DeviceConfig } from '../platformUtils';
|
|
17
|
+
import EventEmitter from 'events';
|
|
18
|
+
export type DeviceAttributeBase = {
|
|
19
|
+
[key: string]: number | string | boolean | Buffer | undefined;
|
|
20
|
+
};
|
|
21
|
+
export default abstract class MideaDevice extends EventEmitter {
|
|
22
|
+
protected readonly logger: Logger;
|
|
23
|
+
private readonly SOCKET_TIMEOUT;
|
|
24
|
+
readonly ip: string;
|
|
25
|
+
protected readonly port: number;
|
|
26
|
+
readonly id: number;
|
|
27
|
+
readonly model: string;
|
|
28
|
+
readonly sn: string;
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly type: DeviceType;
|
|
31
|
+
protected readonly version: ProtocolVersion;
|
|
32
|
+
protected is_running: boolean;
|
|
33
|
+
protected available: boolean;
|
|
34
|
+
private unsupported_protocol;
|
|
35
|
+
protected device_protocol_version: number;
|
|
36
|
+
protected refresh_interval: number;
|
|
37
|
+
protected heartbeat_interval: number;
|
|
38
|
+
protected verbose: boolean;
|
|
39
|
+
protected logRecoverableErrors: boolean;
|
|
40
|
+
private _sub_type?;
|
|
41
|
+
token: KeyToken;
|
|
42
|
+
key: KeyToken;
|
|
43
|
+
protected readonly security: LocalSecurity;
|
|
44
|
+
private buffer;
|
|
45
|
+
private promiseSocket;
|
|
46
|
+
abstract attributes: DeviceAttributeBase;
|
|
47
|
+
protected abstract build_query(): MessageRequest[];
|
|
48
|
+
protected abstract process_message(message: Buffer): void;
|
|
49
|
+
protected abstract set_subtype(): void;
|
|
50
|
+
abstract set_attribute(status: DeviceAttributeBase): Promise<void>;
|
|
51
|
+
constructor(logger: Logger, device_info: DeviceInfo, config: Config, configDev: DeviceConfig);
|
|
52
|
+
get sub_type(): number;
|
|
53
|
+
setCredentials(token: KeyToken, key: KeyToken): void;
|
|
54
|
+
fetch_v2_message(message: Buffer): [Buffer[], Buffer];
|
|
55
|
+
connect(refresh_status?: boolean): Promise<boolean>;
|
|
56
|
+
private authenticate;
|
|
57
|
+
send_message(data: Buffer): Promise<void>;
|
|
58
|
+
private send_message_v2;
|
|
59
|
+
private send_message_v3;
|
|
60
|
+
build_send(command: MessageRequest): Promise<void>;
|
|
61
|
+
refresh_status(wait_response?: boolean, ignore_unsupported?: boolean): Promise<boolean>;
|
|
62
|
+
preprocess_message(message: Buffer): boolean;
|
|
63
|
+
parse_message(message: Buffer): ParseMessageResult;
|
|
64
|
+
send_command(command_type: MessageType, command_body: Buffer): Promise<void>;
|
|
65
|
+
send_heartbeat(): Promise<void>;
|
|
66
|
+
protected update(values: DeviceAttributeBase): Promise<void>;
|
|
67
|
+
open(): void;
|
|
68
|
+
close(): void;
|
|
69
|
+
private close_socket;
|
|
70
|
+
/*********************************************************************
|
|
71
|
+
* run
|
|
72
|
+
* Continuous loop that runs listening for network traffic from the device
|
|
73
|
+
* and proceses each message as received.
|
|
74
|
+
*/
|
|
75
|
+
private run;
|
|
76
|
+
}
|
|
77
77
|
//# sourceMappingURL=MideaDevice.d.ts.map
|