[RELEASE] Zooz Universal Relay (ZEN17)

Thank you for creating the handler.
THe hub is V3 US and the Zen 17 handler is v1.0 from github. The child handlers are not created when adding the device, only the main one is installed and it does switch on and off, so it is connected and communicating, just none of the specific relay switches are defined.

Looked around here and poste with Zooz but not found solution as yet.


SmartThings didn’t assign the DTH during inclusion so you need to go into the IDE and manually change it the Type field.

Once you’ve done that you might need to open the device’s settings in the mobile app and change one of them to force the child devices to get created.

Thanks for the donation, but I assist all users having problems with the DTHs I’ve written without needing anything in return and I haven’t accepted it yet so PM me if you’d like me to return it.


Thank you for the prompt reply. I logged into the account.samsung.com account and changed to device type via the web panels. The child devices are now recognized and operating.

Just curious as a noob, is adjusting device attributes via IDE like type a common task when adding new devices?

Your 2nd screenshot shows the relay’s child devices, but if the original handler created them then you’ll need to delete them and if my handler created them then you’ll need to change the filter on the devices screen in the mobile app because they weren’t assigned a room.

SmartThings messed up the handler assignment feature for inclusion a while ago so devices frequently join with a built-in handler instead of the custom handler.

Normally the simplest fix is to just change the Type field, but child devices complicate things so you might be better off removing the device and joining it again.

I’ve found that using the “Scan QR Code” method of joining the device works best, but it still might take 2-5 attempts to get it to join with the correct handler. When the device joins with the custom handler it will display the correct name.

What a dunce. I mistyped the comment. The device is working NOW
The child devices are NOW recognized and operating

The child devices are not recognized and operating

typo fixed

Noob question - Zoom is the hardware vendor for the Zen17. Since the only apparent published manner to integrate this device with ST hub, should I come here for issue related to the interface?

The “child switch” was populated when the device was added. There are so many different types, which ones are relevant to this device? I scanned to code and found reference to some types but was not able to those listed here and those in the drop down in the IDE.

Specifically, I am wanting to define a child relay as a momentary closed, normally open behaviour. I have a two strand wire that when connected, closes the circuit and the garage door activates. I just need to trigger a momentary close/open action on the relay to signal the garage door opener. One last thing is the time lapse between replay open and close. I’m thinking that those options are shown when the proper type is selected? Thanks again for the help while getting up to speed with all of this. don

Map getRelayTypeParam(num, relay) {
Map options = [0:“Momentary Switch”, 1:“Toggle Switch”, 2:“Toggle Switch (any change) [DEFAULT]”, 3:“Garage Door”, 4:“Water Sensor”, 6:“Motion Sensor”, 7:“Contact Sensor”, 9:“Smoke Detector”, 10:“On/Off Report”]

// These options aren't included because ST doesn't have virtual devices for them.
//[5:"Heat Alarm", 8:"CO Detector"]

return [num: num, name: "Input Type for Relay ${relay}", size: 1, options: options, relay: relay]


It’s actually Zooz. If you have any wiring related questions then you’ll need to contact them, but posting general questions here is fine.

You originally had to change the Type field of the parent device in the IDE because SmartThings assigned it the wrong handler, but that’s the only change you should make in the IDE and you don’t need to mess with the code because all of the settings are shown on the device’s settings screen in the mobile app.

If you have more than 2 child devices or you’re still unable to control them then you’re better off repeatedly removing and adding the device until SmartThings identifies it as the correct device.

Once you’re able to control the relays with the child devices then open the device’s settings in the mobile app and change the “Input Type for Relay” setting to “Garage Door” for the input # you’re using.

The garage door option makes the relay turn on every time the attached momentary switch is pushed and makes it automatically turn off after a couple of seconds.

Those other options create child devices for the inputs so someone could wire a sensor (water/contact/motion/etc) to one of the inputs and use that input’s relay for something unrelated, but that doesn’t apply to you.

Thank you again, Kevin.
The Zen17 is now mostly operating as prescribed. One question remains which is the status of the Zen17 device, not the children. After setting one child relay to garage and activate it manually, I see the device power on, then off in a few seconds as you detailed. The master Zen17 device turns on and off when a child device is switched on/off. Is the the on/off for the master primarily so all child devices can be controlled together?

Lastly, is there documentation on what has been discussed here? I’ve not found details about the many settings like various device types and their actions in what have reviewed thus far. I really hate pestering posts but just not finding answers where I’ve searched.

If either relay is on the parent reports on and the parent allows you to control both relays together.

It looks like Zooz has created some documentation, but I haven’t looked at it so I’m not sure if it includes any of this.


FW 1.1 was released (ZEN17 Universal Relay Change Log - Zooz Support Center) last month which adds the ability to invert the switch inputs. I’ve attempted to update the device handler to add the two new parameters (19 & 20).
This is my first time looking at groovy code, so not sure if something may by awry:

ZEN17 Driver Implementation Suggestions

I’ll be writing an Edge Driver for this device at some point which will support the Switch capability for each Relay Output, but the ability to change the Input Type of each Relay complicates things so I’m looking for suggestions on the best way to implement it.

I plan on adding a setting for each Input Type that will determine the capability used to reflect the relay’s input state, but supporting all 5 of the Input Types and only displaying the ones that are selected in the settings isn’t an option because it would require way too many presentations and profiles.

These are the solutions I’ve come up with and I’m leaning towards option 2, but I’m open to suggestions:

  1. Limit the options for each Input Type to 3 options or only 2 options if “None” needs to be one of them. These are the capabilities supported by the DTH: Switch, Water Sensor, Smoke Alarm, Motion Sensor, and Contact Sensor.

  2. Display a tile for all 5 capabilities for each input, but only change the state of the one chosen for each input in the settings.

Which route did you take?

This is how I’ll be implementing it as long as no one throws a wrench into my plan before I start working on it tonight.

does it require a minimum firmware version for this to work?
after I added my device and verified it was using edge drivers. all categories are showing unable to sync icon except the device network id showing: 2C.

if I’m using a z-wave tilt sensor to detect the open/close status, how do I configure that with zen17?

You need to set change that Input Type setting to Contact Sensor and then remove the device and join it again.

This is the first “unable to sync” problem that’s been reported for this driver so something weird might have happened when you added the device and you should probably remove and add the device again either way.

How do you get the child devices to show when using the Edge driver? Or is that still in the works?

The ability to have separate child devices isn’t officially supported by ST yet so I wasn’t able to implement the driver like my DTH.

You can still control all the child devices from the device details screen, automations, scenes, but you can’t rename them or use them with 3rd party integrations like Alexa/Google Home.

You can make them appear on the dashboard within the parent tile by enabling the “Large View” setting.

There are a couple of workarounds that allow you to create and sync them as separate devices…

Do you have any manual for edge driver version of this. This is going away soon anyway.

There’s a driver available for this device on Zooz’s Edge Driver Channel.