homebridge-broadlink-rm-blaster 1.0.0 → 1.0.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/dist/broadlinkClient.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BroadlinkClient = void 0;
|
|
7
7
|
exports.parseHexCode = parseHexCode;
|
|
8
|
+
exports.placeholderMacForIp = placeholderMacForIp;
|
|
8
9
|
const kiwicam_broadlinkjs_rm_1 = __importDefault(require("kiwicam-broadlinkjs-rm"));
|
|
9
10
|
// Device type code the library reserves for a manually added RM (RF capable),
|
|
10
11
|
// used when connecting directly by IP instead of relying on UDP discovery.
|
|
@@ -15,6 +16,19 @@ const READ_TIMEOUT_MS = 10_000;
|
|
|
15
16
|
function parseHexCode(hexCode) {
|
|
16
17
|
return Buffer.from(hexCode.replace(/\s+/g, ''), 'hex');
|
|
17
18
|
}
|
|
19
|
+
// kiwicam-broadlinkjs-rm's own Broadlink.addDevice() keys its internal device
|
|
20
|
+
// registry by MAC address, not by IP - passing the same placeholder MAC for
|
|
21
|
+
// every device (as this used to) means the second addDevice() call for a
|
|
22
|
+
// different IP hits the library's "already know this MAC, ignore" guard and
|
|
23
|
+
// silently never creates a Device or authenticates, no matter how many RM
|
|
24
|
+
// devices are configured. We don't have (and don't need) each device's real
|
|
25
|
+
// MAC - the device itself doesn't validate it for this direct-by-IP
|
|
26
|
+
// connection mode - so deriving a distinct placeholder per IP is enough to
|
|
27
|
+
// give every configured device its own slot in the library's registry.
|
|
28
|
+
function placeholderMacForIp(ip) {
|
|
29
|
+
const octets = ip.split('.').map(Number);
|
|
30
|
+
return Buffer.from([0, 0, ...octets]);
|
|
31
|
+
}
|
|
18
32
|
class BroadlinkClient {
|
|
19
33
|
log;
|
|
20
34
|
broadlink = new kiwicam_broadlinkjs_rm_1.default();
|
|
@@ -29,6 +43,7 @@ class BroadlinkClient {
|
|
|
29
43
|
}
|
|
30
44
|
devicePromise = new Promise((resolve, reject) => {
|
|
31
45
|
const timeout = setTimeout(() => {
|
|
46
|
+
this.broadlink.removeListener('deviceReady', onReady);
|
|
32
47
|
reject(new Error(`Timed out authenticating with Broadlink RM at ${ip}`));
|
|
33
48
|
}, AUTH_TIMEOUT_MS);
|
|
34
49
|
const onReady = (device) => {
|
|
@@ -41,7 +56,7 @@ class BroadlinkClient {
|
|
|
41
56
|
resolve(device);
|
|
42
57
|
};
|
|
43
58
|
this.broadlink.on('deviceReady', onReady);
|
|
44
|
-
this.broadlink.addDevice({ address: ip, port: BROADLINK_PORT },
|
|
59
|
+
this.broadlink.addDevice({ address: ip, port: BROADLINK_PORT }, placeholderMacForIp(ip), MANUAL_RM_DEVICE_TYPE);
|
|
45
60
|
});
|
|
46
61
|
devicePromise.catch(() => this.devices.delete(ip));
|
|
47
62
|
this.devices.set(ip, devicePromise);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadlinkClient.js","sourceRoot":"","sources":["../src/broadlinkClient.ts"],"names":[],"mappings":";;;;;;AAUA,oCAEC;
|
|
1
|
+
{"version":3,"file":"broadlinkClient.js","sourceRoot":"","sources":["../src/broadlinkClient.ts"],"names":[],"mappings":"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"}
|