Giter VIP home page Giter VIP logo

homebridge-lutron-caseta-leap's People

Contributors

aaronrothschild avatar dependabot[bot] avatar donavanbecker avatar donutespresso avatar emroch avatar joelgit avatar thenewwazoo avatar thibaulf avatar tneems avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-lutron-caseta-leap's Issues

Timing of Light Actrion

Describe Your Problem:

I'm testing the plugin using Homebridge from my iMac and an Ipad as the Home Hub. When I click the configured button, it takes about 2 seconds for the light to come on. It's a noticable delay - is that normal? I'm testing before dropping around $5k on Caseta switches and Picos identified to run a new house.

Also, is there a way to make a button toggle the scene on/off. For example, i want button one to turn on entertain which is linked to 3 switches. It should turn them all on. if pushed again, the behavior would be to turn them off. I'm essentially trying to use PICOS instead of RadioRa2 multibutton keypads

Logs:

Show the Homebridge logs here, remove any sensitive information.

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version:
  • Node.js Version:
  • NPM Version:
  • Operating System:

Exposing In-Wall Dimmer Switches as Switch accessories

Is your feature request related to a problem? Please describe:
I really want to be able to expose my Lutron Caseta In-Wall Dimmer Switches as Switch accessories in HomeKit. Lutron's native HomeKit integration only exposes the lights, not the switches themselves. My goal here is to be able to write automations that trigger based on pressing the physical switch buttons rather than based on lighting changes (e.g. pressing the off switch should be able to turn other lights off, but turning off the light with HomeKit shouldn't affect the other lights).

Describe the solution you'd like:
I don't know if the In-Wall Dimmer Switches are directly exposed via LEAP for monitoring, but I sure hope so. And if so, I'd love for this plugin to at least have the option to monitor them for addition to HomeKit.

