Aeotech ZW162 Doorbell

Since about 2 weeks i bit the bullet and started using the openzwave 1.6 software in HA.
Overall i like the way it is working, ofcourse the end product needs a bit of polishing before it can go out of beta.

I consider myself quite a novice user, especially when it comes to mqtt and such components.
My doorbell now functions nicely, i have updated the config on the device (with a workaround, not ozwadmin) to lower the volume level and set a specific tone for doorbell 1.
In using the doorbell (key press) i do get events in HA, but it is related to a general topic, the same event also gets triggered when the tamper alert goes off.
So my question is basically there are a truckload of binary sensors configured in A, why are they not triggering?

A more complicated question maybe is, how can i trigger the siren (with whatever volume / tone) using MQTT? maybe someone can share a few automation snippets??

2 Likes

The doorbell is now easily configured through the OpenZWave app’s web UI. Set the volume in percent and choose tone from a drop down menu.

“Siren active” binary sensors are changing value when the doorbell is sounding. I set up an automation to get a notification when the doorbell is activated:

- id: '1596780325136'
  alias: Doorbell
  description: Sends a push notification when the doorbell is activated via button
  trigger:
  - device_id: c82163d4421f4858b51c246cbd672394
    domain: binary_sensor
    entity_id: binary_sensor.sound_switch_doorbell_1_siren_active
    platform: device
    type: sound
  condition: []
  action:
  - data:
      title: Doorbell
      message: There's somebody at the door
    service: notify.mobile_app_e5558
  mode: single

Still trying to find out how to activate the siren functions, though. The closest I think I’ve gotten is a comment about sending data to the siren (another type of zwave-siren) via something called LUUP script, which I have no idea on how to accomplish. Still trying to find anything on that.

It is mentioned in this thread: Z-Wave siren that can beep as well as alarm?

I got that far also… what happens in this type of setup in case of a tamper alarm, that your doorbell action get’s triggered. because both doorbel event and tamper alert uses the same binary sensor.

Test it for yourself, just go to the chime and slam it gently with a shoe… :slight_smile:

just for the fun of it i was looking through the integration of Samsung SmartThings, they apparently have a opensource contribution to make this doorbell work in their platform.
Looking through the code i get the impression that in order to distinguish between event types a lookup needs to be done in the chime what triggered the last alert (chime 1 / 2 / 3 or tamper)

Also when looking at the OZW.log in the VNC console i see a warning related to the tamper alert (some unmapped data) this might also give some strange results when it would finally hit HA.

I am still trying to wrap my head around how to interact from Home Assistant with OpenZwave. There is surprisingly little information available on which topics are used by openzwave, (what to listen for) and how to build up a basic MQTT message to send to openzwave.

I have a separate binary sensor for tamper alarm. When did you add the doorbell to your zwave network? I got a few new entities when removing it and adding it anew after a few updates to hassio.

Regarding the last bit in your post, I definitely agree

I am still trying to wrap my head around how to interact from Home Assistant with OpenZwave.

As a user you don’t need to know how to do this in most cases, HA abstracts OZW and you just work with its entities. Or are you asking from a developer’s point of view? Are you looking to add new functionality?

There is surprisingly little information available on which topics are used by openzwave, (what to listen for) and how to build up a basic MQTT message to send to openzwave.

There is a well detailed document describing the MQTT API. https://github.com/OpenZWave/qt-openzwave/blob/89cc0d86c983101aacd89c780bae18bb3dffe9b4/docs/MQTT.md

1 Like

With OpenZwave Beta, this device works. It’s easy to set up once you do the manual stuff. You need to get the MQTT endpoint IDs of your devices, then it’s easy.

First up, as long as you have 1 zwave network and are using the OZW Beta, here’s your Publish topic: OpenZWave/1/command/setvalue/

Now we need to get the values. Lets do Volume first. We have a bunch of sound switches on this device. Lets do Doorbell 1.

  1. Poke around until you find your node ID
  2. Go to node 3. The first one is admin stuff. 2nd is tamper tone. 3 is Doorbell 1.
  3. navigate to commandclass->121-> value and find the one the shows “Volume”
  4. You now have your ID. See the picture. The value key is your ID. It’s also in the “ValueIDKey” of the message.

Now I know my Switch 3 volume command is this for max volume

{"ValueIDKey":562951507296305,"Value":100}

or for low volume its:

{"ValueIDKey":562951507296305,"Value":30}

Lets set the volume to low.
image
image

If you’d like to do this from Home Assistant, you make a call to service mqtt.publish and format the Service Data like this:

topic: OpenZWave/1/command/setvalue/
payload: "{\"ValueIDKey\":562951507296305,\"Value\":30}"

image

You can use this in an automation.

Now lets make the sound work.
Get your ValueIDKey from the list of tones.


in my case it’s 281476526391348

So lets play tone 29

{"ValueIDKey":281476526391348,"Value":29}

