[Beta Release] Advanced "Every Device Customized" Zwave Plus Dimmer/Switch Driver

I've developed a "Advanced" Z-Wave Dimmer driver and Switch driver which each act like a "custom" device driver in that it can display a full set of parameter setting controls for almost all dimmer / switch devices.

In order to learn about and display parameter input controls for all of a device's parameters, the driver first queries the device database found at opensmarthouse.com to learn all the parameters supported by a device. The query is based on the device's manufacturer ID, device type, device ID, and firmware version. I've mostly tested with HomeSeer devices.

If you want to give it a try, please follow the installation instructions on my github page.

Let me know what you think.

See the Readme on my github site. GitHub - jvmahon/HubitatCustom

I will also (Target: Dec. 30) be releasing a more advanced version which adds in metering support.

Note: This does not work for devices with Multiple endpoints (Zen30, Inovelli LZW36, etc.), but I may try to add support for those at some future date.


Cool...on a GE Z-Wave Plus Dimmer. Love the display of the parameters and their values/definitions.


Also, as a FYI - if anybody identifies any bugs, please post them on github rather than (or in addition to) posting here.

I've been testing this on my own system and I think its stable (at least with my HomeSeer devices). For anybody trying to use this driver on other devices, given its early release state, I recommend starting a few devices at a time and make sure they are working problem-free.


pretty cool

Can this be done for contact and motion sensors?


My plan is to evolve this into a single "Master" code file that works for dimmers, switches, locks and sensors (motion, temperature, water, and contact will be the first ones supported). Basically, I'm focusing on all the devices I own (yes, its "me first") - but that is a pretty comprehensive list.

My next step is to add metering support, which I have about 75% done. I hope to complete that this weekend.

After that, I may add the sensor support - that will take a few weeks as I'll have to add battery and wake-up support -- but I think my existing code should allow that to be added pretty easily. The wake-up supported is needed so that you can select the new parameter values at any time, and then they get set into the device at the next wake-up.

And, at some point, maybe multi-endpoint devices. I've had trouble with the "stock" driver for my Inovelli LZW36 fan controllers, so I want to add support for at least those devices at some point.


This seems to work very well with my Eaton RF9640 Zwave Plus dimmer. Is the switch driver ready to go? I assume so as it is on your github page. I will give it a try on one of my Eaton switches later tonight. I installed your dimmer driver on a C7 hub. Very nice work - you are a master for sure. :+1: :+1: :+1:

The switch driver works good for my Everspring AN163 (but skips metering, of course).

I tried a Eaton RF9601 ZW+ switch. Didn't seem to do much. I used the Basic ZW Tool from Hubitat to set parameter #1 to 15 to shut off lights after 15 seconds. That did not appear to be available when defined as Adv ZW+ Switch.

Am I on the right track - it is intended that I use the Advanced Switch/Dimmer driver to set up the parameters of the device, then switch the definition to whatever works best, in the case of my switch "Generic ZW Smart Sw". I say this because if I leave it defined as Adv ZW+ Sw the driver does not see when the switch is manually operated. Perhaps the switch driver is still being developed.

Yes, the driver is still being developed, but it should work for switches. There remain problems with some of the parameter setting features due to issues with saving / storing data.

For those giving this driver a try, I did quite a few fixes / improvements this weekend, so you may want to install the latest versions.


I added metering this weekend, so try the latest versions!


Oops, looks like I introduced some bugs in handling Central Scene taps. The updated I posted on github this morning seems to fix the problem, but I'll be doing more testing this week (as well as changing around the startup routine so it does less device querying).

I just want to say @jvm33 that this Device driver kicks xss! I have had a Zooz Zen15 that for the life of me I could not get to stop sending wayy to much traffic on the network when my washing machine started. This Driver found all the relevant paramaters then I just had to jump in and change them. Easy Peazy. WOW WOW WOW.
Have you given any thought to loading this on the Hubitat Package Manager so we can get all the updates to your code automatically :slight_smile:

1 Like

Yes, when its finished.
This is really still "Alpha" - I still have to address some issues with the database access and device querying -- right now, it generates a lot of network traffic on Hubitat startup, particularly if there is any change to the driver and it has to do a re-query. I know how to fix this, I just have to get it done!. I also plan to expand it for some sensor types (motion, leak, contact, temperature). I'd say I have about another month to finish all the stuff I want to finish.


Again, thank you for all you are doing with this driver. Pretty cool to go into a database to query parameters. Never did I know opensmarthouse.org even existed until I saw your mention of it.

1 Like

I’ve installed your driver today on one of each of my older HomeSeer WD100+ and WS100+ switches and I can validate that they work fine with this driver.

I like being able to see the firmware version at a glance (as a state variable), but since I set these up years ago on SmartThings before recently migrating to Hubitat, I don’t really need access to all the parameters, but it’s nice to have.

Since there’s already a community driver specifically for the WD200+, I won’t bother changing that. But since you’re invested in these switches, if you think of updating that driver to get more than double taps, (I miss my triple taps for “special” functions), that’d be great.

Let me know if you want any other feedback. I also have HomeSeer WS200+ switches, plus Inovelli LZW30 switches and LZW31 dimmers to test on if you want. And when you get beyond the switches and dimmers in your plans for world domination of Z-Wave drivers, I have HomeSeer MS100+ motion sensors and LS100+ leak sensors, plus Inovelli and Zooz 4-in-1 sensors to take for a spin.

1 Like

I've made quite a few changes / corrections to this driver, and have optimized the startup sequence to need less device polling. Also fixes to some race conditions, so if you've been giving this a try, its time to update!

I recommend that you reboot Hubitat twice after updating -- there's a data gathering sequence that takes place and the second reboot helps ensure it was all gathered.


The latest version (driverVesion = 4) no longer works for the AN163 metering plug.

This device is not zwave plus and only supports Version command class v1, so not too surprising (but driverVersion 2 from commit 37f0def on 14 Dec does appear to work for this device).

initialize() Logs

That's odd - it should still work -- the critical bytes in the Z-wave protocol are the same in v1, v2, v3 reports. I always send the v1 "get" to obtain the firmware version. Does the device's web page show a state.firmwareVersion? Try clicking on the "initialize" control on the device's web page. What happens?

Try unplugging / re-plugging in the device just to rule out an error state in the device (I find this happens from time-to-time).

Oops, just found a bug. Correcting.