[RELEASE] Inovelli VZM36 Fan/Light Canopy Community Driver

Supported Devices

  • Inovelli Blue Series Zigbee Fan/Light Canopy Module, model VZM36

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-fan-light-canopy-module-blue-series-vzm36.src 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:

  • using the built-in component drivers from Hubitat (no need to add custom child drivers)
  • offering typical Hubitat logging preferences for debug and descriptionText (info) logging that align with conventional logging output and other behavior for Hubitat drivers
  • smaller, easily maintanable codebase targeted for this particular device

If there were to be a built-in Hubitat driver for this device, I imagine it would look something like this. (I do not believe any built-in drivers work with this device.)

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/vzm36-fan-light-module.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 VZM36. It is not based on any existing driver.

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

  • all preferences ("parameters" or manufacturer-specific attributes) are located in the parent device, as the child devices are standard Hubitat component devices
  • child devices are created as "regular" child devices, not "component" devices, so they can be more easily modified (and removed, though if you keep using this driver they'll come back eventually) if needed -- requires some care when switching; see second post for more details
  • events/attributes closely align with Hubitat conventions, minimizing the use of custom commands and attributes
  • 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


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 VZM36 itself, I suggest posting in a separate topic here or on the Inovelli community forums.



Switching to This Driver

As mentioned above, switching to this driver requires some extra work if you are currently using Inovelli's driver (this is because their child devices are created as "component" children that prevent modification or deletion).

To switch:

  1. If you are current using the fan or light child devices from the Inovelli driver in any apps (automations), remove them from those apps first. You can either remember to add them back later or create a temporary virtual device to hold their places in the meantime if needed.

  2. Switch to the "Device" driver on the parent device, and run the "Delete All Child Devices" command. (While you're here, it wouldn't hurt to run "Delete All Current States," "Delete All Scheduled Jobs," and "Delete All States" just to clean things up, but this isn't strictly necessary.)

  3. Switch the driver to this one: "Inovelli VZM36 Fan/Light Canopy Module".

  4. Run the "Configure" command after switching drivers.

  5. If needed, add the new fan and light child devices back into the apps from Step 1.


I have bookmarked this thread as an excellent example for anyone who wants to learn how to write a custom driver for the Hubitat platform! :+1: