Lutron Caseta Pico 4-Button Scene Remote

Does this only work with a Pro or RA2 bridge?

Hi @mattsheffiel and @stephack
I don’t totally understand the release event.
I’d like to have each button on a single press turn a scene on, then if the scene is on another press turns it off. Is this possible?

Also do you guys know if this script will work with PJ2-4B-GXX-L01?

See my response in the other thread regarding toggling scenes.

Thanks stephack
I read into the input select and toggling. A little over my head. I’m more or less a newbie that is good at following guides. Learning as I go.

If I’m not mistaken I can make any 4 button pico control a group of lights to ramp on via HA integration right? Just wouldn’t be native lutron and would require core integration and some HA programming?
If I can’t get toggling to work well my backup plan was to get a PJ2-4B-GWH-L01 because they are cheaper and make
Button 1 Kitchen (3 caseta loads to 75%
Button 2 Kitchen Off (3 caseta loads to 0%)
Button 3 Family (4 family room caseta loads to 75%)
Button 4 Family Off (4 family room caseta loads to 0%)

I’d have the buttons custom engraved after everything is installed and tweaked correctly.

All that said, maybe I should just add (I have plenty of jboxes) some wifi topgreener scene controllers like these flash with tasmota have it backhaul to the lutron casetas.

It seems like I would be able to toggle easier this way and have more flexibility of loads to dim. Does this seem feasible?

Do you think with wifi switches flashed w tasmota will be as fast and synchronized ?
IE
WiFiswitch>hass>lutron casetas
vs
Pico>HA>Lutron casetas

Any way to open this up to all the 4 button scene picos? So that different screen-prints / model numbers can work without modification?

PJ2-4B-GXX-P02 (Pico4ButtonScene)
PJ2-4B-GXX-P03 (Pico4ButtonScene)
PJ2-4B-GXX-P01 (Pico4ButtonScene)

These models come to mind, these are probably the most common scene keypad screenprints.

I hacked on the blueprint to add support for button long presses. I was also working on other Pico blueprints shared in the community, and some features from them made it in as well such as setting the automation mode, which is probably not as useful to others.

I put it online at: 4button-pico-bp.yaml - GitHub

blueprint:
  name: Lutron Caseta Four-Button Scene Pico Actions
  description: Short and long press automations for the Pico four-button remote.
  domain: automation
  input:
    pico_remote:
      name: Pico Four-Button Scene Remote
      description: Select the Pico four-button scene remote to configure.
      selector:
        device:
          model: PJ2-4B-GXX-X31 (Pico4ButtonScene)
          multiple: true
    button_1_press:
      name: Scene One Button - Short press
      description: Action when the scene one button is pressed.
      default: []
      selector:
        action: {}
    button_1_hold:
      name:  Scene One Button - Long press
      description: Action when the scene one button is held.
      default: []
      selector:
        action: {}
    button_1_release:
      name: Scene One Button - Release
      description: Action when the scene one button is released.
      default: []
      selector:
        action: {}
    button_2_press:
      name: Scene Two Button - Short press
      description: Action when the scene two button is pressed.
      default: []
      selector:
        action: {}
    button_2_hold:
      name: Scene Two Button - Long press
      description: Action when the scene two button is held.
      default: []
      selector:
        action: {}
    button_2_release:
      name: Scene Two Button - Release
      description: Action when the scene two button is released.
      default: []
      selector:
        action: {}
    button_3_press:
      name: Scene Three Button - Short press
      description: Action when the scene three button is pressed.
      default: []
      selector:
        action: {}
    button_3_hold:
      name: Scene Three Button - Long press
      description: Action when the scene three button is held.
      default: []
      selector:
        action: {}
    button_3_release:
      name: Scene Three Button - Released
      description: Action when the scene three button is released.
      default: []
      selector:
        action: {}
    off_button_press:
      name: Off Button - Short Press
      description: Action when the off button is pressed.
      default: []
      selector:
        action: {}
    off_button_hold:
      name: Off Button - Long Press
      description: Action when the off button is held.
      default: []
      selector:
        action: {}
    off_button_release:
      name: Off Button - Release
      description: Action when the off button is released.
      default: []
      selector:
        action: {}
    time_before_long_press:
      name: Time before long press
      description: Amount of time button needs to be held before triggering "long press" action.
      default: 1
      selector:
        number:
          min: 0.25
          max: 10.0
          step: 0.25
          unit_of_measurement: seconds
          mode: slider
    auto_mode:
      name: Automation Mode
      description: Mode that automation runs in (single,  restart, queued, parallel).
      default: restart
      selector:
        select:
          options:
            - single
            - restart
            - queued
            - parallel
    mode_max:
      name: Mode Max (ignored by Single and Restart Modes)
      description: Maximum number of runs that can be executed or queued at a time.
      default: 10
      selector:
        number:
          min: 1
          max: 15
trigger:
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: press
    subtype: 'button_1'
    id: button_1_press
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: release
    subtype: 'button_1'
    id: button_1_release
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: press
    subtype: 'button_2'
    id: button_2_press
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: release
    subtype: 'button_2'
    id: button_1_release
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: press
    subtype: 'button_3'
    id: button_3_press
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: release
    subtype: 'button_3'
    id: button_3_release
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: press
    subtype: 'off'
    id: off_button_press
  - platform: device
    device_id: !input pico_remote
    domain: lutron_caseta
    type: release
    subtype: 'off'
    id: off_button_release
action:
  - choose:
      # First scene button press
      - conditions:
          - condition: trigger
            id: button_1_press
        sequence:
          - wait_for_trigger:
              - platform: device
                device_id: !input pico_remote
                domain: lutron_caseta
                type: release
                subtype: 'button_1'
            timeout: !input time_before_long_press
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ not wait.trigger }}"
                sequence: !input button_1_hold
            default: !input button_1_press
      # First scene button release
      - conditions:
          - condition: trigger
            id: button_1_release
        sequence: !input button_1_release
      # Second scene button press
      - conditions:
          - condition: trigger
            id: button_2_press
        sequence:
          - wait_for_trigger:
              - platform: device
                device_id: !input pico_remote
                domain: lutron_caseta
                type: release
                subtype: 'button_2'
            timeout: !input time_before_long_press
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ not wait.trigger }}"
                sequence: !input button_2_hold
            default: !input button_2_press
      # Second scene button release
      - conditions:
          - condition: trigger
            id: button_2_release
        sequence: !input button_2_release
      # Third scene button press
      - conditions:
          - condition: trigger
            id: button_3_press
        sequence:
          - wait_for_trigger:
              - platform: device
                device_id: !input pico_remote
                domain: lutron_caseta
                type: release
                subtype: 'button_3'
            timeout: !input time_before_long_press
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ not wait.trigger }}"
                sequence: !input button_3_hold
            default: !input button_3_press
      # Third scene button release
      - conditions:
          - condition: trigger
            id: button_3_release
        sequence: !input button_3_release
      # Off button press
      - conditions:
          - condition: trigger
            id: off_button_press
        sequence:
          - wait_for_trigger:
              - platform: device
                device_id: !input pico_remote
                domain: lutron_caseta
                type: release
                subtype: 'off'
            timeout: !input time_before_long_press
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ not wait.trigger }}"
                sequence: !input off_button_hold
            default: !input off_button_press
      # Off button release
      - conditions:
          - condition: trigger
            id: off_button_release
        sequence: !input off_button_release
    default: []
