How To: Configure Z-Wave Siren with Home Assistant

Hello

New HA user here migrating over from SmartThings (the soon-to-be-disabled SmartThings ADT system…). This weekend I setup HA on a Raspberry PI, migrated over some devices, and began re-establishing my system. I ran into a challenge, stitched together a solution from various topics here and elsewhere, and am posting what I learned in hopes of helping someone else.

One of my devices is the Dome Siren which is a Z-Wave device. I’ve had it serve two purposes. First, is that as a default it’s an alarm siren. So, if my system was armed and something triggered then the alarm would sound. Great. This is easy to setup in HA. The other purpose took advantage of one of the other 10 pre-programmed alert sounds to sound a chime when someone opened a gate on our property. For example, if FedEx opened the gate to drop a package then we would hear the alert. And it was nice to not have a siren blaring all the time. I had set these automations up before using webCoRE.

In Home Assistant it was not necessarily more difficult to setup, in terms of code complexity, but I found it difficult to figure out what I actually needed to do. This post documents my findings.

  1. First I created the base automation using the UI.

  2. Then go to configurations > automations > YOUR NEW AUTOMATION > edit. Then click the 3 dots menu at the top right and click Edit in YAML. Finding this was a major revelation. I had previously been thinking about how to edit the files via the File Editor add-on or connecting the Raspberry Pi to a monitor to dig into whatever files are on the micro sd card. Not necessary.

  3. Within the code, and within the Action section, you need to setup a service call to zwave_js.set_config_parameter. Need to specify the target device and the data you want to send to it to make your customizations.

  4. Once you’ve done that you save your changes and it should run.

If only it were that simple the first time. For this device I found the various Z-Wave parameters and settings here:

https://docs.domeha.com/#compatible-command-classes19

I’ve attached a screen shot of the code I am using. For my case:

  1. The first service call directs the device to use the secondary chime in lieu of the alarm. Set parameter #7 to value #2.

  2. The second service call sets the chime alert that I want to use. #9 in my case. Think of these like ring tones. I chose #9. Set parameter #6 to value #9.

  3. The third service call sets the volume of the chime alert. Set parameter #4 to value #1. This is the lowest volume setting so that while I’m tinkering at my desk it doesn’t disturb the whole house.

  4. Special note that the syntax is fairly unforgiving. I got hung up on the indents and use of dashes which, as I understand it now, is for making a list. Anyway don’t be deterred if you run into issues here.

So for other readers my advice is to find the manufacturer documentation for your device and try to use something like this approach to get it working with HA.

6 Likes

Thankyou. This helped me.

For reference (is available in Z-waveJS interface):

[1] Ding dong
[2] Für Elise
[3] Westminster Chime
[4] Dingdongdingdongdingdong
[5] William Tell Overture
[6] Classical
[7] Weeooeeooeeooeeoo
[8] Err-err-err-err-err
[9] Beepbeepbeepbeep
[10] beeeep-beeeep-beeeep

Primary Default is 9
Secondary Default is 10

1 Like

Thanks so much for this post - had no idea where to start. I’ve got a seemingly ‘unbranded’ version, but this pdf seems to be the right documentation: https://manuals.plus/m/4e780b2783fb393efc9f990ef94121e816d154f386a5a998f65cc6ab9ce837bf.pdf

I found that I needed to set the parameters but then change the default back to alarm so my Alarmo integration would still work.

Here’s my script:

alias: Doorbell on zwave siren
sequence:
  - device_id: obfuscated
    domain: zwave_js
    type: set_config_parameter
    endpoint: 0
    parameter: 7
    bitmask: null
    subtype: 7 (Default Siren Sound) on endpoint 0
    value: 2
  - device_id: obfuscated
    domain: zwave_js
    type: set_config_parameter
    endpoint: 0
    parameter: 6
    bitmask: null
    subtype: 6 (Doorbell Sound Selection) on endpoint 0
    value: 4
  - device_id: obfuscated
    domain: zwave_js
    type: set_config_parameter
    endpoint: 0
    parameter: 4
    bitmask: null
    subtype: 4 (Doorbell Volume) on endpoint 0
    value: 1
  - type: turn_on
    device_id: obfuscated
    entity_id: obfuscated
    domain: switch
  - delay:
      hours: 0
      minutes: 0
      seconds: 6
      milliseconds: 0
  - type: turn_off
    device_id: obfuscated
    entity_id: obfuscated
    domain: switch
  - device_id: obfuscated
    domain: zwave_js
    type: set_config_parameter
    endpoint: 0
    parameter: 7
    bitmask: null
    subtype: 7 (Default Siren Sound) on endpoint 0
    value: 1
description: ""
icon: mdi:doorbell

I did the majority using the UI - there was an issue with doorbell volume but when I looked at the yaml, it was just missing the value.