image

Now lets do that from Home Assistant. Service: mqtt.publish

topic: OpenZWave/1/command/setvalue/
payload: "{\"ValueIDKey\":281476526391348,\"Value\":29}

image

5 Likes

You can use the same method above to set your tamper volume to 0. Just get the volume switch ID of switch 2.

1 Like

I have a binary sensor that meets that description also… :slight_smile:

binary_sensor.zw162_doorbell_6_tampering_siren_active

However when the tamper alert is triggered (when i slam the frontdoor a bit door hard) it only triggers the overall binary sensor

binary_sensor.zw162_doorbell_6_browse_siren_active

@freshcoast
Don’t get me wrong i love what the OZW integration is doing already. What for me is the big unknown is how to integrate this with automation. For now i only have sensors and i’m retrieving info.

My usecase for the doorbell 6 is to have a physical alarm sound from my ‘alarm panel’ automation.

There is no ‘device’ that i can set to ‘siren.alarm.active’ so i am guessing i need to dump some kind of action on the MQTT bus, and i am having a hard time getting into that.

Thankfully adamoutler is jumping in with some interesting pointers, so i am diving into that as we speak… :smiley:

Trigger the service as mentioned above. Just do it in an automation instead of developer tools.

lol… just playing around with it… and it works like a charm.

If you want digital switches in Hassio you can use this, BTW. Node Red Momentary Switch

I’m using this to create 10 switches for various sounds and set volumes.

While playing around i was looking through the ozw.log and i found a warning that might explain why the tamper alert is not recognized.

I’ve been thinking about this and I believe I came up with a good methodology. If we look at the overall layout I think this is what it looks like… Please examine this graphic.

So we have a tamper tone which is special because it is triggered by a specific condition. The rest (3-9) appear to be pretty much equivalent, regardless of what the OEM intended. Some are labeled doorbell, environmental, or warning… but they’re all just sound switches.

I believe the best way to approach the ZW162 device is to set volume for switch 2 at an appropriate level for tampering warning. Then volumes 3-9 incrementally, so 3 is a low volume tone, and 9 is a high volume tone. Then we play the tone we want through the appropriately volumed switch.

eg. We always set the following volumes upon initialization of routines.
Switch 3 volume=10
Switch 4 volume=20
Switch 5 volume=30
switch 6 volume = 40
switch 7 volume = 60
switch 8 volume = 80
switch 9 volume=100

Now we can simply trigger the tone we choose at an appropriate volume. EG.
Automation routes doorbell to Switch 5
Automation routes notification to switch 3
Automation routes alarm to switch 9

What are your thoughts on this?

In my particular setup, I’m observing binary_sensor.sound_switch_doorbell_1_siren_active changing within lovelace when the tamper alert is triggered.

I see what you are getting at. It is more or less use / abusing the sound switch virtual devices to manage the sound and sound level from HA.

I might do the same once i trust my instance of HA a bit more to always work effectively…
For now my doorbell button and chime work natively without HA to be there. I’m already very happy with the ability to trigger an alarm myself, and for now i am fine to configure from ozw the sound level and push from automation an mqtt sound. :smiley:

So I made this nice automation here, but apparently if you send “inactive” message 0 to a node which is already inactive, the device won’t respond. The whole system stops working while it waits for a response that never comes. I think the problem is in OZW Beta. I’d like a button or switch to shut the whole darn thing up, but it just wont work because the device wont respond if its already going. I think we need to be able to isolate which one is currently operating and turn it off.

This is how to turn off sounds.

This is my flow and appears to be fully ready for automation as a set of Switches within Home Assistant.

If you want to use it, you can simply configure the Pink node with your username, password, and IP to your MQTT server. Then configure yellow nodes with a proper ValueKeyID, and select a sound for the top group, and set volumes for the bottom right group. Here’s Node Red code. It’s too large to fit in a single post here, so link: https://pastebin.adamoutler.com/ZQEu

Note: This requires OZW and Node Red. and shows up in Home Assistant like this
image

1 Like

Thanks to the great info in this thread, I was able to finally get my siren (sitting here for over a year) to work. It’s a bit cumbersome to implement the zwave stuff (but implemented it as a subnode in node-red).

I also added the calculation of the config for light / tone duration / tone interval / play count, but that doesn’t seem to work (it’s correctly applying the hex => int conversion, but for example not cutting off the duration). I think these settings will only be used when there is an actual button (associated device) activating the siren?

I haven’t switched to OZW beta yet…

I have two doorbell buttons paired to one doorbell. when either is pressed it plays the same tone and sends the same message to HA so right now it’s impossible to tell which button rang the doorbell.

Once I switch over I’d like to split those tones & messages to be specific to the button pressed.

I assume I can do that by setting different tones in doorbell 1 & doorbell 2 settings?

And do you know how I would go about having the doorbell send different events to HA depending on which doorbell button was pressed?