Did you push and hold them for 3 secs?
That worked. Wasn’t aware of the 3 seconds. Thanks
Based on what I learned from this version, I went back to the original community version from the first post. With a few modifications I was able to get it to work for me. Since I don't use HSM it was a better fit. And not quite as complicated, I think
Thanks to Mike for his work on it.
I am still confused about the logging on/off. Not fully understanding the programming principles. When you have an if statement with the actions on the same line, you don’t need the brackets?
Reason I ask, if I turn logging off I run into all kinds of things not working.
Again not being that great a programmer I’m just trying to understand.
Groovy is built on Java. Both Java and Groovy allow for the curly brackets to be omitted if there is only 1 statement to be executed. So that syntax (no curly brackets on same line) is fine.
If logs being off is causing issue, there is something wrong, but it'll be hard to troubleshoot without logs... which driver are you using & what isn't working?
When I first tried your driver, I was experimenting with everything. Mainly checking to see if I could send arm commands to the keypad and get commands back from the keypad. It all seemed to be working. I turned the debug logs off and then I couldn't get any commands back from the keypad. Turned the logs back on and it started working again.
At that point I started searching thru the code and noticed the IF statements without brackets. And not knowing that should work, I went thru everything and put brackets on. Then it all started working ok without the debug logging on.
So my thought now is there might have been one instance in the code that isn't quite right and that caused the whole issue. It may have already been fixed. Don't know if you have turned the logging off or not.
If it has to do with my driver, DM me. I don't want to bog down this thread.
Hi, I started using your driver and seems to work (Very little testing) fine, but when i added my second keypad into HSM and I arm then disarm, it goes into a loop arming and disarming until I remove it. Any ideas?
Thanks
@carldickson , DM please
Hey, looks as though you are doing sterling work to fix a widespread issue - did you get anywhere with it? Is there a link to the holy grail of Ring Gen2 Keypad driver goodness that you can share (in order to cement your godlike status?
@MikeNYC is doing an awesome job. The sheer magnitude of code that he is doing boggles my mind.
@MikeNYC is amazing, indeed!!!
@MikeNYC would love to test out your driver. I have installed two new keypads that work 90% of the time, but for some reason will randomly stop setting the hsm mode. Not sure why I can’t DM you, but am desperate to get some stability with these things before I’m outside the return window. Thanks!
I have not yet made a community post on it yet.
I have not yet determined why some people get random unresponsiveness from the community driver, but they arent getting it from mine.
I still have to implement the missing configurable settings (adding the missing 16 configs the original community driver missed), adding an option for report delay (like the one needed for the ring contact sensor), and checking some little things. Once all that is done, I'll make a community post.
I believe it has something to do with the keyboard trying to send multiple messages in a short period of time, and not getting the supervision reports in time, or in a specific order (dunno). Something gets "half broken" and the keyboard refuses to send more messages, but has no problem sending responses for requests coming from the driver.
The proximity sensor, by default, generates a lot of messages, and it triggers this behavior really fast. I found out that disabling, or throttling it using param 26 (cmds += new ConfigurationSet(/* 26 */parameterNumber:PARAMS.PROXIMITY_DETECTION_THROTTLE, size:1, scaledConfigurationValue:60)
) makes the keyboard somewhat more responsive. But if I randomly press the keyboard keys really fast, I can break it 100% of the time.
Edit: Currently it sits in my junk drawer
I have the proximity sensor disabled by default. The SDK (7.16) release notes don't mention anything about it, but it could be either a specific chip issue or non-documented SDK issue. I'm going to test a few things.
My driver, though, has a better tolerance than the original drivers... again, why I do not know...
Wow... just realized something :
-
Zwave alliance page only lists 24 configs
Product Configuration Capabilities -
the Ring Tech Manual only lists 22 configs
Ring Alarm Keypad (2nd Gen) Z-Wave Technical Manual -
ZWave JS DB lists 25 configs
Z-Wave JS Config DB Browser
Also, the parameter #s 20+ in the tech manual don't match the other 2... great... this probably means there was an update at some point which means if I program in any configs that dont match all resources, some people's keypads wont work unless they can update via a ring alarm hub.
Oddly the tech manual Ring posted on the Z-wave alliance website has the 24 listed on that site...
These are the ones I could collect:
Ring Keypad Gen2 (5B28S8)
'HEARTBEAT_INTERVAL_MIN' : 1, // Number minutes between heartbeats. Heartbeats are automatic battery reports on a timer after the last event.
'APP_RETRIES_COUNT' : 2, // Number of application level retries attempted for messages either not ACKed or messages encapsulated via supervision get that did not receive a report.
'APP_RETRIES_DELAY_SEC' : 3, // Number base seconds used in the calculation for sleeping between retry messages.
'ANNOUNCEMENT_AUDIO_VOLUME' : 4, // Announcement Audio Volume
'KEYTONE_VOLUME' : 5, // Key Tone Volume
'SIREN_VOLUME' : 6, // Siren Volume
'MODE_HOLD_DURATION_SEC' : 7, // Duration in seconds for the hold time required to capture a long press. This includes Emergency Buttons + Mode Buttons (Police, Fire, Medical, Disarmed, Home, Away)
'NUMBER_HOLD_DURATION_SEC' : 8, // Duration in seconds for the hold time required to capture a long press. This includes Number Pad + Check & X (0-9, Check, X)
'PROXIMITY_DISPLAY_TIMEOUT_SEC' : 9, // Timeout in seconds when proximity is detected and no input is received.
'BUTTON_PRESS_DISPLAY_TIMEOUT_SEC' : 10, // Timeout in seconds when any button is pressed, but a sequence is not completed and buttons are no longer being pressed.
'MODE_CHANGE_DISPLAY_TIMEOUT_SEC' : 11, // Timeout in seconds when indicator command is received from the hub to change status.
'SECURITY_MODE_BRIGHTNESS' : 12, // Adjusts the brightness of the security mode buttons.
'KEY_BACKLIGHT_BRIGHTNESS' : 13, // Adjusts the brightness of the keypad backlight. Used for Key Backlight LEDs only.
'AMBIENT_LIGHT_LEVEL' : 14, // Light threshold where keypad will stop backlighting if higher than.
'PROXIMITY_DETECTION_ENABLED' : 15, // Turn On and Off the Proximity Detection.
'RAMP_TIME_10MS' : 16, // Ramp time in units of ten milliseconds each to turn the LEDs on/off. Applies to all LEDs on the keypad.
'LOW_BATTERY_THRESHOLD' : 17, // The percentage level at which the display would turn on the yellow battery indicator (whenever the display is on).
'VOICE_LANGUAGE' : 18, // Sets the language on the keypad.
'WARN_BATTERY_THRESHOLD' : 19, // The percentage level at which the display would turn on the red battery indicator (whenever the display is on).
'MODE_BLINK_DURATION' : 20, // Configurable ON time for the blink for config #22 which allows us to modify the time for the LED to be active when set to blink on a period per config 22.
'SUPERVISORY_REPORT_TIMEOUT' : 21, // The number of milliseconds waiting for a Supervisory Report response to a Supervisory Get encapsulated command from the sensor before attempting a retry.
'MODE_DISPLAY' : 22, // 601 = Always On, 1 - 600 = periodic interval, 0 = Always Off, except when there's activity.
'SUPPORTED_LANGUAGES' : 23, // Bitmask of languages supported. Bits set to 1 indicate that the language is supported.
'CALIBRATE_SPEAKER' : 24, // Bitmask of languages supported. Bits set to 1 indicate that the language is supported.
'UNKNOWN_25' : 25, // Undocumented parameter
'PROXIMITY_DETECTION_THROTTLE' : 26, // Undocumented parameter
Unfortunately did not have any success with Mike's driver. I am unable to change HSM arming. After programming a code, entering it, and trying to arm home, the entire keypad lights up and then does nothing.
I have removed and re-added with smartstart a couple of times with the same results. Is there a certain order of operations when using this driver?
I see 2 warns in the logs:
-Syncing must be done with HSM when forcing status thru HSM.
-Device gave warning : Dropped Frame Notification. Response not fully programmed yet. Full Notification Command : NotificationReport(v1AlarmType: 0, v1AlarmLevel: 0, notificationStatus: 255, notificationType: 7, event: 0, sequence: false, eventParametersLength: 0, eventParameter: , sequenceNumber: 0)
Device Data
Device Id | 769 |
---|---|
Device Type | 257 |
Firmware1 Version | 1.0 |
Firmware Target1 Version | 1.0 |
Firmware Version | 2.0 |
Hardware Version | 4 |
Way back up in post 46, there was a comment about having the keypad facedown while pairing until the motion got disabled. That was the only way I could get mine to finally work.