homebridge-lutron-homeworks-ethernet 0.2.2 → 0.2.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/README.md +22 -5
- package/dist/connectionHandler.d.ts +12 -0
- package/dist/connectionHandler.d.ts.map +1 -1
- package/dist/connectionHandler.js +128 -20
- package/dist/connectionHandler.js.map +1 -1
- package/dist/platform.d.ts +3 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +67 -16
- package/dist/platform.js.map +1 -1
- package/dist/platformAccessory.d.ts +2 -0
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +18 -2
- package/dist/platformAccessory.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ ETHERNET Minimum configuration sample (edit `~/.homebridge/config.json`):
|
|
|
34
34
|
"username": "lutron",
|
|
35
35
|
"password": "jetski",
|
|
36
36
|
"defaultFadeTime": 1,
|
|
37
|
-
"platform": "
|
|
37
|
+
"platform": "LutronHomeworksEthernet"
|
|
38
38
|
}
|
|
39
39
|
]
|
|
40
40
|
```
|
|
@@ -50,7 +50,7 @@ SERIAL Minimum configuration sample (edit `~/.homebridge/config.json`):
|
|
|
50
50
|
"baudRate": 115200,
|
|
51
51
|
"loginRequired": true,
|
|
52
52
|
"password": "jetski",
|
|
53
|
-
"platform": "
|
|
53
|
+
"platform": "LutronHomeworksEthernet"
|
|
54
54
|
}
|
|
55
55
|
],
|
|
56
56
|
```
|
|
@@ -64,7 +64,7 @@ Optional fields:
|
|
|
64
64
|
|
|
65
65
|
* `"baudRate"`: `some number` // optionally sets the baud rate of the serial port (defaults to 115200)
|
|
66
66
|
* `"defaultFadeTime"`: `some number` // optional fade time in seconds to use for all discovered devices (defaults to 1 if omitted)
|
|
67
|
-
* `"
|
|
67
|
+
* `"devices"`: `[{ "address": "01:04:01:01:01", "name": "Formal Living", "fadeTime": 3 },...]` // optional list of devices with their name and specific fade times. This fade time overwrites defaultFadeTime.
|
|
68
68
|
* `"ignoreDevices"`: `["01:04:01:01:02",...]` //optional list of devices to ignore and not add into HomeKit
|
|
69
69
|
|
|
70
70
|
Sample configuration with optional values (edit `~/.homebridge/config.json`):
|
|
@@ -94,12 +94,23 @@ Sample configuration with optional values (edit `~/.homebridge/config.json`):
|
|
|
94
94
|
"ignoreDevices": [
|
|
95
95
|
"01:04:01:01:05",
|
|
96
96
|
"01:04:01:01:06"
|
|
97
|
-
]
|
|
98
|
-
"platform": "
|
|
97
|
+
],
|
|
98
|
+
"platform": "LutronHomeworksEthernet"
|
|
99
99
|
}
|
|
100
100
|
],
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
+
# Keeping accessories in HomeKit
|
|
104
|
+
|
|
105
|
+
Homebridge deletes cached accessories (and with them their HomeKit rooms, scenes and automations) when no loaded plugin claims them. To avoid that:
|
|
106
|
+
|
|
107
|
+
* The `"platform"` value must be exactly `LutronHomeworksEthernet`. Any other value means the plugin never loads and its accessories are orphaned.
|
|
108
|
+
* Don't change device address formats or the bridge `username`. Accessories are identified by their address, and HomeKit treats a new bridge `username` as a brand new bridge.
|
|
109
|
+
* Start Homebridge with `-K` (keep orphans) so accessories survive if the plugin temporarily fails to load. In homebridge-config-ui-x this is the "keep orphans" option in the Homebridge settings.
|
|
110
|
+
* Upgrading from the original `homebridge-lutron-homeworks` package: the plugin and platform names changed, so accessories are re-created once and need to be assigned to rooms again.
|
|
111
|
+
|
|
112
|
+
Devices that don't respond during discovery are not removed. Cached accessories are restored at startup and update as soon as the processor reports their state. Only devices listed in `ignoreDevices` are removed.
|
|
113
|
+
|
|
103
114
|
# What the heck are "Addresses"?
|
|
104
115
|
|
|
105
116
|
Addresses are literally the address for a dimmer or switch. Don't worry if you don't know the addresses of the devices on your Lutron Homework network. This plugin will add all the discovered devices using the address as the device's name in HomeKit. You can then edit `config.json` as needed.
|
|
@@ -141,5 +152,11 @@ This isn't wizardry. Just taking advantage of Lutron HomeWorks protocol. You can
|
|
|
141
152
|
- **Timeout**: Verify your Lutron device is accessible on the network
|
|
142
153
|
- **Authentication failed**: Double-check your password
|
|
143
154
|
- **No response from device**: Some Lutron systems may need a slight delay after connecting before sending commands
|
|
155
|
+
- **Connection dropped**: The plugin reconnects automatically, retrying after 1, 2, 5, 10 and then every 30 seconds, and refreshes known devices once it's back
|
|
156
|
+
|
|
157
|
+
# Making lights respond faster
|
|
158
|
+
|
|
159
|
+
* Lights fade over `defaultFadeTime` seconds (1 by default). Set `"defaultFadeTime": 0`, or `"fadeTime": 0` on individual devices, to make them switch instantly.
|
|
160
|
+
* Listing your devices under `devices` lets the plugin ask about them first at startup, before it scans the rest of the address space. The scan runs in the background and never delays commands from HomeKit.
|
|
144
161
|
|
|
145
162
|
-----
|
|
@@ -18,14 +18,26 @@ export declare class ConnectionHandler extends EventEmitter {
|
|
|
18
18
|
private buffer;
|
|
19
19
|
private loginPending;
|
|
20
20
|
private loginSent;
|
|
21
|
+
private loginFailed;
|
|
22
|
+
private queue;
|
|
23
|
+
private queueTimer;
|
|
24
|
+
private connecting;
|
|
25
|
+
private reconnectTimer;
|
|
26
|
+
private reconnectAttempt;
|
|
27
|
+
private closed;
|
|
21
28
|
constructor(config: ConnectionConfig, log: Logger);
|
|
22
29
|
connect(): Promise<void>;
|
|
23
30
|
private connectSerial;
|
|
24
31
|
private connectTCP;
|
|
32
|
+
private waitForLogin;
|
|
33
|
+
private handleDisconnect;
|
|
34
|
+
private resetConnection;
|
|
35
|
+
private scheduleReconnect;
|
|
25
36
|
private sendImmediateLogin;
|
|
26
37
|
private handleData;
|
|
27
38
|
private writeRaw;
|
|
28
39
|
write(data: string): void;
|
|
40
|
+
enqueue(data: string): void;
|
|
29
41
|
close(): void;
|
|
30
42
|
isConnected(): boolean;
|
|
31
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionHandler.d.ts","sourceRoot":"","sources":["../src/connectionHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,QAAQ,GAAG,KAAK,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"connectionHandler.d.ts","sourceRoot":"","sources":["../src/connectionHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,QAAQ,GAAG,KAAK,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM;IAM3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAmBhB,aAAa;YAkCb,UAAU;IAkCxB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,QAAQ;IAahB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkB3B,KAAK,IAAI,IAAI;IAiBb,WAAW,IAAI,OAAO;CAWvB"}
|
|
@@ -4,6 +4,11 @@ exports.ConnectionHandler = void 0;
|
|
|
4
4
|
const serialport_1 = require("serialport");
|
|
5
5
|
const net_1 = require("net");
|
|
6
6
|
const events_1 = require("events");
|
|
7
|
+
// Delay between low-priority (discovery) commands so HomeKit commands never wait behind a long scan.
|
|
8
|
+
const QUEUE_INTERVAL_MS = 5;
|
|
9
|
+
// Some processors never print "login successful"; stop waiting for it after this long.
|
|
10
|
+
const LOGIN_TIMEOUT_MS = 2000;
|
|
11
|
+
const RECONNECT_DELAYS_MS = [1000, 2000, 5000, 10000, 30000];
|
|
7
12
|
class ConnectionHandler extends events_1.EventEmitter {
|
|
8
13
|
constructor(config, log) {
|
|
9
14
|
super();
|
|
@@ -11,15 +16,35 @@ class ConnectionHandler extends events_1.EventEmitter {
|
|
|
11
16
|
this.buffer = '';
|
|
12
17
|
this.loginPending = false;
|
|
13
18
|
this.loginSent = false;
|
|
19
|
+
this.loginFailed = false;
|
|
20
|
+
this.queue = [];
|
|
21
|
+
this.queueTimer = null;
|
|
22
|
+
this.connecting = false;
|
|
23
|
+
this.reconnectTimer = null;
|
|
24
|
+
this.reconnectAttempt = 0;
|
|
25
|
+
this.closed = false;
|
|
14
26
|
this.config = config;
|
|
15
27
|
this.log = log;
|
|
16
28
|
}
|
|
17
29
|
async connect() {
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
this.connecting = true;
|
|
31
|
+
try {
|
|
32
|
+
if (this.config.connectionType === 'serial') {
|
|
33
|
+
await this.connectSerial();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
await this.connectTCP();
|
|
37
|
+
}
|
|
38
|
+
await this.waitForLogin();
|
|
39
|
+
this.reconnectAttempt = 0;
|
|
20
40
|
}
|
|
21
|
-
|
|
22
|
-
|
|
41
|
+
catch (err) {
|
|
42
|
+
this.resetConnection();
|
|
43
|
+
this.scheduleReconnect();
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
this.connecting = false;
|
|
23
48
|
}
|
|
24
49
|
}
|
|
25
50
|
async connectSerial() {
|
|
@@ -46,7 +71,7 @@ class ConnectionHandler extends events_1.EventEmitter {
|
|
|
46
71
|
});
|
|
47
72
|
port.on('close', () => {
|
|
48
73
|
this.log.warn('Serial port closed');
|
|
49
|
-
this.
|
|
74
|
+
this.handleDisconnect(port);
|
|
50
75
|
});
|
|
51
76
|
});
|
|
52
77
|
}
|
|
@@ -56,6 +81,9 @@ class ConnectionHandler extends events_1.EventEmitter {
|
|
|
56
81
|
const socket = new net_1.Socket();
|
|
57
82
|
socket.connect(this.config.port, this.config.host, () => {
|
|
58
83
|
this.log.info('TCP connection established');
|
|
84
|
+
// Send each command as soon as it is written instead of batching small packets.
|
|
85
|
+
socket.setNoDelay(true);
|
|
86
|
+
socket.setKeepAlive(true, 30000);
|
|
59
87
|
this.connection = socket;
|
|
60
88
|
if (this.config.loginRequired && !this.loginSent) {
|
|
61
89
|
this.sendImmediateLogin();
|
|
@@ -71,14 +99,79 @@ class ConnectionHandler extends events_1.EventEmitter {
|
|
|
71
99
|
});
|
|
72
100
|
socket.on('close', () => {
|
|
73
101
|
this.log.warn('TCP connection closed');
|
|
74
|
-
this.
|
|
75
|
-
});
|
|
76
|
-
socket.on('end', () => {
|
|
77
|
-
this.log.warn('TCP connection ended');
|
|
78
|
-
this.emit('close');
|
|
102
|
+
this.handleDisconnect(socket);
|
|
79
103
|
});
|
|
80
104
|
});
|
|
81
105
|
}
|
|
106
|
+
waitForLogin() {
|
|
107
|
+
if (!this.loginPending) {
|
|
108
|
+
return Promise.resolve();
|
|
109
|
+
}
|
|
110
|
+
return new Promise((resolve, reject) => {
|
|
111
|
+
const timer = setTimeout(() => {
|
|
112
|
+
this.removeListener('ready', onReady);
|
|
113
|
+
if (!this.connection) {
|
|
114
|
+
reject(new Error('Connection lost during login'));
|
|
115
|
+
}
|
|
116
|
+
else if (this.loginFailed) {
|
|
117
|
+
reject(new Error('Login incorrect'));
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.log.debug('No login confirmation received; continuing anyway.');
|
|
121
|
+
this.loginPending = false;
|
|
122
|
+
resolve();
|
|
123
|
+
}
|
|
124
|
+
}, LOGIN_TIMEOUT_MS);
|
|
125
|
+
const onReady = () => {
|
|
126
|
+
clearTimeout(timer);
|
|
127
|
+
resolve();
|
|
128
|
+
};
|
|
129
|
+
this.once('ready', onReady);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
handleDisconnect(source) {
|
|
133
|
+
// Ignore stale events from a connection we've already replaced.
|
|
134
|
+
if (this.connection !== null && this.connection !== source) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const wasConnected = this.connection !== null;
|
|
138
|
+
this.resetConnection();
|
|
139
|
+
if (wasConnected) {
|
|
140
|
+
this.emit('close');
|
|
141
|
+
}
|
|
142
|
+
if (!this.connecting && !this.closed) {
|
|
143
|
+
this.scheduleReconnect();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
resetConnection() {
|
|
147
|
+
this.connection = null;
|
|
148
|
+
this.buffer = '';
|
|
149
|
+
this.loginSent = false;
|
|
150
|
+
this.loginPending = false;
|
|
151
|
+
this.loginFailed = false;
|
|
152
|
+
this.queue = [];
|
|
153
|
+
if (this.queueTimer) {
|
|
154
|
+
clearInterval(this.queueTimer);
|
|
155
|
+
this.queueTimer = null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
scheduleReconnect() {
|
|
159
|
+
if (this.reconnectTimer || this.closed) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const delay = RECONNECT_DELAYS_MS[Math.min(this.reconnectAttempt, RECONNECT_DELAYS_MS.length - 1)];
|
|
163
|
+
this.reconnectAttempt++;
|
|
164
|
+
this.log.info(`Reconnecting in ${delay / 1000}s...`);
|
|
165
|
+
this.reconnectTimer = setTimeout(() => {
|
|
166
|
+
this.reconnectTimer = null;
|
|
167
|
+
this.connect().then(() => {
|
|
168
|
+
this.log.info('Reconnected to Lutron Homeworks');
|
|
169
|
+
this.emit('reconnected');
|
|
170
|
+
}).catch((err) => {
|
|
171
|
+
this.log.error('Reconnect failed:', err instanceof Error ? err.message : err);
|
|
172
|
+
});
|
|
173
|
+
}, delay);
|
|
174
|
+
}
|
|
82
175
|
sendImmediateLogin() {
|
|
83
176
|
const username = this.config.username || 'lutron';
|
|
84
177
|
const password = this.config.password || 'integration';
|
|
@@ -108,6 +201,7 @@ class ConnectionHandler extends events_1.EventEmitter {
|
|
|
108
201
|
}
|
|
109
202
|
else if (trimmed.toLowerCase().includes('login incorrect')) {
|
|
110
203
|
this.log.error('Login failed - check username and password');
|
|
204
|
+
this.loginFailed = true;
|
|
111
205
|
this.emit('error', new Error('Login incorrect'));
|
|
112
206
|
}
|
|
113
207
|
else if (!this.loginPending) {
|
|
@@ -129,27 +223,41 @@ class ConnectionHandler extends events_1.EventEmitter {
|
|
|
129
223
|
}
|
|
130
224
|
}
|
|
131
225
|
write(data) {
|
|
226
|
+
this.writeRaw(data + '\r\n');
|
|
227
|
+
}
|
|
228
|
+
// Queue a low-priority command (e.g. discovery). Sent one at a time so write() commands go out first.
|
|
229
|
+
enqueue(data) {
|
|
132
230
|
if (!this.connection) {
|
|
133
|
-
this.log.error('Cannot write - not connected');
|
|
134
231
|
return;
|
|
135
232
|
}
|
|
136
|
-
|
|
137
|
-
if (this.
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
233
|
+
this.queue.push(data);
|
|
234
|
+
if (!this.queueTimer) {
|
|
235
|
+
this.queueTimer = setInterval(() => {
|
|
236
|
+
const next = this.queue.shift();
|
|
237
|
+
if (next === undefined) {
|
|
238
|
+
clearInterval(this.queueTimer);
|
|
239
|
+
this.queueTimer = null;
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
this.write(next);
|
|
243
|
+
}, QUEUE_INTERVAL_MS);
|
|
142
244
|
}
|
|
143
245
|
}
|
|
144
246
|
close() {
|
|
247
|
+
this.closed = true;
|
|
248
|
+
if (this.reconnectTimer) {
|
|
249
|
+
clearTimeout(this.reconnectTimer);
|
|
250
|
+
this.reconnectTimer = null;
|
|
251
|
+
}
|
|
145
252
|
if (this.connection) {
|
|
253
|
+
const connection = this.connection;
|
|
254
|
+
this.resetConnection();
|
|
146
255
|
if (this.config.connectionType === 'serial') {
|
|
147
|
-
|
|
256
|
+
connection.close();
|
|
148
257
|
}
|
|
149
258
|
else {
|
|
150
|
-
|
|
259
|
+
connection.end();
|
|
151
260
|
}
|
|
152
|
-
this.connection = null;
|
|
153
261
|
}
|
|
154
262
|
}
|
|
155
263
|
isConnected() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionHandler.js","sourceRoot":"","sources":["../src/connectionHandler.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,6BAA6B;AAC7B,mCAAsC;AAatC,MAAa,iBAAkB,SAAQ,qBAAY;
|
|
1
|
+
{"version":3,"file":"connectionHandler.js","sourceRoot":"","sources":["../src/connectionHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -11,9 +11,12 @@ export declare class LutronHomeworksPlatform implements DynamicPlatformPlugin {
|
|
|
11
11
|
private devices;
|
|
12
12
|
private ignoreDevices;
|
|
13
13
|
private defaultFadeTime;
|
|
14
|
+
private discoveryStarted;
|
|
14
15
|
constructor(log: Logger, config: PlatformConfig, api: API);
|
|
16
|
+
restoreCachedAccessories(): void;
|
|
15
17
|
configureAccessory(accessory: PlatformAccessory): void;
|
|
16
18
|
discoverDevices(): void;
|
|
19
|
+
refreshDevices(): void;
|
|
17
20
|
addDevice(device: string, brightness: number): void;
|
|
18
21
|
updateDevice(address: string, brightness: number): void;
|
|
19
22
|
processLine(line: string): void;
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5H,qBAAa,uBAAwB,YAAW,qBAAqB;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5H,qBAAa,uBAAwB,YAAW,qBAAqB;aAcjD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAEpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAS;gBAGf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAsH1B,wBAAwB;IA0BxB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAK/C,eAAe;IAwCf,cAAc;IAQd,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IA4C5C,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKhD,WAAW,CAAC,IAAI,EAAE,MAAM;IAkBxB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI7D,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;IAqCvD,cAAc,IAAI,IAAI;IAMtB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAKnC"}
|
package/dist/platform.js
CHANGED
|
@@ -14,7 +14,9 @@ class LutronHomeworksPlatform {
|
|
|
14
14
|
this.accessories = [];
|
|
15
15
|
this.deviceHandlers = {};
|
|
16
16
|
this.devices = {};
|
|
17
|
+
this.ignoreDevices = [];
|
|
17
18
|
this.defaultFadeTime = 1;
|
|
19
|
+
this.discoveryStarted = false;
|
|
18
20
|
this.log.debug('Finished initializing platform:', this.config.name);
|
|
19
21
|
if ('devices' in this.config) {
|
|
20
22
|
if (Array.isArray(this.config.devices)) {
|
|
@@ -90,14 +92,11 @@ class LutronHomeworksPlatform {
|
|
|
90
92
|
// Only connect; don't send any write/discovery commands here!
|
|
91
93
|
const configValid = connectionConfig.connectionType === 'tcp' ? !!connectionConfig.host : !!connectionConfig.serialPath;
|
|
92
94
|
(configValid ? this.connection.connect() : Promise.reject(new Error('Invalid connection settings; see error above.'))).then(() => {
|
|
95
|
+
// connect() resolves once login has finished, so discovery replies aren't dropped.
|
|
93
96
|
this.log.info('Connected to Lutron Homeworks');
|
|
94
|
-
|
|
95
|
-
setTimeout(() => {
|
|
96
|
-
this.log.info('Delay complete, starting device discovery immediately.');
|
|
97
|
-
this.startDiscovery();
|
|
98
|
-
}, 100); // 100 milliseconds is usually sufficient
|
|
97
|
+
this.startDiscovery();
|
|
99
98
|
}).catch((err) => {
|
|
100
|
-
// Log and stay alive; throwing here would crash the whole child bridge.
|
|
99
|
+
// Log and stay alive; throwing here would crash the whole child bridge. The handler keeps retrying.
|
|
101
100
|
this.log.error('Failed to connect:', err instanceof Error ? err.message : err);
|
|
102
101
|
});
|
|
103
102
|
// Handle incoming data lines from processor
|
|
@@ -106,22 +105,70 @@ class LutronHomeworksPlatform {
|
|
|
106
105
|
});
|
|
107
106
|
this.connection.on('close', () => {
|
|
108
107
|
this.log.warn('Connection closed, attempting to reconnect...');
|
|
109
|
-
|
|
108
|
+
});
|
|
109
|
+
this.connection.on('reconnected', () => {
|
|
110
|
+
if (this.discoveryStarted) {
|
|
111
|
+
this.refreshDevices();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.startDiscovery();
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
// Without a listener, an emitted 'error' (e.g. a wrong password) would crash the bridge.
|
|
118
|
+
this.connection.on('error', (err) => {
|
|
119
|
+
this.log.error('Connection error:', err.message);
|
|
110
120
|
});
|
|
111
121
|
// Remove any .write() or .discoverDevices() calls from didFinishLaunching
|
|
112
122
|
this.api.on('didFinishLaunching', () => {
|
|
113
123
|
log.debug('Executed didFinishLaunching callback');
|
|
114
124
|
// NO device discovery or writes here!
|
|
125
|
+
this.restoreCachedAccessories();
|
|
115
126
|
});
|
|
116
127
|
}
|
|
128
|
+
// Attach handlers to every cached accessory so it stays usable in HomeKit even if discovery never hears from it.
|
|
129
|
+
restoreCachedAccessories() {
|
|
130
|
+
for (const accessory of [...this.accessories]) {
|
|
131
|
+
const device = accessory.context.address;
|
|
132
|
+
if (typeof device !== 'string') {
|
|
133
|
+
this.log.warn('Cached accessory %s has no address. Skipping.', accessory.displayName);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (device in this.deviceHandlers) {
|
|
137
|
+
this.log.debug('Cached accessory %s already handled by discovery.', device);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (this.ignoreDevices.includes(device)) {
|
|
141
|
+
this.log.info('Found cached device %s but is marked as an ignored device. Removing from system.', accessory.context.name);
|
|
142
|
+
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
|
|
143
|
+
this.accessories.splice(this.accessories.indexOf(accessory), 1);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
this.log.debug('Restoring cached accessory %s before discovery.', device);
|
|
147
|
+
this.setContext(accessory, device);
|
|
148
|
+
accessory.displayName = accessory.context.name;
|
|
149
|
+
this.deviceHandlers[device] = new platformAccessory_1.LutronHomeworksPlatformAccessory(this, accessory);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
117
152
|
configureAccessory(accessory) {
|
|
118
153
|
this.log.debug('Loading accessory from cache:', accessory.context.name);
|
|
119
154
|
this.accessories.push(accessory);
|
|
120
155
|
}
|
|
121
156
|
discoverDevices() {
|
|
122
157
|
this.log.info('Starting device discovery');
|
|
123
|
-
this.
|
|
124
|
-
this.connection.write('
|
|
158
|
+
this.discoveryStarted = true;
|
|
159
|
+
this.connection.write('');
|
|
160
|
+
this.connection.write('DLMON');
|
|
161
|
+
// Ask about configured and cached devices first so known lights get their state right away.
|
|
162
|
+
const known = new Set(Object.keys(this.devices));
|
|
163
|
+
for (const accessory of this.accessories) {
|
|
164
|
+
if (typeof accessory.context.address === 'string') {
|
|
165
|
+
known.add(accessory.context.address);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
for (const address of known) {
|
|
169
|
+
this.connection.enqueue('RDL, [' + address + ']');
|
|
170
|
+
}
|
|
171
|
+
// Then scan the rest of the address space. Queued commands go out one at a time, so HomeKit commands stay fast.
|
|
125
172
|
let a, b, c, d, e;
|
|
126
173
|
for (a = 1; a <= 16; a++) {
|
|
127
174
|
for (b = 4; b <= 6; b++) {
|
|
@@ -134,17 +181,21 @@ class LutronHomeworksPlatform {
|
|
|
134
181
|
+ c.toString().padStart(2, '0') + ':'
|
|
135
182
|
+ d.toString().padStart(2, '0') + ':'
|
|
136
183
|
+ e.toString().padStart(2, '0') + ']';
|
|
137
|
-
this.connection.
|
|
184
|
+
this.connection.enqueue('RDL, ' + address);
|
|
138
185
|
}
|
|
139
186
|
}
|
|
140
187
|
}
|
|
141
188
|
}
|
|
142
189
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
190
|
+
this.log.info('Queued device discovery');
|
|
191
|
+
}
|
|
192
|
+
// After a reconnect, re-enable monitoring and refresh only the devices we already know about.
|
|
193
|
+
refreshDevices() {
|
|
194
|
+
this.log.info('Refreshing %d known devices', Object.keys(this.deviceHandlers).length);
|
|
195
|
+
this.connection.write('DLMON');
|
|
196
|
+
for (const address of Object.keys(this.deviceHandlers)) {
|
|
197
|
+
this.connection.enqueue('RDL, [' + address + ']');
|
|
146
198
|
}
|
|
147
|
-
this.log.info('Finished device discovery');
|
|
148
199
|
}
|
|
149
200
|
addDevice(device, brightness) {
|
|
150
201
|
this.log.debug('Starting initialization for device', device);
|
|
@@ -205,7 +256,7 @@ class LutronHomeworksPlatform {
|
|
|
205
256
|
}
|
|
206
257
|
}
|
|
207
258
|
setState(device, brightness, fadeTime) {
|
|
208
|
-
this.connection.write('FADEDIM, ' + brightness + ', ' + fadeTime + ', 0, [' + device + ']
|
|
259
|
+
this.connection.write('FADEDIM, ' + brightness + ', ' + fadeTime + ', 0, [' + device + ']');
|
|
209
260
|
}
|
|
210
261
|
setContext(accessory, device) {
|
|
211
262
|
accessory.context.address = device;
|
|
@@ -250,7 +301,7 @@ class LutronHomeworksPlatform {
|
|
|
250
301
|
this.discoverDevices();
|
|
251
302
|
}
|
|
252
303
|
handleResponse(line) {
|
|
253
|
-
this.log.
|
|
304
|
+
this.log.debug('handleResponse called with:', line);
|
|
254
305
|
// For now, just process the line
|
|
255
306
|
this.processLine(line);
|
|
256
307
|
}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,14 @@ export declare class LutronHomeworksPlatformAccessory {
|
|
|
4
4
|
private readonly platform;
|
|
5
5
|
private readonly accessory;
|
|
6
6
|
private service;
|
|
7
|
+
private sendTimer;
|
|
7
8
|
private address;
|
|
8
9
|
private fadeTime;
|
|
9
10
|
private name;
|
|
10
11
|
private states;
|
|
11
12
|
constructor(platform: LutronHomeworksPlatform, accessory: PlatformAccessory);
|
|
12
13
|
setOn(value: CharacteristicValue, callback: CharacteristicSetCallback): void;
|
|
14
|
+
private scheduleSend;
|
|
13
15
|
getOn(callback: CharacteristicGetCallback): void;
|
|
14
16
|
setBrightness(value: CharacteristicValue, callback: CharacteristicSetCallback): void;
|
|
15
17
|
getBrightness(callback: CharacteristicGetCallback): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEnI,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEnI,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAIrD,qBAAa,gCAAgC;IAazC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,MAAM,CAGZ;gBAGiB,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,iBAAiB;IA2B/C,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB;IAgBrE,OAAO,CAAC,YAAY;IAUpB,KAAK,CAAC,QAAQ,EAAE,yBAAyB;IAQzC,aAAa,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB;IAY7E,aAAa,CAAC,QAAQ,EAAE,yBAAyB;IAQjD,WAAW,CAAC,UAAU,EAAE,MAAM;CAa/B"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LutronHomeworksPlatformAccessory = void 0;
|
|
4
|
+
const SEND_DELAY_MS = 20;
|
|
4
5
|
class LutronHomeworksPlatformAccessory {
|
|
5
6
|
constructor(platform, accessory) {
|
|
6
7
|
this.platform = platform;
|
|
7
8
|
this.accessory = accessory;
|
|
9
|
+
this.sendTimer = null;
|
|
8
10
|
this.states = {
|
|
9
11
|
On: false,
|
|
10
12
|
Brightness: 100,
|
|
@@ -30,10 +32,23 @@ class LutronHomeworksPlatformAccessory {
|
|
|
30
32
|
setOn(value, callback) {
|
|
31
33
|
this.states.On = value;
|
|
32
34
|
this.platform.log.debug('Set Characteristic On ->', value);
|
|
33
|
-
|
|
35
|
+
if (this.states.On && this.states.Brightness === 0) {
|
|
36
|
+
this.states.Brightness = 100;
|
|
37
|
+
}
|
|
38
|
+
this.scheduleSend();
|
|
34
39
|
this.service.updateCharacteristic(this.platform.Characteristic.On, value);
|
|
35
40
|
callback(null);
|
|
36
41
|
}
|
|
42
|
+
// HomeKit often sets On and Brightness together; wait a moment so they go out as one FADEDIM.
|
|
43
|
+
scheduleSend() {
|
|
44
|
+
if (this.sendTimer) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.sendTimer = setTimeout(() => {
|
|
48
|
+
this.sendTimer = null;
|
|
49
|
+
this.platform.setState(this.address, this.states.On ? this.states.Brightness : 0, this.fadeTime);
|
|
50
|
+
}, SEND_DELAY_MS);
|
|
51
|
+
}
|
|
37
52
|
getOn(callback) {
|
|
38
53
|
const isOn = this.states.On;
|
|
39
54
|
this.platform.log.debug('Get Characteristic On ->', isOn);
|
|
@@ -42,7 +57,8 @@ class LutronHomeworksPlatformAccessory {
|
|
|
42
57
|
setBrightness(value, callback) {
|
|
43
58
|
this.states.Brightness = value;
|
|
44
59
|
this.platform.log.debug('Set Characteristic Brightness ->', value);
|
|
45
|
-
this.
|
|
60
|
+
this.states.On = this.states.Brightness > 0;
|
|
61
|
+
this.scheduleSend();
|
|
46
62
|
this.service.updateCharacteristic(this.platform.Characteristic.Brightness, value);
|
|
47
63
|
callback(null);
|
|
48
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":";;;AAIA,MAAa,gCAAgC;
|
|
1
|
+
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":";;;AAIA,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAa,gCAAgC;IAY3C,YACmB,QAAiC,EACjC,SAA4B;QAD5B,aAAQ,GAAR,QAAQ,CAAyB;QACjC,cAAS,GAAT,SAAS,CAAmB;QAZvC,cAAS,GAA0B,IAAI,CAAC;QAKxC,WAAM,GAAG;YACf,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,GAAG;SAChB,CAAC;QAOA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACnE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;aAC5E,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;aACtE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,wBAAwB,CAAC;aAC/E,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE3F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1F,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aAC5D,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAgB,yCAAyC;aACzF,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAe,yCAAyC;QAE5F,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;aACpE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAO,iDAAiD;aAChG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAO,iDAAiD;IACtG,CAAC;IAED,KAAK,CAAC,KAA0B,EAAE,QAAmC;QAEnE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAgB,CAAC;QAElC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;SAC9B;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAE1E,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,8FAA8F;IACtF,YAAY;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnG,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAmC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QAE1D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,aAAa,CAAC,KAA0B,EAAE,QAAmC;QAE3E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAe,CAAC;QAEzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClF,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,QAAmC;QAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;QAExE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAE,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAe,CAAC;QAEjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAE,UAAU,CAAC,CAAC;QAC7F,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAoB,CAAC;IAChD,CAAC;CACF;AA5GD,4EA4GC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"displayName": "Lutron Homeworks Ethernet",
|
|
4
4
|
"name": "homebridge-lutron-homeworks-ethernet",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.4",
|
|
6
6
|
"description": "Homebridge plugin for the Lutron Homeworks system over RS232 or ethernet (TCP/Telnet)",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"author": "Pedro Serano",
|