I thought I would share this project, in case anyone wants to do something similar.
Purpose:
I had a recurring problem with people leaving the Stove Hood Fan on after using it, which is an issue in cold climates when the heat is on, as it sucks the heat out of the house. It is also an issue with AC in the hot summer. I've woken up to the fan being left on high all night several times when around zero outside, as the heat continues to run. This puts an end to that happening!
Note: The hood has an off timer, but it has to be manually set every time after the fan is turned on, and nobody uses it. It is also a pain to use and set the timer with +/- buttons. I needed a way to force the fan off after a time period without anyone doing anything.
Parts:
- Makergroup 12v Power Supply Driver IP67 - 120v to 12v - $12
- Yitouniu Zigbee 4Ch DC7-32V USB 5V Relay Smart Switch Module (same as MHCOZY, but it comes with a case) - $24
- Ururtm 1 Channel DC 12V-24V 100/240V Dry Contact Zigbee Smart Relay Switch - $15
- Gebildet JD1912 Car Relay Harness 12V 40A 4-Pin - $8 for two ($4)
Total: $51
I thought it also would be nice to make the stove light on the hood smart as well, so it can be added to scenes to come on around dinner time when it is used, and also to turn it off so it does not get left on.
This was the original setup on my hood fan. A three speed motor with three speed circuits, and 12v LED lights, controlled from the hood board. The actual switches on the hood are touch controls that send signals to the hood controller board, so I had no real way to tap into those controls directly like a switch, but I can intercept the outputs to the fan and the light at the board.
To make it smart, I used the Zigbee Relay board for the Fan controller. There was no way to keep the fan controls on the Hood as physical controls, as if anything desyncs between the relays and the hood control switches, power could be sent to more than one fan speed circuit, possibly damaging the motor. I was fine with losing the local fan controls, and instead I'm using the doubleTap features of a smart switch near the stove that controls my island lights in the kitchen. As it was, the hood worked with + and - buttons, with + turning on high, and - turning on low, and then you use +/- to get to medium. I pretty much replicated that with the smart switch doubleTaps.
For the light, I tapped off of the 12v switched outlet on the hood board to now switch a 12v/120v relay, and then that switches the Zigbee switch relay device remote switch contacts, to turn on the lights, using an additional 12v transformer to power them. I also use the 12v transformer to run the relay board. This setup allows me to still use the touch control on the hood to control the light, which is handy.
I removed the speed control wires from the hood board, and attached them instead to the smart relays. I took advantage of the Zigbee board mode options to use the mode where when one relay is switched on, all others switch off. This allows for direct speed changing, without having to turn off another speed. I use the forth relay as an off trigger, as if I turn on the off relay, all the speed relays turn off automatically. This way I didn't have to put any of that logic into the controller app, so the board must be in that mode.
Here is the final wiring diagram:
Here is what it looks like actually installed in the hood:
Control
So now I needed to control it. I wrote a controller app that controls the fan speed using the relays, and it connects to a virtual fan driver for control as a device. The controller also uses a ZWave wall switch to use the doubleTap option to control the fan, as shown in the diagram. It works similar to the original controls; up/down to turn on high or low, and then up/down to change speeds or to turn the fan off.
Of course, I added an auto-off timer so that whenever the fan is turned on, it will start a timer to turn it off based on the number of minutes set. I actually put this in both the driver and controller app, so either one can be used. The advantage of the driver timer is that the auto off time is an attribute that can be changed by an automation if needed.
I also have been thinking about a 4 button scene switch to control this, so I wrote that into the controller as an optional device. Not tested yet, but it should work with a scene switch as well for direct control of low, med, high and off.
Here is the Driver page, it is really just a virtual fan device. Cycle Speed came with the Fan Control capability, but it is not used. This allows it be a fan device for automations, and for dashboard control of speeds.
Here is the App Setup Page (note you need to name your relays by speed to choose them, and use the right ones when connecting the wires):
Here are the links to the App and the Driver:
The light just uses the Generic Zigbee Outlet driver in Hubitat for the Zigbee switch relay, so it just becomes it own switch device like any other. The Generic Zigbee Switch driver spams an exception for no autoPoll() method available in the firmware, even though it works, so just use the Outlet driver.
I think this is a project many people could do if they are interested in this, with just some basic electrical knowledge needed.
Update: I fixed some issues with the driver auto off feature. I also added an option to add the stove light to the controller, with a preference to have it turn on when the fan is turned on if it the light is added to devices on the setup page.