I bought my Ring Alarm Keypad G2 from Amazon last month, and I'm using it with a C7 Hub.
No worries. I just want to make sure that you get help if it is something a few of us can do. To often someone joins and then states something is broken and the community hasn't had a chance to help them. Sounds like you have put in time though tring to figure it out.
You are right in that the problems are not new. I actually tried to engage @bcopeland about it as I think he was the original driver creator for the built in driver. He indicated he was going to look into it, but my guess is it got lost in the shuffle. What someone really needs to do is use a Zwave sniffer and watch the traffic going in and out of the devices and look for anything odd that may be missing from Hubitat. That is far from a simple task though.
Likewise. I got one and messed with it a bit.
I could hook it directly to my Ring Alarm if I wanted, but I was hoping to use it for other things.
Unfortunately, it gets hung up at times and becomes unresponsive. So, it's sitting on the shelf waiting for me to get bored
Just added one to my environment, and it works fine after disabling the proximity sensor.
I hope someone can figure that one out, so it can be used with that enabled, but it works, which is the important bit!
Just started using this keypad. Ordered 3 off Amazon. Setting up systems for my family. It took me a while (2 nights) to figure out how to get it just 1 to work. Here is what I ended up with :
- use SmartStart, but use S2 Boot
1a) you can join it by holding the "1" button & searching for a Zwave device... select w/ security - you need to disable the proximity sensor, which is ONLY available in the community driver (without this, PIN entries aren't seen)
- you can use the hubitat driver, but only after disabling the proximity sensor using the community driver
- the "home" key works with armed-home, not armed-night
-- I updated the driver & am testing it now. If I go some time with no issues, I will post the updated driver here. - You can use indeed use the emergency buttons by subscribing to the change in the attributes of "held" and "lastCodeName", as well as looking for buttons # 11, 12, and 13 to be held
- It changes HSM directly. I note this because I've used other keypads that change the mode and you have to sync HSM via Rules (or now the HSM options)
6a) you need to select the keypad in HSM options for it to work - any option made in HSM regarding a delay (entry or exit) is transferred to the keypad
7a) Entry delays work fine, but exit delays have an issue. If the alarm is armed from the keypad, the keypad goes through its delay, says its armed, and then HSM goes through its delay. They should happen the same time, but they dont. Since the entire point is for the keypad to have the delay, you can fix this by making the delay 0 in HSM, then going into the keypad's options and adding the delay back in (keeping in mind HSM just made it 0). Now remember this might need to be redone everytime you do anything in HSM as it might override the delay back to 0.
-- I updated the driver & am testing it now. If I go some time with no issues, I will post the updated driver here. - if you don't see your preferences/settings changing in the device's parameters, hit Configure and refresh the screen.
Now my questions for the community:
- How did you all solve the double exit delay? EDIT : I updated the driver, testing now
- Did you get the 3 Emergency buttons to work? EDIT : figured it out, see above
- Did you get the "home" (top middle) button to armNight? EDIT : I updated the driver, testing now
- what are the "entryDelay" and "exitDelay" options for? Each type of alarm has their own delay, so why have these? EDIT : Exit isn't used, Entry is only used when you hit entry in the Keypad's device detail screen.
Thank you! Hope the above helps a 1st time user and my questions aren't new.
I'll update this as I discover solutions
I don't have exit delay nor arm delay set on the keypad. The HSM Arm Delay seems to work automagically on the keypad that way.
Also:
(Community driver)
Thanks for the response. I tried that within the community driver and when it is set to "armNight", nothing happens when the button is pushed on the keypad. I check to make sure it was sent over to the Keypad in the State Variable "keypadConfig : {partialFunction=...". It just doesn't seem to work.
I'm using the code found at the repo in the 1st comment. Top of the code says it is version 1.2.11. Is there a newer version?
Please see below for code issues I found :
- code for the "home button" press starting on line 479 doesn't include armNight at all. Actually the methods armNight and armNightEnd aren't used anywhere... i think this is why armNight isn't working for me.
-- I updated the driver & am testing it now. If I go some time with no issues, I will post the updated driver here. - The driver has the "armingIn" events set to a run after a delay on rows 203, 237, and 272. Example : runIn(delay, armAwayEnd), where "armAwayEnd" method has within it "sendEvent(name:"armingIn", ...". HSM is subscribed to the attribute "armingIn" on the Keypad. This is why there seems to be a "double delay".
-- I updated the driver & am testing it now. If I go some time with no issues, I will post the updated driver here. - I believe "exitDelay" doesn't do anything. It is probably a reminent of an earlier version of the driver where there was only 1 delay. "state.keypadConfig.exitDelay" isnt used anywhere in the driver, it's only set.
As for my other question above :
- I tested it and you can use indeed use the emergency buttons by subscribing to the change in the attributes of "held" and "lastCodeName", as well as looking for buttons # 11, 12, and 13 to be held
- I believe "entryDelay" is only used when you hit "Entry" in the device details screen. When you have a different number there than the HSM Intrusion Delays, it seems to use the HSM Intrusion Delay value when the sensors trigger an intrusion... thats fine as I'd rather use different Entry Delays like HSM allows, instead of the 1 for all types of intrusions.
I'll update my comments as my theories are proven correct.
Did this driver ever get updated? Thanks.
The one on GIThub is updated.
Haven't checked whether the one on the App has been updated to that version.
Maybe I don't have the right link. Is it the one in the first post?
Yes, that would be the GIT repo for the driver
But MikeNYCs changes aren't anywhere yet. I hope he'll report back and put in a pull request with the original GIT
That’s what puzzled me. It said 3 years since the last change. If I understood correctly. But no problem. I can wait.
I'm still going through testing for my driver. I got some feature feedback from my family and I did the following to the driver :
- fixed the double delay
- I also added a fix to disregard when HSM rapid fires multiple of the same command (ie. disarm, armedAway, etc) at the keypad (I messaged Hubitat about this already), but adding a timed blocker after the 1st.
- added ability to enter exit delay for partial/away modes while still in partial states. This makes it so you don't have to disarm first
- Adds chime capability (so you can not only play them, but call the keypad as a chime in rules)
- made proximity sensor disabled by default & ran that on install
- edited how the volumes are added (more intuitive & stops out-of-range inputs)
- fixed an issue that didn't allow armedNight to work properly
- made the keypad driven by HSM instead of driving its own state upon key presses
- added functionality to re-sync with HSM in the case of malfunction
- fixed an issue with disarmAll, enabling it even if HSM isn't set for it
- removed commands that shouldn't be used
- commented out code that isn't used
- stopped auto-off for Debug Logging
My own criteria is no issues reported between myself and my 2 family members (3 units) being used every day for at least 2-3 weeks before posting it online. I just made edits to it today, so it'll be at least a few weeks until "release".
If you want a preview of the Driver Code, I can send it to you in a message! The more input I get, the better it can be.
For what it's worth, I've done quite a bit of digging to figure out :
- how HSM & Keypad drivers talk
** I made the following thread : HSM and Custom Keypad Device Drivers -Developers - Hubitat
- The technical specifications of Z-Wave :
** download link : https://sdomembers.z-wavealliance.org/document/dl/917 - The technical details of the Ring Keypad itself :
** products.z-wavealliance.org/products/3870
My keypad is not quite here yet but should be in a couple days. I would be happy to help evaluate the code. My application is not critical so if any problems it won’t be any big deal.
Just sent it over to you in a private message.
If anyone else wants to look and provide feedback, please let me know & I'll add you to the message thread. Thanks!
Got the message. I’ll get it copied off in the morning.
Got to reading about your changes and wondered something.
I don't use HSM. Will I still have all the normal Keypad functionality with your driver?
I made mine to interface with HSM. The original community driver (linked above) is better suited to acting independently since it changes it's own state upon the button presses.
Original Driver workflow :
- Keypad buttons -> Change keypad state & then HSM state
- HSM state -> Change keypad state
I made mine have the following workflow as to not have out-of-sync issues:
- Keypad buttons -> Change HSM state
- HSM state -> Change keypad state
Adding in functionality to have it be able to do either shouldn't be difficult.
Mike, finally got my keypad. In order to make it work without HSM I made the following changes to your driver.
Uncommented line 671.
Added armNight(state.keypadConfig.armNightDelay) just before line 694.
I know you had the toggle to not use HSM, but I could not get this to work. I don't know that much about driver programming, so fumbled my way thru this.
My main goal was to set keypad status from a rule, and have buttons work to read in HE.
EDIT: Something that is confusing. If I disable the debugging then the keypad doesn't send the commands. Took me a while to figure that out.
EDIT2 : to fix the logging issue I put brackets around the log.debug statements. The IF statement was affecting everything below the debug.
Another question or request. Is there a way to detect the fire/police/EMT buttons? It looks like you kinda have that in the code, but I am not getting anything when I push those.
Thanks for all your work on this.