Aeotech ZW162 Doorbell

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?

@finity Yes in the config you can set a different default tone and volume level for three different doorbell devices. So far in the ‘chime’ notification i did not see a distinction between alarm, doorbell or tamper notification.

But maybe when you try it out you will see it… (keeping fingers crossed)
Just a quick and dirty screenshot from the OZW config menu
image

Thanks for that info.

If I ever get it figured out i’ll report back here.

Hi all.

I have this same device, and whenever I change the configuration values in the OZW beta GUI, it doesn’t actually update.

Sometimes, it appears that the command worked (i.e. I set Tampering Default Tone to “Inactive”) and the device appears to respect the setting, but checking the OZW gui and I still see the previous configuration value.

Refreshing the node does not help.

I try to avoid using Node RED, but I’ll be taking a look at the setup graciously provided to see if we can get it translated into native HA automations.

Thanks all!!

Make sure that you have all the virtual devices installed as well. You can check this by viewing the system values in OZW admin:

I had to exclude / include it a few times before it actually started showing all the (sub)devices. Then you need to check instance 3 (which is doorbell 1) via MQTT and you can start sending commands. I’ve created sub-flows in node-red, but 2 separate calls are needed:

  1. Set volume
  2. Play tones