npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-ra2-select

v1.1.2

Published

Surface Pico remotes

Downloads

36

Readme

homebridge-ra2-select

verified-by-homebridge mit license npm Donate

A Homebridge plugin for Lutron RA2 Select devices. This plugin does not provide support for Lutron Radio RA2 devices.

This plugin currently has one purpose: allow Lutron Pico remotes to control HomeKit devices outside of the Lutron ecosystem.

Required Hardware

Supported Hardware

The following hardware has been confirmed to work with this plugin:

  • RA2 Select [RR-SEL-REP2]
  • Two Button Pico Remote [PJ2-2B]
  • Three Button Pico Remote w/ raise/lower [PJ2-3BRL]
  • Let me know what Picos you've had success with!

It is expected that any other Pico remote that is identified as being compatible with the RA2 Select will also work without issue.

Other Bridges

It is possible that this plugin may work with other Lutron bridges besides just the RA2 Select, but it has not been tested, nor will it be supported.

Supported Features

Pico remotes are surfaced in HomeKit as Stateless Programable Switches with buttons that provide single, double, and long press support.

Installation

For the best experience installing this plugin, please use homebridge-config-ui-x.

Manual Install:

npm -g install homebridge-ra2-select

Ready Your Hardware

Configuration of your hardware requires the Lutron App.

Add the RA2 Select as a Hub/Bridge

Follow the manufacturer's instructions to add the bridge to your HomeKit setup if necessary.

[!IMPORTANT] Make sure that the RA2 Select has a static IP address assigned!

Enable Telnet

This plugin uses Telnet to communicate with the RA2 Select devices. By default, the RA2 Select has Telnet access disabled. To enable access:

Lutron App / Settings / Advanced / Integration / Telnet Support --> Toggle on.

Add a New Pico

Lutron App / Settings / Add Device --> Follow the instructions. Do not associate the Pico with any existing lutron devices.

Use an Existing Pico

Disassociate the existing Pico from controlling Lutron devices directly:

Lutron App / <Existing Pico> / Edit Device / Devices --> Unselect all devices

Configuration

For the best experience configuring this plugin, please use homebridge-config-ui-x.

Start with the starter config. You will use this simple configuration to identify the device and button information needed to complete the configuration. See the Identifying Device and Button Ids section below.

Ex: config.json - Starter config - replace values as appropriate

{
    "platform": "RA2Select",
    "host": "192.168.0.12",
    "username": "user",
    "password": "secret"
}

Once you have identified the device and button information, you will now complete the configuration to expose the Pico remotes to HomeKit.

Ex: config.json - After device and button discovery

  • Two Pico remotes identified (Ids 11, 14)
  • One Pico remote (Id 11) has two buttons (Ids 2, 4)
  • One Pico remote (Id 14) ignored
{
    "platform": "RA2Select",
    "host": "192.168.0.12",
    "username": "user",
    "password": "secret"
    "devices": [
        {
            "id": 11,
            "name": "Bathroom Pico",
            "buttons": [
                {
                    "id": 2,
                    "name": "On"
                },
                {
                    "id": 4,
                    "name": "Off"
                }
            ]
        },
        {
            "id": 14,
            "ignore": true
        }
    ]
}

Parameters

| Param | Description | Required | | ------------- | ------------- | -------- | | platform | Must be set to "RA2Select" | yes | | host | The IP address or hostname of the RA2 SelectIMPORTANT: Make sure that the RA2 Select has a static IP address assigned | yes | | username | RA2 Select username. The default setting for the RA2 Select is lutron. | yes | | password | RA2 Select password. The default setting for the RA2 Select is integration | yes | | devices | Array of devices (Pico remotes). See Devices section. | | | pressTimeout | Timeout after first press before recognizing it as a single press, i.e., second press must be received within this interval to be considered a double-press event. In millis.Defaults to 500. | | | longTimeout | Timeout before a single press becomes a long press. If a release event is not received before this interval expires, then it is a long press. In millis.Defaults to 2000. | |

Devices

| Param | Description | Required | | ------------- | ------------- | -------- | | id | Device identifier of the Pico remote | yes | | ignore | Ignore this device (true/false). An ignored device is excluded from logging and HomeKit exposure.Defaults to false. | | | name | Assigned device name. If 'ignore' is true, then this parameter is not required. If 'ignore' is false, then this parameter is required and becomes the name of the Stateless Programable Switch exposed to HomeKit. | if ignore is false | | buttons | Array of buttons. See Buttons section. | | | logging | Output detailed log information (true/false) for this device (and any of its buttons).Defaults to false. | | | singlePressOnly | All buttons on the device are configured to be single press only buttons and will imediately respond to a press without delay.Defaults to false. | |

Buttons

| Param | Description | Required | | ------------- | ------------- | -------- | | id | Button identifier of Pico remote button | yes | | ignore | Ignore this button (true/false). An ignored button is excluded from logging and HomeKit exposure.Defaults to false. | | | name | Assigned button name. If 'ignore' is true, then this parameter is not required. If 'ignore' is false, then this parameter is required and becomes the name of a button associated with the Stateless Programable Switch exposed to HomeKit.Note: The Home app does not expose the names of the buttons, which simply show up as "Button 1", "Button 2", etc. in no particular order. Other apps (ex: Eve) expose the button names. | if ignore is false | | singlePressOnly | The buttons is configured to be a single press only button and will immediately respond to a press without delay.Defaults to false. | |

Identifying Device and Button Ids

Pico remotes that are not configured must be identified by looking in the Homebridge log file. Unconfigured remotes can happen when you first start up this plugin, or when adding a new device.

To identify a remote and its buttons:

  1. Press a button on the remote.

  2. Examine the log file to find the device and button identities.

    You are looking for entries like this:

    RCV UNK: deviceId=8, buttonId=3, actionNumber=3

    This indicates that a button was pressed on a device identified as 8 and the button is identified as 3.

  3. Repeat steps 1 & 2 for each button on the remote, unless this is a remote you want to ignore.

    Note: each button of a single remote will have the same device identifier.

Why would I want to ignore a Pico remote?

If you have pre-existing remotes controlling devices within your Lutron ecosystem, you may not want to expose them in HomeKit as new devices. For example, I have a number Pico devices that control my Lutron shades. I do not want to use those Picos for anything else. By ignoring those Picos, I will also cut down on the noise in the Homebridge log file. On the other hand, if I want to piggy-back on button presses from those remotes, then I could do that by adding them to the configuration.

Why would I want to ignore a Pico button?

Again, this is mainly about cutting down noise in the Homebridge log file. I may have some buttons on my remotes I am not currently using, don't wish to expose to HomeKit, and don't want the presses to be logged.

Configure Remotes in HomeKit

You are ready to configure your new switches in homekit once you have identified the remotes and buttons, configured the plugin appropriately, and restarted homebridge.

Each remote that you configured in homebridge is exposed as a Stateless Programmable Switch in HomeKit. You can use either the Home app or another HomeKit compatible app such as the Eve app.