Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kmdm/1e6b9b8b08fa7e1a3f187659b0c418ec to your computer and use it in GitHub Desktop.
Save kmdm/1e6b9b8b08fa7e1a3f187659b0c418ec to your computer and use it in GitHub Desktop.
ZHA Phillips Hue Dimmer Switch Alarm Keypad
blueprint:
name: ZHA - Philips Hue Dimmer Switch Alarm Keypad
description: 'Use the Philips Hue Dimmer Switch as an Alarm Keypad'
domain: automation
input:
remote:
name: Remote
description: The remote to use
selector:
device:
integration: zha
manufacturer: Philips
entity:
domain: sensor
device_class: battery
panel:
name: Alarm Panel
description: The alarm panel to disarm if the correct code is entered
selector:
entity:
domain: alarm_control_panel
helper:
name: Try Code Helper
description: An input_text helper to store the tried alarm code
selector:
entity:
domain: input_text
codelen:
name: Code Length
description: Specify the length of the valid alarm code
default: 4
selector:
number:
min: 4
max: 12
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input 'remote'
action:
- variables:
panel: !input 'panel'
helper: !input 'helper'
codelen: !input 'codelen'
command: '{{ trigger.event.data.command }}'
digimap:
on_short_release: "1"
on_long_release: "5"
on_double_press: ""
up_short_release: "2"
up_long_release: "6"
up_double_press: ""
down_short_release: "3"
down_long_release: "7"
down_double_press: ""
off_short_release: "4"
off_long_release: "8"
off_double_press: "X"
- choose:
- conditions: '{{ digimap[command] == "X" }}'
sequence:
- service: input_text.set_value
data_template:
entity_id: "{{ helper }}"
value: ""
- conditions: '{{ states(helper)|length == codelen - 1 }}'
sequence:
- service: alarm_control_panel.alarm_disarm
data_template:
entity_id: "{{ panel }}"
code: "{{ states(helper) + digimap[command] }}"
- service: input_text.set_value
data_template:
entity_id: "{{ helper }}"
value: ""
- conditions: '{{ states(helper)|length >= codelen }}'
sequence:
- service: input_text.set_value
data_template:
entity_id: "{{ helper }}"
value: "{{ digimap[command] }}"
default:
- service: input_text.set_value
data_template:
entity_id: "{{ helper }}"
value: "{{ states(helper) + digimap[command] }}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment