LZW36 Fan + Switch Hubitat Child Driver

I have updated the driver to use the built in “Hampton Bay Fan Component” driver for the fan child device. I was going to ask Hubitat to implement a “Fan Component” driver but found this one while poking around and it seems to work well. If you have included the device already before updating the driver to today’s version you can:

  1. Update the main LZW36 driver in Hubitat. You can use the Hubitat Package Manager to do this or use the “Import” button from inside the page that displays the driver code.
  2. Select the Fan child device and change it’s driver to the Hampton Bay one.

When I did this is when my issues seemed to start. Might be a coincidence.https://community.inovelli.com/t/lzw36-issues-local-control-stops-working-after-adding-switch/3873/12 Is where I have tried to explain @EricM_Inovelli.

The main LZW36 driver remains the Inovelli one and only the child devices use the Hampton Bay ones?

Correct

This page needs to be updated. Says driver coming soon.

https://support.inovelli.com/portal/kb/articles/hubitat-device-drivers

I think that made it worse. Now after a breaker flip to reconnect only a couple button presses causes a disconnect. Before it would take quite a while. Doesn’t look like I can change back to the Inovelli child devices either.

Change the child device driver to the generic component dimmer. This has worked for me at least better than the Hampton bay driver

1 Like

I’ll give that a try.

1 Like

Done, thanks for the heads up!

1 Like

One minor bug:

When turning the fan on or off from the physical switch, the “speed” state in the child device is not updated, only the “switch” state. Since the Dashboard tile relies on that attribute, it doesn’t reflect the state of the fan. Sending a digital on/off to the child device does toggle both attributes.

1 Like

Sorry about that. This should be fixed in the latest driver.

Tested this change… almost fixed except for the “off” state (it’s falling through to the else value of “high”). I made this change on line 241 to resolve it. Limited testing seems to work for me!

            if (cmd.value == 0) {
                childDevice.sendEvent(name: "speed", value: "off")
            } else if (cmd.value == 1) {

Edit: Alternatively, perhaps the default else state should be “off”?

Yeah, I meant to have the final else statement update the status to “off”. I fixed it last night. Thanks for the heads up.

1 Like

For the record, how many child devices should be present? Right now I have 4 which doesn’t seem correct (two for Fan and two for Light). Two get automatically populated when adding device (non-removable). Then an additional two show up after changing the default driver to the inovelli supplied driver (removable).

Running 1.36 firmware and using Hubitat.

Just 2, I’d suggest removing the Fan and Light objects, although test them first to make sure on/off works in the other two objects.

The two items named “Fan” and “Light” are non removable. I’ve removed the switch entirely and added again only to get the same behavior (4 child devices). If I remove the other two they eventually automatically show up again.

All 4 child devices correctly control the switch, but then the physical switch un-syncs and requires the air gap be pulled. I’m monitoring the forums for that other problem.

*Edit: appears there are others with the same issue here: LZW36 Creates fan & light automatically

Just wanted to follow up here as it looks like it was solved in your linked thread: LZW36 Creates fan & light automatically

Thanks for bringing this to our attention!

2 Likes

Is it correct to leave the light child device as a Generic Component Dimmer or should that be changed to the Hampton Bay Light Component?

Thanks,

Stuart

You should leave it as the Generic Component Dimmer driver.