Leviton 800 Series ZW6HD Dimmer Driver

I have the newer Leviton 800 Series Dimmers (ZW6HD) and have discovered from experience that the Leviton DZ6HD Z-Wave Dimmer driver is a bit wonky with them (and there are posts about how the DZ6HD driver has to deal with legacy patent workarounds). They seem to be mostly working Ok under the Generic Z-Wave Plus Dimmer driver but there you have no ability to manage the extended settings (initial on level, min and max dimness, fade rates, etc...).

For now I have used local control and the Basic Z-Wave Tool driver to managed the extended settings, but a native interface would be much nicer. Plus the ability to get the state data current. Settings applied through dimmer local config and the Basic Z-Wave Tool are not reflected in the State Variables despite use of Configure and Refresh.

I have not (yet) written a Hubitat Z-Wave driver. Would it be best to start from scratch or build from the current DZ6HD driver? Or is anyone else already working on this?

I may eventually have similar questions for the extended features of the Leviton 800 Series ZW15S switch once I have time to begin installing some of them.

tagging @jtp10181, since he already has a driver for the Leviton Z-Wave Plus dimmer that works with the 700 series dimmers.



I would NOT use the DZ6HD driver as a start, because it uses the depreciated Hail commands it would possibly not work with the updated hardware and commands.

If you want a good base to start with, check out my ZEN Advanced dimmer driver. You could test it on your new switch and see how it works, if you can control the device and get state updates then it would pretty easy to add the settings into it using all of my already built functions.

If you want to post the details from the "data" section at the bottom of your device page I can see if I can look up some more details on this device.


Also... that device should support the updated commands to probe it for settings.

You could try this driver I made and see if it can scan for the settings, I think since it is an 800 chip it would be required that they include this info on the firmware for hubs to scan.

My dream was to be able to make a universal driver (per device type) that scans the device for all its settings, but there has not been a lot of new devices for Z-Wave other than Zooz to even bother. Seems there are new 800 devices coming out now, so this gives me some hope.

1 Like

The ZW6HD manual that Leviton ships is quite comprehensive although the PDF very annoyingly prevents copying in standard PDF viewers. I was able to use it along with the Basic Z-Wave Tool to effect the setting I needed immediately.

The key points, all lengths are 4 bytes:

  • Param 01 - Fade On Time, values 0 - 253 (default 2, 0 = no fade)
  • Param 02 - Fade Off Time, values 0 - 253 (default 2, 0 = no fade)
  • Param 03 - Minimum dim light level, 0 - 99 (default 10)
  • Param 04 - Maximum brightness level, 0 - 99 (default 99)
  • Param 05 - Preset light level or return to last level, 0 - 00 (default 0, return to last level)
  • Param 06 - LED dim/bright bar behavior, 0 - 255 (default 3, 0 = off, 255 always on)
  • Param 07 - Status LED configuration, 0 - 255 (default 255, 0 = off, 254 = LED on when load on, 255 = LED on when load off)
  • Param 08 - Bulb type, 0 - 3 (default 1, 0 = incandescent, 1 = LED, 2 = CFL, 3 = MVL)
  • Param 09 - Control timing, 0 - 2 (default 0, 0= normal, 1 = medium, 2 = extended)

Also in the manual:

  • Group numbers 1 - 3
  • BASIC command class mapping
  • Additional Z-Wave class support
  • INDICATOR function details


  • deviceId: 2
  • deviceType: 65
  • firmwareVersion: 1.1
  • hardwareVersion: 1
  • inClusters: 0x5E,0x55,0x9F,0x6C
  • manufacturer: 29
  • protocolVersion: 7.18
  • S2: 3
  • secureInClusters: 0x86,0x26,0x85,0x8E,0x59,0x72,0x5A,0x87,0x73,0x70,0x2B,0x2C,0x7A
  • serialNumber: 7CC6B6FFFE2E8034
  • zwaveSecurePairingComplete: true
  • zwNodeInfo: D3 9C 03 04 11 00 5E 55 9F 6C 68 23 F1 00 86 26 85 5C 8E 59 72 5A 87 73 70 2B 2C 7A

Additional side note, it has inClusters the same or similar to Minston Wallmote such that it misidentified because of the user driver I have installed for that device.

I was sad originally buying a new home since next to nobody makes a universal, full load in-wall switch/dimmer set that can support all light types and up to 15 amp standard loads (motors, heaters, etc...) and have color change kits for brown. Leviton's not great old style Z-Wave were flaky at best and now discontinued, then I discovered they made a new 800 series. I'm still sad they aren't "long range", but at least they should be faster and hopefully more stable.

Setting in-wall aside, there seems to be a lot of new 800 series devices coming out.

I will check it out when I can. In the meantime can you try switching it to my scanner driver: [RELEASE] Z-Wave Universal Device Scanner

Then turn on the Scan Name and Scan Info settings, Debug logging. Then Save.
Then run the Scan Parameters command.

