[RELEASE] Inovelli VZM31-SN Blue Series (Zigbee) 2-in-1/Dimmer Community Driver

(Adding to my collection of custom Inovelli drivers...)

Supported Devices

  • Inovelli Blue Series Zigbee Dimmer (formerly 2-in-1), model VZM31-SN

For code to install, see How to Obtain, below.

Not the Official Driver!

First, it should be noted that Inovelli offers their own drivers for all of their products, including this one, for Hubitat. This can be found here, in HPM, or linked to from their website: Hubitat/Drivers/inovelli-dimmer-blue-series-vzm31-sn.src/inovelli-dimmer-blue-series-vzm31-sn.groovy at master · InovelliUSA/Hubitat · GitHub. If you want more or less official support from the manufacturer for their driver, that may be the one for you instead.

TLDR: This is not the Inovelli driver.

Why Another Driver?

Besides preferring to write my own drivers in general, I wanted a driver that behaved in a bit more conventional Hubitat-esque manner, including:

  • a smaller, easily maintanable codebase targeted for this particular device
  • typical Hubitat logging preferences for "debug" and "descriptionText" (info) logging that align with conventional logging output and other behavior for Hubitat drivers
  • if there were a built-in Hubitat driver for this device, I imagine it would look something like this (though perhaps with a bit fewer options...)

I also have or am working on drivers for both the "old" (gen 2) and new (gen 3) Red Series and other new Blue Series devices, and another goal was to share as many custom commands and parameters between them as possible. This simplifies use of these devices in the same rules/apps.
(I have all three kinds in my house and the same rules for controlling the LED bar on all of them.) Not all of these are released yet, so more coming soon. :slight_smile:

How to Obtain

This driver can be found on my GitHub;

Or use the "raw" URL for the Import dialog: https://raw.githubusercontent.com/RMoRobert/Hubitat/master/drivers/Inovelli/vzm31sn-blue-2in1.groovy

This driver is not available in HPM. This is intentional; I am hesitant to do so to reduce confusion with Inovelli's own driver.

More Information

This is a from-the-ground-up driver for the Inovelli VZM31-SN. It is not based on any existing third-party drivers (though shares some code with my other similar drivers as applicable).

Differences from the "official" Inovelli driver that I am aware of, besides the above, include:

  • events/attributes closely align with Hubitat conventions, minimizing the use of custom attributes and commands (custom commands I do offer are similar to those in my older drivers and previous built-in and custom drivers to maximize compatibility)
  • currently no support for Zigbee binding in this driver, though I am open to adding this in the future once I figure out what users' expectations may be (presumably similar to how Inovelli does it, which I don't know but assume is a function of their driver); I do not believe use if this driver would interfere with any already configured -- this also includes some preferences related additional endpoints this device offers
  • likely a bit fewer configuration options (ones I didn't find useful at the moment like single-LED control when the whole thing is under a diffuser), but such additions would certainly be possible if there is demand

There should be nothing special needed when switching to my driver, though you may want to clear unneeded state and attributes (current states) with the "Device" driver if so desired.


For questions or comments on this driver, I suggest asking here (or creating a new topic if you prefer and including a link to this one for visibility).

For issues with the VZM31-SN itself, I suggest posting in a separate topic here or on the Inovelli community forums.



This is awesome - thank you!!

1 Like

My two new VZM31-SN are still in a box reserved for our new home build coming in the fall. But I have four of the older red dimmers and a couple switches that I would be quite open to switching to your driver if/when you make it available.

One of the main things I have noticed with the red dimmers, if you don’t protect against back-to-back led updates, it ignores the latest. It would be awesome if the driver could cope with that.

I guess you will also have to target a specific FW in the switch. It would be nice to know what you are currently using.

Actually, I tried to avoid this: any preferences (attributes or "parameters") that are specific to partcular firmware versions should dynamically show or hide in my driver based on the reported firmware version, as determined by softwareBuild in Device Data. AFAIK, the platform updates this on its own with Zigbee firmware updates.

BTW, for anyone wondering how to tell what firmware you're on: the relevant digits seem to be the last four. Something like 020F should be split apart into groups of two digts each, 02 and 0F. Then, assuming you prefer this, convert hex to decimal, giving 2 and 15 or verson 2.15. (If anyone knows the meaning of the rest, please enlighten me!)

I'm not sure I've seen this, but if you do, let me know. Unless it's a device oddity I'm wondering if it's a matter of getting spammed with commands and some odd result happening because of that.

1 Like

I should also add that there are literally dozens of configuration options for this switch and so many possible combinations of each that I am unlikely to have tested them all, though I'm using this driver in my own home and have yet to notice anything unexpected with at least my setup. But I'm not ruling something out -- there's so much, and their manual was not always helpful or accurate when I started writing the driver in terms of revealing what was actually available (seems to be better now, but I still consulted other sources like the Z2M/Zigbee Herdsman driver that seem to be well maintained).

1 Like

Cool. I wasn’t aware drivers did that.

I noticed this a couple years ago using a LED dashboard app. Reproduced it in RM and had to insert delays to avoid it. No problem. Just thought I would mention it.

Yeah, I hear ya on the configuration options... They are getting dizzying with this fan module thing now.

I wish it would be possible to have 2 firmware & driver versions -- one that includes all the fan-related stuff, and one that doesn't. For those of us with no fan modules, navigating around all that is just a lot more extra stuff to wade through (when there's already a lot to wade through!).

