Devices that support central scenes generate events when certain buttons are pressed. These events can then be used as triggers in your automations. Some of the events that devices generate includes Single Press, Double Press, Press and Hold, Release, and so on.
While the ring keypad doesn’t generate central scene events it does generate events that can be used in a fashion similar to a scene controller.
One other thing I recommend you do is change the key cache values. The keypad caches the keys that are pressed then sends them when the timeout is met or the number of keys is pressed. For example the default timeout value is 4 and the default key cache size is 8. This means I would I have press 8 numbers before an event is generated or press less than 8 numbers and wait 4 seconds after the last number is pressed before an event is generated. For maximum responsiveness I set my timeout to 1 and the key cache size to 4.
blueprint:
name: Ring Keypad Scenes
description: Lets you use the Ring Keypad Like a Scene Controller.
domain: automation
input:
ring_keypad:
name: Ring Keypad
description: The Ring Keypad to use in this blueprint.
selector:
device:
integration: zwave_js
manufacturer: Ring
model: 4AK1SZ
automation_mode:
name: Automation mode
description: See https://www.home-assistant.io/docs/automation/modes/
default: single
selector:
select:
options:
- single
- restart
- queued
- parallel
number_1_1:
name: Number 1 Pressed
description: Action to run when number 1 is pressed once.
default: []
selector:
action: {}
number_2_1:
name: Number 2 Pressed
description: Action to run when number 2 is pressed once.
default: []
selector:
action: {}
number_3_1:
name: Number 3 Pressed
description: Action to run when number 3 is pressed once.
default: []
selector:
action: {}
number_4_1:
name: Number 4 Pressed
description: Action to run when number 4 is pressed once.
default: []
selector:
action: {}
number_5_1:
name: Number 5 Pressed
description: Action to run when number 5 is pressed once.
default: []
selector:
action: {}
number_6_1:
name: Number 6 Pressed
description: Action to run when number 6 is pressed once.
default: []
selector:
action: {}
number_7_1:
name: Number 7 Pressed
description: Action to run when number 7 is pressed once.
default: []
selector:
action: {}
number_8_1:
name: Number 8 Pressed
description: Action to run when number 8 is pressed once.
default: []
selector:
action: {}
number_9_1:
name: Number 9 Pressed
description: Action to run when number 9 is pressed once.
default: []
selector:
action: {}
number_0_1:
name: Number 0 Pressed
description: Action to run when number 0 is pressed once.
default: []
selector:
action: {}
number_1_2:
name: Number 1 Pressed 2x
description: Action to run when number 1 is pressed twice.
default: []
selector:
action: {}
number_2_2:
name: Number 2 Pressed 2x
description: Action to run when number 2 is pressed twice.
default: []
selector:
action: {}
number_3_2:
name: Number 3 Pressed 2x
description: Action to run when number 3 is pressed twice.
default: []
selector:
action: {}
number_4_2:
name: Number 4 Pressed 2x
description: Action to run when number 4 is pressed twice.
default: []
selector:
action: {}
number_5_2:
name: Number 5 Pressed 2x
description: Action to run when number 5 is pressed twice.
default: []
selector:
action: {}
number_6_2:
name: Number 6 Pressed 2x
description: Action to run when number 6 is pressed twice.
default: []
selector:
action: {}
number_7_2:
name: Number 7 Pressed 2x
description: Action to run when number 7 is pressed twice.
default: []
selector:
action: {}
number_8_2:
name: Number 8 Pressed 2x
description: Action to run when number 8 is pressed twice.
default: []
selector:
action: {}
number_9_2:
name: Number 9 Pressed 2x
description: Action to run when number 9 is pressed twice.
default: []
selector:
action: {}
number_0_2:
name: Number 0 Pressed 2x
description: Action to run when number 0 is pressed twice.
default: []
selector:
action: {}
number_1_held:
name: Number 1 Held
description: Action to run when number 1 is held.
default: []
selector:
action: {}
number_2_held:
name: Number 2 Held
description: Action to run when number 2 is held.
default: []
selector:
action: {}
number_3_held:
name: Number 3 Held
description: Action to run when number 3 is held.
default: []
selector:
action: {}
number_4_held:
name: Number 4 Held
description: Action to run when number 4 is held.
default: []
selector:
action: {}
number_5_held:
name: Number 5 Held
description: Action to run when number 5 is held.
default: []
selector:
action: {}
number_6_held:
name: Number 6 Held
description: Action to run when number 6 is held.
default: []
selector:
action: {}
number_7_held:
name: Number 7 Held
description: Action to run when number 7 is held.
default: []
selector:
action: {}
number_8_held:
name: Number 8 Held
description: Action to run when number 8 is held.
default: []
selector:
action: {}
number_9_held:
name: Number 9 Held
description: Action to run when number 9 is held.
default: []
selector:
action: {}
number_0_held:
name: Number 0 Held
description: Action to run when number 0 is held.
default: []
selector:
action: {}
disarm_all:
name: Disarm All Button Pressed
description: Action to run when the Disarm All button is pressed.
default: []
selector:
action: {}
home:
name: Home Button Pressed
description: Action to run when the Home button is pressed.
default: []
selector:
action: {}
away:
name: Away Button Pressed
description: Action to run when the Away button is pressed.
default: []
selector:
action: {}
enter:
name: Enter Button Pressed
description: Action to run when the Enter button is pressed.
default: []
selector:
action: {}
cancel:
name: Cancel Button Pressed
description: Action to run when the Cancel button is pressed.
default: []
selector:
action: {}
medical:
name: Medical Button Pressed
description: Action to run when the Medical button is pressed.
default: []
selector:
action: {}
fire:
name: Fire Button Pressed
description: Action to run when the Fire button is pressed.
default: []
selector:
action: {}
police:
name: Police Button Pressed
description: Action to run when the Police button is pressed.
default: []
selector:
action: {}
trigger:
platform: event
event_type: zwave_js_notification
event_data:
command_class_name: Entry Control
device_id: !input ring_keypad
action:
- choose:
- conditions: "{{ trigger.event.data.event_data == '1' }}"
sequence: !input number_1_1
- conditions: "{{ trigger.event.data.event_data == '2' }}"
sequence: !input number_2_1
- conditions: "{{ trigger.event.data.event_data == '3' }}"
sequence: !input number_3_1
- conditions: "{{ trigger.event.data.event_data == '4' }}"
sequence: !input number_4_1
- conditions: "{{ trigger.event.data.event_data == '5' }}"
sequence: !input number_5_1
- conditions: "{{ trigger.event.data.event_data == '6' }}"
sequence: !input number_6_1
- conditions: "{{ trigger.event.data.event_data == '7' }}"
sequence: !input number_7_1
- conditions: "{{ trigger.event.data.event_data == '8' }}"
sequence: !input number_8_1
- conditions: "{{ trigger.event.data.event_data == '9' }}"
sequence: !input number_9_1
- conditions: "{{ trigger.event.data.event_data == '0' }}"
sequence: !input number_0_1
- conditions: "{{ trigger.event.data.event_data == '11' }}"
sequence: !input number_1_2
- conditions: "{{ trigger.event.data.event_data == '22' }}"
sequence: !input number_2_2
- conditions: "{{ trigger.event.data.event_data == '33' }}"
sequence: !input number_3_2
- conditions: "{{ trigger.event.data.event_data == '44' }}"
sequence: !input number_4_2
- conditions: "{{ trigger.event.data.event_data == '55' }}"
sequence: !input number_5_2
- conditions: "{{ trigger.event.data.event_data == '66' }}"
sequence: !input number_6_2
- conditions: "{{ trigger.event.data.event_data == '77' }}"
sequence: !input number_7_2
- conditions: "{{ trigger.event.data.event_data == '88' }}"
sequence: !input number_8_2
- conditions: "{{ trigger.event.data.event_data == '99' }}"
sequence: !input number_9_2
- conditions: "{{ trigger.event.data.event_data == '00' }}"
sequence: !input number_0_2
- conditions: "{{ trigger.event.data.event_data == 'A' }}"
sequence: !input number_1_held
- conditions: "{{ trigger.event.data.event_data == 'B' }}"
sequence: !input number_2_held
- conditions: "{{ trigger.event.data.event_data == 'C' }}"
sequence: !input number_3_held
- conditions: "{{ trigger.event.data.event_data == 'D' }}"
sequence: !input number_4_held
- conditions: "{{ trigger.event.data.event_data == 'E' }}"
sequence: !input number_5_held
- conditions: "{{ trigger.event.data.event_data == 'F' }}"
sequence: !input number_6_held
- conditions: "{{ trigger.event.data.event_data == 'G' }}"
sequence: !input number_7_held
- conditions: "{{ trigger.event.data.event_data == 'H' }}"
sequence: !input number_8_held
- conditions: "{{ trigger.event.data.event_data == 'I' }}"
sequence: !input number_9_held
- conditions: "{{ trigger.event.data.event_data == '@' }}"
sequence: !input number_0_held
- conditions: "{{ trigger.event.data.event_type_label == 'Disarm all' }}"
sequence: !input disarm_all
- conditions: "{{ trigger.event.data.event_type_label == 'Home' }}"
sequence: !input home
- conditions: "{{ trigger.event.data.event_type_label == 'Away' }}"
sequence: !input away
- conditions: "{{ trigger.event.data.event_type_label == 'Enter' }}"
sequence: !input enter
- conditions: "{{ trigger.event.data.event_type_label == 'Cancel' }}"
sequence: !input cancel
- conditions: "{{ trigger.event.data.event_type_label == 'Medical alert' }}"
sequence: !input medical
- conditions: "{{ trigger.event.data.event_type_label == 'Fire' }}"
sequence: !input fire
- conditions: "{{ trigger.event.data.event_type_label == 'Police' }}"
sequence: !input police
mode: single
max_exceeded: silent