Using the Ring Alarm Keypad with Home Assistant

Z-Wave JS ? If I run it this is what I have in logs

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/config.sh
[20:17:11] INFO: No s0_legacy_key is set, generating one...
[20:17:11] INFO: No 'network_key' detected, setting it to 's0_legacy_key' for backwards compatibility
[20:17:11] INFO: No s2_access_control_key is set, generating one...
[20:17:11] INFO: No s2_authenticated_key is set, generating one...
[20:17:11] INFO: No s2_unauthenticated_key is set, generating one...
[20:17:11] INFO: No lr_s2_access_control_key is set, generating one...
[20:17:11] INFO: No lr_s2_authenticated_key is set, generating one...
[20:17:11] INFO: Flushing config to disk due to creation of new key(s)...
[20:17:11] INFO: Setting RF region to (Europe)
[20:17:11] INFO: Soft-reset set to automatic
[20:17:11] INFO: Virtual Machine detected, disabling soft-reset
cont-init: info: /etc/cont-init.d/config.sh exited 0
cont-init: info: running /etc/cont-init.d/structure.sh
cont-init: info: /etc/cont-init.d/structure.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun zwave_js (no readiness notification)
s6-rc: info: service legacy-services successfully started
[20:17:12] INFO: Successfully send discovery information to Home Assistant.
2025-08-18 20:17:13.330 DRIVER   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—        β–ˆβ–ˆβ•—    β–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—          β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
                                 β•šβ•β•β–ˆβ–ˆβ–ˆβ•”β•        β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•β•β•          β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•β•β•
                                   β–ˆβ–ˆβ–ˆβ•”β•  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘ β–ˆβ•— β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—            β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
                                  β–ˆβ–ˆβ–ˆβ•”β•   β•šβ•β•β•β•β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•”β•β•β•       β–ˆβ–ˆ   β–ˆβ–ˆβ•‘ β•šβ•β•β•β•β–ˆβ–ˆβ•‘
                                 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—        β•šβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘  β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—     β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
                                 β•šβ•β•β•β•β•β•β•         β•šβ•β•β•β•šβ•β•β•  β•šβ•β•  β•šβ•β•   β•šβ•β•β•β•   β•šβ•β•β•β•β•β•β•      β•šβ•β•β•β•β•  β•šβ•β•β•β•β•β•β•
2025-08-18 20:17:13.335 DRIVER   version 15.11.0
2025-08-18 20:17:13.335 DRIVER   
2025-08-18 20:17:13.335 DRIVER   starting driver...
2025-08-18 20:17:13.336 DRIVER   opening serial port /dev/ttyACM1
2025-08-18 20:17:22.371 DRIVER   Failed to open the serial port: Error Resource temporarily unavailable Cannot 
                                 lock port
2025-08-18 20:17:22.372 DRIVER   destroying driver instance...
Unable to start driver ZWaveError: Failed to open the serial port: Error Resource temporarily unavailable Cannot lock port (ZW0100)
    at Driver.openSerialport (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:1823:9)
    at Immediate.<anonymous> (file:///usr/src/node_modules/zwave-js/src/lib/driver/Driver.ts:1586:5) {
  code: 100,
  context: undefined,
  transactionSource: undefined
}
[18:17:22] WARNING: Halt add-on
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

And if I try to add Z-Wave Integration, it seems that the addon never seems to start (spinner never ends)

It’s a bit confusing, I know, but you need two pieces:

  • An add-on which uses Z-Wave JS to talk to the hardware. That can be either β€œZ-WaveJS” or β€œZ-WaveJS UI”. The UI version gives you the IMHO much nicer UI, and was mandatory when this guide was first written. Now, either version will work.
  • The ZWaveJS integration, which talks to either of the two add-ons and exposes them to the rest of Home Assistant. This is the piece you’re missing.

Uninstall the Z-Wave JS (non-UI) add-on, then take a look at the integration installation instructions, being sure to uncheck the box that installs the official add-on. The correct value for the WS URL that you’ll need to finish the installation is in that part of the documentation.

1 Like

Genius.

I’m all set, thanks a ton !

@ImSorryButWho
I’m not able to configure the entry delay length in seconds

service: zwave_js.set_value
target:
   device_id: ...
data:
    command_class: "135"
    endpoint: "0"
    property: "17"
    property_key: "7"
    value: "30"

If I change the property_key to 1 it’s working but it’s always counting down 60 seconds instead of the value.
Am I doing something wrong?

I believe the property key was recently changed to the string β€œtimeout”

property_key: timeout

everything else stays the same.

@mterry63 It’s working now!

service: zwave_js.set_value
target:
device_id: …
data:
command_class: β€œ135”
endpoint: β€œ0”
property: β€œ17”
property_key: β€œtimeout”
value: 0m30s

1 Like

Seriously thank you for documenting all this. I don’t have a v1 but it would be nice to see how these carry over to the v2

I have the same problem since some weeks ago, working perfect for a year before that… How did you solve it?

Thank you so much for this blueprint! I now have 2 v2 keypads in the house, one by by each front/rear door. My wife loves using this instead of her phone to arm and change state as we’re coming and going, as well as showing status as it wakes on motion.

Only one problem I have is the first keypad upon arming Home has the audio cut off on the notification. Instead of saying β€œHome and Armed” it will just give β€œHH-” as the voice starts to say Home. The second keypad doesn’t seem to have this problem. They are both equal distance from my zwave stick in the HA hardware so I don’t believe it’s a signal issue.

Secondly, is there a way to add some automation piece to play the β€˜property 96’ double-beep noise when a door is opened if the system is disarmed? Basically a notification of someone coming/going when we’re home but not armed. I am not a developer and am trying to understand how to do this with minimal knowledge.

Lastly, we use β€œArm Night” for when we’re in the master bedroom and basically want an β€œArmy Away” mode with all the motion sensors turned on but with the exception of the sensors in the bedroom we’re in. It helps us sleep knowing there isn’t motion anywhere on top of the door/window sensors.
Is there a way to configure the Police/Fire/Medical buttons as status lights for these alternate modes?
Currently the status will only show on the 3 buttons intended for Disarmed / Home / Away but it would be great to repurpose the Police light so if we add another keypad in the bedroom we’ll see an accurate status displayed for the mode we’re in.

Thanks in advance if anybody finds time to help with this!

1 Like

the alarm codes are no longer working for me:

command_class: β€œ135”
endpoint: β€œ0”
property: β€œ13”
property_key: β€œ1”
value: 1

is this working for anyone else?

Also, there seems to be a new β€œlow temperature detected” (property: β€œ20”) and β€œwater detected” (property: β€œ21”) alert that flashes the keypad numbers 1, 3, 7 and 9 with the same property and command class. I haven’t been able to figure out how clear this alert without resetting the device.

Please note that I have re-interviewed the device and re-added it still with the same issues.

I have firmware v.2

UPDATE: After a restart of HA it is now working correctly

I know I missing something here. I am running into a roadblock and could use some help please.

Using a v1 ring keypad, alarmo, contact sensors all connected via ZWave JS.

Have the contact sensor working and alarmo working with the keypad, my issue where i am stuck is to have the keypad light up the backlight and the ring to light up red when counting down to armed away mode. I have looked over the blueprints and installed the v2 and the v1 blueprint and i am getting the exact output in the examples (with my device showing and not the example) I just dont know what code i am missing to have the lights and sounds come out of the key pad.

Can Someone help me out please.