It should go through each one and collect info about it. Once it says it is done, refresh the page and then copy/paste (not screenshot) the data value "parameters"

I am mainly just really curious to see if my driver can collect the info from the device.

parameters: [['num':1, 'format':0, 'size':4, 'defaultVal':2, 'range':0..253, 'title':'Fade On Time', 'description':'0: instant on, 1-127: 1-127 seconds, 128-253: 1-126 minutes'], ['num':2, 'format':0, 'size':4, 'defaultVal':2, 'range':0..253, 'title':'Fade Off Time', 'description':'0: instant off, 1-127: 1-127 seconds, 128-253: 1-126 minutes'], ['num':3, 'format':0, 'size':4, 'defaultVal':10, 'range':1..99, 'title':'Minimum Dim Light Level', 'description':'0-99'], ['num':4, 'format':0, 'size':4, 'defaultVal':99, 'range':10..99, 'title':'Maximum Brightness Light Level', 'description':'10-99'], ['num':5, 'format':0, 'size':4, 'defaultVal':0, 'range':0..99, 'title':'Preset light level // Return to last level', 'description':'0-99. 0 to return to previous level'], ['num':6, 'format':0, 'size':4, 'defaultVal':3, 'range':0..255, 'title':'LED Dim Bar Behavior', 'description':'0: always off, 1-254: 1-254 seconds, 255: always on'], ['num':7, 'format':0, 'size':4, 'defaultVal':255, 'range':0..255, 'title':'Status LED Configuration', 'description':'0: always off, 254: Status LED ON when load is ON, 255: Status LED ON when load is OFF (locator mode)'], ['num':8, 'format':0, 'size':4, 'defaultVal':1, 'range':0..3, 'title':'Load Type', 'description':'0: incandescent, 1: LED, 2: CFL, 3: MLV'], ['num':9, 'format':0, 'size':4, 'defaultVal':0, 'range':0..2, 'title':'Control Timing', 'description':'0: Normal, 1: Medium, 2: Extended']]

Nice that is awesome that it worked!

Now, if you would like for the meantime, you should be able to run the "Sync From Device" command, refresh the page when it is done, and then adjust the settings right from that driver. Then switch back to your normal driver to control the device.

The Sync command just asks for the values of all the settings from the device so you are not accidentally overwriting settings you may have already changed elsewhere.

1 Like

Any idea if a Leviton 800 LR dimmer is on the horizon? Maybe via a firmware upgrade to this one in the future?

This was discussed. While the hardware itself is capable of LR, Leviton has said that they "have no immediate plans" to support LR.

This process works for me now. Couple of things I noticed with the scanner:

  1. Some lights support max brightness of 100, others only 99, the Scanner only allows 99 even if the light supports 100.
  2. State Variables section of the device page are still stale (incorrect for current state)

The Z-wave max level is 99, but drivers will often show that as 100% so it shows as fully on in dashboards. So setting the max to 99 is probably the highest the setting will allow.

What drivers have you tested?
You could try my Leviton Dimmer driver, and also my ZEN advanced Dimmer. They might make a warning show about it being an unknown device, wont cause any harm just warning there could be unexpected results.

1 Like

Using the Leviton Z-Wave Plus Dimmer Driver, here is the current state after operating the switch at the paddle:

Note: The driver's Brightness Correction is not enabled. Leviton documentation does say max 99.

As for State Variables, one and two should be "0", five should be "99". The universal scanner driver does pull the correct values in the options settings, but no driver seems to update the State Variables section.

Ok I thought you were just confusing State Variables with Current States.
My driver does not use those state variables to store the config values, so they will never be updated. I found them to be very annoying and clutter up the UI so I came up with a different approach. If you run Configure (as instructed in my driver post) it will wipe all those out. If there are known settings for the device programmed into my driver the config values are all saved in a data value (at bottom of device page). If you used the scanner driver to set any settings that data point should be down there from that.

If the driver is working correctly for this device other than the missing settings, I could add this new device into the driver and add the settings for it.

1 Like

I missed that detail (configure from the User driver). That did clean the State Variables up.

The one quirk I noticed is that the first time I used the driver's On function, it wanted to set the light to 38% (the device was already on at 99%). I used the driver to set the level to 99 and from then out, Off/On have worked as expected.

The built-in DZ6HD driver did a similar thing (on at 38%). The Generic Z-Wave Plus Dimmer driver never did this.

Side note, I set 99 and got back a current state of 100 using your driver (Brightness Correction not enabled). It's beginning to feel like a device quirk, and there is a firmware update available. Not all of my ZW6HDs are doing this, only three of four installed units so far. Have a couple more still in the box left to install.

When you do just an ON command the driver sends a special command that tells the device to turn on at its last level. Possibly 38% is some sort of default and then once you started adjusting it, it works after that?

I am pondering making a universal dimmer driver where you can load the settings in from a config file so... you might be a test subject if I get a chance to work on it.