Ring Alarm Keypad v2 + Home Assistant – Z-Wave control, feedback LEDs and display wake

Hi all,

Firstly, thanks to everyone who has helped with this. The community has been incredibly helpful and we’ve now got the majority of what I wanted working.

I’m using two Ring Alarm Keypad v2 devices with Home Assistant via Z-Wave JS. I’m not using Alarmo; I have a custom HA alarm implementation.

What I wanted to achieve

The original aim was:

  • Enter PIN + Home → HA Home alarm
  • Enter PIN + Away → HA Away alarm
  • Enter PIN + Disarm → HA Disarmed
  • Have the keypad provide confirmation that the command was accepted
  • Ideally have the keypad’s LEDs/display reflect the current HA alarm state
  • Ideally have the display/LEDs illuminate when HA sends the confirmation, rather than requiring someone to walk up to the keypad

What we discovered

The keypad sends zwave_js_notification events using Entry Control CC 111.

The useful events appear to be:

Event Meaning
3 Disarm
5 Away
6 Home
0 Caching
2 PIN submission

This allowed us to build the keypad controller in HA.

There was initially an intermittent problem where Home would sometimes fail even though the keypad had sent the correct event and PIN.

We eventually found that this wasn’t a Z-Wave problem.

The HA Home-arm script was already running with mode: single, so a second Home request could be rejected while the first instance was still running. An Away action could then change the authoritative state to Away while the original Home script was still running.

We changed the keypad controller so that if the Home script is already running, it reasserts the authoritative Home state rather than attempting to start another instance.

That has now made the actual arm/disarm operation reliable. We’ve tested many consecutive Home/Away/Disarm changes successfully.

Indicator CC

The other big discovery was Indicator CC 135.

We can send an Indicator command such as:

action: zwave_js.invoke_cc_api
data:
  command_class: 135
  endpoint: 0
  method_name: set
  parameters:
    - indicatorId: 10
      propertyId: 1
      value: 255

We’ve confirmed:

* Indicator 2 / property 1 / 255 → keypad announces “Disarmed”
* Indicator 10 / property 1 / 255 → keypad announces “Home and armed”
* Indicator 11 / property 1 / 255 → keypad announces “Away and armed”

This is now being used as feedback after a successful keypad transaction.

So the sequence is essentially:

PIN → HA validates request → HA changes alarm state → keypad receives appropriate Indicator command → keypad gives local spoken confirmation.

This part works.

The remaining problem

The interesting part is the physical LED/display.

The Indicator command clearly reaches the keypad and the keypad knows what to announce.

However, the physical display/LED does not necessarily illuminate immediately.

If the keypad is asleep, the new indicator state appears to be stored, but the LED/display isn’t visibly illuminated until the keypad wakes — for example when proximity detection activates it.

We’ve tested this on both keypads.

We also tried:

* Changing the status-change display timeout (P11)
* Changing it from 5 seconds to 10 seconds
* Trying 1 second
* Running the keypad from mains power rather than battery

None of these caused the keypad to reliably wake its display when the Indicator CC command was received.

Configuration

The Porch keypad exposes, amongst other things:

* Security Mode Brightness
* LED Ramp Time
* Proximity Detection
* System Security Mode Display
* Display on Button Press timeout
* Display on Status Change timeout
* Proximity Display timeout

The relevant Ring documentation suggests that P11 controls how long the display remains on following a status change/Indicator command, but it doesn’t appear to provide a mechanism to force a sleeping keypad to wake.

We’ve also looked for a Z-Wave command corresponding to something like:

* wake display
* illuminate LEDs
* emulate button press
* trigger proximity
* display activity

but haven’t found a supported mechanism for doing this.

Another interesting finding

The Ring keypad also appears to have its own internal/durable Ring security-mode state.

This can result in the keypad saying/displaying something such as “Away and armed” even when HA’s authoritative alarm state is Home.

The HA alarm state and the Ring keypad’s internal security-mode display therefore don’t appear to be the same thing.

We’ve deliberately stopped trying to automatically synchronise the Ring internal mode because doing so introduced confusing behaviour.

Instead, HA is the authoritative alarm state and the Indicator CC is being used purely as feedback.

Current situation

Working

* Home from keypad
* Away from keypad
* Disarm from keypad
* PIN handling
* HA alarm state changes
* Indicator CC commands
* Spoken Home/Away/Disarmed feedback
* Reliable keypad transactions after fixing the HA script race condition

Not currently possible / unresolved

* Automatically waking the physical Ring keypad display when HA sends the Indicator command
* Making the physical LED visibly illuminate immediately while the keypad is asleep

My question

Does anyone know of a Z-Wave command, Ring-specific command, configuration parameter, or undocumented mechanism that can remotely wake the Ring Alarm Keypad v2 display/LED?

I’m particularly interested in whether there is something beyond Entry Control CC 111 and Indicator CC 135 that the Ring keypad understands.

At this point the Indicator commands themselves are definitely working, so the missing piece seems to be the physical display wake-up, rather than the alarm state or Z-Wave communication.

Any ideas or pointers would be very welcome.

Thanks again to everyone who has helped so far!