[ST Edge] Driver for Leviton Z-Wave Plus Dimmers (DZ6HD & DZ1KD)

This is a simple modification of the official Z-Wave Switch driver, with a new profile to support in-app configuration of Leviton Z-Wave Plus dimmers (DZ6HD & DZ1KD). See the screenshot below for the available parameters.

I know there’s a generic z-wave parameter configuration driver, but I created this modified driver so I could switch at-will without affecting routines. After seeing a few requests for something similar I decided to share my work here.

Since this is just a minimal fork of the official Z-Wave Switch driver, the names are pretty generic, but you’ll find the channel invite below.

I don’t plan to keep this up-to-date with the upstream driver each week, so I just install the custom driver when I need to configure a device and switch back to the official driver afterwards. If you want to do the same, remember to first pair at least one device normally so the official Z-Wave Switch driver downloads to your hub, then install and switch to this driver.


Thank you. I recently added an additional 3 more of these to my setup. This is a lot better than finding the instructions that came with the DZ6HD and using a tap sequence to change parameters.

Thank you. Your driver works as described and is much better than using a parameter configuration driver. It works on the Leviton DZPD3 Plug-In Dimmer as well.

One thing I noticed when I first installed the driver is that it didn’t seem to list the current state of the parameters correctly. I had used the paddle to set each of my Leviton Dimmer switches to an LED load, yet the initial reading with driver was that each was set as an incandescent. Same with the low dimmer setting. I have one switch set at 20 for the low setting but the driver said it was set at 10. I used the driver to set the parameters to the LED setting and the 20 low dimmer setting. It then read the current parameter settings correctly even if I change back to the official driver then return to your driver.

Thanks for the feedback! If the additional parameters are showing up for your DZPD3 it must have the same fingerprint as my in-wall dimmer switches (manufacturerId: 0x001D, productId: 0x0001), as that’s the only one I modified to use the new profile. I’ll admit it’s a fairly generic-looking fingerprint, so it’s possible more of Leviton’s devices could match it, and they may use similar parameters as well.

As for the values, they’re saved in SmartThings rather than dynamically read from the device, even after switching drivers. The initial values are just hard-coded to be the same as the factory defaults. I can remove the initial values so it’ll be less confusing on first-time devices, but if you change it with the paddle afterwards it will still show the last value set by SmartThings. There might be a way to query the device each time the settings page is accessed, but I suspect SmartThings doesn’t automatically do this in the interest of efficiency.

That’s good to know about the initial values and the values stored in SmartThings. I’ll keep that in mind in the future and the info may help others.

I used your driver on some more Leviton switches and I definitely like the change you made removing the default values. The list makes it clear what values can be entered and what the default values are. I went back and updated all of my settings on Leviton switches. Again, I appreciate all your work.

Thank you for posting this. The 2023-04-25 update to the Smartthings Z-Wave Switch driver broke most of my devices. This driver helped me get up and running again. Thanks!


I really need some help……

I installed your driver a week or so ago, and all was going fine. Then, two days ago, the parameters of literally every Leviton switch in my house got changed. The most problematic change was to the maximum level (11%).

No problem - just go in and change the parameters, right? Nope - the driver will not allow me to change anything.


  1. after using your driver to make a change to the parameters, is there a “commit” or “save” required (I am using SmartThings app on an iPhone remotely)

  2. do you have a method for reading the parameter values? At the moment I have to load another driver and scan.

I’ve attached screenshots below. Hopefully this makes sense.

I tried using the driver myself to reconfigure a freshly reset dimmer, and I’m seeing the same behavior. There is no separate commit/save, and indeed the driver is failing to apply the configuration. The logs aren’t even showing that a z-wave command is being sent. Merging from the latest upstream driver code didn’t improve things either, so I’ll keep looking into why this isn’t working. For now I’ll be configuring any switches by hand.

