Skip to content

Instantly share code, notes, and snippets.

@billchurch
Last active June 14, 2025 14:10
Show Gist options
  • Save billchurch/37cb8387f6e68db8ac842f281f93f48d to your computer and use it in GitHub Desktop.
Save billchurch/37cb8387f6e68db8ac842f281f93f48d to your computer and use it in GitHub Desktop.
Control a Home Assistant fan entity (like Big Ass Fans / Haiku) with a Lutron 5-button Fan Pico (PJ2-3BRL-GXX-F01).
blueprint:
name: Pico Fan – Simple 5-Button
description: >
Map a Lutron Fan Pico (PJ2-3BRL-GXX-F01) to one ceiling fan
and an optional light.
Single presses only – no long-press or double-click logic.
domain: automation
author: billchurch
source_url: https://community.home-assistant.io/t/pico-fan-simple-5-button-remote-for-lutron-caseta-haiku-or-any-fan/901507
input:
pico_remote:
name: Lutron Pico
selector:
device:
model: PJ2-3BRL-GXX-F01 (Pico3ButtonRaiseLower)
fan_entity:
name: Fan
selector:
entity:
domain: fan
light_entity:
name: Light (optional)
default: []
selector:
entity:
domain: light
multiple: false
percentage_step:
name: Speed step (%)
default: 10
selector:
number:
min: 5
max: 50
step: 1
unit_of_measurement: '%'
mode: slider
trigger:
- platform: device
device_id: !input pico_remote
domain: lutron_caseta
type: press
subtype: 'on'
id: "on"
- platform: device
device_id: !input pico_remote
domain: lutron_caseta
type: press
subtype: raise
id: "up"
- platform: device
device_id: !input pico_remote
domain: lutron_caseta
type: press
subtype: stop
id: "middle"
- platform: device
device_id: !input pico_remote
domain: lutron_caseta
type: press
subtype: lower
id: "down"
- platform: device
device_id: !input pico_remote
domain: lutron_caseta
type: press
subtype: 'off'
id: "off"
action:
- variables:
step: !input percentage_step
light: !input light_entity
- choose:
- conditions:
- condition: trigger
id: "on"
sequence:
- service: fan.turn_on
target:
entity_id: !input fan_entity
- conditions:
- condition: trigger
id: "up"
sequence:
- service: fan.increase_speed
target:
entity_id: !input fan_entity
data:
percentage_step: "{{ step }}"
- conditions:
- condition: trigger
id: "middle"
sequence:
- choose:
- conditions: "{{ light | length > 0 }}"
sequence:
- service: light.toggle
target:
entity_id: "{{ light }}"
default:
- service: fan.toggle
target:
entity_id: !input fan_entity
- conditions:
- condition: trigger
id: "down"
sequence:
- service: fan.decrease_speed
target:
entity_id: !input fan_entity
data:
percentage_step: "{{ step }}"
- conditions:
- condition: trigger
id: "off"
sequence:
- service: fan.turn_off
target:
entity_id: !input fan_entity
mode: single
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment