Skip to content

Instantly share code, notes, and snippets.

@ConnorGriffin
Last active December 17, 2025 06:43
Show Gist options
  • Select an option

  • Save ConnorGriffin/36487b7a23622a26475684c5f4655ce6 to your computer and use it in GitHub Desktop.

Select an option

Save ConnorGriffin/36487b7a23622a26475684c5f4655ce6 to your computer and use it in GitHub Desktop.
HomeAssistant Blueprint: GE Double Tap's for Connor's Light Modes
blueprint:
name: "ConnorGriffin's Light Switch Double Taps"
description: >
Supports GE/Jasco Basic CC (32) and UltraPro ZW3010 Central Scene (91).
Double-tap UP toggles Max ↔ Auto.
Double-tap DOWN toggles Min ↔ Auto.
domain: automation
input:
device:
name: Switch Device
selector:
device:
filter:
- integration: zwave_js
light_mode_select:
name: Light Mode Input Select
selector:
entity:
domain: input_select
mode: single
max_exceeded: silent
trigger:
# ─── Basic CC (older GE/Jasco) ───
- platform: event
event_type: zwave_js_value_notification
event_data:
device_id: !input device
command_class: 32
# ─── Central Scene (UltraPro ZW3010) ───
- platform: event
event_type: zwave_js_value_notification
event_data:
device_id: !input device
command_class: 91
property: scene
action:
- variables:
tap: >-
{% set cc = trigger.event.data.command_class %}
{% if cc == 32 %}
{% if trigger.event.data.value_raw == 255 %}
on
{% elif trigger.event.data.value_raw == 0 %}
off
{% else %}
ignore
{% endif %}
{% elif cc == 91 and trigger.event.data.value == 3 %}
{% if trigger.event.data.property_key == '001' %}
on
{% elif trigger.event.data.property_key == '002' %}
off
{% else %}
ignore
{% endif %}
{% else %}
ignore
{% endif %}
- choose:
# ───────────── Double-tap DOWN ─────────────
- conditions: "{{ tap == 'off' }}"
sequence:
- choose:
- conditions:
- condition: state
entity_id: !input light_mode_select
state: "Min"
sequence:
- service: input_select.select_option
target:
entity_id: !input light_mode_select
data:
option: "Auto"
default:
- service: input_select.select_option
target:
entity_id: !input light_mode_select
data:
option: "Min"
# ───────────── Double-tap UP ─────────────
- conditions: "{{ tap == 'on' }}"
sequence:
- choose:
- conditions:
- condition: state
entity_id: !input light_mode_select
state: "Max"
sequence:
- service: input_select.select_option
target:
entity_id: !input light_mode_select
data:
option: "Auto"
default:
- service: input_select.select_option
target:
entity_id: !input light_mode_select
data:
option: "Max"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment