Zigbee Fan Canopy Module | Project Cheryl

@EricM_Inovelli , its much more than what @ckowalski posted
the configuration code in in child has to be cleaned up
and the LED stuff that doesnt exist for the fan endpoint
and button stuff… the code came from the blue fan SWITCH…
so thats why its a bit of a mess

1 Like

Yep, understood. Just want to squash the high priority bugs right now and we can work on the cleanup as we go.

@ckowalski I have applied the updates that you mentioned. Thanks!

2 Likes

@EricM_Inovelli , remove the bad fingerprints
in the main driver
fingerprint profileId:“0104”, endpointId:“01”, inClusters:“0000,0003,0004,0005,0006,0008,0702,0B04,0B05,FC57,FC31”, outClusters:“0003,0019”, model:“VZM31-SN”, manufacturer:“Inovelli”
fingerprint profileId:“0104”, endpointId:“02”, inClusters:“0000,0003”, outClusters:“0003,0019,0006,0008”, model:“VZM31-SN”, manufacturer:“Inovelli”

well if your gonna do a clean up, the main is the easiest to clean :slight_smile: wouldnt take but a few mins

1 Like

@EricM_Inovelli

does the fan or light endpoints support any power reports, as this code in the main
needs to be address… specially now since the VZM35 is left in there
if the VZM36 doesnt have any resports, this whole if needs to go away

if (state.model?.substring(0,5)!=“VZM35”) { //Fan does not support power/energy reports
cmds += [“zdo bind ${device.deviceNetworkId} 0x01 0x01 0x0702 {${device.zigbeeId}} {}”] //Simple Metering - to get energy reports
cmds += [“zdo bind ${device.deviceNetworkId} 0x01 0x01 0x0B04 {${device.zigbeeId}} {}”] //Electrical Measurement - to get power reports
}

1 Like

@mitchjs can you submit these as PRs against the repo? If not, can you PM them to me and I will get them taken care of? Thanks!

@EricM_Inovelli , some more changes for the Hubitat driver

In the fan driver:
Added:
attribute “switch”, “String”


Added as last line in off()
def off() {

sendEvent(name:“switch”, value: “off”)
}


Add last lines in:
def setSpeed(value) {

sendEvent(name:“speed”, value: “${value}”)
sendEvent(name:“switch”, value: “on”)
}

@EricM_Inovelli , for the Hubitat driver

In Light Driver:

Comment out a line referencing speed
In:
def parse(String description) {

case 0x0006: //ON_OFF CLUSTER

//sendEvent(name:“speed”, value: “${newSpeed}”)


And again under:
case 0x0008: //LEVEL CONTROL CLUSTER

//sendEvent(name:“speed”, value: “${newSpeed}”)


Hope this helps

Just got my fan module installed and its everything I wanted! Thanks Inovelli for yet another fantastic product.

I did have to update zigbee2mqtt to the dev branch, so I’ll be keeping my eyes on their releases page, but otherwise its worked perfectly. I did have some functionality of the device via z2m without updating it, but the fan speed was wonky so I looked at the docs, and sure enough there was even a statement with a link to the z2m docs to tell me exactly what I needed.

2 Likes

Thanks! Appreciate there is more work to do, but this gets the drivers to a usable level … at least in the scenarios I’m using them for.

2 Likes

@bptworld , why would you remove the speed event in the parsing of the level control ?
shouldnt that update if the device itself changes its speed
it can happen via binding…or some other action outside of hubitat
also… in the on/off cluster response, wouldnt we want it the speed to be off too?

also adding those events in the setspeed is not needed, as the device will tell us the state
hense REAL feedback from the device

1 Like

Because there isn’t any need for ‘speed’ in a light driver. :man_shrugging: Only needed in the fan driver.

Seeing that the ‘switch’ attribute didn’t even exist. I think one would have to add it to be able to track it.

1 Like

A few updates:

I verified the files in GitHub have the expected changes.

Next I did a HPM update and noticed the new drivers in there (Thanks @EricM_Inovelli).

BUT then I did the updated and I was expecting (or maybe I should say hoping) they would update the versions I had already manually added. They did not. I got the parent to use the new driver but couldn’t figure out how to get the Children to change (or how to delete and recreate the children) so I just removed the canopy device and re-added it. Looks good now.

Finally I played with binding EP 0x3 of Blue Switch to the Canopy module. The number of bindings on the switch stayed at 1, but when I press the config button on the switch the LED light turns white for a second and it now cycles the fan speed (I configured for cycle). So I guess the binding did work.

Thanks for the quick support all.

1 Like

@ckowalski , hmm on the config button making white leds
is that a setting i missed, it is cycling as expected via binding method

hehe yea, i havent even looked in detail at the light child (YET)
but i do see stuff about the fan… so all that has to go

2 Likes

This comes along as capability "Switch", which appears to already be there (though there is some debate in Hubitat in general about whether this is really necessary, as "FanControl" can technically capture all the states, including off — but that’s another story!).

In related news, I haven’t installed mine yet but hope to write my own driver after that some time (I’m picky)… :slight_smile:

EDIT: It’s now here for anyone interested: Hubitat/drivers/Inovelli/vzm36-fan-light-module.groovy at master · RMoRobert/Hubitat · GitHub

1 Like

Sooo this weekend!? :laughing:

I don’t need any of the binding to switch stuff. I use Picos and/or voice to control them when needed.

Definitely interested in the bindings here.

The latest Hubitat driver should have these options. Sometimes a factory reset may be necessary after the firmware update. I would set the following settings and if you still aren’t getting the led to change white then try the factory reset.

@offtohavasu or anyone else. If you would like to try firmware 2.17 for the bindings and are on Z2M or ZHA please send me a PM.

2 Likes

Sorry Eric, I don’t have a switch to test with (yet). But I’ll download the new driver for the canopy in Hubitat.

1 Like

Thanks to Eric for helping me get the blue switch/dimmer bindings working with the blue canopy via hubitat. The new driver works great! With the proper bindings configured, paddle controls lights and config cycles the fans as-is my pref.

Unrelated question for Inovelli: The only way to monitor power consumption of the canopy is via a power monitoring switch that is connected to it, right? Does the canopy controller itself have the ability to monitor and report its power consumption? I don’t see a setting or attribute for that.

1 Like