mode: !input auto_mode
max: !input mode_max

I have a PJ2-4B-GBL-L31 that is showing up in @LoremIpsum’s fork of the blueprint but not @mattsheffiel’s original. Does anyone know why that might be the case?

Happy to provide more info, just not sure what would be the most useful.

Thank you for doing this. It seems to be working well for me. With the addition of long press support, I’m trying to add a hold-to-brighten/dim function, but HA does not seem to provide that service. Has anyone else figured out how to do this?

There is an option on the light.turn_on service called Brightness step value. If you call the service with the option, it will adjust the brightness up or down based on the value you give it.

If you use this service call for the button hold action, along with a time delay, and set it to loop, you’ll get a form of the function you’re looking for. It’s not perfect, but it works.

This chunk of blueprint yaml is the above for the down button on a five button pico…

    down_button_should_loop: true
    down_button_hold:
      - service: light.turn_on
        data:
          brightness_step: -5
        target:
          entity_id:
            - light.kitchen_lights
      - delay:
          hours: 0
          minutes: 0
          seconds: 0
          milliseconds: 250

EDIT: I just realized I wasn’t in a thread about the 5-button blueprint, and I didn’t implement looping in my 4-button BP. It could be added though, it just wasn’t a use case that I had previously considered.

I’ll give that a go. How would I get it to loop?