As for the current preference values, far as I can tell the preference screen pulls from some value stored by the hub rather than device, and there’s no way to have that screen update dynamically from the device. Based on the screenshot of the z-wave scanning driver, I’m guessing it’d be possible to show the values on the main device page, but I didn’t have any plans to try implementing that.

It turns out that while a default preference value isn’t required for drivers in general, it is required for the way the SmartThingsCommunity driver is written. I’ve added the default values back to the driver and it seems to be working now. Just keep in mind that the preferences page doesn’t read from the device, so those defaults are the vendor defaults. If they’ve been changed outside of this driver, they won’t reflect the real value.

I’ve tried installing this driver, but I can’t get it to work. I can select the driver, and it goes through the process of changing it, but then when I check the driver again, it’s back to the default ST driver. I’ve tried it with two different Leviton DZPD3 plugs, which another user above confirms to work. I also confirmed that the fingerprints match.

I’ve tried multiple times, and I just can’t get it to stay on your driver. I’ve tried via both the Android app, as well as the ST advanced web interface.

Has ST made a change that could cause this issue? Is anyone else having issues? Is it still working for everyone else?

Thanks in advance!

I’m able to switch to my driver, as evidenced by the addition of a “Settings” option for the device and the inability to uninstall the driver, but when I check the device’s driver it displays as if it was still using the default. In fact, I need to select my driver again and then select the default driver without leaving the driver page to actually switch back to the default.

This might have something to do with my driver being a very minimal fork of the default. There might be something like having the same driver name that’s confusing SmartThings. I can try tweaking that next time I get a chance to update it.

I also see you mention using this driver for DZPD3 plugs. I think the latest update uses more specific fingerprints to target only the DZ6HD & DZ1KD in-wall dimmers. Other than those this driver should behave just like the default as of the last time I updated my fork from the upstream repository. So you may not see a difference after switching, except being unable to uninstall this driver from your hub while in use.

So weird. I just checked it, and now it actually does show your driver as being active for the device. However, it does not show a settings option, so you’re probably right about the fingerprints thing. Would you be able to add the options for the DZPD3 plugs on your next update since we know it works? I used to have a driver with those options before edge, but that is no longer an option.

The two pieces of information I used to build the driver for my in-wall dimmers were the fingerprint and the manual.

I used the Simple Device Info Viewer to find the fingerprint (also called the deviceManufacturerCode), which tells the driver which type of devices should use the profile for custom preferences. The DZ6HD is 001D-3201-0001, but what is the DZPD3 fingerprint? Since it worked with the earlier driver, it should also start with 001D- and end with -0001.

The manual from Leviton should have an Advanced Options section, which defines each parameter’s number, length, and valid values. A web search shows a few different sub-models for the DZPD3. Is yours the DZPD3-2BW? That does appear to share most of the same parameters with the in-wall dimmer, though a few are not applicable to the plugs.

According to the Smartthings IDE, the fingerprint for both of my DZPD3 dimmers is 001D-3501-0001.

Yes, DZPD3-2BW is the model number of the ones I have. The advanced options section of the PDF doesn’t list the “Preset Light Level,” but I know that one does work with it, and is the specific one I need for my usage.


OK, if you say you use preferences that aren’t listed in the manual I’ll just use the same profile for the plug-in dimmer. I’ve updated the driver from the latest upstream and also added the DZPD3 fingerprint for the custom preferences profile. The plug-in dimmer must be falling back to a more generic fingerprint in the default driver, as I had to add a new section for 001D-3501-0001.

I also tried renaming the driver to see if that helps SmartThings (and us users) tell the difference between the two, but I left the package key unchanged so there may still be some instances where the display doesn’t match which driver is actually in use.

Sorry for the (very) late reply, but I totally forgot about this. So, the newer driver does indeed show the updated name, as well as exposing the settings. However, none of them do anything, including the official settings shown in the manual. This was tried on 3 different ones I have of the same model I have. I’m not sure I’d even begin to know where to troubleshoot, but would certainly be willing to try if you can tell me what to do. Thanks!