Using the Ring Alarm Keypad with Home Assistant

Maybe add a condition that requires your alarm to be disarmed in order to run the chime automation? In any other state, the keypad is going to be doing something else.

So, something like:

    condition:
      - condition: state
        entity_id: alarm_control_panel.alarm
        state: "disarmed"

Yes! That works perfectly, thank you. Here’s the visual editor setup. Is Device condition or State condition more robust?

how to adjust the timeout of the sensor?

with this command?

service: zwave_js.set_value
data:
command_class: ‘135’
endpoint: ‘0’
property: ‘96’
property_key: ‘9’
value: 10
target:
device_id:

ive tried, but still the montion sensor works after seconds… dont know about the zwave traffic

Sorry, there’s no way to set an undocumented configuration parameter from Home Assistant. To do it, you’ll need to open up the ZWaveJS2MQTT interface. Find the card for your keypad, open it up, and find the Configuration card in there. At the bottom of that card is the form for “Custom Configuration”. Fill that out (Parameter 26, Size 1, value # of seconds (0 - 60).

I’ll take that as a project for this morning: I’ll put in a pull request to ZwaveJS to add that parameter to the known configuration parameters for they keypad. That should make it configurable directly from Home Assistant.

1 Like

Im running ZwaveJS without MQ2TT, also possible tot adjust?

Whats the command that i mentiond does?

I don’t believe so. It might be possible with the direct zwavejs.invoke_cc_api service, but that’s poorly documented and I’m not sure how to make it work.

To explain a bit, ZWave commands are divided into a bunch of different “command classes.” Command class 135 is the “indicator” command class, which is supposed to turn on lights or play sounds on a device to indicate something. So, the command you tried to do is telling the keypad to activate indicator 96, which isn’t assigned to anything (at least in the version of the command spec I can find).

The configuration command class is 112, which is used to configure settings for a device. So, if ZWaveJS knew about it, you could directly set the configuration parameter with a zwavejs.set_value command – but that only works for parameters that ZWaveJS knows about, and there’s a separate zwavejs.set_config_parameter command which is easier to use.

I put in a PR, so hopefully it’ll get added to ZWaveJS in a release or two. Or, this thread implies that switching between ZWaveJS and ZWaveJS2MQTT isn’t too painful. I haven’t tried.

Using Z2M, and Ring V2, all green on interface however when trying to set custom parameter for Z2M, receive the following error:

“Error while calling api sendCommand: Node 43 does not support CC 112 or it has not been implemented yet”

Also unable to call service through HA without error, tried for several params including chime as noted and motion delay.

Sounds like the interview didn’t complete successfully. Try moving the keypad closer to your controller and reinterviewing it.

Doesn’t seem to help. Other parameters (motion sensing etc.) update instantly.

Here is debug from Z2M:

2022-05-07 10:46:23.256 INFO ZWAVE: Calling api sendCommand with args: [
{ nodeId: 43, commandClass: 112 },
‘get’,
[ 1, [length]: 1 ],
[length]: 3
]
2022-05-07 10:46:23.260 INFO ZWAVE: Node 43 does not support CC 112 or it has not been implemented yet sendCommand undefined

Are there any errors in the debug log when you try to do an interview? I’ve never seen a missing command class like that be caused by anything other than a failure to do a complete interview.

1 Like

Successfully reinterviewed, and now all parameters are available. Thanks. Not sure why had to do so, but for sure fixed it.

This service call would do it (starting from HA version 2022.5):

service: zwave_js.invoke_cc_api
data:
  command_class: '112'
  method_name: set
  parameters:
    - 26
    - 19
    - 1
target:
  device_id: 944c35a75395d3400c248ba317984b18

112 is the Command Class ID (Configuration CC). The method_name correponds to the driver’s Configuration CC set method (documented here).

The service call parameters are:

  • 26 - the configuration parameter number
  • 19 - the value you want to set, here it’s 19 seconds
  • 1 - the size of the paramter, in this case it’s one byte.

Replace the device ID with your device. You can just copy and paste it into the Devtools Services YAML mode, and switch back to UI mode, then select the device.

2 Likes

Great, gonna try

how to check if there is less traffic?

I got the interview working after second time, everything seems to be recognized on zwavejs2mqtt interface but I can’t get anything from the keypad :confused:

I am not getting any log from z2m when I enter 4 digits + press the “ok” button.

Nothing pops from hass developer events logs with listening to “zwave_js_notification”

Does anyone have a idea?
Am I missing something?

EDIT: Even if it appeared correctly on z2m, I had to exclude it and include it again for it to work properly.

Solved!

I have also buy a Ring Keypad v2. I’m now testing it.

The good news is that it is working :slight_smile:

But I have some questions:

  • is it possible to stay the light of armed home / away always on and not that it will go off when there is no motion?

  • One thing I would have also was a NFC reader. Unfortunatetly the ring doesn’t have one. Does anybody have also created a separate NFC reader in a nice casing?

For the first, set configuration parameter 22 to 601. The mode will be displayed constantly.

I have set the configuration parameter 22 to 601. But the light still goes off and go on when motion is detected.

Which firmware version do you have? I tested this on both my keypads, and it works as expected on v1.18, but not 1.8. Looks like it might be a big in older firmware versions.

Unfortunately, I don’t know of a way to upgrade the firmware without a real Ring system. It should be doable, but I’ve never been able to find the firmware files.

I have firmware 1.18.

I’m using Node-RED for my automations.

For example I have simulated an alarm away:

  • Use zwave_js set_value
{
    "command_class": "135",
    "endpoint": "0",
    "property": "18",
    "property_key": "7",
    "value": "5"
}

You see that the red light bar is counting and after the 5 seconds the Home away button is on for some milliseconds.

In the meantime I have also a delay node of 5 seconds executing in Node-RED

Then the next node will set the keypad to Armed Away:

{
    "command_class": "135",
    "endpoint": "0",
    "property": "11",
    "property_key": "1",
    "value": "1"
}

Then the light of Armed away stays off.