homebridge-midea-platform 1.1.2-beta.1 → 1.1.2-beta.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.
- package/dist/accessory/AccessoryFactory.d.ts +2 -1
- package/dist/accessory/AccessoryFactory.d.ts.map +1 -1
- package/dist/accessory/AccessoryFactory.js +3 -0
- package/dist/accessory/AccessoryFactory.js.map +1 -1
- package/dist/devices/DeviceFactory.d.ts +2 -1
- package/dist/devices/DeviceFactory.d.ts.map +1 -1
- package/dist/devices/DeviceFactory.js +3 -0
- package/dist/devices/DeviceFactory.js.map +1 -1
- package/homebridge-ui/server.js +30 -26
- package/package.json +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { MideaAccessory, MideaPlatform } from '../platform';
|
|
2
2
|
import AirConditionerAccessory from './AirConditionerAccessory';
|
|
3
3
|
import DehumidifierAccessory from './DehumidifierAccessory';
|
|
4
|
+
import FrontLoadWasherAccessory from './FrontLoadWasherAccessory';
|
|
4
5
|
import ElectricWaterHeaterAccessory from './ElectricWaterHeaterAccessory';
|
|
5
6
|
import GasWaterHeaterAccessory from './GasWaterHeaterAccessory';
|
|
6
7
|
import FanAccessory from './FanAccessory';
|
|
7
8
|
import MideaDevice from '../core/MideaDevice';
|
|
8
9
|
import { DeviceConfig } from '../platformUtils';
|
|
9
10
|
export default class AccessoryFactory {
|
|
10
|
-
static createAccessory<T extends MideaDevice>(platform: MideaPlatform, accessory: MideaAccessory, device: T, configDev: DeviceConfig): AirConditionerAccessory | DehumidifierAccessory | ElectricWaterHeaterAccessory | GasWaterHeaterAccessory | FanAccessory | undefined;
|
|
11
|
+
static createAccessory<T extends MideaDevice>(platform: MideaPlatform, accessory: MideaAccessory, device: T, configDev: DeviceConfig): AirConditionerAccessory | DehumidifierAccessory | FrontLoadWasherAccessory | ElectricWaterHeaterAccessory | GasWaterHeaterAccessory | FanAccessory | undefined;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=AccessoryFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessoryFactory.d.ts","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"AccessoryFactory.d.ts","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAShD,MAAM,CAAC,OAAO,OAAO,gBAAgB;WACrB,eAAe,CAAC,CAAC,SAAS,WAAW,EACjD,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,YAAY;CAiB1B"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const MideaConstants_1 = require("../core/MideaConstants");
|
|
7
7
|
const AirConditionerAccessory_1 = __importDefault(require("./AirConditionerAccessory"));
|
|
8
8
|
const DehumidifierAccessory_1 = __importDefault(require("./DehumidifierAccessory"));
|
|
9
|
+
const FrontLoadWasherAccessory_1 = __importDefault(require("./FrontLoadWasherAccessory"));
|
|
9
10
|
const ElectricWaterHeaterAccessory_1 = __importDefault(require("./ElectricWaterHeaterAccessory"));
|
|
10
11
|
const GasWaterHeaterAccessory_1 = __importDefault(require("./GasWaterHeaterAccessory"));
|
|
11
12
|
const FanAccessory_1 = __importDefault(require("./FanAccessory"));
|
|
@@ -16,6 +17,8 @@ class AccessoryFactory {
|
|
|
16
17
|
return new AirConditionerAccessory_1.default(platform, accessory, device, configDev);
|
|
17
18
|
case MideaConstants_1.DeviceType.DEHUMIDIFIER:
|
|
18
19
|
return new DehumidifierAccessory_1.default(platform, accessory, device, configDev);
|
|
20
|
+
case MideaConstants_1.DeviceType.FRONT_LOAD_WASHER:
|
|
21
|
+
return new FrontLoadWasherAccessory_1.default(platform, accessory, device, configDev);
|
|
19
22
|
case MideaConstants_1.DeviceType.ELECTRIC_WATER_HEATER:
|
|
20
23
|
return new ElectricWaterHeaterAccessory_1.default(platform, accessory, device, configDev);
|
|
21
24
|
case MideaConstants_1.DeviceType.GAS_WATER_HEATER:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessoryFactory.js","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":";;;;;AAAA,2DAAoD;AAEpD,wFAAgE;AAChE,oFAA4D;AAC5D,kGAA0E;AAC1E,wFAAgE;AAChE,kEAA0C;
|
|
1
|
+
{"version":3,"file":"AccessoryFactory.js","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":";;;;;AAAA,2DAAoD;AAEpD,wFAAgE;AAChE,oFAA4D;AAC5D,0FAAkE;AAClE,kGAA0E;AAC1E,wFAAgE;AAChE,kEAA0C;AAY1C,MAAqB,gBAAgB;IAC5B,MAAM,CAAC,eAAe,CAC3B,QAAuB,EACvB,SAAyB,EACzB,MAAS,EACT,SAAuB;QAEvB,QAAQ,MAAM,CAAC,IAAI,EAAE;YACnB,KAAK,2BAAU,CAAC,eAAe;gBAC7B,OAAO,IAAI,iCAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;YACzG,KAAK,2BAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,+BAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;YACvG,KAAK,2BAAU,CAAC,iBAAiB;gBAC/B,OAAO,IAAI,kCAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;YAC1G,KAAK,2BAAU,CAAC,qBAAqB;gBACnC,OAAO,IAAI,sCAA4B,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;YAC9G,KAAK,2BAAU,CAAC,gBAAgB;gBAC9B,OAAO,IAAI,iCAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;YACzG,KAAK,2BAAU,CAAC,GAAG;gBACjB,OAAO,IAAI,sBAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;SAC/F;IACH,CAAC;CACF;AAtBD,mCAsBC"}
|
|
@@ -6,7 +6,8 @@ import MideaA1Device from './a1/MideaA1Device';
|
|
|
6
6
|
import MideaE2Device from './e2/MideaE2Device';
|
|
7
7
|
import MideaE3Device from './e3/MideaE3Device';
|
|
8
8
|
import MideaFADevice from './fa/MideaFADevice';
|
|
9
|
+
import MideaDBDevice from './db/MideaDBDevice';
|
|
9
10
|
export default class DeviceFactory {
|
|
10
|
-
static createDevice(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig): MideaACDevice | MideaA1Device | MideaE2Device | MideaE3Device | MideaFADevice | null;
|
|
11
|
+
static createDevice(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig): MideaACDevice | MideaA1Device | MideaDBDevice | MideaE2Device | MideaE3Device | MideaFADevice | null;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=DeviceFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceFactory.d.ts","sourceRoot":"","sources":["../../src/devices/DeviceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAc,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAa;WAClB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"DeviceFactory.d.ts","sourceRoot":"","sources":["../../src/devices/DeviceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAc,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAa;WAClB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;CAkB/G"}
|
|
@@ -9,6 +9,7 @@ const MideaA1Device_1 = __importDefault(require("./a1/MideaA1Device"));
|
|
|
9
9
|
const MideaE2Device_1 = __importDefault(require("./e2/MideaE2Device"));
|
|
10
10
|
const MideaE3Device_1 = __importDefault(require("./e3/MideaE3Device"));
|
|
11
11
|
const MideaFADevice_1 = __importDefault(require("./fa/MideaFADevice"));
|
|
12
|
+
const MideaDBDevice_1 = __importDefault(require("./db/MideaDBDevice"));
|
|
12
13
|
class DeviceFactory {
|
|
13
14
|
static createDevice(logger, device_info, config, deviceConfig) {
|
|
14
15
|
switch (device_info.type) {
|
|
@@ -16,6 +17,8 @@ class DeviceFactory {
|
|
|
16
17
|
return new MideaACDevice_1.default(logger, device_info, config, deviceConfig);
|
|
17
18
|
case MideaConstants_1.DeviceType.DEHUMIDIFIER:
|
|
18
19
|
return new MideaA1Device_1.default(logger, device_info, config, deviceConfig);
|
|
20
|
+
case MideaConstants_1.DeviceType.FRONT_LOAD_WASHER:
|
|
21
|
+
return new MideaDBDevice_1.default(logger, device_info, config, deviceConfig);
|
|
19
22
|
case MideaConstants_1.DeviceType.ELECTRIC_WATER_HEATER:
|
|
20
23
|
return new MideaE2Device_1.default(logger, device_info, config, deviceConfig);
|
|
21
24
|
case MideaConstants_1.DeviceType.GAS_WATER_HEATER:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceFactory.js","sourceRoot":"","sources":["../../src/devices/DeviceFactory.ts"],"names":[],"mappings":";;;;;AACA,2DAAgE;AAEhE,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAE/C,MAAqB,aAAa;IACzB,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,WAAuB,EAAE,MAAc,EAAE,YAA0B;QAC5G,QAAQ,WAAW,CAAC,IAAI,EAAE;YACxB,KAAK,2BAAU,CAAC,eAAe;gBAC7B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,qBAAqB;gBACnC,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,gBAAgB;gBAC9B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,GAAG;gBACjB,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"DeviceFactory.js","sourceRoot":"","sources":["../../src/devices/DeviceFactory.ts"],"names":[],"mappings":";;;;;AACA,2DAAgE;AAEhE,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAC/C,uEAA+C;AAE/C,MAAqB,aAAa;IACzB,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,WAAuB,EAAE,MAAc,EAAE,YAA0B;QAC5G,QAAQ,WAAW,CAAC,IAAI,EAAE;YACxB,KAAK,2BAAU,CAAC,eAAe;gBAC7B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,iBAAiB;gBAC/B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,qBAAqB;gBACnC,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,gBAAgB;gBAC9B,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE,KAAK,2BAAU,CAAC,GAAG;gBACjB,OAAO,IAAI,uBAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACtE;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;CACF;AAnBD,gCAmBC"}
|
package/homebridge-ui/server.js
CHANGED
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
const { HomebridgePluginUiServer, RequestError } = require('@homebridge/plugin-ui-utils');
|
|
11
11
|
const Discover = require('../dist/core/MideaDiscover.js').default;
|
|
12
12
|
const CloudFactory = require('../dist/core/MideaCloud.js').default;
|
|
13
|
-
const { DeviceType, TCPMessageType, ProtocolVersion, Endianness } = require(
|
|
14
|
-
const { LocalSecurity } = require(
|
|
15
|
-
const { PromiseSocket } = require(
|
|
13
|
+
const { DeviceType, TCPMessageType, ProtocolVersion, Endianness } = require('../dist/core/MideaConstants.js');
|
|
14
|
+
const { LocalSecurity } = require('../dist/core/MideaSecurity.js');
|
|
15
|
+
const { PromiseSocket } = require('../dist/core/MideaUtils.js');
|
|
16
16
|
const { defaultConfig, defaultDeviceConfig } = require('../dist/platformUtils.js');
|
|
17
17
|
|
|
18
18
|
const DEFAULT_ACCOUNT = [
|
|
19
|
-
BigInt(
|
|
20
|
-
BigInt(
|
|
21
|
-
BigInt(
|
|
22
|
-
]
|
|
19
|
+
BigInt('39182118275972017797890111985649342047468653967530949796945843010512'),
|
|
20
|
+
BigInt('29406100301096535908214728322278519471982973450672552249652548883645'),
|
|
21
|
+
BigInt('39182118275972017797890111985649342050088014265865102175083010656997'),
|
|
22
|
+
];
|
|
23
23
|
|
|
24
24
|
var _ = require('lodash');
|
|
25
25
|
|
|
@@ -29,19 +29,19 @@ var _ = require('lodash');
|
|
|
29
29
|
*/
|
|
30
30
|
class Logger {
|
|
31
31
|
_debug;
|
|
32
|
-
_Reset =
|
|
33
|
-
_Bright =
|
|
34
|
-
_Dim =
|
|
32
|
+
_Reset = '\x1b[0m';
|
|
33
|
+
_Bright = '\x1b[1m';
|
|
34
|
+
_Dim = '\x1b[2m';
|
|
35
35
|
|
|
36
|
-
_FgBlack =
|
|
37
|
-
_FgRed =
|
|
38
|
-
_FgGreen =
|
|
39
|
-
_FgYellow =
|
|
40
|
-
_FgBlue =
|
|
41
|
-
_FgMagenta =
|
|
42
|
-
_FgCyan =
|
|
43
|
-
_FgWhite =
|
|
44
|
-
_FgGray =
|
|
36
|
+
_FgBlack = '\x1b[30m';
|
|
37
|
+
_FgRed = '\x1b[31m';
|
|
38
|
+
_FgGreen = '\x1b[32m';
|
|
39
|
+
_FgYellow = '\x1b[33m';
|
|
40
|
+
_FgBlue = '\x1b[34m';
|
|
41
|
+
_FgMagenta = '\x1b[35m';
|
|
42
|
+
_FgCyan = '\x1b[36m';
|
|
43
|
+
_FgWhite = '\x1b[37m';
|
|
44
|
+
_FgGray = '\x1b[90m';
|
|
45
45
|
|
|
46
46
|
constructor(uiDebug = false) {
|
|
47
47
|
this._debug = uiDebug;
|
|
@@ -70,7 +70,6 @@ class Logger {
|
|
|
70
70
|
* Main server-side script called when Custom UI client sends requests
|
|
71
71
|
*/
|
|
72
72
|
class UiServer extends HomebridgePluginUiServer {
|
|
73
|
-
|
|
74
73
|
cloud;
|
|
75
74
|
promiseSocket;
|
|
76
75
|
security;
|
|
@@ -92,8 +91,8 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
92
91
|
if (useDefaultProfile) {
|
|
93
92
|
this.logger.debug(`Using default profile.`);
|
|
94
93
|
registeredApp = 'Midea SmartHome (MSmartHome)';
|
|
95
|
-
username = Buffer.from((DEFAULT_ACCOUNT[0] ^ DEFAULT_ACCOUNT[1]).toString(16), 'hex').toString('ascii')
|
|
96
|
-
password = Buffer.from((DEFAULT_ACCOUNT[0] ^ DEFAULT_ACCOUNT[2]).toString(16), 'hex').toString('ascii')
|
|
94
|
+
username = Buffer.from((DEFAULT_ACCOUNT[0] ^ DEFAULT_ACCOUNT[1]).toString(16), 'hex').toString('ascii');
|
|
95
|
+
password = Buffer.from((DEFAULT_ACCOUNT[0] ^ DEFAULT_ACCOUNT[2]).toString(16), 'hex').toString('ascii');
|
|
97
96
|
}
|
|
98
97
|
this.cloud = CloudFactory.createCloud(username, password, registeredApp);
|
|
99
98
|
if (username && password && registeredApp) {
|
|
@@ -136,9 +135,7 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
136
135
|
}
|
|
137
136
|
}
|
|
138
137
|
this.logger.debug(`All devices:\n${JSON.stringify(devices, null, 2)}`);
|
|
139
|
-
return devices
|
|
140
|
-
.filter((a) => Object.keys(a).length > 0)
|
|
141
|
-
.sort((a, b) => a.ip.localeCompare(b.ip));
|
|
138
|
+
return devices.filter((a) => Object.keys(a).length > 0).sort((a, b) => a.ip.localeCompare(b.ip));
|
|
142
139
|
} catch (e) {
|
|
143
140
|
const msg = e instanceof Error ? e.stack : e;
|
|
144
141
|
throw new RequestError(`Device discovery failed:\n${msg}`);
|
|
@@ -199,7 +196,11 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
199
196
|
const response = await this.promiseSocket.read();
|
|
200
197
|
if (response) {
|
|
201
198
|
if (response.length < 20) {
|
|
202
|
-
this.logger.debug(
|
|
199
|
+
this.logger.debug(
|
|
200
|
+
`[${device.name}] Authenticate error when receiving data from ${device.ip}:${device.port}. (Data length: ${
|
|
201
|
+
response.length
|
|
202
|
+
})\n${JSON.stringify(response)}`,
|
|
203
|
+
);
|
|
203
204
|
throw Error(`[${device.name}] Authenticate error when receiving data from ${device.ip}:${device.port}. (Data length mismatch)`);
|
|
204
205
|
}
|
|
205
206
|
const resp = response.subarray(8, 72);
|
|
@@ -239,6 +240,9 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
239
240
|
case DeviceType.DEHUMIDIFIER:
|
|
240
241
|
device['displayName'] = 'Dehumidifier';
|
|
241
242
|
break;
|
|
243
|
+
case DeviceType.FRONT_LOAD_WASHER:
|
|
244
|
+
device['displayName'] = 'Front Load Washer';
|
|
245
|
+
break;
|
|
242
246
|
case DeviceType.ELECTRIC_WATER_HEATER:
|
|
243
247
|
device['displayName'] = 'Electric Water Heater';
|
|
244
248
|
break;
|
package/package.json
CHANGED