[DRIVER] Ring Alarm Keypad G2 Community Driver - Continued

I'm not sure if I should be doing this, but it works and I'm learning. I don't know what the indicatorId/value is, but the strobe routine basically does the same thing as the siren function.

So what I did playing around with things was this: I muted the Siren volume property using the zwave configuration, activated the siren (indicatorId:0x0C propertyId:2, value: 0xFF) then set the volume back to 10.

Also note that the siren volume value isn't sanitized...it allows any value where it should only be in (0...10) according to the Zwave specs

Anyway, the strobe() function looks like this:

void strobe() {
    if (logEnable) log.debug "In strobe (${version()})"
    eventProcess(name:"alarm", value:"strobe")
    List<String> cmds=[]
    cmds.add(new hubitat.zwave.commands.configurationv1.ConfigurationSet(parameterNumber: 6, size: 1, scaledConfigurationValue: 0).format())
    //cmds.add(zwave.indicatorV3.indicatorSet(indicatorCount:1, value: 0, indicatorValues:[[indicatorId:0x0C, propertyId:2, value:0xFF]]).format())
    cmds.add(zwave.indicatorV3.indicatorSet(indicatorCount:1, value: 0, indicatorValues:[[indicatorId:0x0C, propertyId:2, value:0x00]]).format())
    cmds.add(new hubitat.zwave.commands.configurationv1.ConfigurationSet(parameterNumber: 6, size: 1, scaledConfigurationValue: 10).format())

This makes the strobe option behave the way I would expect (light flashes, but no siren). I can't find any reference to the Ring indicatorSet, and as I really don't know what I'm doing not sure if the groovy code is correct other than it works.

@jkister Was hoping to fork(?) this to make the above modifications, but in testing I found some other things and would like to examine further if possible?

  1. Disarm in the .11 version is skipped if the status is already disarmed. I'm not sure where/when this happens for sure because I've been experimenting, but I've found that I need to reset the status of HSM and connected keypads and can't unless I allow the routine to send the disarmend() no matter what the status is. It seems that the keypad can get stuck or out of sync, then it won't allow me to arm until the keypad thinks its disarmed. Sorry if that doesn't make sense. But if I comment out the logic to always disarm, I can clear the out of sync issues I get from time to time.

  2. I found other codes but I'm new to groovy and way new to zwave command classes. I found codes for example that announce "low temperature and water detected", "water detected", "low temperature detected", "Sensors require bypass" (checkmark flashes), carbon monoixide alert, fire alarm/fire indicator flashes, medical indicator.

For some of these I could see having rules or conditions that trigger these responses.

There are some that I don't think we can use because (low temp, water) causes the "1 3 7 9" numbers to flash and I can't find how to clear these for now, but I can see where these may be of use in the future.

Any ideas and advice are appreciated.

Anything that helps with keypad issues would be awesome.

You need to be careful about submitting multiple commands to do the same thing when the device is already in that state. Don't forget the hub responds to events and if you allow the same event to be passed twice that can have bad results as well.

My example of this is there was a time the code would send multiple instances of arm away and would effectly prevent me from using that state change to trigger actions against fans based on leaving.

Ultimately if you have a system like HSM being controlled by the alarm panel. You probably should have the alarm panel submit the request for the state change to app like HSM. Then it should trigger the panel to match it's state. That said i do understand zwave blips can cause things to go out of sync in that case. But that is also a good indicator that HSM may not have gotten the state upgrade and to do it manually if needed. Think of it like you submit the alarm to go to Arm Away and then it stars to count down even if the hub didn't get the command for some reason, Or you come home and disarm the alarm and you thin all is good, but then the siren goes off because the hub didn't get the event

Thank you so much, your guide helped me to finally set it, though with some modifications and many keyboard resets, etc. and with finally settling on the community driver.

I was wondering you or anyone here knows how to read the events from fire/help/police buttons and what those button numbers are? I have tried 1,2,3 as button numbers but it doesn't work.

Any help is appreciated.

These are button numbers 11, 12 and 13

Thank you , 11, 12, 13 works. I have found out that the name actually contains fire, police, medical. Now the siren doesn't work, no sound , just light. It worked before, I guess I must have changed something. The keyboard is not fully functional when it was sitting for long time, I figured if I issue a Keypad reset it will resume functioning. Thanks for your help

This is going to be an odd request.
I have the Ring Keypad G2 community driver in use, but it has been modified over the years so I do not want to replace it with a new version. There is a "bug" that I would like to fix. When the command siren -> off is sent to the keypad via this driver, the keypad will announce "disarmed". I would like for the command to turn the siren off if it is active (which works properly now) but not say "disarmed". Any way I can easily modify this driver to do this?

If anyone is wondering why, I have a command setup so that any time HSM is disarmed (by entering the pin on one of my tablets) it also sends commands of siren stop (via rule machine) to stop any sirens that may be going off. For example, if we have a smoke alarm going off which would cause all our sirens to go off, this method works to stop the alarm.

Perhaps setting the volume announcement to zero would silence it.

Hey I got this 99% working but the Arm Away Arm Night and Arm Home buttons don't do anything other than add an event of "armingin 5" in my event log. I can use the keypad itself with no issue but can't seem to arm it using the buttons in the device in Hubitat.

Any suggestions?

So the current Gen 2 keypads just flat out don't work on Hubitat it seems. I have 2 of them and I can get them to marginally work for a couple days but they just go dumb and stop working. I picked up a Gen 1 keypad and its rocking it non stop.

has there been any progress in making the driver for the Gen2 keypad (the current firmware/shipping version) work?

For anyone browsing the internet who is still having trouble pairing this thing, the problem for me was 100% the motion sensor. I was able to get them to pair, but like a lot of posts I saw the keypad would receive HSM events but didn't seem to want to send anything to the Hubitat. My process for pairing was:

  1. Remove from ZWave network by excluding on hub, and unplugging and pushing reset button on back of keypad once.
  2. Factory Reset Keypad (Hold reset button on back of keypad for ten seconds until blinking wireless icon turns red)
  3. Face keypad down on table to prevent any triggering of the motion sensor.
  4. If you haven't already, install the community driver as referenced in this thread
  5. Add keypad back to Zwave network using SmartStart, all default settings
    a. If you're unfamiliar with SmartStart, its exclusive to the app(not the web GUI). A quick Google Search should get you up to speed on how to use it.
  6. Once paired(The keypad will announce "Disarmed" once the pairing is complete), immediately swap over to the community driver.
  7. Disable the motion sensor, click save and then hit configure. The keypad should again announce "Disarmed"
  8. Configure your keypad as you want, from here you should be able to move the device to its permanent location and it should work as intended.

It was step 3 that really got things working for me. I highly recommend making sure that the motion detector doesn't go off until you can get it disabled in step 7. Hope this helps someone in the future!

1 Like

What worked for me:

I was able to get my G2 mostly working with the information in this thread, but the delayed away arming counts down on the keypad, briefly sets HSM to armed, but then appears to retrigger HSM which causes the delay to happen again doubling the delay. Any pointers how to fix this? Much appreciated, I'm completely new to Hubitat!


Generally occurs when both the keypad and HSM are try to do the delay. Keypad will go through its delay and then notify HSM which will then delay again.

@thebearmay This community driver seems to track with the HSM delay settings keeping me from being able to get rid of the double delay. Unless I am missing something super ovbious.

My goal is to have my lock immediately lock at the end of the away arming delay.


If you eliminate the HSM delay, does the driver still retain its settings?

@thebearmay when I zero out the "Delay arming Armed-Away by this many seconds" in the "Use delays for arming" section of HSM the keypad instantly arms and does not do the countdown with the red bar. When I set the value to 30 seconds the keypad counts down correctly when arming, HSM goes instantly armed away after the keypad finishes going to away status, and then after that HSM goes through a delayed arming countdown, and finally HSM settles on armed away

It's almost like the HSM countdown delay is happening out of order after the keypad is at the finish line in its final away state.

FWIW, there are some interesting support threads on Ring forums about keypad performance, either not responding to input, delayed response, or multiple keypads not staying in sync. So its not just us. Seems like this new keypad firmware is possibly to combat that. Makes me think that Zwave repeaters could influence performance?

Just ordered 4 of these V2s on Groupon for super cheap, so I am crossing my fingers that they have the old firmware. Would be cool if we could figure out how to roll back firmware, or maybe write the driver to handle the keypad optimally based on firmware version..

Open to ideas, because I really like these V2 keypads!


Hi everybody!

My setup has:

  • Hubitat C-7 FW
  • Ring Keypad v2, firmwareVersion: 2.0, hardwareVersion: 4
  • Keypad reports inClusters, S2: 4, secureInClusters and zwaveSecurePairingComplete: true
  • Runninc RIng Keypad v2 Community driver version 1.2.11
  • Keypad proximity sensor is disabled

My goal is to use Keypad partial arm button to arm HSM night state, but:

  • If I enable "Apps - HSM - Configure Arming/Disarming/Cancel Options - On keypad use Partial button to arm night", the partial button does nothing from that point
  • I I enable "Device - Keypad - Preferences - Home Button Action - Arm night", the partial button does nothing from that point

Is there anybody out there that has accomplished doing this? if so, could you please share your recipe for success? Thanks!

Just got started with hubitat elevation and I'm trying to setup the Ring Keypad Gen 2. I take it is a bad idea to connect it to a real Ring hub first to get the latest firmware, then unpair / factory reset it, then connect it to the hubitat?