Zigbee Fan Canopy Module | Project Cheryl



Update: I accidentally must have bound 01 and 02, I did an “unbind” of both and all is well with the world

Apologies if I’m missing something here… I’ve followed Method #1 for my Hubitat. I can control the fan using the config (Rule Machine) button however when use the paddle to try and control the light, the fan comes on too. Master is 0x02 and Slave is 0X01.

I think I can help on your question #2.

The lzw36 wall unit is controlling the lzw36 canopy unit using RF, so not zigbee nor z-wave.

Which means the wall unit from lzw36 would not be able to talk to this blue series fan/light canopy module, which speaks zigbee, unfortunately.

Question: if you know that speed 2 relay being the problem, is it possible to open the canopy unit of lzw36, find the capacitors, and replace those?
BTW is the speed 2 relay the most common issue? Is there anything else with lzw36? I am asking because I am under the impression that there is somehting about RF and not fixable, but then I would not rely on my memory. :slight_smile:

Not directly, but you could set up automation with your hub of choice to listen to the wall unit and send commands to the canopy module.


Right, I’d be controlling the canopy module from habitat hub from input from the switch.

But the speed 2 thing I think was a lot less common than connection issues to the canopy module.

Thank you for the response :slight_smile:

Hmm… this is true. So basically using the wall unit from lzw36 as a z-wave scene controller, and use the hub / automation to control the zigbee canopy module.

The only downside being when the hub (or the zigbee / z-wave USB sticks) is down (which is rare I know, but not zero), you would lose control of your ceiling fan/light…

An option indeed, especially for people already with lzw36.

Edit: I updated to Z2M edge and now my low, medium, high is working. Still would like answer to FW version.

So is 1.00 the latest firmware for VZM36? I cant find this device listed on the “check your current firmware” innovelli page.

Reason I ask is because speed changes dont work for me. I can turn the fan on and it turns on. But then swiching the mode to either low, medium, or high, turns it off. And by off, I mean the fan physically stops moving but according to the switch in HA, its still ON.

I have my minimums and maximums setup in Z2M at 1 and 255. Using Z2M and HA.

Thank you for this. Was nervous to switch over, but after reading this, I did and it was as easy as you said. Just copied the circled stuff from current Z2M to Z2MEdge.

1 Like

Yes, that’s the only released production firmware.

The VZM36 canopy drivers used the VZM31 Dimmer and VZM35 Fan drivers as its code base. There is excess and duplicate code between the parent and child drivers. The intention is to clean this up but the primary objective was to provide full functionality in a short time frame. The excess code presents no harm being there.

That is my understanding too.

Which clusters specifically? Those line numbers don’t match up with mine so I’m not sure exactly which bindings you’re referring to.

Agreed, and cleanup is a work in progress. But just want to be clear, the Change Log states:
BETA release ***VERY ROUGH*** this is a copy of the VZM35 driver, modified to be a child device of the canopy parent

Actually… I AM gonna tell you there IS a LED on the canopy module that can do single-LED animations :stuck_out_tongue_winking_eye: But that’s not the reason. As you’ve already noted, the VZM36 canopy drivers are built off the VZM35 fan driver and there is excess code that carried over.

Yes it needs to be cleaned up, but it doesn’t harm anything being there. The LED effects are hidden in the driver webUI, so the average user doesn’t see it unless they look at the raw code (as you have). AND, it technically works if you call it directly from Rule Machine. It’s just not particularly useful on a canopy module :blush:

What’s the issue with Quick Start? :thinking:

The staff at Hubitat dictate that they host Zigbee firmware files on their servers.

not needed since Capability “Switch” is defined above it

not needed here since it’s being done in method parse()


Getting around to writing a simple custom driver now! (One goal is to use the built-in component drivers.*)

Unfortunately, the “parameter” (custom cluster attributes) documentation is preventing me from adding finishing much of configuration options/preferences since some of the descriptions are missing entirely or seem to have, understandably but not quite accurately, been copied/pasted from similar devices (and I don’t think some are applicable at all, though the LED thing surprisingly might be?!). If any community members could share what they actually know about the device or, even better, if staff could make sure this document is up-to-date, that effort would certainly be appreciated on my part. :smiley:

*This would also be easier for anyone who may already have paired such a device if the custom driver many are using did not specify isComponent: true and thus severely restrict what can be done with the child devices, a change I’d suggest if no one has strong feelings about that, too!

FYI, the Zigbee2MQTT production version that was released yesterday has all the fixes and enhancements that have been merged into the Edge version for the VZM36 over the last month. So no need to use the Edge version anymore.


Why does my fan turn on when I turn the light on? I used Zigbee binding for the light and use automation for the fan, but every time I turn the light on the fan comes on. This happens every time I use my 2 in 1 switch from the wall or the app. I have 2 others that work like they are suppose to, but this one does not and I can’t figure out why.

Towards the end of the Inovelli drivers is a large Map definition for the “configParams” variable. It should have descriptions for all the “parameters”. Here is what the start of it looks like:


I have a couple of questions regarding the binding and dimming. I managed to bind it to the blue switch for dimming and power but I’m not sure how to go about binding the fan control to the blue switch. As for the other question I am currently getting flickering when setting the light at 100%, any idea why this would happen?

I factory reset the switch and now I can’t get Zigbee bindings to work. Maybe I have a bad switch? I have 0 problems with the other switches I installed.

I am guessing that you have a light switch / VZM31-SN ( as opposed to the fan switch/ VZM35-SN ), and have ran the power through the switch. You need to send the power direct to the canopy module, and then control it wirelessly with the 2 switches. For now, it is easy to bind the paddle to the light, but then on the side button switch, it will need some automation code to tie it together until some more changes are made.

I bought the switches and canopy modules as a set. I have 2 others wired the same way and they work perfect. I have the canopy module and the switch wired with power at all times and can control it with my phone and everything works fine that way. I can set up automation’s with the switch as well but bindings will not work. I did have the bindings working, but it was turning on the fan and the light at the same time. Now it won’t do anything.

1 Like

I suggested the wiring because that was what I had done and was seeing that same issue. I rewired, and it went away.

However, I am in the process of switching from Hubitat to HA yellow ( the C8 has some serious issues in particular, I had values on a static variable switching even though nothing touches it; IOW, I had crap memory in it; and that ignores finding out that the C8 will open up wifi even when you have eth plugged in; I was shocked at how horrible C8 really is ). So, I have (re)installed HASS 3x with the last one being yesterday. Before, I was able to bind switch to fan module and light worked.

However, this last time was all about moving from ZHA to Z2M, which mean re-pairing. in the last 8 hours, I have been working on binding VZM31-SN (2in1 light) to VZM36( fan module) and have seen similar issues that you have described. Upon paring things work fine. Then I bind. And it will work for a bit, and suddenly fail. So, I reset the module (20 second hold; fan was hanging down with fan/module separated with a couple of wagus) and re-paired it to HASS-Y. I tried numberous approaches and typically after the binding combined with using the switch, followed by input from HASS-Y, the module would quit responding all together.
So, I have now left this un-bound and am using automation from HASS-Y to have the paddle control the light/access button to control the fan. At this time, it is just on-off for both, though I am able to control brightness and fan speed via HASS-Y.

So, you might un-pair/reset and then see how it responds without the binding.

1 Like

Did you also switch Zigbee radios? I didn’t have to re pair anything when I switched, I just specified the same Zigbee hub device in Z2M as ZHA was using, disabled ZHA and was off to the races.

1 Like