Here, give this blueprint a shot.

It’s untested, but I just brought in the pieces that handle hold loops on the my five button blueprint, so it was largely just a matter of renaming some stuff. It does remove selection of automation mode and concurrency settings as these need to be set in a specific way to support looping.

Thanks! I just tested it and it worked great to increase the brightness. I’ve got the four buttons set to a group of three lights (Group/Downlights/Chandelier/Lamp), so I’m trying to get the functionality for toggling power and dimming (up and down) for each one out of a single button. With this blueprint, I can do all I need except that when it gets to 100%, it doesn’t reset to 0% or start decreasing. Is there a way to make it do that?

Not natively in the blueprint, no.

I can imagine such functionality could be built using conditionals in the actions (chooser, if/then), along with helper entities to know if brightness should be increasing or decreasing.

1 Like

I tried this for the pico 4 button 2 group remote which is PJ2-4B-GXX-X21 (Pico4Button2Group), but unfortunately it does not work.
I am a new user of home assistant and still learning.
I would appreciate it if anyone can help me fix the code for this specific remote as well.
I managed to get the other code in your reference to work with the 5 button pico remote.
But I could not get this one to work.

These types of remotes are only compatible with Radio RA3 and QS Homeworks and do not work with the Caséta hub (pro or regular)

None of my pico devices are appearing in the selector drop down. I checked the devices and they are showing as

      model: PJ2-4B-GXX-X31 (Pico4ButtonScene)

Any ideas?

Make sure the remotes appear in the list of devices on your instance.

Open your Home Assistant instance and show your devices.

Search for “PJ2-4B-GXX-X31 (Pico4ButtonScene)” up at the top of the page to filter the list.

If your remotes are in that list, they should be available in the drop down. If they are in the list, but still not in the drop down, then I’m not sure what’s going on.

In my case, I’m using the remotes paired with a Lutron Caséta Smart Bridge Pro.

According to the documentation

Pico and Shade remotes are supported on the Smart Bridge (L-BDG2-WH), Smart Bridge PRO (L-BDGPRO2-WH), and RA2 Select (RR-SEL-REP2-BL) models.

What I don’t know is if the remotes appear with the exact same model string, or if it can vary if, for instance, you’re using the Smart Bridge or RA2 Select.

I hope that gives you enough to go on.

I found this note in another blueprint, it might be what you are looking for:

Make sure you have enabled at least one Pico Event Entity for each device, they are default to not enabled as of 2023.3, otherwise they won't show up as an available device in the drop down list.

from blueprint: Lutron Caséta Pico 4/5 Button Remote Advanced Actions (Core Integration)

How does one connect this 4-button pico to Caseta? I have the Pro Hub but it does not appear possible to connect this pico to this hub. I bought a PJ2-4B-GXX-X31 to test this but it will not register with the Pro hub.

I got it to work. I wasn’t selecting the 4B graphic at the bottom of the “Add Device” Pico UI section. Worked like a charm.

I then brought the device into HA and used the Blueprint above without any issues. Thank you all for this!