Describe alternatives you've considered:
I asked the maintainer of a different plugin that offers pico remote support about this, that plugin uses the telnet protocol with the Smart Bridge Pro, and they said the telnet protocol does not expose the In-Wall Dimmer Switch button events. I don't know if that's actually true or if they just don't know how to enable monitoring of that, but I don't have a Smart Bridge Pro to test with (and I'm not going to buy one just to experiment).

Beyond that, I'm not aware of any other alternatives to try.

Additional context:
I have a Caseta Wireless Smart Bridge and a whole mess of In-Wall Dimmer Switches. I also have pico remotes and would ideally love to expose those, but I'm far less concerned about those, it's really the physical switches I care about right now.

Hoobs configuration setup

Describe Your Problem:

need help on install on hoobs systems. I don't have the associate button that I've seen in install guides. Do I need to install via legacy?
Logs:

Show the Homebridge logs here, remove any sensitive information.

Plugin Config:

[log-2.txt](https://github.com/thenewwazoo/homebridge-lutron-caseta-leap/files/8406621/log-2.txt)

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version: 1.3.4
  • Node.js Version: 14.19.1
  • NPM Version: unsure
  • Operating System: hoobs 4.0.104

Screen Shot 2022-04-03 at 10 24 54 PM

Screen Shot 2022-04-03 at 10 25 18 PM

Screen Shot 2022-04-03 at 10 27 03 PM

Screen Shot 2022-04-03 at 10 27 20 PM

Pico Remote Resets In HomeKit After Power Outage

Environment

M1 Mac mini - macOS Monterey 12.2
Homebridge - v1.4.0
Node.js - v16.13.1
NPM - v8.1.2
Lutron Caséta LEAP - v2.2.1

Summary

Following the power outage from the winter storm, my Pico Remote reset itself in HomeKit, removing all settings.

How to Reproduce

  1. Make sure your devices are set up properly to HomeKit, at least a Pico Remote is needed.
  2. Try unplugging & plugging back in a device, and see how that changes in HomeKit or Homebridge. If not, try two devices at once, and all three if that doesn't work either. (Homebridge, Lutron Hub, Pico Remote.)

Expected Results

The Pico Remote(s) should stay connected and keep it's data, regardless of offline status due to power, unless the plugin is removed from Homebridge.

Notes

I do not have any logs at the time this occurred, unfortunately. But if there's anything I can do to retest this, I'd be happy to help.

Skipping unimplemented device

My setup is a Smart Bridge (L-BDG2-WH), three in-wall dimmer switches (P-PKG1W-WH) and one lamp dimming smart plug (P-PKG1P-WH). None of them are appearing in Homebridge. I ran the get_lutron_cert.py script to get the caseta-bridge.crt, caseta.key and caseta.crt files, inserted the text into the appropriate fields in the plugin config...this is what I get in the log:

[2/18/2021, 6:53:58 PM] [LutronCasetaLeap] Got unimplemented device type SmartBridge , skipping
[2/18/2021, 6:53:58 PM] [LutronCasetaLeap] Got unimplemented device type WallDimmer , skipping
[2/18/2021, 6:53:58 PM] [LutronCasetaLeap] Got unimplemented device type PlugInDimmer , skipping
[2/18/2021, 6:53:58 PM] [LutronCasetaLeap] Got unimplemented device type WallDimmer , skipping
[2/18/2021, 6:53:58 PM] [LutronCasetaLeap] Got unimplemented device type WallDimmer , skipping

So clearly the encryption values are correct because HB is communicating with the bridge, hence why it sees the list of devices attached.

Newest release won't start

I saw that you added 4 button remote support and was excited to update.

Unfortunately it no longer works at all and sends homebridge into a crash reboot cycle.

It all starts with - failed to get buttons from button group.... And then names pico remotes that used to work in the plug in.

I'm on my iPad right now and can't seem to copy paste but let me know if you need more info.

Removing a non-Pico device may be problematic

I've added special-case code to handle if/when a Pico remote is removed from the bridge in order to remove it from HomeKit on startup. If this plugin is going to be expanded to include more device types, this same thing needs to be considered for everything else. The current solution is not very general, and removing a device without manually removing it from the device cache could cause the plugin to crash.

The device should just disappear like magic on restart.

Memory Leak

Describe The Bug:
Plugin memory increase steadily over time. Over a 24 hour period the memory usage of this plugin rose 23%, which was far greater than any other plugin or homebridge service I am running.

I have 3 Pico remotes connected to HomeKit using this plugin.

To Reproduce:
Baseline - I am using a Raspberry Pi 3B and have my plugin running its own child bridge, so the processes are distinct and can be monitored.

  1. Restart the homebridge server to establish a baseline utilization.
  2. Monitor overall memory available using Config-UI-X memory widget.
  3. Use htop to record PIDs of individual homebridge services. These change after restarts.
  4. Use command sudo pmap <pid> to see total memory consumption by the service.
  5. Record data from previous command at semi-regular intervals.

Expected behavior:
Memory usage should not drastically increase over time.

Logs:
No logs to demonstrate this issue.

Plugin Config:

        {
            "name": "Lutron",
            "secrets": [
                {
                    "bridgeid": "xxxxxxxx",
                    "ca": "-----BEGIN CERTIFICATE-----n-----END CERTIFICATE-----",
                    "key": "-----BEGIN PRIVATE KEY-----n-----END PRIVATE KEY-----",
                    "cert": "-----BEGIN CERTIFICATE-----n -----END CERTIFICATE-----"
                }
            ],
            "_bridge": {
                "username": "xxxx",
                "port": 39175
            },
            "platform": "LutronCasetaLeap"
        },

Screenshots:
The following displays a 24 hour period.

Screen Shot 2022-02-01 at 9 20 19 AM

Environment:

  • Plugin Version: v2.2.1
  • Homebridge Version: 1.4.0
  • Node.js Version: v16.13.2
  • NPM Version: v8.3.1
  • Operating System: Raspbian 11 (Bullseye)

Lutron 4 Button Pico

Hi, happy to help with getting the 4 button picos working! I have never done anything like this before so you will have to walk me through the steps starting with Debug Logging - no idea how to do that?

Beta Causes Homebridge to Crash

Homebridge v 1.3.9
Plugin v2.1.0-beta.1

I successfully followed the steps to get the secrets for the bridge, but the plugin crashes Homebridge.

First I get this error

[03/01/2022, 20:54:30] TypeError: Cannot read properties of undefined (reading 'label')
    at new PicoRemote (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/src/PicoRemote.ts:81:112)
    at /usr/local/lib/node_modules/homebridge-lutron-caseta-leap/src/platform.ts:200:29
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    ```

then a series of this error (5X) before homebridge crashes:

```[03/01/2022, 20:55:13] Error: Timed out waiting for bridge to appear
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/src/BridgeManager.ts:30:31)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)```

Directions for Occupancy Sensors

I'm running 2.3.6 of the leap plugin and am hoping to be able to expose occupancy sensors in Homekit. I was able to add the sensor through the lutron app and I can see it in the "accessories" tab in Homebridge but it doesn't show up in homekit. Is there another step to setup? Adding directions to the readme to explain the proper process for this would be greatly appreciated!

Could not connect to discovered hub

Describe Your Problem:
I assume this is probably n00b error, but any chance this error has popped up for others?

Logs:

Show the Homebridge logs here, remove any sensitive information.
 Could not connect to discovered hub: Error: error:0909006C:PEM routines:get_name:no start line
    at node:internal/tls/secure-context:65:13
    at Array.forEach (<anonymous>)
    at setCerts (node:internal/tls/secure-context:63:3)
    at configSecureContext (node:internal/tls/secure-context:152:5)
    at createSecureContext (node:_tls_common:116:3)
    at new LeapClient (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:51:44)
    at BridgeFinder.handleDiscovery (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/BridgeFinder.ts:201:28) {
  library: 'PEM routines',
  function: 'get_name',
  reason: 'no start line',
  code: 'ERR_OSSL_PEM_NO_START_LINE'
}

Plugin Config:

{
            "name": "Lutron",
            "secrets": [
                {
                    "bridgeid": "01683A68",
                    "ca": "REDACTED",
                    "key": "REDACTED",
                    "cert": "REDACTED"
                }
            ],
            "platform": "LutronCasetaLeap"
        }

Screenshots:

Environment:

  • Plugin Version: 2.1.1
  • Homebridge Version: 1.4
  • Node.js Version: v16.13.1
  • NPM Version: v8.3.0
  • Operating System: Raspbian GNU/Linux Bullseye (11)

Perpetual spinning gear when I open settings

Describe Your Problem:

I installed the plug-in and when I click settings, the loading gear icon just spins and spins. I've uninstalled/reinstalled and also rebooted Homebridge to no avail. I'm sure this is a very obvious oversight on my part.

Logs:

Show the Homebridge logs here, remove any sensitive information.

[7/26/2022, 11:52:18 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /search
[7/26/2022, 11:52:22 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Terminating child process...
[7/26/2022, 11:52:22 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Child process ended

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version: latest stable and beta both behave the same
  • Homebridge Version: 1.5.0
  • Node.js Version:
  • NPM Version:
  • Operating System: Ubuntu Server

Pico Remotes not responding

Describe The Bug:
Multiple times over the last couple days Pico remotes that I have exposed via HomeKit will not respond. Other HomeBridge devices function during this time so it does not appear to be a HomeBridge wide issue. Other Lutron devices connected directly to HomeKit function as well.

When I restart Homebridge the problem is resolved for a period of time and the below expected behaviors function as expected.

To Reproduce:
When experiencing the problem I can hit any Pico button that I have programmed in Home app and no trigger is fired.

Expected behavior:
When you press a button on the Pico remote I expect:

  1. Log entry in HomeBridge
  2. Simulated button press in Home app
  3. Action defined in Home app to trigger

Logs:

I'm not sure what logs to include as no logs get added during the time the button presses don't trigger.  When it triggers as expected I get this log entry. 
[3/9/2022, 7:44:00 AM] [Lutron] Button  /button/126 on Pico remote Office Pico was released; notifying Homekit

I do get these entries in the log about every hour, unsure if that's related or not.  

[3/9/2022, 6:46:42 AM] [Lutron] Device type SmartBridge supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower eca30f8b-b097-4978-adb0-34866f5b58c7 Living Room Pico already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 2f1f977e-2211-403f-a695-d714d20599d0 Upstairs Hallway Hallway South already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower ec9b1893-194e-4e16-9b62-d3eb0e0a4aed Upstairs Hallway Hallway North already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 4468130e-861a-4929-986e-7d0814c733d4 Master Bedroom Door already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type PlugInDimmer not recognized, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 82e151bf-0b96-4cc6-bd61-b733ea13c9dc Game Room Game Room Kitchen already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallSwitch supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 26c272ad-4e4a-4d16-85f8-3c7f993d699a Office Pico already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Device type PlugInDimmer not recognized, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower fa015385-c890-4235-bedb-e21f6f35dcc5 Floor Lamp Remote 1 already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallSwitch supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallSwitch supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Device type WallDimmer supported natively, skipping setup
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 36f74796-23f0-42e5-9ea7-24d92466e0f0 Basement Pico already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 758fa10e-3e6b-4711-8553-dccb5f51feec Basement Stairs Pico already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 9e1eebd3-c28e-4801-9a62-daa6fefa801c Master Bedroom Bed already set up. Skipping.
[3/9/2022, 6:46:42 AM] [Lutron] Accessory Pico3ButtonRaiseLower 1b2062de-68d4-4871-b4c6-eea3ce52e5cd Upstairs Office Pico already set up. Skipping.

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version: homebridge-lutron-caseta-leap v2.3.0
  • Homebridge Version: v1.40
  • Node.js Version: v16.14.0
  • NPM Version: v8.3.1
  • Operating System: Windows HyperV virtual machine

Beta New UI Failing

Describe The Bug:

Using the new UI - fails to connect

To Reproduce:
Use new UI and attempt to connect to the bridge.

Expected behavior:

Logs:

Uncaught TypeError: Cannot read properties of undefined (reading 'toAssociated')
    at HomebridgePluginUi.handleConnected (index.html?origin=http%3A%2F%2F10.0.0.75%3A8581&v=2.3.0-beta3:95:19)
    at HomebridgePluginUi._handleIncomingMessage (ui.ts:82:14)
handleConnected @ index.html?origin=http%3A%2F%2F10.0.0.75%3A8581&v=2.3.0-beta3:95
_handleIncomingMessage @ ui.ts:82
postMessage (async)
(anonymous) @ main-es2015.9d482d945810494ac85a.js:1
t.emit @ main-es2015.9d482d945810494ac85a.js:1
p.onevent @ main-es2015.9d482d945810494ac85a.js:1
p.onpacket @ main-es2015.9d482d945810494ac85a.js:1
(anonymous) @ main-es2015.9d482d945810494ac85a.js:1
t.emit @ main-es2015.9d482d945810494ac85a.js:1
p.ondecoded @ main-es2015.9d482d945810494ac85a.js:1
(anonymous) @ main-es2015.9d482d945810494ac85a.js:1
t.emit @ main-es2015.9d482d945810494ac85a.js:1
d.add @ main-es2015.9d482d945810494ac85a.js:1
p.ondata @ main-es2015.9d482d945810494ac85a.js:1
(anonymous) @ main-es2015.9d482d945810494ac85a.js:1
t.emit @ main-es2015.9d482d945810494ac85a.js:1
c.onPacket @ main-es2015.9d482d945810494ac85a.js:1
(anonymous) @ main-es2015.9d482d945810494ac85a.js:1
t.emit @ main-es2015.9d482d945810494ac85a.js:1
n.onPacket @ main-es2015.9d482d945810494ac85a.js:1
n.onData @ main-es2015.9d482d945810494ac85a.js:1
ws.onmessage @ main-es2015.9d482d945810494ac85a.js:1
T @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
invokeTask @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
onInvokeTask @ main-es2015.9d482d945810494ac85a.js:1
invokeTask @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
runTask @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
invokeTask @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
p @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
f @ polyfills-es2015.e8bb8be2ebc926cac2d0.js:1
index.html?origin=http%3A%2F%2F10.0.0.75%3A8581&v=2.3.0-beta3:172 connect request complete for 02725C24 10.0.0.251
index.html?origin=http%3A%2F%2F10.0.0.75%3A8581&v=2.3.0-beta3:221 CONNECTING 02725C24 timeout
index.html?origin=http%3A%2F%2F10.0.0.75%3A8581&v=2.3.0-beta3:320 toFailed 02725C24 Connection timed out
index.html?origin=http%3A%2F%2F10.0.0.75%3A8581&v=2.3.0-beta3:326 in FAILED clearing CONNECTING timeout 02725C24

Environment:

  • Plugin Version: 2.3.0 Beta 3
  • Homebridge Version: 1.4.0
  • Node.js Version: v16.14.0
  • NPM Version: v8.5.0
  • Operating System: Raspbian

Loses connection after a few days

After a few days, the plugin ceases to be responsive and can be restored by restarting Homebridge.

Relevant log snippet?

[02/02/2021, 14:55:11] [LutronCasetaLeap] blinds Living Room Center were set to adjusted value 0
[02/02/2021, 14:55:11] [LutronCasetaLeap] blinds Office Right Window were set to adjusted value 0
[02/02/2021, 14:55:11] [LutronCasetaLeap] blinds Living Room Right were set to adjusted value 0
[02/02/2021, 14:55:11] [LutronCasetaLeap] blinds Office Left Window were set to adjusted value 0
[02/02/2021, 14:55:11] [LutronCasetaLeap] blinds Living Room Left were set to adjusted value 0
(node:3457) UnhandledPromiseRejectionWarning: Error: request timed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:110:27)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3457) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3457) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:3457) UnhandledPromiseRejectionWarning: Error: request timed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:110:27)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:3457) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:3457) UnhandledPromiseRejectionWarning: Error: request timed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:110:27)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:3457) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
(node:3457) UnhandledPromiseRejectionWarning: Error: request timed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:110:27)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:3457) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)
(node:3457) UnhandledPromiseRejectionWarning: Error: request timed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:110:27)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:3457) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 5)

Clearly I need to add some catch blocks :)

Could not connect to discovered hub

Describe Your Problem:

I am far from a proficient coder but I am having an issue where I have configured the plugin but get an odd error in the logs. Looking to get a bit of feed back on this one.

Having an issue adding my hub to my homebridge where the log throws an error indicating that it could not connect to the discovered hub.

Logs:

...[1/9/2022, 10:24:08 PM] Homebridge v1.3.9 (HAP v0.9.8) (Homebridge) is running on port 51826.
[1/9/2022, 10:24:09 PM] [Lutron] Could not connect to discovered hub: Error: error:0909006C:PEM routines:get_name:no start line

at node:internal/tls/secure-context:65:13
at Array.forEach (<anonymous>)
at setCerts (node:internal/tls/secure-context:63:3)
at configSecureContext (node:internal/tls/secure-context:152:5)
at createSecureContext (node:_tls_common:116:3)
at new LeapClient (/usr/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:51:44)
at BridgeFinder.handleDiscovery (/usr/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/BridgeFinder.ts:185:28) {
library: 'PEM routines',
function: 'get_name',
reason: 'no start line',
code: 'ERR_OSSL_PEM_NO_START_LINE'
}...

Plugin Config:

{
    "bridge": {
        "name": "Homebridge",
        "username": "-",
        "port": -,
        "pin": "-",
        "advertiser": "ciao"
    },
    "description": "This is an example configuration file with gui. You can use this as a template for creating your own configuration file containing devices you actually own.",
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": -,
            "auth": "form",
            "theme": "dark-mode",
            "tempUnits": "c",
            "lang": "auto",
            "platform": "config"
        },
        {
            "controllers": [
                {
                    "address": "X",
                    "name": "X",
                    "password": "X",
                    "refreshInterval": 10,
                    "username": "X"
                }
            ],
            "motionDuration": 5,
            "platform": "UniFi Protect"
        },
        {
            "email": "X",
            "password": "X",
            "name": "Garage Door",
            "platform": "myQ"
        },
        {
            "name": "Lutron",
            "secrets": [
                {
                    "bridgeid": "########",
                    "ca": "-----BEGIN CERTIFICATE-----MIIxxx",
                    "key": "-----BEGIN PRIVATE KEY-----MIIxxx",
                    "cert": "-----BEGIN CERTIFICATE-----MIIxxx"
                }
            ],
            "platform": "LutronCasetaLeap"
        }
    ]
}

Screenshots:

Environment:

  • Plugin Version: v2.0.8 (I have also tried this with v2.1.0-beta.6 - beta )
  • Homebridge Version: v1.3.9
  • Node.js Version: v16.10.0
  • NPM Version: v7.24.0
  • Operating System: Docker

Occupancy Sensor not reporting Status

Describe The Bug:

I'm running 2.3.6 with the PD-OSENS-WH sensor and while it shows up in Homekit it always reports no occupancy and doesn't seem to be working...

image

IMG_0324

To Reproduce:

This may be user error?

Expected behavior:

I expected the motion detector in Homekit to register motion/occupancy/whatever

Logs:

Show the Homebridge logs here, remove any sensitive information.

[15/05/2022, 10:07:16] [HB Supervisor] Restarting Homebridge...
[15/05/2022, 10:07:16] [HB Supervisor] Starting Homebridge with extra flags: -I
[15/05/2022, 10:07:16] [HB Supervisor] Started Homebridge v1.4.1 with PID: 1508
[15/05/2022, 10:07:18] Loaded config.json with 0 accessories and 2 platforms.
[15/05/2022, 10:07:19] Loaded 1 cached accessories from cachedAccessories.
[15/05/2022, 10:07:19] ---
[15/05/2022, 10:07:25] Loaded plugin: [email protected]
[15/05/2022, 10:07:25] Registering platform 'homebridge-broadlink-rm-pro.BroadlinkRM'
[15/05/2022, 10:07:25] ---
[15/05/2022, 10:07:25] Loaded plugin: [email protected]
[15/05/2022, 10:07:25] Registering platform 'homebridge-config-ui-x.config'
[15/05/2022, 10:07:25] ---
[15/05/2022, 10:07:26] Loaded plugin: [email protected]
[15/05/2022, 10:07:26] Registering platform 'homebridge-lutron-caseta-leap.LutronCasetaLeap'
[15/05/2022, 10:07:26] ---
[15/05/2022, 10:07:26] Loading 2 platforms...
[15/05/2022, 10:07:26] [Config] Initializing config platform...
[15/05/2022, 10:07:26] [Config] Running in Service Mode
[15/05/2022, 10:07:26] [Lutron] Initializing LutronCasetaLeap platform...
[15/05/2022, 10:07:26] [Lutron] LutronCasetaLeap starting up...
[15/05/2022, 10:07:26] [Lutron] LutronCasetaLeap plugin finished early initialization
[15/05/2022, 10:07:26] [Lutron] Restoring cached Pico3ButtonRaiseLower 153f2297-24f2-482c-9fda-ff3538aaa98d on bridge 047d7775
[15/05/2022, 10:07:26] [Lutron] Restoring Pico remote Living Room Pico on bridge 047d7775
[15/05/2022, 10:07:26] [Lutron] Finished launching; starting up automatic discovery
[15/05/2022, 10:07:26] Homebridge v1.4.1 (HAP v0.10.2) (Homebridge 0DEA) is running on port 51757.
[15/05/2022, 10:07:27] [Lutron] Device type SmartBridge supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Accessory Pico3ButtonRaiseLower 153f2297-24f2-482c-9fda-ff3538aaa98d Living Room Remote already set up. Skipping.
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Device type WallDimmer supported natively, skipping setup
[15/05/2022, 10:07:27] [Lutron] Found a new RPSOccupancySensor occupancy sensor Kitchen Motion Sensor
[15/05/2022, 10:07:27] [Lutron] Finished setting up Pico remote Living Room Pico
[15/05/2022, 10:12:27] [Homebridge UI] [admin] Accessory layout changes saved.

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version:
  • Node.js Version:
  • NPM Version:
  • Operating System:

Add support for newly-added devices

When I add a device to the hub, it should appear in Homekit without having to restart Homebridge.

Except from new device being added:

DEBUG:pylutron_caseta.leap:Received message with no tag: {'CommuniqueType': 'UpdateResponse', 'Header': {'MessageBodyType': 'OneDeviceStatus', 'StatusCode': '200 OK', 'Url': '/device/status/deviceheard'}, 'Body': {'DeviceStatus': {'DeviceHeard': {'DiscoveryMechanism': 'UserInteraction', 'ModelNumber': 'PJ2-2BRL-GXX-X01', 'DeviceType': 'Pico2ButtonRaiseLower', 'SerialNumber': 69709128}}}}

Install goes fine, but config screen has infinite spinning gear

Describe Your Problem:

When attempting to configure the plugin from the UI, all I get is an infinite spinning wheel. I've tried this on both my Rockstor HomeBridge server (I made a custom "RockOn" which is a fancy docker container) as well as my RaspberryPi 4, same behavior. I believe this could be network-related, which @mLowryP hinted at, but I cannot for the life of me figure it out!

I'm running a pfSense box that goes into a switch, which has the Rockstor Server, the Pi, and the Lutron Bridge connected to it.

Logs:

[3/20/2022, 4:33:06 PM] Homebridge v1.4.0 (HAP v0.10.0) (Homebridge 7613) is running
[3/20/2022, 4:34:24 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /search
[3/20/2022, 4:37:34 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Terminating child process...
[3/20/2022, 4:37:34 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Child process ended
[3/20/2022, 5:15:23 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /search
[3/20/2022, 5:16:08 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Terminating child process...
[3/20/2022, 5:16:08 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Child process ended
[3/20/2022, 5:24:44 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /search
[3/20/2022, 5:25:40 PM] [Homebridge UI] Changes to config.json saved.
[3/20/2022, 5:25:40 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Terminating child process...
[3/20/2022, 5:25:40 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Child process ended
[3/20/2022, 5:25:42 PM] [Homebridge UI] Homebridge restart request received

Plugin Config:

{
    "platform": "LutronCasetaLeap",
    "name": "LutronCasetaLeap"
}

Screenshots:

image

Environment:

  • Plugin Version: v2.3.3
  • Homebridge Version: v1.4.0
  • Node.js Version: v16.14.0
  • NPM Version: v8.3.1
  • Operating System: Modified Docker on Rockstor using openSUSE Leap Linux: 5.16.15-lp153.5.g52afe42-default AND Raspbian AND HOOBs

Plugin is stuck on Incoming Request: /search, bridge is never found

Title explains the issue I am having: Plugin is stuck on Incoming Request: /search, bridge is never found. I realize this is probably some kind of network issue and it is difficult to debug, but I am really scratching my head trying to figure it out. If anyone has any pointers of where I might look, I would greatly appreciate it.

I have looked at all my Bonjour settings in both HomeBridge and the Synology and everything looks fine.

I see Lutron bridge on the network and it is broadcasting over Bonjour.
I see Homebridge as a Bonjour host on my network

Synology NAS and Lutron Bridge are plugged into the same switch.

Log:
[7/22/2022, 1:23:58 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /search
[7/22/2022, 1:28:22 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Terminating child process...
[7/22/2022, 1:28:22 PM] [Homebridge UI] [homebridge-lutron-caseta-leap] Child process ended

Environment:
Eero Pro 6 router (I am suspect of this, but I don't know what setting would cause it to not be discovered)
Synology NAS DSM v7.1
HomeBridge v1.5.0 mDNS Advertiser: Ciao, also tried Bonjour HAP
homebridge-lutron-caseta-leap plugin version: v2.3.9

Looking to add support for PJ2-4B-GWH-L01

Is your feature request related to a problem? Please describe:
Looking to use (4) button remotes to trigger (4) different scenes via HK

Describe the solution you'd like:
I would like for this remote to function like any other that are currently supported in the system eg all four buttons show up in HK. Happy to send you a remote so you can do any of the config needed to support them in the future!

Describe alternatives you've considered:
I could use a five button switch but the deployment wouldn't be ideal as it is hard to place external labels printed onto anything but the (4) button switches

Additional context:

Add support for battery state

BatteryState is included in DeviceStatus:

{
  "CommuniqueType": "ReadResponse",
  "Header": {
    "MessageBodyType": "OneDeviceStatus",
    "StatusCode": "200 OK",
    "Url": "/device/37/status"
  },
  "Body": {
    "DeviceStatus": {
      "href": "/device/37/status",
      "Device": {
        "href": "/device/37"
      },
      "FailedTransfers": {
        "Count": 0
      },
      "ConfigurationTransferStatus": "NotRequired",
      "Availability": "Available",
      "BatteryStatus": {
        "LevelState": "Good"
      }
    }
  }
}

Pico switches not showing in HomeKit

Hi, I’ve had my RA2 select and pico remotes working well via homebridge and HomeKit. I added a “keypad” and a second “scenes” switch and neither would show in HomeKit, despite appearing in homebridge. I have tried to remove the switches and disable / enable the plugin and now I’m in a situation where none of the 6 pico switches are showing in HomeKit, despite all being listed in homebridge. Any help much appreciated. Thank you.

UI not detecting hb

Hi!
I'm writing you regarding the installation of the Leap Plug in because the UI is not detecting mine and i don't have the skills to configure it via legacy method, can you help me with this?
Kind regards.

6/4/2022 17:59:12Lutron Caseta Leap BridgeLutronCasetaLeapLutronCasetaLeap starting up...
6/4/2022 18:30:43Lutron Caseta Leap BridgeLutronCasetaLeapLutronCasetaLeap starting up...

Plugin Config:

{
    "platform": "LutronCasetaLeap"
}

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version: 4.0.104
  • Node.js Version:
  • NPM Version:
  • Operating System:

Long Press

Is your feature request related to a problem? Please describe:
No problem

Describe the solution you'd like:
I would like to add a +1 to the button hold feature. I find it very useful in my setup to act as a multiplier of buttons on a remote (ie: a 2 button remote is now 4)

Describe alternatives you've considered:
I use Lutron-Pico as my solution ATM

Additional context:

Plugin unable to connect to RA3 Processor after initial setup

Based on lutron-leap-js and the Homebridge settings UI it appears that this has support for RadioRA3 processors. I was able to successfully connect the RadioRA3 processor through the settings on Homebridge UI and set it up by pushing the button on the RadioRA3 processor. However, after restarting HomeBridge, the status logs show an error on a request to the processor:

[7/22/2022, 12:54:37 PM] [Lutron] Failed to process devices on new bridge 0421xxx3: TypeError: Cannot read properties of undefined (reading 'Devices')

I also have a Caseta bridge set up with the plugin which connects and is working great.

Add support for motion sensors

Tracking ticket for motion sensor PD-OSENS.

DeviceHeard message:

{
    "CommuniqueType": "UpdateResponse",
    "Header": {
        "MessageBodyType": "OneDeviceStatus",
        "StatusCode": "200 OK",
        "Url": "/device/status/deviceheard"
    },
    "Body": {
        "DeviceStatus": {
            "DeviceHeard": {
                "DiscoveryMechanism": "UserInteraction",
                "ModelNumber": "PD-OSENS-XX",
                "DeviceType": "RPSOccupancySensor",
                "SerialNumber": 52654332
            }
        }
    }
}

Memory Leak

Describe The Bug:
Homebridge is returning an error during startup saying a memory leak has been encountered.

To Reproduce:
Startup Homebridge.

Expected behavior:
No error emitted

Logs:

(node:80454) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unsolicited listeners added to [LutronCasetaLeap]. Use emitter.setMaxListeners() to increase limit

Plugin Config:

        {
            "name": "Lutron",
            "secrets": [
                {
                    "bridgeid": "",
                    "ca": "-----BEGIN CERTIFICATE-----",
                    "key": "-----BEGIN PRIVATE KEY-----",
                    "cert": "-----BEGIN CERTIFICATE-----"
                }
            ],
            "platform": "LutronCasetaLeap"
        }

Environment:

  • Plugin Version:
  • Homebridge Version: v1.4.0
  • Node.js Version: v14.18.1
  • NPM Version: v8.0.0
  • Operating System: macOS Monterey

Where to get started?

Describe Your Problem:
Hi there, I just found your project and I had a few questions about it. I'm decently familiar with terminal but I don't see any instructions on the pylutron-caseta GitHub page of how to use it and obtain the certificates that are needed. I was also wondering if this works for pico remotes or if you have any plans to implement support for them in the future if it doesn't currently support them. Thanks for the help, best

Logs:

Show the Homebridge logs here, remove any sensitive information.

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version:
  • Node.js Version:
  • NPM Version:
  • Operating System:

Hangs on update

Describe Your Problem:
Trying to update from 2.3.4 to any newer version hangs on the update process. Have reinstalled the plugin multiple times, cleared config, with no luck. Basically starts to download and then hangs as it's about to finish. Sometimes with 14MB/18.3MB showing, other times with 16MB, 17MB showing as completed. Latest attempt got to 17.2MB and then timed out.

Logs:

No logs related to update process showing.

Plugin Config:

{
            "name": "Lutron",
            "platform": "LutronCasetaLeap",
            "secrets": [
                {
                    "bridgeid": "02C116F4",
                    "ca": "-----BEGIN CERTIFICATE-----\nMIICGzCCAcCgAwIBAgIBATAKBggqhkjOPQQDAjCBgzELMAkGA1UEBhMCVVMxFTAT\nBgNVBAgTDFBlbm5zeWx2YW5pYTEUMBIGA1UEBxMLQ29vcGVyc2J1cmcxJTAjBgNV\nBAoTHEx1dHJvbiBFbGVjdHJvbmljcyBDby4sIEluYy4xIDAeBgNVBAMTF1NtYXJ0\nQnJpZGdlQjg4MDRGMTcyMDE4MB4XDTE1MTAzMTAwMDAwMFoXDTM1MTAyNjAwMDAw\nMFowgYMxCzAJBgNVBAYTAlVTMRUwEwYDVQQIEwxQZW5uc3lsdmFuaWExFDASBgNV\nBAcTC0Nvb3BlcnNidXJnMSUwIwYDVQQKExxMdXRyb24gRWxlY3Ryb25pY3MgQ28u\nLCBJbmMuMSAwHgYDVQQDExdTbWFydEJyaWRnZUI4ODA0RjE3MjAxODBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABA6BNLU4prEW0VRZfO67ZsJmo9VmZ4j+QOTlzbiJ\nAGtxcua0yWw4POZfRgx8jXiOQ4NacKKXkRG79uhZCJ2nEFyjIzAhMA4GA1UdDwEB\n/wQEAwIBvjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQDM3O4F\n/YEkMCXuaHFnI/GAgRGoSONVXkQcUNEePm0OBgIhAPu8kCdWOQjEQpCMv/0KnHgm\nSV0uGTGuFXaTLTex1l6T\n-----END CERTIFICATE-----\n",
                    "cert": "-----BEGIN CERTIFICATE-----\nMIIC6DCCAo2gAwIBAgIBATAKBggqhkjOPQQDAjCBgzELMAkGA1UEBhMCVVMxFTAT\nBgNVBAgTDFBlbm5zeWx2YW5pYTEUMBIGA1UEBxMLQ29vcGVyc2J1cmcxJTAjBgNV\nBAoTHEx1dHJvbiBFbGVjdHJvbmljcyBDby4sIEluYy4xIDAeBgNVBAMTF1NtYXJ0\nQnJpZGdlQjg4MDRGMTcyMDE4MB4XDTE1MTAzMTAwMDAwMFoXDTM1MTAyNjAwMDAw\nMFowajEmMCQGA1UEAxMdaG9tZWJyaWRnZS1sdXRyb24tY2FzZXRhLWxlYXAxHDAa\nBgorBgEEAYK5CQECEwwwMDAwMDAwMDAwMDAxIjAgBgorBgEEAYK5CQEDDBJnZXRf\nbHV0cm9uX2NlcnQucHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDE\n7kGptWIDUyvBZWA5uLF1J4ss3/yb/TW2fZ2698cmsLLbtfcERhmIyIAhM5a5Yt/T\nAKcvvw8TLbXj32iNUoZXAfNJ/jkbTRT9fvz2hjQc6K4h871HBjzzRlgpkahTMp1w\n513D1XMdOZAYfs1o3b99TGpGIQUWMgCSGWvZYjECoAKZWaOw2dRUn3rYIudaSIru\n3VBJ0Y9KlIrT8rgnMMGwX5/8Uv78WehNhXMq7HgtsXvnI2Ci5x4ywwNrRmANmAbL\njgECVSPzBjy3LuBCPIvbOpHZKPYiibRZmAnmHyJCp2ycOriQ6BtBbqmUL+hsh+HB\nBA8OMi6IP1uO7L2wUh19AgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE\nFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAKBggqhkjOPQQD\nAgNJADBGAiEA+8tbx+ufNhbnSrmTlfJIncSrKA00+Q3B7z5f0C7UibQCIQCMEdem\nMSa7CGilTSKLA/gNxBWyyNe7GYXgwsJj8aeQ1Q==\n-----END CERTIFICATE-----\n",
                    "key": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCAQEAxO5BqbViA1MrwWVgObixdSeLLN/8m/01tn2duvfHJrCy27X3\r\nBEYZiMiAITOWuWLf0wCnL78PEy21499ojVKGVwHzSf45G00U/X789oY0HOiuIfO9\r\nRwY880ZYKZGoUzKdcOddw9VzHTmQGH7NaN2/fUxqRiEFFjIAkhlr2WIxAqACmVmj\r\nsNnUVJ962CLnWkiK7t1QSdGPSpSK0/K4JzDBsF+f/FL+/FnoTYVzKux4LbF75yNg\r\nouceMsMDa0ZgDZgGy44BAlUj8wY8ty7gQjyL2zqR2Sj2Iom0WZgJ5h8iQqdsnDq4\r\nkOgbQW6plC/obIfhwQQPDjIuiD9bjuy9sFIdfQIDAQABAoIBAFxryMtBweb3kJBp\r\n6FgOktH9pfaAhEgc9KlZmL3XbVJ+GOK+KliKIY+tMVzjnjgQ7CRVqSDiVMvWZwez\r\noJi6gyuwUaKHOfvTGCfEAiocX7a1iIuMnWcIyXAOsm+H2Wx6U6NaIgo3UZgEnNiy\r\nIeq2Lxk51KJm+sEo5FWsso3J5GBrLbKVMlLC3GfcgkyVejnWIEUshbFlTRgj9nMU\r\naq03KAddqx8b8+hZYQzSyO1HxBB8eLFr4X/dvDafOQaD7pq5/DUIrL7/Uy/36CqU\r\nDSEQ0jL5FZTA8LgLL6W5IUzLV/voZ5w/4gufCB4CndlPai9XBqDUS2szYteAn0vO\r\nfRxzOO0CgYEA/LvRT14QIzD0XT0ecNBZrMFw48wSzMcUSpuRdX+OM31zAdlk4VGk\r\nDxPPpbpDd5avaCyORKT/Ts2WK73K8hnlpnFSp/59RIOccBPj23dLvzXiWF6+PI2A\r\npfryP1cbFoH6BvjJ20tuX5Y5GD8p54EgxI2NoyRwcYc6bzcB6Dzr4N8CgYEAx3nP\r\n1fFP4yPG/1U4U8DKAMiDcnnxAwpleEkix4GXLOuJrKu5HOgq0iyE43RmXxDOlEqj\r\nM4yD3xtNWzRrg6uYaqGwO9g0HDOEmWumYLbhwckh6yyBopOhKKnvDYUygAkWPc5T\r\np8gXsev95O6aWqe5Zgf7dZBkG+pkgoArrm5+gSMCgYEApPeLpnzFl9LqjrnIVucI\r\nwcT6hRa95sDDs/dbuRBrp5xpJ3nZaWG67sSFs62jQDoxgJQkwRXaOHvlW+Pkxqa0\r\nyjIKO/HXnpMx186D2stBvCvV9MzS6/+JS85DtaiL2+M3armWOPhBsU8DMZp5Jc2Z\r\nr/Kd0zGD2/bi45lKO2cYqI0CgYBaKGdUplXaLtCBlU35JNjoU7h9pDnXivpjzIKI\r\ns7zVU7wNLCxlsVWxWufROkoOy7Ti930eDnOIAnoLL/0sLQGdqGjUE5sx5+MVyL8R\r\nVXdiM/s9pQcOqTUdAPmIHdy+W90OoFPVMK3s/+HoeCORt98nC5KPB20H5P/6r92O\r\nYGiTCwKBgGXPoU34LGNsQeyaKOGGVy/Ja6Cpeo+SR5W30dzHQ+Ojj1T27JVXf8AI\r\nV455TKfAl+oJAxBwH//E08uJ45QFwR5DepdNNafyTR7zSNFv9+mDLgPE2Jd5+Jjy\r\nWLusa5edck38NDODT/Q3ciMn++2TzPj4W/9JI1FujBBQnIkDLLeH\r\n-----END RSA PRIVATE KEY-----\r\n"
                }
            ],
            "_bridge": {
                "username": "0E:6E:D9:BD:66:86",
                "port": 47406
            }
        },

Screenshots:
Screen Shot 2022-05-12 at 10 00 48 AM

Environment:

  • Plugin Version: Currently on 2.3.4, trying to update to 2.3.6
  • Homebridge Version: 1.4.1
  • Node.js Version: [v16.15.0]
  • NPM Version: 1.4.1
  • Operating System: Raspbian GNU/Linux Bullseye (11)

Cannot Connect to the bridge

Describe Your Problem:

Cannot connect to Lutron Bridge
Logs:
2022-02-17, 2:15:27 AMLutron Caseta Leap BridgeConfiguration change
2022-02-17, 2:15:27 AMlutroncasetaleapbridge stopping
2022-02-17, 2:15:33 AMLutron Caseta Leap Bridge starting
2022-02-17, 2:15:43 AMLutron Caseta Leap BridgeLoaded plugin 'homebridge-lutron-caseta-leap'
2022-02-17, 2:15:43 AMLutron Caseta Leap BridgeLoading 1 platforms...
2022-02-17, 2:15:43 AMLutron Caseta Leap BridgeLutronCasetaLeapLutronCasetaLeap starting up...
2022-02-17, 2:15:43 AMLutron Caseta Leap BridgeLutronCasetaLeapLutronCasetaLeap plugin finished early initialization
2022-02-17, 2:15:43 AMLutron Caseta Leap BridgeLutronCasetaLeapFinished launching; starting up automatic discovery
2022-02-17, 2:15:43 AMLutron Caseta Leap BridgeBridge is running on port 51886.
2022-02-17, 2:15:44 AMLutron Caseta Leap BridgeLutronCasetaLeapERRORCould not connect to discovered hub: Error: error:0909006C:PEM routines:get_name:no start line
at node:internal/tls/secure-context:65:13
at Array.forEach ()
at setCerts (node:internal/tls/secure-context:63:3)
at configSecureContext (node:internal/tls/secure-context:152:5)
at createSecureContext (node:_tls_common:117:3)
at new LeapClient (/var/lib/hoobs/lutroncasetaleapbridge/node_modules/lutron-leap/src/LeapClient.ts:51:44)
at BridgeFinder.handleDiscovery (/var/lib/hoobs/lutroncasetaleapbridge/node_modules/lutron-leap/src/BridgeFinder.ts:199:28) {
library: 'PEM routines',
function: 'get_name',
reason: 'no start line',
code: 'ERR_OSSL_PEM_NO_START_LINE'
}

Show the Homebridge logs here, remove any sensitive information.

Plugin Config:

"platform": "LutronCasetaLeap",
"secrets": [
    {
        "bridgeid": "02C18E0B",
        "ca": "-----BEGIN CERTIFICATE----- MIICGTC -----END CERTIFICATE-----",
        "key": "-----BEGIN PRIVATE KEY----- MIIEvgIBA -----END PRIVATE KEY-----",
        "cert": "-----BEGIN CERTIFICATE----- MIIC2zc -----END CERTIFICATE-----"
    }
]

}

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version: 2.2.3
  • Homebridge Version: 1.4.0
  • Node.js Version: 16.14.0
  • NPM Version:
  • Operating System:

Homekit sees button presses but no actions occur

My Pico remote shows up in Homekit after following setup instructions. Actions are able to be assigned to the buttons without issue and clicking "Test This Action" results in the action occurring as expected. Homekit recognizes that buttons are pressed on the Pico as they briefly turn gray when viewed from my iphone indicating a button was pressed. However, no actions occur.

Logs:

[1/15/2022, 10:20:41 PM] [HB Supervisor] Restarting Homebridge...
[1/15/2022, 10:20:41 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules
[1/15/2022, 10:20:41 PM] [HB Supervisor] Starting Homebridge with custom env: {"DEBUG":"leap:*,HAP-NodeJS:Accessory"}
[1/15/2022, 10:20:41 PM] Loaded config.json with 3 accessories and 5 platforms.
[1/15/2022, 10:20:41 PM] Loaded 8 cached accessories from cachedAccessories.
[1/15/2022, 10:20:41 PM] ---
[1/15/2022, 10:20:41 PM] Loading 5 platforms...
[1/15/2022, 10:20:41 PM] [Config] Initializing config platform...
[1/15/2022, 10:20:41 PM] [Config] Running in Service Mode

[1/15/2022, 10:20:41 PM] [Lutron] Initializing LutronCasetaLeap platform...
[1/15/2022, 10:20:41 PM] [Lutron] LutronCasetaLeap starting up...
[1/15/2022, 10:20:41 PM] [Lutron] LutronCasetaLeap plugin finished early initialization

[1/15/2022, 10:20:41 PM] [Lutron] Restoring cached Pico3ButtonRaiseLower c00ba0ee-2464-XXXX-XXXX-cbd743aac95e on bridge XXXXXX
[1/15/2022, 10:20:41 PM] [Lutron] Restoring Pico remote Living Room Pico on bridge
[1/15/2022, 10:20:41 PM] [Lutron] Finished launching; starting up automatic discovery

                       
[1/15/2022, 10:20:41 PM] Homebridge v1.3.9 (HAP v0.9.8) (Homebridge Server) is running on port.

2022-01-16T06:20:42.599Z leap:protocol:discovery checking HostAndPort { host: '192.168.200.120', port: 22 }
2022-01-16T06:20:42.613Z leap:protocol:discovery was not ipv6: Error [AddressError]: Incorrect number of groups found
    at new AddressError (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/ip-address/dist/lib/address-error.js:20:28)
    at Address6.parse (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/ip-address/dist/lib/ipv6.js:599:19)
    at new Address6 (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/ip-address/dist/lib/ipv6.js:141:35)
    at BridgeFinder.extractIp (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/BridgeFinder.ts:71:30)
    at BridgeFinder.handleDiscovery (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/BridgeFinder.ts:163:29)
    at MDNSServiceDiscovery.<anonymous> (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/BridgeFinder.ts:45:18)
    at Event.emit (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/atvik/src/sync.ts:65:29)
    at MDNSServiceDiscovery.BasicServiceDiscovery.updateService (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/tinkerhub-discovery/src/discovery/basic-service-discovery.ts:67:24)
    at MDNSServiceDiscovery.refreshService (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/tinkerhub-mdns/src/discovery/mdns-discovery.ts:346:8)
    at Timeout._onTimeout (/homebridge/node_modules/homebridge-lutron-caseta-leap/node_modules/tinkerhub-mdns/src/discovery/mdns-discovery.ts:206:27) {
  parseMessage: undefined
}
2022-01-16T06:20:42.630Z leap:protocol:discovery got useful ipaddr 192.168.200.120
2022-01-16T06:20:42.638Z leap:protocol:discovery got hostname from IP: Lutron-XXX.local
2022-01-16T06:20:42.638Z leap:protocol:discovery extracted bridge ID:
2022-01-16T06:20:42.638Z leap:protocol new LeapClient being constructed
2022-01-16T06:20:42.639Z leap:protocol needs to connect
2022-01-16T06:20:42.639Z leap:protocol about to connect
2022-01-16T06:20:42.880Z leap:protocol connected!
2022-01-16T06:20:42.880Z leap:protocol securely connected
2022-01-16T06:20:42.880Z leap:protocol _onConnect called
2022-01-16T06:20:42.881Z leap:bridge new bridge being constructed
2022-01-16T06:20:42.882Z leap:bridge getting info about all devices
2022-01-16T06:20:42.885Z leap:protocol added promise to inFlightRequests with tag key 22f4a5fd-1f8b-4065-85cf-94a721af2b1b
2022-01-16T06:20:42.885Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"22f4a5fd-1f8b-4065-85cf-94a721af2b1b","Url":"/device"}}
2022-01-16T06:20:42.886Z leap:protocol added promise to inFlightRequests with tag key eeb85549-06ea-4176-b0b0-665aae97b0e4
2022-01-16T06:20:42.886Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"eeb85549-06ea-4176-b0b0-665aae97b0e4","Url":"/buttongroup/3"}}
2022-01-16T06:20:42.886Z leap:protocol sent request tag 22f4a5fd-1f8b-4065-85cf-94a721af2b1b  successfully
2022-01-16T06:20:42.886Z leap:protocol sent request tag eeb85549-06ea-4176-b0b0-665aae97b0e4  successfully
2022-01-16T06:20:42.887Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/device/status/deviceheard"}}

2022-01-16T06:20:42.887Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/device/status/deviceheard"}}

2022-01-16T06:20:42.887Z leap:responseparser buffer is 
2022-01-16T06:20:42.888Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/device/status/deviceheard"}}
2022-01-16T06:20:42.889Z leap:protocol got untagged, unsolicited response
2022-01-16T06:20:42.889Z leap:bridge bridge got unsolicited message:
2022-01-16T06:20:42.890Z leap:bridge Response {
  Header: {
    StatusCode: ResponseStatus { message: 'NoContent', code: 204 },
    Url: '/device/status/deviceheard',
    MessageBodyType: undefined
  },
  CommuniqueType: 'SubscribeResponse',
  Body: undefined
}
2022-01-16T06:20:42.890Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/zone/status/deprecated/level"}}

2022-01-16T06:20:42.891Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/zone/status/deprecated/level"}}

2022-01-16T06:20:42.891Z leap:responseparser buffer is 
2022-01-16T06:20:42.891Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/zone/status/deprecated/level"}}
2022-01-16T06:20:42.891Z leap:protocol got untagged, unsolicited response
2022-01-16T06:20:42.891Z leap:bridge bridge XXX got unsolicited message:
2022-01-16T06:20:42.891Z leap:bridge Response {
  Header: {
    StatusCode: ResponseStatus { message: 'NoContent', code: 204 },
    Url: '/zone/status/deprecated/level',
    MessageBodyType: undefined
  },
  CommuniqueType: 'SubscribeResponse',
  Body: undefined
}
2022-01-16T06:20:42.953Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"MultipleDeviceDefinition","StatusCode":"200 OK","Url":"/device","ClientTag":"22f4a5fd-1f8b-4065-85cf-94a721af2b1b"},"Body":{"Devices":[{"href":"/device/1","Name":"Smart Bridge 2","FullyQualifiedName":["Smart Bridge 2"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"L-BDG2-WH","DeviceType":"SmartBridge","RepeaterProperties":{"IsRepeater":true},"OwnedLinks":[{"href":"/link/1","LinkType":"RF"}],"LinkNodes":[{"href":"/device/1/linknode/1"}],"DeviceRules":[{"href":"/devicerule/40"}],"FirmwareImage":{"Firmware":{"DisplayName":"08.06.20f000"},"Installed":{"Year":2021,"Month":12,"Day":15,"Hour":3,"Minute":54,"Second":54,"Utc":"-8:00:00"}},"AddressedState":"Addressed","IsThisDevice":true},{"href":"/device/8","Name":"Main Lights","FullyQualifiedName":["Kitchen","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/7"}],"AssociatedArea":{"href":"/area/2"},"LinkNodes":[{"href":"/device/8/linknode/2"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/9","Name":"Table Lights","FullyQualifiedName":["Dining Room","Table Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/8"}],"AssociatedArea":{"href":"/area/6"},"LinkNodes":[{"href":"/device/9/linknode/3"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/10","Name":"Main Lights","FullyQualifiedName":["Hallway","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/9"}],"AssociatedArea":{"href":"/area/4"},"LinkNodes":[{"href":"/device/10/linknode/4"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/11","Name":"Under Cabinet","FullyQualifiedName":["Kitchen","Under Cabinet"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/10"}],"AssociatedArea":{"href":"/area/2"},"LinkNodes":[{"href":"/device/11/linknode/5"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/12","Name":"Main Lights","FullyQualifiedName":["Living Room","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/11"}],"AssociatedArea":{"href":"/area/3"},"LinkNodes":[{"href":"/device/12/linknode/6"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/14","Name":"Pico","FullyQualifiedName":["Living Room","Pico"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PJ2-3BRL-GXX-X01","DeviceType":"Pico3ButtonRaiseLower","ButtonGroups":[{"href":"/buttongroup/3"}],"AssociatedArea":{"href":"/area/3"},"LinkNodes":[{"href":"/device/14/linknode/7"}],"DeviceRules":[{"href":"/devicerule/25"}],"AddressedState":"Addressed"}]}}

2022-01-16T06:20:42.953Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"MultipleDeviceDefinition","StatusCode":"200 OK","Url":"/device","ClientTag":"22f4a5fd-1f8b-4065-85cf-94a721af2b1b"},"Body":{"Devices":[{"href":"/device/1","Name":"Smart Bridge 2","FullyQualifiedName":["Smart Bridge 2"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"L-BDG2-WH","DeviceType":"SmartBridge","RepeaterProperties":{"IsRepeater":true},"OwnedLinks":[{"href":"/link/1","LinkType":"RF"}],"LinkNodes":[{"href":"/device/1/linknode/1"}],"DeviceRules":[{"href":"/devicerule/40"}],"FirmwareImage":{"Firmware":{"DisplayName":"08.06.20f000"},"Installed":{"Year":2021,"Month":12,"Day":15,"Hour":3,"Minute":54,"Second":54,"Utc":"-8:00:00"}},"AddressedState":"Addressed","IsThisDevice":true},{"href":"/device/8","Name":"Main Lights","FullyQualifiedName":["Kitchen","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/7"}],"AssociatedArea":{"href":"/area/2"},"LinkNodes":[{"href":"/device/8/linknode/2"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/9","Name":"Table Lights","FullyQualifiedName":["Dining Room","Table Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/8"}],"AssociatedArea":{"href":"/area/6"},"LinkNodes":[{"href":"/device/9/linknode/3"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/10","Name":"Main Lights","FullyQualifiedName":["Hallway","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/9"}],"AssociatedArea":{"href":"/area/4"},"LinkNodes":[{"href":"/device/10/linknode/4"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/11","Name":"Under Cabinet","FullyQualifiedName":["Kitchen","Under Cabinet"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/10"}],"AssociatedArea":{"href":"/area/2"},"LinkNodes":[{"href":"/device/11/linknode/5"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/12","Name":"Main Lights","FullyQualifiedName":["Living Room","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/11"}],"AssociatedArea":{"href":"/area/3"},"LinkNodes":[{"href":"/device/12/linknode/6"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/14","Name":"Pico","FullyQualifiedName":["Living Room","Pico"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PJ2-3BRL-GXX-X01","DeviceType":"Pico3ButtonRaiseLower","ButtonGroups":[{"href":"/buttongroup/3"}],"AssociatedArea":{"href":"/area/3"},"LinkNodes":[{"href":"/device/14/linknode/7"}],"DeviceRules":[{"href":"/devicerule/25"}],"AddressedState":"Addressed"}]}}

2022-01-16T06:20:42.954Z leap:responseparser buffer is 
2022-01-16T06:20:42.954Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"MultipleDeviceDefinition","StatusCode":"200 OK","Url":"/device","ClientTag":"22f4a5fd-1f8b-4065-85cf-94a721af2b1b"},"Body":{"Devices":[{"href":"/device/1","Name":"Smart Bridge 2","FullyQualifiedName":["Smart Bridge 2"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"L-BDG2-WH","DeviceType":"SmartBridge","RepeaterProperties":{"IsRepeater":true},"OwnedLinks":[{"href":"/link/1","LinkType":"RF"}],"LinkNodes":[{"href":"/device/1/linknode/1"}],"DeviceRules":[{"href":"/devicerule/40"}],"FirmwareImage":{"Firmware":{"DisplayName":"08.06.20f000"},"Installed":{"Year":2021,"Month":12,"Day":15,"Hour":3,"Minute":54,"Second":54,"Utc":"-8:00:00"}},"AddressedState":"Addressed","IsThisDevice":true},{"href":"/device/8","Name":"Main Lights","FullyQualifiedName":["Kitchen","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/7"}],"AssociatedArea":{"href":"/area/2"},"LinkNodes":[{"href":"/device/8/linknode/2"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/9","Name":"Table Lights","FullyQualifiedName":["Dining Room","Table Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/8"}],"AssociatedArea":{"href":"/area/6"},"LinkNodes":[{"href":"/device/9/linknode/3"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/10","Name":"Main Lights","FullyQualifiedName":["Hallway","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/9"}],"AssociatedArea":{"href":"/area/4"},"LinkNodes":[{"href":"/device/10/linknode/4"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/11","Name":"Under Cabinet","FullyQualifiedName":["Kitchen","Under Cabinet"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/10"}],"AssociatedArea":{"href":"/area/2"},"LinkNodes":[{"href":"/device/11/linknode/5"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/12","Name":"Main Lights","FullyQualifiedName":["Living Room","Main Lights"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PD-6WCL-XX","DeviceType":"WallDimmer","LocalZones":[{"href":"/zone/11"}],"AssociatedArea":{"href":"/area/3"},"LinkNodes":[{"href":"/device/12/linknode/6"}],"DeviceRules":[{"href":"/devicerule/27"}],"AddressedState":"Addressed"},{"href":"/device/14","Name":"Pico","FullyQualifiedName":["Living Room","Pico"],"Parent":{"href":"/project"},"SerialNumber":,"ModelNumber":"PJ2-3BRL-GXX-X01","DeviceType":"Pico3ButtonRaiseLower","ButtonGroups":[{"href":"/buttongroup/3"}],"AssociatedArea":{"href":"/area/3"},"LinkNodes":[{"href":"/device/14/linknode/7"}],"DeviceRules":[{"href":"/devicerule/25"}],"AddressedState":"Addressed"}]}}
2022-01-16T06:20:42.959Z leap:message:bodytype parsing body type MultipleDeviceDefinition with data: {
  Devices: [
    {
      href: '/device/1',
      Name: 'Smart Bridge 2',
      FullyQualifiedName: [ 'Smart Bridge 2' ],
      Parent: { href: '/project' },
      SerialNumber: ,
      ModelNumber: 'L-BDG2-WH',
      DeviceType: 'SmartBridge',
      RepeaterProperties: { IsRepeater: true },
      OwnedLinks: [ { href: '/link/1', LinkType: 'RF' } ],
      LinkNodes: [ { href: '/device/1/linknode/1' } ],
      DeviceRules: [ { href: '/devicerule/40' } ],
      FirmwareImage: {
        Firmware: { DisplayName: '08.06.20f000' },
        Installed: {
          Year: 2021,
          Month: 12,
          Day: 15,
          Hour: 3,
          Minute: 54,
          Second: 54,
          Utc: '-8:00:00'
        }
      },
      AddressedState: 'Addressed',
      IsThisDevice: true
    },
    {
      href: '/device/8',
      Name: 'Main Lights',
      FullyQualifiedName: [ 'Kitchen', 'Main Lights' ],
      Parent: { href: '/project' },
      SerialNumber:,
      ModelNumber: 'PD-6WCL-XX',
      DeviceType: 'WallDimmer',
      LocalZones: [ { href: '/zone/7' } ],
      AssociatedArea: { href: '/area/2' },
      LinkNodes: [ { href: '/device/8/linknode/2' } ],
      DeviceRules: [ { href: '/devicerule/27' } ],
      AddressedState: 'Addressed'
    },
    {
      href: '/device/9',
      Name: 'Table Lights',
      FullyQualifiedName: [ 'Dining Room', 'Table Lights' ],
      Parent: { href: '/project' },
      SerialNumber:,
      ModelNumber: 'PD-6WCL-XX',
      DeviceType: 'WallDimmer',
      LocalZones: [ { href: '/zone/8' } ],
      AssociatedArea: { href: '/area/6' },
      LinkNodes: [ { href: '/device/9/linknode/3' } ],
      DeviceRules: [ { href: '/devicerule/27' } ],
      AddressedState: 'Addressed'
    },
    {
      href: '/device/10',
      Name: 'Main Lights',
      FullyQualifiedName: [ 'Hallway', 'Main Lights' ],
      Parent: { href: '/project' },
      SerialNumber:,
      ModelNumber: 'PD-6WCL-XX',
      DeviceType: 'WallDimmer',
      LocalZones: [ { href: '/zone/9' } ],
      AssociatedArea: { href: '/area/4' },
      LinkNodes: [ { href: '/device/10/linknode/4' } ],
      DeviceRules: [ { href: '/devicerule/27' } ],
      AddressedState: 'Addressed'
    },
    {
      href: '/device/11',
      Name: 'Under Cabinet',
      FullyQualifiedName: [ 'Kitchen', 'Under Cabinet' ],
      Parent: { href: '/project' },
      SerialNumber:,
      ModelNumber: 'PD-6WCL-XX',
      DeviceType: 'WallDimmer',
      LocalZones: [ { href: '/zone/10' } ],
      AssociatedArea: { href: '/area/2' },
      LinkNodes: [ { href: '/device/11/linknode/5' } ],
      DeviceRules: [ { href: '/devicerule/27' } ],
      AddressedState: 'Addressed'
    },
    {
      href: '/device/12',
      Name: 'Main Lights',
      FullyQualifiedName: [ 'Living Room', 'Main Lights' ],
      Parent: { href: '/project' },
      SerialNumber:,
      ModelNumber: 'PD-6WCL-XX',
      DeviceType: 'WallDimmer',
      LocalZones: [ { href: '/zone/11' } ],
      AssociatedArea: { href: '/area/3' },
      LinkNodes: [ { href: '/device/12/linknode/6' } ],
      DeviceRules: [ { href: '/devicerule/27' } ],
      AddressedState: 'Addressed'
    },
    {
      href: '/device/14',
      Name: 'Pico',
      FullyQualifiedName: [ 'Living Room', 'Pico' ],
      Parent: { href: '/project' },
      SerialNumber:,
      ModelNumber: 'PJ2-3BRL-GXX-X01',
      DeviceType: 'Pico3ButtonRaiseLower',
      ButtonGroups: [ { href: '/buttongroup/3' } ],
      AssociatedArea: { href: '/area/3' },
      LinkNodes: [ { href: '/device/14/linknode/7' } ],
      DeviceRules: [ { href: '/devicerule/25' } ],
      AddressedState: 'Addressed'
    }
  ]
}
2022-01-16T06:20:42.959Z leap:protocol got response to tag 22f4a5fd-1f8b-4065-85cf-94a721af2b1b
2022-01-16T06:20:42.959Z leap:protocol tag 22f4a5fd-1f8b-4065-85cf-94a721af2b1b  recognized as in-flight
[1/15/2022, 10:20:42 PM] [Lutron] Device type SmartBridge not yet supported, skipping setup
[1/15/2022, 10:20:42 PM] [Lutron] Device type WallDimmer not yet supported, skipping setup
[1/15/2022, 10:20:42 PM] [Lutron] Device type WallDimmer not yet supported, skipping setup
[1/15/2022, 10:20:42 PM] [Lutron] Device type WallDimmer not yet supported, skipping setup
[1/15/2022, 10:20:42 PM] [Lutron] Device type WallDimmer not yet supported, skipping setup
[1/15/2022, 10:20:42 PM] [Lutron] Device type WallDimmer not yet supported, skipping setup
[1/15/2022, 10:20:42 PM] [Lutron] Accessory Pico3ButtonRaiseLower c00ba0ee-XXXX-XXXX-XXXX-cbd743aac95e Living Room Pico already set up. Skipping.

2022-01-16T06:20:42.992Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonGroupDefinition","StatusCode":"200 OK","Url":"/buttongroup/3","ClientTag":"eeb85549-06ea-4176-b0b0-665aae97b0e4"},"Body":{"ButtonGroup":{"href":"/buttongroup/3","Buttons":[{"href":"/button/106"},{"href":"/button/107"},{"href":"/button/108"},{"href":"/button/109"},{"href":"/button/110"}],"Parent":{"href":"/device/14"},"SortOrder":0,"StopIfMoving":"Disabled","Category":{"Type":"Lights"},"ProgrammingType":"Column"}}}

2022-01-16T06:20:42.992Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonGroupDefinition","StatusCode":"200 OK","Url":"/buttongroup/3","ClientTag":"eeb85549-06ea-4176-b0b0-665aae97b0e4"},"Body":{"ButtonGroup":{"href":"/buttongroup/3","Buttons":[{"href":"/button/106"},{"href":"/button/107"},{"href":"/button/108"},{"href":"/button/109"},{"href":"/button/110"}],"Parent":{"href":"/device/14"},"SortOrder":0,"StopIfMoving":"Disabled","Category":{"Type":"Lights"},"ProgrammingType":"Column"}}}

2022-01-16T06:20:42.992Z leap:responseparser buffer is 
2022-01-16T06:20:42.992Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonGroupDefinition","StatusCode":"200 OK","Url":"/buttongroup/3","ClientTag":"eeb85549-06ea-4176-b0b0-665aae97b0e4"},"Body":{"ButtonGroup":{"href":"/buttongroup/3","Buttons":[{"href":"/button/106"},{"href":"/button/107"},{"href":"/button/108"},{"href":"/button/109"},{"href":"/button/110"}],"Parent":{"href":"/device/14"},"SortOrder":0,"StopIfMoving":"Disabled","Category":{"Type":"Lights"},"ProgrammingType":"Column"}}}
2022-01-16T06:20:42.992Z leap:message:bodytype parsing body type OneButtonGroupDefinition with data: {
  ButtonGroup: {
    href: '/buttongroup/3',
    Buttons: [
      { href: '/button/106' },
      { href: '/button/107' },
      { href: '/button/108' },
      { href: '/button/109' },
      { href: '/button/110' }
    ],
    Parent: { href: '/device/14' },
    SortOrder: 0,
    StopIfMoving: 'Disabled',
    Category: { Type: 'Lights' },
    ProgrammingType: 'Column'
  }
}
2022-01-16T06:20:42.992Z leap:protocol got response to tag eeb85549-06ea-4176-b0b0-665aae97b0e4
2022-01-16T06:20:42.992Z leap:protocol tag eeb85549-06ea-4176-b0b0-665aae97b0e4  recognized as in-flight
2022-01-16T06:20:42.992Z leap:protocol added promise to inFlightRequests with tag key e1569971-8e6d-42e0-b711-5b9fbf05cfd5
2022-01-16T06:20:42.993Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"e1569971-8e6d-42e0-b711-5b9fbf05cfd5","Url":"/button/106"}}
2022-01-16T06:20:42.993Z leap:protocol added promise to inFlightRequests with tag key a4cf3a0b-adaa-4801-b00c-f275d9a98885
2022-01-16T06:20:42.993Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"a4cf3a0b-adaa-4801-b00c-f275d9a98885","Url":"/button/107"}}
2022-01-16T06:20:42.993Z leap:protocol added promise to inFlightRequests with tag key 25eb2147-70a1-4312-82b0-b548b6fbfc06
2022-01-16T06:20:42.993Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"25eb2147-70a1-4312-82b0-b548b6fbfc06","Url":"/button/108"}}
2022-01-16T06:20:42.993Z leap:protocol added promise to inFlightRequests with tag key 2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544
2022-01-16T06:20:42.993Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544","Url":"/button/109"}}
2022-01-16T06:20:42.993Z leap:protocol added promise to inFlightRequests with tag key 20ccd843-54ec-4777-be47-100aa86bef25
2022-01-16T06:20:42.993Z leap:protocol request handler about to write: {"CommuniqueType":"ReadRequest","Header":{"ClientTag":"20ccd843-54ec-4777-be47-100aa86bef25","Url":"/button/110"}}
2022-01-16T06:20:42.993Z leap:protocol sent request tag e1569971-8e6d-42e0-b711-5b9fbf05cfd5  successfully
2022-01-16T06:20:42.993Z leap:protocol sent request tag a4cf3a0b-adaa-4801-b00c-f275d9a98885  successfully
2022-01-16T06:20:42.993Z leap:protocol sent request tag 25eb2147-70a1-4312-82b0-b548b6fbfc06  successfully
2022-01-16T06:20:42.993Z leap:protocol sent request tag 2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544  successfully
2022-01-16T06:20:42.993Z leap:protocol sent request tag 20ccd843-54ec-4777-be47-100aa86bef25  successfully
2022-01-16T06:20:43.004Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/106","ClientTag":"e1569971-8e6d-42e0-b711-5b9fbf05cfd5"},"Body":{"Button":{"href":"/button/106","ButtonNumber":0,"ProgrammingModel":{"href":"/programmingmodel/136"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 1"}}}

2022-01-16T06:20:43.004Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/106","ClientTag":"e1569971-8e6d-42e0-b711-5b9fbf05cfd5"},"Body":{"Button":{"href":"/button/106","ButtonNumber":0,"ProgrammingModel":{"href":"/programmingmodel/136"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 1"}}}

2022-01-16T06:20:43.004Z leap:responseparser buffer is 
2022-01-16T06:20:43.004Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/106","ClientTag":"e1569971-8e6d-42e0-b711-5b9fbf05cfd5"},"Body":{"Button":{"href":"/button/106","ButtonNumber":0,"ProgrammingModel":{"href":"/programmingmodel/136"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 1"}}}
2022-01-16T06:20:43.004Z leap:message:bodytype parsing body type OneButtonDefinition with data: {
  Button: {
    href: '/button/106',
    ButtonNumber: 0,
    ProgrammingModel: { href: '/programmingmodel/136' },
    Parent: { href: '/buttongroup/3' },
    Name: 'Button 1'
  }
}
2022-01-16T06:20:43.004Z leap:protocol got response to tag e1569971-8e6d-42e0-b711-5b9fbf05cfd5
2022-01-16T06:20:43.004Z leap:protocol tag e1569971-8e6d-42e0-b711-5b9fbf05cfd5  recognized as in-flight

2022-01-16T06:20:43.011Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":-1,"iid":-1}]}
2022-01-16T06:20:43.012Z HAP-NodeJS:Accessory [Homebridge Server ] Could not find a Characteristic with aid of -1 and iid of -1
2022-01-16T06:20:43.021Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/107","ClientTag":"a4cf3a0b-adaa-4801-b00c-f275d9a98885"},"Body":{"Button":{"href":"/button/107","ButtonNumber":1,"ProgrammingModel":{"href":"/programmingmodel/137"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 2"}}}

2022-01-16T06:20:43.021Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/107","ClientTag":"a4cf3a0b-adaa-4801-b00c-f275d9a98885"},"Body":{"Button":{"href":"/button/107","ButtonNumber":1,"ProgrammingModel":{"href":"/programmingmodel/137"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 2"}}}

2022-01-16T06:20:43.021Z leap:responseparser buffer is 
2022-01-16T06:20:43.021Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/107","ClientTag":"a4cf3a0b-adaa-4801-b00c-f275d9a98885"},"Body":{"Button":{"href":"/button/107","ButtonNumber":1,"ProgrammingModel":{"href":"/programmingmodel/137"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 2"}}}
2022-01-16T06:20:43.021Z leap:message:bodytype parsing body type OneButtonDefinition with data: {
  Button: {
    href: '/button/107',
    ButtonNumber: 1,
    ProgrammingModel: { href: '/programmingmodel/137' },
    Parent: { href: '/buttongroup/3' },
    Name: 'Button 2'
  }
}
2022-01-16T06:20:43.021Z leap:protocol got response to tag a4cf3a0b-adaa-4801-b00c-f275d9a98885
2022-01-16T06:20:43.021Z leap:protocol tag a4cf3a0b-adaa-4801-b00c-f275d9a98885  recognized as in-flight
2022-01-16T06:20:43.041Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/108","ClientTag":"25eb2147-70a1-4312-82b0-b548b6fbfc06"},"Body":{"Button":{"href":"/button/108","ButtonNumber":2,"ProgrammingModel":{"href":"/programmingmodel/138"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 3"}}}

2022-01-16T06:20:43.041Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/108","ClientTag":"25eb2147-70a1-4312-82b0-b548b6fbfc06"},"Body":{"Button":{"href":"/button/108","ButtonNumber":2,"ProgrammingModel":{"href":"/programmingmodel/138"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 3"}}}

2022-01-16T06:20:43.041Z leap:responseparser buffer is 
2022-01-16T06:20:43.041Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/108","ClientTag":"25eb2147-70a1-4312-82b0-b548b6fbfc06"},"Body":{"Button":{"href":"/button/108","ButtonNumber":2,"ProgrammingModel":{"href":"/programmingmodel/138"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 3"}}}
2022-01-16T06:20:43.041Z leap:message:bodytype parsing body type OneButtonDefinition with data: {
  Button: {
    href: '/button/108',
    ButtonNumber: 2,
    ProgrammingModel: { href: '/programmingmodel/138' },
    Parent: { href: '/buttongroup/3' },
    Name: 'Button 3'
  }
}
2022-01-16T06:20:43.041Z leap:protocol got response to tag 25eb2147-70a1-4312-82b0-b548b6fbfc06
2022-01-16T06:20:43.041Z leap:protocol tag 25eb2147-70a1-4312-82b0-b548b6fbfc06  recognized as in-flight
2022-01-16T06:20:43.050Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/109","ClientTag":"2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544"},"Body":{"Button":{"href":"/button/109","ButtonNumber":3,"ProgrammingModel":{"href":"/programmingmodel/139"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 4"}}}

2022-01-16T06:20:43.050Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/109","ClientTag":"2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544"},"Body":{"Button":{"href":"/button/109","ButtonNumber":3,"ProgrammingModel":{"href":"/programmingmodel/139"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 4"}}}

2022-01-16T06:20:43.050Z leap:responseparser buffer is 
2022-01-16T06:20:43.050Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/109","ClientTag":"2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544"},"Body":{"Button":{"href":"/button/109","ButtonNumber":3,"ProgrammingModel":{"href":"/programmingmodel/139"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 4"}}}
2022-01-16T06:20:43.050Z leap:message:bodytype parsing body type OneButtonDefinition with data: {
  Button: {
    href: '/button/109',
    ButtonNumber: 3,
    ProgrammingModel: { href: '/programmingmodel/139' },
    Parent: { href: '/buttongroup/3' },
    Name: 'Button 4'
  }
}
2022-01-16T06:20:43.050Z leap:protocol got response to tag 2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544
2022-01-16T06:20:43.050Z leap:protocol tag 2dfa7fe6-9cfe-4059-a58a-0b7dfc4e7544  recognized as in-flight
2022-01-16T06:20:43.057Z leap:protocol got data from socket: {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/110","ClientTag":"20ccd843-54ec-4777-be47-100aa86bef25"},"Body":{"Button":{"href":"/button/110","ButtonNumber":4,"ProgrammingModel":{"href":"/programmingmodel/140"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 5"}}}

2022-01-16T06:20:43.058Z leap:responseparser handling data {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/110","ClientTag":"20ccd843-54ec-4777-be47-100aa86bef25"},"Body":{"Button":{"href":"/button/110","ButtonNumber":4,"ProgrammingModel":{"href":"/programmingmodel/140"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 5"}}}

2022-01-16T06:20:43.058Z leap:responseparser buffer is 
2022-01-16T06:20:43.058Z leap:responseparser parsing line {"CommuniqueType":"ReadResponse","Header":{"MessageBodyType":"OneButtonDefinition","StatusCode":"200 OK","Url":"/button/110","ClientTag":"20ccd843-54ec-4777-be47-100aa86bef25"},"Body":{"Button":{"href":"/button/110","ButtonNumber":4,"ProgrammingModel":{"href":"/programmingmodel/140"},"Parent":{"href":"/buttongroup/3"},"Name":"Button 5"}}}
2022-01-16T06:20:43.059Z leap:message:bodytype parsing body type OneButtonDefinition with data: {
  Button: {
    href: '/button/110',
    ButtonNumber: 4,
    ProgrammingModel: { href: '/programmingmodel/140' },
    Parent: { href: '/buttongroup/3' },
    Name: 'Button 5'
  }
}
2022-01-16T06:20:43.059Z leap:protocol got response to tag 20ccd843-54ec-4777-be47-100aa86bef25
2022-01-16T06:20:43.059Z leap:protocol tag 20ccd843-54ec-4777-be47-100aa86bef25  recognized as in-flight
2022-01-16T06:20:43.062Z leap:protocol added promise to inFlightRequests with tag key ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6
2022-01-16T06:20:43.062Z leap:protocol request handler about to write: {"CommuniqueType":"SubscribeRequest","Header":{"ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6","Url":"/button/106/status/event"}}
2022-01-16T06:20:43.063Z leap:protocol added promise to inFlightRequests with tag key 6f80128b-37f4-4d94-9594-9427b4357dc8
2022-01-16T06:20:43.063Z leap:protocol request handler about to write: {"CommuniqueType":"SubscribeRequest","Header":{"ClientTag":"6f80128b-37f4-4d94-9594-9427b4357dc8","Url":"/button/107/status/event"}}
2022-01-16T06:20:43.064Z leap:protocol added promise to inFlightRequests with tag key c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc
2022-01-16T06:20:43.064Z leap:protocol request handler about to write: {"CommuniqueType":"SubscribeRequest","Header":{"ClientTag":"c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc","Url":"/button/108/status/event"}}
2022-01-16T06:20:43.064Z leap:protocol added promise to inFlightRequests with tag key 5f2a47d4-0743-45b5-bc25-907e3646a858
2022-01-16T06:20:43.064Z leap:protocol request handler about to write: {"CommuniqueType":"SubscribeRequest","Header":{"ClientTag":"5f2a47d4-0743-45b5-bc25-907e3646a858","Url":"/button/109/status/event"}}
2022-01-16T06:20:43.064Z leap:protocol added promise to inFlightRequests with tag key b8b421de-4e91-4ce8-a60a-222db710befa
2022-01-16T06:20:43.064Z leap:protocol request handler about to write: {"CommuniqueType":"SubscribeRequest","Header":{"ClientTag":"b8b421de-4e91-4ce8-a60a-222db710befa","Url":"/button/110/status/event"}}
[1/15/2022, 10:20:43 PM] [Lutron] Finished setting up Pico remote Living Room Pico
2022-01-16T06:20:43.065Z leap:protocol sent request tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6  successfully
2022-01-16T06:20:43.065Z leap:protocol sent request tag 6f80128b-37f4-4d94-9594-9427b4357dc8  successfully
2022-01-16T06:20:43.065Z leap:protocol sent request tag c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc  successfully
2022-01-16T06:20:43.065Z leap:protocol sent request tag 5f2a47d4-0743-45b5-bc25-907e3646a858  successfully
2022-01-16T06:20:43.066Z leap:protocol sent request tag b8b421de-4e91-4ce8-a60a-222db710befa  successfully
2022-01-16T06:20:43.066Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"}}

2022-01-16T06:20:43.066Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"}}

2022-01-16T06:20:43.066Z leap:responseparser buffer is 
2022-01-16T06:20:43.066Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"}}
2022-01-16T06:20:43.069Z leap:protocol got response to tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6
2022-01-16T06:20:43.069Z leap:protocol tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6  recognized as in-flight
2022-01-16T06:20:43.070Z leap:protocol Subscribed to /button/106/status/event  as  ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6
2022-01-16T06:20:43.079Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/107/status/event","ClientTag":"6f80128b-37f4-4d94-9594-9427b4357dc8"}}

2022-01-16T06:20:43.079Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/107/status/event","ClientTag":"6f80128b-37f4-4d94-9594-9427b4357dc8"}}

2022-01-16T06:20:43.079Z leap:responseparser buffer is 
2022-01-16T06:20:43.079Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/107/status/event","ClientTag":"6f80128b-37f4-4d94-9594-9427b4357dc8"}}
2022-01-16T06:20:43.079Z leap:protocol got response to tag 6f80128b-37f4-4d94-9594-9427b4357dc8
2022-01-16T06:20:43.079Z leap:protocol tag 6f80128b-37f4-4d94-9594-9427b4357dc8  recognized as in-flight
2022-01-16T06:20:43.079Z leap:protocol Subscribed to /button/107/status/event  as  6f80128b-37f4-4d94-9594-9427b4357dc8
2022-01-16T06:20:43.079Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/108/status/event","ClientTag":"c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc"}}

2022-01-16T06:20:43.079Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/108/status/event","ClientTag":"c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc"}}

2022-01-16T06:20:43.079Z leap:responseparser buffer is 
2022-01-16T06:20:43.079Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/108/status/event","ClientTag":"c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc"}}
2022-01-16T06:20:43.080Z leap:protocol got response to tag c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc
2022-01-16T06:20:43.080Z leap:protocol tag c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc  recognized as in-flight
2022-01-16T06:20:43.080Z leap:protocol Subscribed to /button/108/status/event  as  c1cb1d60-3cf7-40d6-a69c-1d0f38ff74fc
2022-01-16T06:20:43.080Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/109/status/event","ClientTag":"5f2a47d4-0743-45b5-bc25-907e3646a858"}}

2022-01-16T06:20:43.080Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/109/status/event","ClientTag":"5f2a47d4-0743-45b5-bc25-907e3646a858"}}

2022-01-16T06:20:43.080Z leap:responseparser buffer is 
2022-01-16T06:20:43.080Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/109/status/event","ClientTag":"5f2a47d4-0743-45b5-bc25-907e3646a858"}}
2022-01-16T06:20:43.080Z leap:protocol got response to tag 5f2a47d4-0743-45b5-bc25-907e3646a858
2022-01-16T06:20:43.080Z leap:protocol tag 5f2a47d4-0743-45b5-bc25-907e3646a858  recognized as in-flight
2022-01-16T06:20:43.080Z leap:protocol Subscribed to /button/109/status/event  as  5f2a47d4-0743-45b5-bc25-907e3646a858
2022-01-16T06:20:43.080Z leap:protocol got data from socket: {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/110/status/event","ClientTag":"b8b421de-4e91-4ce8-a60a-222db710befa"}}

2022-01-16T06:20:43.080Z leap:responseparser handling data {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/110/status/event","ClientTag":"b8b421de-4e91-4ce8-a60a-222db710befa"}}

2022-01-16T06:20:43.080Z leap:responseparser buffer is 
2022-01-16T06:20:43.080Z leap:responseparser parsing line {"CommuniqueType":"SubscribeResponse","Header":{"StatusCode":"204 NoContent","Url":"/button/110/status/event","ClientTag":"b8b421de-4e91-4ce8-a60a-222db710befa"}}
2022-01-16T06:20:43.080Z leap:protocol got response to tag b8b421de-4e91-4ce8-a60a-222db710befa
2022-01-16T06:20:43.080Z leap:protocol tag b8b421de-4e91-4ce8-a60a-222db710befa  recognized as in-flight
2022-01-16T06:20:43.080Z leap:protocol Subscribed to /button/110/status/event  as  b8b421de-4e91-4ce8-a60a-222db710befa
2022-01-16T06:20:43.196Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":7,"iid":10,"ev":true}]}
2022-01-16T06:20:43.197Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.203Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":49,"iid":11,"ev":true},{"aid":49,"iid":12,"ev":true}]}
2022-01-16T06:20:43.203Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.203Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Outlet In Use" on "Homebridge Server " for events
2022-01-16T06:20:43.207Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":48,"iid":11,"ev":true},{"aid":48,"iid":12,"ev":true}]}
2022-01-16T06:20:43.207Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.208Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Outlet In Use" on "Homebridge Server " for events
2022-01-16T06:20:43.213Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":46,"iid":9,"ev":true}]}
2022-01-16T06:20:43.213Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.218Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":47,"iid":11,"ev":true},{"aid":47,"iid":12,"ev":true}]}
2022-01-16T06:20:43.219Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.219Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Outlet In Use" on "Homebridge Server " for events
2022-01-16T06:20:43.223Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":45,"iid":9,"ev":true}]}
2022-01-16T06:20:43.223Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.228Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":9,"iid":19,"ev":true}]}
2022-01-16T06:20:43.228Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.234Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":3,"iid":14,"ev":true},{"aid":3,"iid":15,"ev":true}]}
2022-01-16T06:20:43.235Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.235Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Outlet In Use" on "Homebridge Server " for events
2022-01-16T06:20:43.240Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":8,"iid":10,"ev":true}]}
2022-01-16T06:20:43.240Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.247Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":2,"iid":14,"ev":true},{"aid":2,"iid":15,"ev":true}]}
2022-01-16T06:20:43.247Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "On" on "Homebridge Server " for events
2022-01-16T06:20:43.247Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Outlet In Use" on "Homebridge Server " for events
2022-01-16T06:20:43.256Z HAP-NodeJS:Accessory [Homebridge Server ] Processing characteristic set: {"characteristics":[{"aid":54,"iid":28,"ev":true},{"aid":54,"iid":24,"ev":true},{"aid":54,"iid":20,"ev":true},{"aid":54,"iid":12,"ev":true},{"aid":54,"iid":16,"ev":true}]}
2022-01-16T06:20:43.256Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Programmable Switch Event" on "Homebridge Server " for events
2022-01-16T06:20:43.257Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Programmable Switch Event" on "Homebridge Server " for events
2022-01-16T06:20:43.257Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Programmable Switch Event" on "Homebridge Server " for events
2022-01-16T06:20:43.257Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Programmable Switch Event" on "Homebridge Server " for events
2022-01-16T06:20:43.257Z HAP-NodeJS:Accessory [::ffff:192.168.1.48] Registered Characteristic "Programmable Switch Event" on "Homebridge Server " for events
2022-01-16T06:20:52.342Z leap:protocol got data from socket: {"CommuniqueType":"UpdateResponse","Header":{"MessageBodyType":"OneButtonStatusEvent","StatusCode":"200 OK","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"},"Body":{"ButtonStatus":{"Button":{"href":"/button/106"},"ButtonEvent":{"EventType":"Press"}}}}

2022-01-16T06:20:52.342Z leap:responseparser handling data {"CommuniqueType":"UpdateResponse","Header":{"MessageBodyType":"OneButtonStatusEvent","StatusCode":"200 OK","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"},"Body":{"ButtonStatus":{"Button":{"href":"/button/106"},"ButtonEvent":{"EventType":"Press"}}}}

2022-01-16T06:20:52.342Z leap:responseparser buffer is 
2022-01-16T06:20:52.342Z leap:responseparser parsing line {"CommuniqueType":"UpdateResponse","Header":{"MessageBodyType":"OneButtonStatusEvent","StatusCode":"200 OK","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"},"Body":{"ButtonStatus":{"Button":{"href":"/button/106"},"ButtonEvent":{"EventType":"Press"}}}}
2022-01-16T06:20:52.343Z leap:message:bodytype parsing body type OneButtonStatusEvent with data: {
  ButtonStatus: {
    Button: { href: '/button/106' },
    ButtonEvent: { EventType: 'Press' }
  }
}
2022-01-16T06:20:52.343Z leap:protocol got response to tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6
2022-01-16T06:20:52.343Z leap:protocol tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6  not in flight
2022-01-16T06:20:52.343Z leap:protocol tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6  has a subscription
2022-01-16T06:20:52.492Z leap:protocol got data from socket: {"CommuniqueType":"UpdateResponse","Header":{"MessageBodyType":"OneButtonStatusEvent","StatusCode":"200 OK","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"},"Body":{"ButtonStatus":{"Button":{"href":"/button/106"},"ButtonEvent":{"EventType":"Release"}}}}

2022-01-16T06:20:52.492Z leap:responseparser handling data {"CommuniqueType":"UpdateResponse","Header":{"MessageBodyType":"OneButtonStatusEvent","StatusCode":"200 OK","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"},"Body":{"ButtonStatus":{"Button":{"href":"/button/106"},"ButtonEvent":{"EventType":"Release"}}}}

2022-01-16T06:20:52.492Z leap:responseparser buffer is 
2022-01-16T06:20:52.493Z leap:responseparser parsing line {"CommuniqueType":"UpdateResponse","Header":{"MessageBodyType":"OneButtonStatusEvent","StatusCode":"200 OK","Url":"/button/106/status/event","ClientTag":"ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6"},"Body":{"ButtonStatus":{"Button":{"href":"/button/106"},"ButtonEvent":{"EventType":"Release"}}}}
2022-01-16T06:20:52.493Z leap:message:bodytype parsing body type OneButtonStatusEvent with data: {
  ButtonStatus: {
    Button: { href: '/button/106' },
    ButtonEvent: { EventType: 'Release' }
  }
}
2022-01-16T06:20:52.493Z leap:protocol got response to tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6
2022-01-16T06:20:52.493Z leap:protocol tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6  not in flight
2022-01-16T06:20:52.493Z leap:protocol tag ddbb9f5a-8d77-4fab-bdc4-8179004a2fa6  has a subscription

Plugin Config:

{
    "bridge": {
        "name": "Homebridge Server",
        "username": "XX:XX:XX:XX",
        "port": XX,
        "pin": "XXX"
        }
    ],
    "platforms": [
        {
            "name": "Config",
            "port": XX,
            "auth": "form",
            "theme": "dark-mode-indigo",
            "tempUnits": "c",
            "lang": "auto",
            "platform": "config"
        },
        {
            "name": "Lutron",
            "secrets": [
                {
                    "bridgeid": "XXX",
                    "ca": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----\n",
                    "key": "-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n",
                    "cert": "-----BEGIN CERTIFICATE----------END CERTIFICATE-----\n"
                }
            ],
            "platform": "LutronCasetaLeap"

  • Plugin Version: homebridge-lutron-caseta-leap v2.1.0-beta.6
  • Homebridge Version: 1.3.9
  • Node.js Version: v16.13.0
  • NPM Version: v8.1.0
  • Operating System: Docker

Failed setting up Pico remote

Describe The Bug:

homebridge-lutron-caseta-leap v2.2.0 plugin installed. , Hombridge updated today.

Hombridge finds Lutron Bridge and Picos but can not configure them.

Removed tag# from logs, not sure if they are sensitive.

To Reproduce:

Expected behavior:

Logs:

Show the Homebridge logs here, remove any sensitive information.
1/27/2022, 11:52:32] [Lutron] Failed setting up Pico remote: Error: request with tagxxxxxxxxxxxftimed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:106:27)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)
[1/27/2022, 11:52:32] [Lutron] Failed to get button group(s) belonging to Living Room Alarm Mica Error: request with tagadxxxxxxxxxxxxxxxxxxtimed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:106:27)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)
[1/27/2022, 11:52:32] [Lutron] Failed setting up Pico remote: Error: request with tagadxxxxxxxxxxxtimed out
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/node_modules/lutron-leap/src/LeapClient.ts:106:27)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

  • Plugin Version: homebridge-lutron-caseta-leap v2.2.0
  • Homebridge Version:
  • Node.js Version:
  • NPM Version:
  • Operating System:

Support for Hoobs Please

Would you be willing to accept a small payment to get this working with Hoobs or is that not possible? For some reason it says it’s Hoobs certified but I’ve seen where you said Hoobs isn’t supported. May I ask why? If you would accept payment just let me know.
thank you for your work either way

Pico 4-Button Scene Controller

Is your feature request related to a problem? Please describe:

Describe the solution you'd like:

Are you able to add the 4-button scene controller PICO - this would be huge! PJ2-4B-GWH-XXX remotes
Describe alternatives you've considered:

Additional context:

Could not connect to discovered hub

Describe The Bug:
When restarting home bridge, getting a connection error upon installation of plugin.

To Reproduce:
When restarting home bridge.

Expected behavior:
Should be showing pico remotes in homebridge/homekit

Logs:

See attached.

Plugin Config:

{
"name": "Lutron",
"secrets": [
{
"bridgeid": "01E71***",
"ca": "MII**",
"key": "MII**",
"cert": "MII**"
}
],
"platform": "LutronCasetaLeap"
}

Screenshots:

Environment:

  • Plugin Version: 2.2.1
  • Homebridge Version: 1.4.0
  • Node.js Version: 16.13.2
  • NPM Version: 8.3.1
  • Operating System: Raspbian GNU/Linux Bullseye (11)
    homebridge.log.txt

Just Works setup not just working - can't find Bridge

Describe Your Problem:
Plugin installs, but sits and spins at the "spinning gear" screen when trying to configure. Logs show it is doing /search but never finds anything. get_lutron_cert.py works fine, and Bridge works otherwise. Tried to add secrets to JSON manually but no such luck.

Logs:

[09/03/2022, 19:02:46] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /search
[09/03/2022, 19:02:51] [Homebridge UI] [homebridge-lutron-caseta-leap] Terminating child process...
[09/03/2022, 19:02:51] [Homebridge UI] [homebridge-lutron-caseta-leap] Child process ended
[09/03/2022, 19:04:07] [Homebridge UI] Changes to config.json saved.

Plugin Config:

{
"bridge": {
"name": "Homebridge123456",
"username": "removed",
"port": 51585,
"pin": "removed"
},
"accessories": [],
"platforms": [
{
"name": "Config",
"port": 8581,
"platform": "config"
},
{
"name": "August Locks",
"email": "removed",
"password": "removed",
"code": "removed",
"installId": "removed",
"platform": "AugustLocks"
},
{
"name": "TplinkSmarthome",
"addCustomCharacteristics": true,
"deviceTypes": [
"plug",
"bulb"
],
"platform": "TplinkSmarthome"
},
{
"name": "Lifx Plugin",
"duration": 0,
"brightnessDuration": 300,
"colorDuration": 300,
"default": "0.0.0.0",
"broadcast": "255.255.255.255",
"lightOfflineTolerance": 3,
"messageHandlerTimeout": 45000,
"resendPacketDelay": 150,
"resendMaxTimes": 3,
"updates": true,
"debug": false,
"autoDiscover": true,
"platform": "LifxPlugin"
},
{
"platform": "LutronCasetaLeap",
"name": "LutronCasetaLeap",
"secrets": [
{
"bridgeid": "removed",
"ca": "-----BEGIN CERTIFICATE-----removed-----END CERTIFICATE-----",
"key": "-----BEGIN PRIVATE KEY-----removed-----END PRIVATE KEY-----",
"cert": "-----BEGIN CERTIFICATE-----removed-----END CERTIFICATE-----"
}
]
}
]
}

Screenshots:

image

Environment:

  • Plugin Version: 2.3.0
  • Homebridge Version: 1.4.0
  • Node.js Version: 16.14.0
  • NPM Version: 8.5.1
  • Operating System: hb-service

Add a toggle for Smart Away

The Smart Away scene in the Lutron app is great and it would be even better if we could control it via the Home app or automations. It could be exposed as a toggle switch.

I found gurumitts/pylutron-caseta#78 which appears to document the relevant LEAP messages.

I might take a stab at this if I find the time, but if someone else wants to give it a try I'd be forever grateful :)

Could not connect to discovered hub: got tired of waiting - Causing Homebridge Loop Restart

Describe The Bug:

When using internet and homebridge restart... this can happen.

To Reproduce:

disconnect internet and network, restart homebridge.

Expected behavior:

catch error and just log, not cause homebridge to restart.

Logs:

[Lutron] Could not connect to discovered hub: got tired of waiting
Error: Timed out waiting for bridge to appear
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-lutron-caseta-leap/src/BridgeManager.ts:23:31)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)
[1/20/2022, 12:01:21 PM] [Lutron] Child bridge process ended

Plugin Config:

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version: v1.4.0-beta.7
  • Node.js Version: v16.13.2
  • NPM Version: v8.3.1
  • Operating System: macOS

Discover serial number

Is your feature request related to a problem? Please describe:

It seems like it would be really annoying to have to manually find the bridge's serial number, then run a script, just to get the certs.
Describe the solution you'd like:

On my HWQS system, it exposes a MDNS TXT record SERNUM, and I was wondering if it would be possible to use this to generate the certificates? I don't have a Caseta system, so I can't test that part.
Describe alternatives you've considered:

Would be OK if it just made you enter the serial number, but ran the script itself, not manually.
Additional context:

HomeBridge Can’t Find Bridge After Power Outage

Describe Your Problem:
I setup the HomeBridge-Lutron-casita-leap plug-in last weekend and was successful in getting it working. I had a power outage this past week and found my pico remote wasn’t working. Found that I couldn’t reach the Lutron bridge with the Lutron app. Found there was a network issue and fixed that and the Lutron app could now connect but the plug-in still couldn’t find the bridge. I uninstalled and reinstalled the plug-in but it still couldn’t find the bridge. In the HomeBridge terminal I’m able to ping the Lutron bridge. Not sure what else I can try to get the plug-in to see the Lutron bridge.

Logs:

6/4/2022, 9:05:20 AM] [Homebridge UI] Homebridge restart request received
[6/4/2022, 9:05:20 AM] [Homebridge UI] UI / Bridge settings have not changed; only restarting Homebridge process
[6/4/2022, 9:05:20 AM] [Homebridge UI] Sending SIGTERM to Homebridge
[6/4/2022, 9:05:20 AM] Got SIGTERM, shutting down Homebridge...
[6/4/2022, 9:05:25 AM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[6/4/2022, 9:05:30 AM] [HB Supervisor] Restarting Homebridge...
[6/4/2022, 9:05:30 AM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules
[6/4/2022, 9:05:31 AM] [HB Supervisor] Started Homebridge v1.4.1 with PID: 7741
[6/4/2022, 9:05:32 AM] Loaded config.json with 1 accessories and 2 platforms.
[6/4/2022, 9:05:32 AM] Loaded 7 cached accessories from cachedAccessories.
[6/4/2022, 9:05:32 AM] ---
[6/4/2022, 9:05:33 AM] Loaded plugin: [email protected]
[6/4/2022, 9:05:33 AM] Registering accessory 'homebridge-dummy.DummySwitch'
[6/4/2022, 9:05:33 AM] ---
[6/4/2022, 9:05:34 AM] Loaded plugin: [email protected]
[6/4/2022, 9:05:34 AM] Registering platform 'homebridge-lutron-caseta-leap.LutronCasetaLeap'
[6/4/2022, 9:05:34 AM] ---
[6/4/2022, 9:05:34 AM] Loaded plugin: [email protected]
[6/4/2022, 9:05:34 AM] Registering platform 'homebridge-tplink-smarthome.TplinkSmarthome'
[6/4/2022, 9:05:34 AM] ---
[6/4/2022, 9:05:34 AM] Loaded plugin: [email protected]
[6/4/2022, 9:05:34 AM] Registering platform 'homebridge-config-ui-x.config'
[6/4/2022, 9:05:34 AM] ---
[6/4/2022, 9:05:34 AM] Loading 2 platforms...
[6/4/2022, 9:05:34 AM] [Config] Initializing config platform...
[6/4/2022, 9:05:34 AM] [Config] Running in Service Mode
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Initializing TplinkSmarthome platform...
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] homebridge-tplink-smarthome v7.0.1, node v16.14.0, homebridge v1.4.1, api v2.7
[6/4/2022, 9:05:34 AM] Loading 1 accessories...
[6/4/2022, 9:05:34 AM] [Setup] Initializing DummySwitch accessory...
[6/4/2022, 9:05:34 AM] [Setup] Setting switch to false
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [Plug 1] UUID: 72471e42-d2da-44ac-97e9-db0c1bfcefbf deviceId: 80063AB11D3024F10AA8777EE68FE2F41F16D62C00 
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [Plug 2] UUID: 8d735e70-1ec0-4e6c-87ec-620c2efd59ca deviceId: 80063AB11D3024F10AA8777EE68FE2F41F16D62C01 
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [Plug 3] UUID: f3230054-f4f0-43c5-8b80-fe379022b804 deviceId: 80063AB11D3024F10AA8777EE68FE2F41F16D62C02 
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [Plug 4] UUID: 97e6ea4f-82bd-4e73-9a85-1dfa7b8f61b7 deviceId: 80063AB11D3024F10AA8777EE68FE2F41F16D62C03 
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [Plug 5] UUID: 7e4d44b8-0cbc-4464-977b-8c88497a4d80 deviceId: 80063AB11D3024F10AA8777EE68FE2F41F16D62C04 
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [Plug 6] UUID: 9fdae57f-81d8-4771-ae4a-864250d0e116 deviceId: 80063AB11D3024F10AA8777EE68FE2F41F16D62C05 
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Configuring cached accessory: [TP-LINK_Smart Plug_DC71] UUID: 5f45010b-e85f-43f6-8b3f-f777e37a3f8d deviceId: 800637237E9F7D52021150416DCD08051EF99A39 
Setup Payload:
X-HM://0023ISYWYD81U
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:
                       
    ┌────────────┐     
    
    └────────────┘     
                       
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [TP-LINK_Smart Plug_DC71] plug [800637237E9F7D52021150416DCD08051EF99A39] 192.168.4.186 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [TP-LINK_Smart Plug_DC71] plug [800637237E9F7D52021150416DCD08051EF99A39]
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [Plug 1] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C00] 192.168.4.193 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [Plug 1] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C00]
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [Plug 2] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C01] 192.168.4.193 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [Plug 2] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C01]
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [Plug 3] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C02] 192.168.4.193 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [Plug 3] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C02]
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [Plug 4] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C03] 192.168.4.193 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [Plug 4] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C03]
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [Plug 5] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C04] 192.168.4.193 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [Plug 5] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C04]
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Device First Online: [Plug 6] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C05] 192.168.4.193 9999
[6/4/2022, 9:05:34 AM] [TplinkSmarthome] Adding: [Plug 6] plug [80063AB11D3024F10AA8777EE68FE2F41F16D62C05]
[6/4/2022, 9:05:35 AM] Homebridge v1.4.1 (HAP v0.10.2) (Homebridge B36C) is running on port 53388.
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] TCP 192.168.4.193:9999 Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] [Plug 5] device.send() Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] TCP 192.168.4.193:9999 Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] [Plug 6] device.send() Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] TCP 192.168.4.193:9999 Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] [Plug 5] device.send() Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 5] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] TCP 192.168.4.193:9999 Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome.API] [Plug 6] device.send() Error: connect ECONNRESET 192.168.4.193:9999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '192.168.4.193',
  port: 9999
}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}
[6/4/2022, 9:05:36 AM] [TplinkSmarthome] [Plug 6] {"errno":-104,"code":"ECONNRESET","syscall":"connect","address":"192.168.4.193","port":9999}

**Plugin Config:**

{
    "bridge": {
        "name": "Homebridge",
        "username": "########",
        "port": 53388,
        "pin": "########",
        "bind": [
            "eth0",
            "eth0.4",
            "docker0"
        ],
        "advertiser": "avahi"
    },
    "accessories": [
        {
            "name": "Setup",
            "stateful": true,
            "reverse": false,
            "time": 1000,
            "resettable": false,
            "accessory": "DummySwitch"
        }
    ],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "name": "TplinkSmarthome",
            "addCustomCharacteristics": true,
            "broadcast": "192.168.4.255",
            "deviceTypes": [
                "plug",
                "bulb"
            ],
            "platform": "TplinkSmarthome"
        }
    ]
}

Screenshots:
078B8B4B-FFE8-4001-818E-03CEC06A0682

Environment:

  • Plugin Version: 2.3.6
  • Homebridge Version: 1.4.1
  • Node.js Version: 16.4.0
  • NPM Version: not sure how to check what version
  • Operating System: Docker running on a Raspberry Pi

Add support to publish events via MQTT

Is your feature request related to a problem? Please describe:
Currently Pico remotes can only trigger single button press based actions in HomeKit automations. I'm looking to be able to control non-lutron lights/devices in particular dimming of lights.

Describe the solution you'd like:
Simularly to the Homebridge myQ pluggin where there is an optional MQTT settings which contains the MQTT Broker URL and MQTT Base topic where on an event JSON object is published whenever a Lutron event occurs. E.G. Pico Button pressed.

Describe alternatives you've considered:
I've tried installing Home Assistant to be able to create automations to when events occur but installing a new server just to control a few lights is overkill.

Additional context:

Auto Remove Accessory

Is your feature request related to a problem? Please describe:
No Problem

Describe the solution you'd like:
I would love that when an accessory is removed from the Lutron Hub (via the app) the device is also removed from HomeKit without the need to manually remove the cached accessory.

Describe alternatives you've considered:
This is more inline with other plugin behavior

Additional context:
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.