Using the Ring Alarm Keypad with Home Assistant

In the interest of teaching a man to fish, let me introduce you to the Events tab on the Developer Tools page.

Go to the events tab, and put “zwave_js_notification” in the “Event to subscribe to” box, click “Start Listening”, and then go punch in a code on your keypad. You should see a couple of events pop up (one when you start typing, and another when you hit enter. The latter is the event you want to match against.

If a piece of data is in quotes there, it’s stringly-typed and should be in quotes in your automation. If it’s not, it’s numeric-typed and should not be in quotes.

Doing that test should show that the node id is numeric, so doesn’t get quotes. The event data is a string, so does get quotes.

If anyone wants to get their hands dirty I made a DIY keypad for hass here: ESP32 Alarm Keypad

:slight_smile: I did look at this project first but wanted something I knew what was going on inside

Dear ImSorryButWho

thank for you kind reply

I was testing the debug message in developper consolle, but what was (and is still) strange is that the event type and command class are reported without double quotes, BUT the event data is with double quotes…

so my doubts… here the example…

"device_id": "70a1bf9c7e299553f872f1", 
"command_class": 111, 
"command_class_name": "Entry Control", 
"event_type": 2, 
"data_type": 2, 
"event_data": "1234"

BTW,

the “node_id” field in you script, does correspond to the “device_id” in the events debug monitor ?

In debug states, I can see many binary_sensor.keypad states of the ring2 keypad. This let me think that could be possibile to monitor such states with a platform: event trigger… Is it posible to monitor also the pin code with and event ad an attribute variable or only with “zwave_js_notification” ?

Thanks for sharing your interest and informations with us…

Giuliano

command_class and event_type are integer values, event_data is a string (i.e. 1234 is a moderately large number, "1234" is a string of four characters that happen to be numerals).

Oh, and the node_id is a Z-Wave concept (the node number), you should be able to get it from the diagnostics information download in the device properties of your keypad.

@mundschenk-at
thanks for your reply

The node_id should be the “device id” in the screenshot below ? I

If I open “configure Device → download diagnostics” there is NO “node_id” field in the json.txt downloaded file…

When listening for zwave notifications, I can get messages from the keypad, having a very long field of

"device_id": "70a1bf9c7e299553f872f1....",

but is a completely different (long) number

To test everything, the best way should be to test automation yaml code above,

kindly ASK

  • With the correct node_id (which?) and the quoted/notqueted pin number, should the code above run if I insert it in the file editor ?
  • Or I’m missing something yet to make it play ?

BR
Giuliano

The field uses camel case in the diagnostics (nodeId). It is a number between 2 and 232.

@mundschenk-at
thanks for your reply. I found it !!

it is the same number that appears in the main “device Info” card, named as “DeviceId” (i.e. “3”)

BR
Giuliano

Ah yes, I hadn’t noticed the pull down there. That’s of course much easier. (I rarely use HA’s interface for interacting with the Z-Wave network - ZWaveJS2MQTT is much more convenient.)

Just to start testing…

Is there anything else I should fix before trying the automation: yaml script above with “file editor” ?

PS
Any better method to test the Ring2 keypad and the automation script above, better than file editor ?
I’ve installed HA in supervised mode under raspi ubuntu,

For what I understand HA is still “dockerized”, but I cannot find WHERE is the installation directory is, i.e. where the config files are kept… so at the moment my only instrument to insert some automation rules, would be the file editor … :-((
Is the supervisor file system accessible from “outside” ?

BR
Giuliano

For an automation, is there some reason you don’t want to use the built-in automation editor UI?

@ImSorryButWho
thanks for the proposal.
The automation UI seems not to guide too much with a Zwave node.
Let’s see an example
If I set the trigger to “device”, the form offers me the Ring2 keypad, but then I cannot find the correct attribute to link to

Instead, if I try to set the trigger to an “Event” (I’m thinking to zwave_js_notification event), then NO hint and no dropdown list is offered.

Using this example, how would you proceed to set the automation, with the automation UI ?

Thanks for your help !

Giuliano

I am wondering, do you still have zero issues?

I changed the same setting and still some times, like 1 in 25 times I see the network light being red and he lost connection for a short time.
I am using Gen5+ stick with a very stable non-chatty network. The Keypad is within two meters of the Gen5+ stick.

No issues at all for me with the 60s timeout.

Thanks for the reply! Is your panel also connected on Zwave through S2 authenticated?

Really nice. I tried to set this up but I guess I miss something.
I have used Zigbee before only so I have never set up my Zwave USB.

I have a Aeotech USB and I have been able to pair the Ring Alarm Keypad but when I try to listen for zwave_js_notification events I do not get any.

First, how should I setup ZWaveJS2MQTT? 
Should I go to Integrations and choose ZWaveJS2MQTT or go to Settings > Add-Ons  and then install Z-Wave JS to MQTT? I did it thru the second option "Add-Ons".

If this option works should I also install Mosquitto Broker or does the MQTT Gateway inside the ZWaveJS2MQTT works fine too?

As I wrote, I have been able to get the keypad connected to the ZWAVE stick but I can´t find any entities for it in home assistant.

EDIT: Missed a config in the ZWaveJS2MQTT add-on. Everything is working fine!

Not sure if anyone else has ran into this? We’ve been having intermittent issues where the keypad would flash the red ‘network’ light on the front and would not send/receive any zwave commands. Usually this happens in the middle of a disarm process (enter code and press checkmark key), but have also seen it when just sending a ‘disarm’ button command to the keypad without any other interaction.

I’m using the Aeotec Z-Stick Gen5+ Zwave controller that is <10ft away from the keypad, so not sure why it is flakey. I’ve also replaced the keypad and it behaves the same, so assuming it’s either a firmware issue or a compatibility issue with my z-wave stick?

I have exactly the same problem. Also with the Gen5+ stick. I have set motion sensor to 60 seconds, but doesn’t help.

The device is really close to the Gen5+ stick and tests give 10/10 all the time. When it happens I have the idea that sending commands from the Keypad seems to work, but it doesn’t receive any status anymore…

I am running this firmware on the Aeotec stick:
FW: v1.2
SDK: v6.7.0

And this on the Keypad V2:
FW: v1.18
SDK: v7.12.4

@dcoulson have you ever tried it including without S2 security? I see some people have trouble with that. Haven’t tried it myself yet.

I am running the exact same firmware on both devices - I have not tried without S2, but I can do that tomorrow.

I have the exact same problem as @Caros and @dcoulson with the keypad often showing red signal loss whenever it has been armed for more than a few minutes. It doesn’t get the entry delay signal from HA or send disarm commands. I am using a Zooz gen5 stick with zwavejs2mqtt and the rest of my network is rock solid (although this is the only device that uses S2 security, as I understand it requires it). Same firmware. I even have a repeater 4 feet away from the keypad v2. When the system is disarmed, it reliably sends motion sensor updates (timeout 30s) and arms on demand. I’ve had this keypad about three months and it works maybe once in every 10 times I enter the house. Ideas?

@peterxian hmm… so the problem seems to be bigger. I so experience that the motion sensor is very reliable when not armed, one of the best even.

@ImSorryButWho have you ever faced this same issue by chance?

Not sure how to troubleshoot this issue though, I am afraid it’s gonna be quit complex. Maybe an issue on GitHub on ZwaveJS?