Using the Ring Alarm Keypad with Home Assistant

Never mindā€¦
I had the battery saving setting enabled, which means the proximity is not working. :shushing_face:

ZWaveJS2MQTT still needed ?

@ImSorryButWho

Opening you github page, you report that (at the time of the project) the S2 crypto was NOT supported by Zwave-JS, and you had to use a message brocer stack ZWaveJS2MQTT

Today Actual Z-Wave JS, confirm to support S2 crypto

My QUESTION is:
Is ZWaveJS2MQTT still required for some functionality with Ring2 keypad, or ZwaveJS alone will pefrorm now flawlessy ?

Iā€™m using ZWaveJS alone and it is working perfect.
Tip: if you change from ZWaveJSMQTT to ZWaveJS, copy the S0 and S2 keys from ZWaveJSMQTT as ZWaveJS does not provide a way to generate them. (I know Iā€™m kinda lazy :slight_smile: )

Installed Aeontech Gen5+ stick and interviewed Ring 2 keypad. In developers log I can see the messages from the keypad.

I WOULD LIKE USE THE KEYBOARD TO OPEN DOOR GIVEN THE RIGHT CODE.
(the correct pin number would drive a relais to open a door)

I read https://github.com/ImSorryButWho/HomeAssistantNotes/blob/6f05b3f90a979f7118e7c688ce2d01b878227328/RingKeypadV2.md

For what I understand the numeric pin input on the ring2 keypad

  • is NOT processed as an attribute of numeric_state change (but COULD it be ??)
  • BUT is processed as an event_data.event_data inside a zwave notification event.

Is it right ?

Kindly Ask:

  • In the example below what should I use as ā€œnode_idā€ inside the automation code:
    ** the event_data ā†’ ā€œnode_idā€ (got from from the developers log)
    ** the "data/device_idā€ (got from from the developers log)
  • should I double quote the node_id ?
  • Should the pin number in the automation script, be inserted inside double quotes or not ?
 automation:
   - alias: "Open door from keypad when correct pin inserted"
     trigger: 
       platform: event
       event_type: "zwave_js_notification"
       event_data:
           command_class: 111
           node_id: * ?? NODE_ID ???*
           event_type: 2
           event_data: 1234  # double quoted or not ?
     action:
       - service: switch.turn_on
         entity_id: switch.vimar_switch_01
	   - delay:
           milliseconds: 250
	   - service: switch.turn_off
         entity_id: switch.vimar_switch_01

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?