Now if Eric M could just figure out why none of my 9 Blues are able to update from 2.17 to 2.18, I'd be cruisin'!

Not all drivers do, but it's possible in many cases. I've been trying to do it more recently, or in the past I just put a note in the description about supported versions for the parameter (though back then it seems like it came up less!).

I'm avoiding this issue entirely now by not including any of the fan control stuff, but I eventually hope to figure out something for it for those who want it. :slight_smile: An option tomar least hide preferences related to this feature might be nice and is something I'll keep in mind if the way I do it also involves lots of preferences for the "parameters"/attributes (as I suspect it also may).

1 Like

I'm currently using a couple VZM31 in conjunction with the canopy device. The paddle is controlling the lights and the scene/config button controlling the fan through cycle.

Is there a way to pull an attribute to set the fan to high-med-low or off?


In general, I think yes, but you'll need the latest firmware and to know what attributes you need to set to what value to make it happen (per the manual), plus to set up that binding, and some driver that makes both possible (or some other way to do it). My driver cannot on its own at the moment. I suspect Inovelli's could. I would ask in their forum or a separate topic if you still aren't sure,

So here's what I have so far:

FW 2.15
Bindings done with Zigbee Binding Tool.

But in the stock driver, I don't see any attributes for fan speed. I wasn't sure if yours did.


What version of (Inovelli's I presume?) "stock" driver are you using?

Latest available is 2024-03-21, but I think to get fan stuff to show, you'll need that driver and firmware 2.17 or 2.18.

Firmware 2.15 (Hubitat says it's up to date)
Driver Date: 2024-03-21

I have the option to set the Fan Control Mode (parameter 130).

I'm not a fan module user, so I have no experience trying to manage it. 2.15 is still the official latest release, but 2.18 has been available for a (relatively) long time now, so I'm not sure why Inovelli hasn't officially blessed it...

My guess is that there are still significant issues with it (for instance, I can't successfully update to it at all), but Inovelli isn't being very forthcoming with any info...

My next guess is that they got way in front of their skis with this fan integration and have sort of lost control of everything, so now they're scrambling to cobble it all back together.

ETA - sorry for the derail here Robert, but I suppose this is fairly relevant discussion here...

1 Like

My last derail comment, I think they're patch working the the Blue Series switch until the scene controller comes out. In theory, both should have been released at the same time.

Sorry @bertabcd1234 ! Awesome work BTW!

1 Like

I thought @mark.amber was writing the hubitat drivers for inovelli. is that not the case anymore?

1 Like

Please re-read the first post:

1 Like

As a member of the Inovelli beta team, I provided most of the driver code for the Gen3 devices (primarily the Blue Series). The Gen3 devices are a huge leap in capabilities/configuration options and the intent with my drivers was to provide access to every attribute/parameter/preference that the device supports. When individual LED support was added, the possible combinations increased exponentially. Then Fan Control was added which increased the complexity even more This all resulted in a very large driver with many functions that most people won't need and it does tend to make the driver UI very cluttered if you're not using the advanced features. The code does support a way to trim down what the user sees. It's easy, but does require some custom edits to the code to add/remove specific parameters (preferences).


Tell me about it! :crazy_face: And supporting all those options across a quickly growing list of products including Thread/Matter! :crazy_face: :crazy_face:

You can make a simple edit to the driver that will restrict which preferences are displayed. Search for this section of code:

you can edit the list of numbers. In your example you would probably want to remove 129,130,131,132,133,134 and maybe some others. Or, using this (Bert's) driver for the simpler needs and the Inovelli (mostly my code) driver to access all the features :thinking:


Good stuff - thank you, Mark!

1 Like