Associations in Edge drivers?

I’m relatively to writing SmartThings drivers. I’ve installed Groovy drivers, but never written one. I’m currently diving into Edge drivers. I’ve written at Edge driver for Zooz SEN31 RGBW dimmer, and working on a driver for Zooz ZEN32 Scene Controller. Both are basically working. I can write rules to have the ZEN32 turn the ZEN31 on/off, etc. But I want the KEY_HELD_DOWN, KEY_RELEASED notifications to dim the ZEN31. But there looks like there is no way for a rule to a SwitchLevelChange command.

As an option, I thought I would set an Association dimmer control for the ZEN32 and use Z-Wave direct associations for the dim functionality. I added code to my ZEN32 Controller to set associations, and it works for setting associations for Groovy devices since I can find the node_ids in the Groovy IDE. But there are no node_ids listed for Edge devices.

How can I find the Z-Wave node ID for an Edge device?

Or/And how are Associations suppose to work in Edge devices/driver?

A little back history. Why I wanted a custom driver for the Zooz ZEN31 RGBW Dimmer. Two reasons: 1) use Edge driver for local control, and 2) I wanted to control RGB and WHITE separately.

So ZEN31 Edge driver have three components: main, white, and rgb. rgb has a switchLevel and colorControl. White has a switchLevel, and main has a switchLevel, switch, and powerMeter. So main is the master with the switch and master switchlevel, while white and rgb are subs with their own controls.

1 Like

Tagging @nayelyz

Welcome to the SmartThings Community, @WaynesWorld!

Can you provide more details about this part, please? I couldn’t find a specific reference to them in the technical sheet of the device:

what do you mean by rule? do you want to receive messages from the device when this command is triggered?

I will check with the engineering team if associations are supported in Edge, also about getting the node ID.

Thank you for tagging me, @JDRoberts

1 Like

For the KEY_HELD_DOWN and KEY RELEASED, I was referring to the Z-Wave NOTIFICATIONS from the the ZEN32 Controller. Which get mapped to the “Held down” and “Held” events that can trigger rules. Which I thought could initiate a starting level and stop level change command (Z-Wave SwitchLevelChange command) for the ZEN31 dimmer. But no such stop/stop rule commands.

Using the CLI, run

smartthings devices <your device id> -y 

Z-wave node ID is buried in the data that shows up.

I have a driver in my GitHub if you want a starting point.

1 Like

Association is a solid plan for this.

I have a similar situation, though I can’t go the association route. My zen32 controls two ZigBee RGBW bulbs. Ideally I’d like to use the left pair of buttons as dim up/down for one bulb, and the right for the other. The solution I have in mind is to add two switch level capabilities to the zen32 driver, and use the held/released events to set level there, then use rules to have the bulbs mirror switch level off the zen32. Haven’t gotten around to it yet, but pretty sure it’ll work.

philh30, Thank You! I found the networkID using your suggestion “smartthings device -y” and hard coded the ids just to try. And it worked. Didn’t realize the the YAML (-y) option shows so much more info. And thanks for the link to your ZEN32 driver. I’ll have to take a look. Learning so much and figuring out how all this works. And so many ideas…


@philh30 if you are using Mariano’s Zigbee Light Multifunction driver, you can achieve what you want. I have two CCT lights on Zen32, and I am using main button to toggle on and off both bulbs, and left side buttons for dimming level, and right side buttons for White Temperature control. It works like a charm.
You could program left side to increase/decrease Level for one bulb and right for second bulb, and program same buttons “on hold” to to increase decrease White Temperature