homebridge-midea-platform 0.4.6 → 0.4.8
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/README.md +8 -7
- package/config.schema.json +0 -2
- package/dist/core/MideaCloud.d.ts +1 -1
- package/dist/core/MideaCloud.d.ts.map +1 -1
- package/dist/core/MideaCloud.js +2 -0
- package/dist/core/MideaCloud.js.map +1 -1
- package/dist/devices/DeviceFactory.d.ts +1 -1
- package/dist/devices/DeviceFactory.d.ts.map +1 -1
- package/dist/devices/DeviceFactory.js +2 -0
- package/dist/devices/DeviceFactory.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +44 -44
- package/dist/platform.js.map +1 -1
- package/homebridge-ui/public/index.html +25 -17
- package/homebridge-ui/server.js +10 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,11 +40,12 @@ Midea device status is retrieved over your Local Area Network (LAN) and credenti
|
|
|
40
40
|
|
|
41
41
|
## Device Discovery
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Midea devices use different communication protocols. Protocol version 3 needs credentials for each device. Credentials for these Midea devices on your Local Area Network (LAN) must be retrieved from Midea cloud server, this is done through the Settings window in the Homebridge Config User Interface. On opening the settings window, click on *Discover Devices* and enter the requested information. You can run the discovery without providing your login credentials, however in this case if a protocol version 3 device is found in your network, it cannot be added. If you see *No credentials" instead of an *Add* or *Update* button then you must provide your login credentials.
|
|
44
44
|
|
|
45
|
-
* **Registered app** *(
|
|
46
|
-
* **Username** *(
|
|
47
|
-
* **Password** *(
|
|
45
|
+
* **Registered app** *(optional)*: Name of the Midea mobile app that you registered your userid and password with. Defaults to *Midea SmartHome (MSmartHome)*, but you can also select *NetHome Plus* or *Meiju*.
|
|
46
|
+
* **Username** *(optional)*: Email address / userid that you use to login to the Midea cloud service.
|
|
47
|
+
* **Password** *(optional)*: Password for Midea cloud service.
|
|
48
|
+
* **IP Addresses** *(optional)*: Comma- or space-separated list of device IP addresses.
|
|
48
49
|
|
|
49
50
|
On clicking *Discover All Devices* the plugin sends a message to the broadcast address for the subnet of each network interface attached to the Homebridge server. Midea devices attached to the network will respond. Network discovery is repeated multiple times (currently 4 times at interval of 2 seconds between each). At the end of the process details of all devices discovered are listed in the Settings window. From there, you can add new devices or update the *token/key* credentials for existing devices. You can then edit details for each device (for example change the name).
|
|
50
51
|
|
|
@@ -105,9 +106,9 @@ If you delete a device in the plugin settings window, or the Homebridge config.j
|
|
|
105
106
|
* **name** *(optional)*: This replaces the name set by the Midea device and is displayed in the Homebridge accessories page. Entries in the log are prefixed with this name to assist in identifying the source of information being logged.
|
|
106
107
|
* **id** *(required)*: ID to identify specific device. This will be filled in by the device discovery process in the Settings window but uou can also find this from the Homebridge log during plugin initialization or in the Homebridge Config UI X by clicking on an accessory settings and copying the *Product Data* field.
|
|
107
108
|
* **advanced_options** *(required)*: Object with settings specific for this device:
|
|
108
|
-
* **ip** *(optional)*: IP address of device on your local LAN.
|
|
109
|
-
* **token** *(
|
|
110
|
-
* **key** *(
|
|
109
|
+
* **ip** *(optional)*: IP address of device on your local LAN. Required if the device is not on the same LAN subnet as your Homebridge server.
|
|
110
|
+
* **token** *(optional)*: Device login token. Required for protocol version 3 devices.
|
|
111
|
+
* **key** *(optional)*: Device login key. Specifying a token/key pair will override any values previously cached by the plugin. Required for protocol version 3 devices.
|
|
111
112
|
* **verbose** *(optional)*: Override global setting for this one device.
|
|
112
113
|
* **logRecoverableErrors** *(optional)*: Override global setting for this one device.
|
|
113
114
|
* **<device_options>** *(optional)*: Object with name and options that are device type specific. See *device notes* below.
|
package/config.schema.json
CHANGED
|
@@ -78,13 +78,11 @@
|
|
|
78
78
|
"token": {
|
|
79
79
|
"title": "Device login token",
|
|
80
80
|
"type": "string",
|
|
81
|
-
"required": true,
|
|
82
81
|
"description": "Token of the device obtained from cloud. This shouldn't be changed if it was added by discovery."
|
|
83
82
|
},
|
|
84
83
|
"key": {
|
|
85
84
|
"title": "Device login key",
|
|
86
85
|
"type": "string",
|
|
87
|
-
"required": true,
|
|
88
86
|
"description": "Key of the device obtained from cloud. This shouldn't be changed if it was added by discovery."
|
|
89
87
|
},
|
|
90
88
|
"verbose": {
|
|
@@ -17,7 +17,7 @@ declare abstract class CloudBase<T extends CloudSecurity> {
|
|
|
17
17
|
protected access_token?: string;
|
|
18
18
|
protected key?: string;
|
|
19
19
|
protected semaphore: Semaphore;
|
|
20
|
-
|
|
20
|
+
loggedIn: boolean;
|
|
21
21
|
constructor(account: string, password: string, security: T);
|
|
22
22
|
protected timestamp(): string;
|
|
23
23
|
apiRequest(endpoint: string, args?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MideaCloud.d.ts","sourceRoot":"","sources":["../../src/core/MideaCloud.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,aAAa,EAA6D,MAAM,iBAAiB,CAAC;AAE3G,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,uBAAe,SAAS,CAAC,CAAC,SAAS,aAAa;IAkB5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAnBhC,SAAS,CAAC,QAAQ,CAAC,WAAW,KAAK;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAc;IAExC,SAAS,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAU;IAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAU;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,SAAkC;IAE9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MideaCloud.d.ts","sourceRoot":"","sources":["../../src/core/MideaCloud.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,aAAa,EAA6D,MAAM,iBAAiB,CAAC;AAE3G,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,uBAAe,SAAS,CAAC,CAAC,SAAS,aAAa;IAkB5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAnBhC,SAAS,CAAC,QAAQ,CAAC,WAAW,KAAK;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAc;IAExC,SAAS,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAU;IAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAU;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,SAAkC;IAE9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IACxB,QAAQ,UAAS;gBAGH,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC;IAMhC,SAAS,CAAC,SAAS;IAIb,UAAU,CACd,QAAQ,EAAE,MAAM,EAEhB,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAE7B,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IA+CzB,UAAU;IAaV,KAAK;IA8CL,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAkBpF;AA4HD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC;CAc/F"}
|
package/dist/core/MideaCloud.js
CHANGED
|
@@ -234,8 +234,10 @@ class UnProxiedCloudBase extends CloudBase {
|
|
|
234
234
|
if (response) {
|
|
235
235
|
this.access_token = response['accessToken'];
|
|
236
236
|
this.sessionId = response['sessionId'];
|
|
237
|
+
this.loggedIn = true;
|
|
237
238
|
}
|
|
238
239
|
else {
|
|
240
|
+
this.loggedIn = false;
|
|
239
241
|
throw new Error('Failed to login.');
|
|
240
242
|
}
|
|
241
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MideaCloud.js","sourceRoot":"","sources":["../../src/core/MideaCloud.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;GAQG;AACH,mCAAqC;AACrC,iCAAiC;AACjC,kDAA0B;AAC1B,mDAA2G;AAC3G,6CAAkD;AAElD,yDAA8C;AAE9C,MAAe,SAAS;IAiBtB,YACqB,OAAe,EACf,QAAgB,EAChB,QAAW;QAFX,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAG;QAnBb,gBAAW,GAAG,CAAC,CAAC;QAChB,WAAM,GAAG,CAAC,CAAC;QACX,YAAO,GAAG,UAAU,CAAC;QAErB,aAAQ,GAAG,OAAO,CAAC;QACnB,WAAM,GAAW,MAAM,CAAC;QACxB,QAAG,GAAW,MAAM,CAAC;QACrB,cAAS,GAAG,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MideaCloud.js","sourceRoot":"","sources":["../../src/core/MideaCloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,6 @@ import MideaACDevice from './ac/MideaACDevice';
|
|
|
4
4
|
import MideaA1Device from './a1/MideaA1Device';
|
|
5
5
|
import { Config, DeviceConfig } from '../platformUtils';
|
|
6
6
|
export default class DeviceFactory {
|
|
7
|
-
static createDevice(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig): MideaACDevice | MideaA1Device |
|
|
7
|
+
static createDevice(logger: Logger, device_info: DeviceInfo, config: Config, deviceConfig: DeviceConfig): MideaACDevice | MideaA1Device | null;
|
|
8
8
|
}
|
|
9
9
|
//# 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,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExD,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,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,aAAa;WAClB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;CAU/G"}
|
|
@@ -13,6 +13,8 @@ class DeviceFactory {
|
|
|
13
13
|
return new MideaACDevice_1.default(logger, device_info, config, deviceConfig);
|
|
14
14
|
case MideaConstants_1.DeviceType.DEHUMIDIFIER:
|
|
15
15
|
return new MideaA1Device_1.default(logger, device_info, config, deviceConfig);
|
|
16
|
+
default:
|
|
17
|
+
return null;
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceFactory.js","sourceRoot":"","sources":["../../src/devices/DeviceFactory.ts"],"names":[],"mappings":";;;;;AACA,2DAAgE;AAChE,uEAA+C;AAC/C,uEAA+C;AAG/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;
|
|
1
|
+
{"version":3,"file":"DeviceFactory.js","sourceRoot":"","sources":["../../src/devices/DeviceFactory.ts"],"names":[],"mappings":";;;;;AACA,2DAAgE;AAChE,uEAA+C;AAC/C,uEAA+C;AAG/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;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;CACF;AAXD,gCAWC"}
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAS5H,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,qBAAa,aAAc,YAAW,qBAAqB;aAevC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAhB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAEpF,SAAgB,WAAW,EAAE,cAAc,EAAE,CAAM;IAGnD,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA6B1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;OAIG;YACW,SAAS;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAS5H,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,qBAAa,aAAc,YAAW,qBAAqB;aAevC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAhB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAEpF,SAAgB,WAAW,EAAE,cAAc,EAAE,CAAM;IAGnD,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA6B1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;OAIG;YACW,SAAS;IAsEvB;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,cAAc;CAM7C"}
|
package/dist/platform.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.MideaPlatform = void 0;
|
|
7
7
|
const settings_1 = require("./settings");
|
|
8
8
|
const MideaDiscover_1 = __importDefault(require("./core/MideaDiscover"));
|
|
9
|
+
const MideaConstants_1 = require("./core/MideaConstants");
|
|
9
10
|
const AccessoryFactory_1 = __importDefault(require("./accessory/AccessoryFactory"));
|
|
10
11
|
const DeviceFactory_1 = __importDefault(require("./devices/DeviceFactory"));
|
|
11
12
|
const platformUtils_1 = require("./platformUtils");
|
|
@@ -131,26 +132,31 @@ class MideaPlatform {
|
|
|
131
132
|
const existingAccessory = this.accessories.find((accessory) => accessory.UUID === uuid);
|
|
132
133
|
// Add default config values
|
|
133
134
|
(0, lodash_1.defaultsDeep)(deviceConfig, platformUtils_1.defaultDeviceConfig);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
this.log.
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
const device = DeviceFactory_1.default.createDevice(this.log, device_info, this.platformConfig, deviceConfig);
|
|
136
|
+
if (device === null) {
|
|
137
|
+
this.log.error(`Device type is unsupported by the plugin: ${device_info.type}`);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
if (existingAccessory) {
|
|
141
|
+
// the accessory already exists, restore from Homebridge cache
|
|
142
|
+
this.log.info(`[${device_info.name}] Restoring existing accessory from cache: ${existingAccessory.displayName}`);
|
|
139
143
|
try {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
144
|
+
// Token/key is only required for V3 devices
|
|
145
|
+
if (device_info.version === MideaConstants_1.ProtocolVersion.V3) {
|
|
146
|
+
if (deviceConfig.advanced_options.token && deviceConfig.advanced_options.key) {
|
|
147
|
+
// token/key provided in config file, use those... replacing values in cached context
|
|
148
|
+
this.log.info(`[${device_info.name}] Cached device, using token/key from config file`);
|
|
149
|
+
existingAccessory.context.token = deviceConfig.advanced_options.token;
|
|
150
|
+
existingAccessory.context.key = deviceConfig.advanced_options.key;
|
|
151
|
+
device.setCredentials(Buffer.from(existingAccessory.context.token, 'hex'), Buffer.from(existingAccessory.context.key, 'hex'));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
// use token/key values from the accessory cached context
|
|
155
|
+
this.log.info(`[${device_info.name}] Cached device, using saved credentials`);
|
|
156
|
+
device.setCredentials(Buffer.from(existingAccessory.context.token, 'hex'), Buffer.from(existingAccessory.context.key, 'hex'));
|
|
157
|
+
}
|
|
153
158
|
}
|
|
159
|
+
await device.connect(false);
|
|
154
160
|
AccessoryFactory_1.default.createAccessory(this, existingAccessory, device, deviceConfig);
|
|
155
161
|
}
|
|
156
162
|
catch (err) {
|
|
@@ -159,27 +165,24 @@ class MideaPlatform {
|
|
|
159
165
|
}
|
|
160
166
|
}
|
|
161
167
|
else {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
await device.connect(false);
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
throw new Error(`Token/key not provided in config file, cannot add new device`);
|
|
168
|
+
try {
|
|
169
|
+
this.log.info('Adding new accessory:', device_info.name);
|
|
170
|
+
const accessory = new this.api.platformAccessory(device_info.name, uuid);
|
|
171
|
+
// Token/key is only required for V3 devices
|
|
172
|
+
if (device_info.version === MideaConstants_1.ProtocolVersion.V3) {
|
|
173
|
+
if (deviceConfig.advanced_options.token && deviceConfig.advanced_options.key) {
|
|
174
|
+
// token/key provided in config file, use those... set values in cached context
|
|
175
|
+
this.log.info(`[${device_info.name}] New device at ${device_info.ip}:${device_info.port}, using token/key from config file`);
|
|
176
|
+
accessory.context.token = deviceConfig.advanced_options.token;
|
|
177
|
+
accessory.context.key = deviceConfig.advanced_options.key;
|
|
178
|
+
accessory.context.id = device_info.id.toString();
|
|
179
|
+
device.setCredentials(Buffer.from(accessory.context.token, 'hex'), Buffer.from(accessory.context.key, 'hex'));
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
throw new Error(`Token/key not provided in config file, cannot add new device`);
|
|
183
|
+
}
|
|
182
184
|
}
|
|
185
|
+
await device.connect(false);
|
|
183
186
|
// Set serial number and model into the context if they are provided.
|
|
184
187
|
accessory.context.sn = (_a = device_info.sn) !== null && _a !== void 0 ? _a : 'unknown';
|
|
185
188
|
accessory.context.model = (_b = device_info.model) !== null && _b !== void 0 ? _b : 'unknown';
|
|
@@ -189,14 +192,11 @@ class MideaPlatform {
|
|
|
189
192
|
// link the accessory to your platform
|
|
190
193
|
this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
|
|
191
194
|
}
|
|
192
|
-
|
|
193
|
-
|
|
195
|
+
catch (err) {
|
|
196
|
+
this.log.error(`[${device_info.name} | ${device_info.ip}:${device_info.port}}]
|
|
197
|
+
Cannot add new device ${device_info.ip}:${device_info.port}, error:\n${err}`);
|
|
194
198
|
}
|
|
195
199
|
}
|
|
196
|
-
catch (err) {
|
|
197
|
-
this.log.error(`[${device_info.name} | ${device_info.ip}:${device_info.port}}]
|
|
198
|
-
Cannot add new device ${device_info.ip}:${device_info.port}, error:\n${err}`);
|
|
199
|
-
}
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
/**
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;;;;AAUA,yCAAwD;AACxD,yEAA4C;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,11 @@
|
|
|
25
25
|
<div class="collapse" id="discoverDevices">
|
|
26
26
|
<div class="card-body">
|
|
27
27
|
<form>
|
|
28
|
+
<div class="mb-3 bg-info-subtle border-info-subtle p-3 rounded-2">
|
|
29
|
+
You can discover your devices without providing credentials. However, if you see <i>No Credentials</i> in the
|
|
30
|
+
Add/Update column then you must provide login credentials so that a <i>token/key</i> pair can be retrieved
|
|
31
|
+
from Midea cloud servers, these are protocol version 3 devices.
|
|
32
|
+
</div>
|
|
28
33
|
<div class="mb-3">
|
|
29
34
|
<label for="registeredApp" class="form-label">Registered app</label>
|
|
30
35
|
<select id="registeredApp" class="form-select">
|
|
@@ -44,7 +49,7 @@
|
|
|
44
49
|
<div class="mb-3">
|
|
45
50
|
<label for="ip" class="form-label">IP Addresses (comma or space separated list for when devices are on
|
|
46
51
|
another LAN subnet)</label>
|
|
47
|
-
<input type="text" class="form-control" id="ip" placeholder="IP addresses">
|
|
52
|
+
<input type="text" class="form-control" id="ip" placeholder="IP addresses (optional)">
|
|
48
53
|
</div>
|
|
49
54
|
<button class="btn btn-primary btn-login" type="submit" id="discoverBtn" style="border: 0;">
|
|
50
55
|
Discover All Devices
|
|
@@ -58,6 +63,7 @@
|
|
|
58
63
|
<th scope="col">Type</th>
|
|
59
64
|
<th scope="col">Model</th>
|
|
60
65
|
<th scope="col">Id</th>
|
|
66
|
+
<th scope="col">Ver.</th>
|
|
61
67
|
<th scope="col">Token / Key</th>
|
|
62
68
|
<th scope="col">Local Ip</th>
|
|
63
69
|
<th scope="col">Add / Update</th>
|
|
@@ -166,15 +172,11 @@
|
|
|
166
172
|
const registeredApp = document.getElementById('registeredApp').value;
|
|
167
173
|
let ipAddrs = document.getElementById('ip').value ? document.getElementById('ip').value.split(/[\s,]+/) : [];
|
|
168
174
|
|
|
169
|
-
if (!username || !password || !registeredApp) {
|
|
170
|
-
homebridge.toast.error('Please enter username, password and registered app');
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
175
|
homebridge.showSpinner();
|
|
175
176
|
|
|
177
|
+
|
|
178
|
+
console.info(`Request login...`);
|
|
176
179
|
try {
|
|
177
|
-
console.info(`Request login...`);
|
|
178
180
|
await homebridge.request('/login', { username, password, registeredApp });
|
|
179
181
|
} catch (e) {
|
|
180
182
|
homebridge.toast.error(e.message);
|
|
@@ -218,7 +220,8 @@
|
|
|
218
220
|
currentConfig.devices = currentConfig.devices || [];
|
|
219
221
|
if (devices) {
|
|
220
222
|
devices.forEach((device) => {
|
|
221
|
-
|
|
223
|
+
// Token and key only needed for protocol version 3
|
|
224
|
+
const validAuth = (device.token && device.key) || device.version !== 3;
|
|
222
225
|
const tr = table.insertRow();
|
|
223
226
|
const td = tr.insertCell();
|
|
224
227
|
td.appendChild(document.createTextNode(device.name));
|
|
@@ -227,21 +230,26 @@
|
|
|
227
230
|
tr.insertCell().appendChild(document.createTextNode(device.displayName));
|
|
228
231
|
tr.insertCell().appendChild(document.createTextNode(device.model));
|
|
229
232
|
tr.insertCell().appendChild(document.createTextNode(device.id));
|
|
230
|
-
tr.insertCell().appendChild(document.createTextNode(
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
device.
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
233
|
+
tr.insertCell().appendChild(document.createTextNode(device.version));
|
|
234
|
+
if (device.version === 3) {
|
|
235
|
+
tr.insertCell().appendChild(document.createTextNode(
|
|
236
|
+
device.token ?
|
|
237
|
+
device.token.slice(0, 6) + '...' + device.token.slice(-4) :
|
|
238
|
+
'token missing' + '\n' +
|
|
239
|
+
device.key ?
|
|
240
|
+
device.key.slice(0, 6) + '...' + device.key.slice(-4) :
|
|
241
|
+
'key missing'
|
|
242
|
+
));
|
|
243
|
+
} else {
|
|
244
|
+
tr.insertCell().appendChild(document.createTextNode('not needed'));
|
|
245
|
+
}
|
|
238
246
|
tr.insertCell().appendChild(document.createTextNode(device.ip));
|
|
239
247
|
|
|
240
248
|
const addCell = tr.insertCell();
|
|
241
249
|
if (device.displayName === 'Unknown') {
|
|
242
250
|
addCell.appendChild(document.createTextNode('Not supported'));
|
|
243
251
|
} else if (!validAuth) {
|
|
244
|
-
addCell.appendChild(document.createTextNode('
|
|
252
|
+
addCell.appendChild(document.createTextNode('No credentials'));
|
|
245
253
|
} else if (currentConfig.devices.find((d) => d.id === device.id)) {
|
|
246
254
|
// We already have a record for this device, either with device ID, add button to update it.
|
|
247
255
|
const button = document.createElement('button');
|
package/homebridge-ui/server.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
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 } = require("../dist/core/MideaConstants.js");
|
|
13
|
+
const { DeviceType, TCPMessageType, ProtocolVersion } = require("../dist/core/MideaConstants.js");
|
|
14
14
|
const { LocalSecurity } = require("../dist/core/MideaSecurity.js");
|
|
15
15
|
const { PromiseSocket } = require("../dist/core/MideaUtils.js");
|
|
16
16
|
const { defaultConfig, defaultDeviceConfig } = require('../dist/platformUtils.js');
|
|
@@ -84,11 +84,12 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
84
84
|
this.onRequest('/login', async ({ username, password, registeredApp }) => {
|
|
85
85
|
try {
|
|
86
86
|
this.cloud = CloudFactory.createCloud(username, password, registeredApp);
|
|
87
|
-
|
|
87
|
+
if (username && password && registeredApp) {
|
|
88
|
+
await this.cloud.login();
|
|
89
|
+
}
|
|
88
90
|
} catch (e) {
|
|
89
91
|
const msg = e instanceof Error ? e.stack : e;
|
|
90
92
|
this.logger.warn(`Login failed:\n${msg}`);
|
|
91
|
-
throw new RequestError('Login failed, check credentials.');
|
|
92
93
|
}
|
|
93
94
|
});
|
|
94
95
|
|
|
@@ -114,7 +115,12 @@ class UiServer extends HomebridgePluginUiServer {
|
|
|
114
115
|
try {
|
|
115
116
|
const devices = await this.blockingDiscover(ip);
|
|
116
117
|
for (const device of devices) {
|
|
117
|
-
|
|
118
|
+
if (device.version === ProtocolVersion.V3 && this.cloud.loggedIn) {
|
|
119
|
+
await this.getNewCredentials(device);
|
|
120
|
+
} else {
|
|
121
|
+
device.token = '';
|
|
122
|
+
device.key = '';
|
|
123
|
+
}
|
|
118
124
|
}
|
|
119
125
|
this.logger.debug(`All devices:\n${JSON.stringify(devices, null, 2)}`);
|
|
120
126
|
return devices
|