Skip to content

Lutron Caséta

My custom Pico TV remote, connecting button presses and holds to navigation, power and volume through Home Assistant.

Integration
Built into Home Assistant
Connection
Through the Lutron Smart Bridge
In this setup
Custom Pico TV controls

Updated . Documentation checked .

What it is

The Lutron Caséta integration connects Home Assistant to a supported Lutron bridge or processor. It exposes supported lighting and other device controls, along with remote-button events. My custom Pico behavior is an automation layer on top of that built-in integration, not a separate HACS package.

My Setup

My Pico as a Custom TV Remote

I use a Lutron Caséta Pico PJ2-3BRL as a compact TV remote. My Home Assistant automations give its buttons navigation, selection, power and volume functions. A short press and a held press can request different actions, so the same physical controls cover both menu navigation and everyday TV operation.

The customization lives in my Home Assistant automations. The Pico communicates through the Lutron Smart Bridge and the built-in Caséta integration; the TV commands then use SamsungTV Smart and SmartThings. This is a local automation build, not a separate integration I have published.

The Pico supplies the input; Home Assistant assigns the action

The Lutron Smart Bridge brings the Pico's button events into Home Assistant. My handler listens for press events and waits for a matching release or a short timeout before choosing the action. The button's original lighting label identifies the input; my automation decides what that input means for the TV.

Pico button → Lutron Smart Bridge → Caséta integration → Home Assistant tap/hold logic → SamsungTV Smart key command or SmartThings power request

The Pico is not paired to my Zigbee coordinator and does not send TV commands directly. Its path is separate from ZHA. Home Assistant connects the remote's input to the TV integrations.

The connections behind the custom remote

Scroll the table horizontally to compare all four columns.

Lutron Caséta connections in my build
ConnectionInformationHow I use itLimit or dependency
Pico and Smart BridgePhysical button press and release events.Provide the remote input through the Caséta integration.The remote, bridge and Home Assistant connection must be available.
Custom event handlerButton identity and whether release arrived before the timeout.Select the short-press or held-press action.Hold classification is my automation logic, not a native Caséta long-press event.
Hold helpersRaise and lower button press/release state.Keep volume requests repeating while the corresponding helper is on.A helper is software state; missed releases and overlapping presses matter.
SamsungTV SmartRemote-key command requests.Navigate menus, select, return, open Home and adjust volume.Supported keys and their effect depend on the TV and current screen.
SmartThingsReported power state and on/off requests.Handle the held bottom-button power action.Cloud access, authorization and fresh power-state reporting.

What each button does in my setup

These are the mappings in my configured TV handler. They describe the requests the automation makes, rather than guaranteeing how every TV app responds.

  • Top / on

    Tap
    Navigate left.
    Hold
    Send the TV's Return command.
  • Bottom / off

    Tap
    Navigate right.
    Hold
    Request power on or off through SmartThings, based on the reported TV state.
  • Center / favorite

    Tap
    Enter or select.
    Hold
    Open the TV's Home screen.
  • Raise

    Tap
    Navigate up.
    Hold
    Repeat volume-up requests while the hold helper is on, up to a finite request limit.
  • Lower

    Tap
    Navigate down.
    Hold
    Repeat volume-down requests while the hold helper is on, up to a finite request limit.

This makes the Pico useful beyond its original lighting role: taps cover directional navigation and selection, while holds add Return, Home, power and volume. The TV's screen and selected app still determine what a navigation command does.

How tap, hold and repeating volume work

Classifying the press

After a press arrives, the handler waits briefly for release. Release before the timeout selects the tap action; no release before the timeout selects the hold action. A held action therefore starts after that threshold, rather than waiting for the eventual release.

Caséta does not provide the native long-press trigger described for some other Lutron processors. My timeout-based interpretation is a customization built from the press and release events.

Tracking volume-button holds

A companion automation turns separate raise and lower helpers on when those buttons are pressed and off when they are released. The volume loop consults the relevant helper between requests and spaces out the repeated key commands.

The loop also has a finite request count. That bounds one invocation if the hold state does not clear, but it is not a maximum TV volume and does not confirm that the TV received every request. Multiple overlapping handler runs can still make their own requests.

A local input can still lead to a cloud-dependent action

The Caséta bridge connection supplies the local input. My power action uses the separate SmartThings integration, so the full remote workflow is not entirely local. SamsungTV Smart handles the key-command side and has its own TV compatibility and connection requirements.

The held power action chooses on or off from the state reported through SmartThings. A stale or unavailable state can lead to an unsuitable request. A successful Home Assistant action also does not prove that the TV powered on, changed screen or changed volume.

Press and release handling needs care when more than one remote or automation is involved. Shared hold helpers and overlapping events can affect repetition. A missed release can leave a helper on until a later event or correction; the request cap limits a loop rather than repairing that helper state.

Home Assistant must be running for these custom mappings to work. The Pico's own bridge pairing does not preserve the custom TV behavior if the automation or target integration is unavailable.

Check the input, decision and TV response separately

The public guide describes the behavior without exposing my remote identifiers, entity names or private automation configuration. The linked documentation covers the upstream integrations; it is not a repository for my custom Pico mapping.

What it can do

  • Bridge-connected controls

    Expose supported dimmers, switches, shades and other devices configured in the Lutron system.

  • Physical button inputs

    Use Pico press and release events to trigger Home Assistant automations.

  • Custom action mappings

    Connect those inputs to controls from other integrations, such as the TV actions in my setup.

  • Software timing

    Build a tap/hold interpretation and bounded repetition in automations where native device events do not provide the behavior wanted.

Install and connect

  • A supported Lutron Smart Bridge or processor with the Pico paired to its Lutron system.
  • Home Assistant able to reach and authenticate with the bridge using the supported setup flow.
  • For this TV mapping: separately configured SamsungTV Smart and SmartThings connections, plus the custom automations and hold helpers.
  1. Set up the Lutron side

    Configure the supported bridge and remote in the Lutron system first. The Pico is not paired through ZHA.

  2. Connect Home Assistant

    Add Lutron Caséta through Settings > Devices & services, or accept discovery, and follow the integration's pairing instructions.

  3. Verify physical button events

    Check press and release events from the intended Pico. Home Assistant button entities send a press request; they are not the physical-press input for an automation. Use the documented events or device triggers.

  4. Build the custom mapping

    Connect verified button inputs to the desired TV commands. Scope the event handlers to the intended remote, track release events for repetition, and use a finite request limit.

  5. Check tap, hold and release

    Verify one button at a time, then check power reporting, release handling and behavior when a connection is unavailable. Installing Caséta alone does not create the custom TV mapping.

Limits and caveats

Sources and next steps