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 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": "LutronHomeworks"
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": "LutronHomeworks"
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
- * `"device"`: `[{ "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.
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": "LutronHomeworks"
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;AAED,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;gBAEd,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM;IAM3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAQhB,aAAa;YAkCb,UAAU;IAoCxB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,QAAQ;IAahB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAezB,KAAK,IAAI,IAAI;IAWb,WAAW,IAAI,OAAO;CAWvB"}
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
- if (this.config.connectionType === 'serial') {
19
- return this.connectSerial();
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
- else {
22
- return this.connectTCP();
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.emit('close');
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.emit('close');
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
- const ending = '\r\n';
137
- if (this.config.connectionType === 'serial') {
138
- this.connection.write(data + ending);
139
- }
140
- else {
141
- this.connection.write(data + ending);
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
- this.connection.close();
256
+ connection.close();
148
257
  }
149
258
  else {
150
- this.connection.end();
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":"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"}
1
+ {"version":3,"file":"connectionHandler.js","sourceRoot":"","sources":["../src/connectionHandler.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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;aAajD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAd1B,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,CAAC;IACtB,OAAO,CAAC,eAAe,CAAK;gBAGV,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA6G1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAK/C,eAAe;IA8Bf,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"}
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
- // Add a small timeout (e.g., 100ms) before sending the first command
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
- // Optionally: attempt reconnect logic here
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.connection.write('\r');
124
- this.connection.write('DLMON\r');
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.write('RDL, ' + address + '\r');
184
+ this.connection.enqueue('RDL, ' + address);
138
185
  }
139
186
  }
140
187
  }
141
188
  }
142
189
  }
143
- // The scan above only covers some 5-part addresses, so also ask for every device named in the config.
144
- for (const configured of Object.keys(this.devices)) {
145
- this.connection.write('RDL, [' + configured + ']\r');
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 + ']\r');
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.info('handleResponse called with:', line);
304
+ this.log.debug('handleResponse called with:', line);
254
305
  // For now, just process the line
255
306
  this.processLine(line);
256
307
  }
@@ -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;AAErD,qBAAa,gCAAgC;IAYzC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAZ5B,OAAO,CAAC,OAAO,CAAU;IACzB,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;IAYrE,KAAK,CAAC,QAAQ,EAAE,yBAAyB;IAQzC,aAAa,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB;IAW7E,aAAa,CAAC,QAAQ,EAAE,yBAAyB;IAQjD,WAAW,CAAC,UAAU,EAAE,MAAM;CAa/B"}
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
- this.platform.setState(this.address, this.states.On ? this.states.Brightness : 0, this.fadeTime);
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.platform.setState(this.address, this.states.Brightness, this.fadeTime);
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":"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"}
1
+ {"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
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.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",