Converted Stove Hood Fan and Light to Zigbee Smart Control

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:

  1. Makergroup 12v Power Supply Driver IP67 - 120v to 12v - $12
  2. Yitouniu Zigbee 4Ch DC7-32V USB 5V Relay Smart Switch Module (same as MHCOZY, but it comes with a case) - $24
  3. Ururtm 1 Channel DC 12V-24V 100/240V Dry Contact Zigbee Smart Relay Switch - $15
  4. 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.

FanHoodOriginal

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:
StoveHoodSmart

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:

Fan Hood Controller App

Fan Hood 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.

17 Likes

Interesting.. - What I really want, is the ability to automatically start the hood fan, when the range top (gas) is on, and then turn if off X mins after all the burners are off. - I can see several possible paths to controlling the fan (your work above - but my hood fan is integrated into MWave base).

The real problem/unsolved mystery, is how to sense when a burner is on. - I really don't want to mess to much with a gas stove top (drilling holes, routing wires, sensors, etc) - given safety codes, and IR sensors seem problematic, etc. - So that's my major sticking point before attempting something similar (and your work above is very helpful in that regard. - So Thx!)

Maybe use a temperature sensor (or old contact/motion sensor that reports temperature) and mount that under the range hood?

Same, I've been thinking about how to tie into the stove burners, the oven is easier since it sends 120v to the oven igniter that stays on the whole time the oven is on, so I could use the same relay I used for the light to sense the 120v for oven on to get a Zigbee signal for that. The burners just get lit and nothing electrical is turned on to sense that it is on. I would need a temp probe near each burner or something.

I saw a sensor that could be installed under the knobs a few years ago - I believe they were made by Honeywell at the time and worked over a proprietary wireless protocol- and it gave me hope we’d eventually see something more mainstream. In searching the web now, it appears 2gig is making them for their panels.

Since your + and - buttons are now disconnected, I wonder if you could tie them to contact (or perhaps digital or ADC input) sensors (Shelly uni perhaps) to regain local controls. I love making dumb “things” smart, but my goal is always to retain local controls when possible (WAF).

In either case, nice work and great write up! Oddly enough, the hood fan/light is next on my list for my camper. In my case a bit easier - single speed fan, push button controls, and all 12V. I’ll likely use a zen17 - connect the switches to the inputs and the loads to the outputs.

I didn't think of that... the knobs have potential as a trigger device.

If the local touch controls were actually good, I'd be more interested in retaining them. There is crazy logic built into the control panel, so ultimately it just sends the signals for fan on/off/speed and light the stupid way it was designed to do it. Plus the touch controls sometimes just don't want to respond for some reason.

This is the strange way the fan hood works:

Turn on Fan:
Press Hood Power On. Press + for high, - for Low, then +/- to get to medium.
If Hood in standby mode, you must press standby again to start fan, not power or +/-

Turn off Fan:
Press Hood power twice, this will also shut off the light with hood power.
Or, press hood power once, and you get a 1 minute countdown timer, then it shuts down the hood and the light. To adjust the timer, wait with + held to count through minutes.
Or, press the blue button to put the hood in standby mode. The light will stay on but the fan turns off. Then +/- will not restart the fan, you have to hit the blue button again to get out of standby. If you don't realize the hood is in standby mode and press +/-, those do nothing, and if you press power while in standby, the hood shuts down and you have to power it back on again, then hit + or - to get the fan on. Standby mode tripps up everyone for some reason so it never really got used, of course, neither did the power button, which was the issue to start with.

I really don't think I want those controls back. The hood stays off now, as the light button on the panel works with the hood power off, so I will just never "power on" the hood again. The switch doubleTap usage was free and handy, but the best would still be a four button scene switch, so everything is done with one tap, including turning on directly to medium. That would be much better than the original controls.

Edit:
Funny thing is, there are four literal physical buttons on the relay board, but they are inside the hood and not accessible. I couldn't find a good place on the hood to make exterior buttons to press the relay buttons through the metal.

Not sure if it would work, but it might:

Infrared motion sensor. While it is designed for a different purpose, a flame from a burner should be extremely bright (in infrared spectrum). Not sure about movement itself.

It might be possible to install one or more relatively close to the cooktop in a such way so only burners are inside its FOV.

Needs some "field" experiments to check the idea.

1 Like

I was thinking motion sensors, but I was thinking just a view from over the hood. If anyone has put a pan on the stove, the fan come on.

I also took off the front panel behind the knobs. There is a circuit that goes through each burner valve that turns on the infighter when in the lighter position. Need more time to test, but I'm thinking if I could sense the circuit is active from any of the knobs closing the circuit to light a burner, and I could trigger an automation from that. Need to check if I can tap into the 120V being turned on before the igniter transformer sends the high voltage to the igniters.

"A stove burner igniter typically operates on a high voltage ranging from 800 volts to several thousand volts due to the piezoelectric effect used to generate the spark, although the power source feeding the igniter itself is usually standard 120 volts AC which is then transformed into a high voltage by the igniter's internal circuitry"

If yours is like mine, the cooktop has a corded plug for the igniter. Perhaps a smart outlet with power monitoring can sense when the igniter is energized. That said, what do you do once ignited? How do you know it’s been turned off?

Edit: I’m still liking the idea of a magnet inside the burner knobs. Perhaps daisy chain reed switches underneath the control/knob panel/surface and connect the group of sensors to a single smart sensor. I’m guessing you just want to know IF a burner is on, not which burner is on.

1 Like

I would rely on the auto off timer to turn it off. I don't think I would want it to go off directly, as the oven could still be hot. Maybe off with burners only,but then there would need to be a check if the oven was on.

Not high on my project list, but I may mess with a contact sensor magnet in the knob this weekend, and see if I can get it to trigger a contact sensor behind the panel. The panel is metal, but there are large holes behind the knobs.

I got my Zemismart 4 button Zigbee scene switch today, it works fine with the app as it is written, I just went into the app settings and added the optional device I had left for it. Much easier to control the fan now, having a direct button for all speeds and off. I labeled the buttons, and I put it on the side of the cabinet next to the stove. It is white like like the cabinet, so it is hardly noticeable.

I'm feeling that the auto turn-on isn't so necessary now. If people were forgetting to turn the fan on when cooking, that would be an issue to fix, but that has not been an issue. As it is now, with the scene buttons, I'm not sure there is much point for auto-on given that it is so easy to turn on now, even easier than the original controls.

Just want to say how cool this project looks, really impressed. :slight_smile:

1 Like

Thanks! This fan being left on issue had been bugging me for about a year now, I finally decided it was time to find a solution.

2 Likes

I meant if your using the igniter to monitor when the cooktop is turned on (whether tapping into the 120v ckt or using a power monitor plug), i imagine once the burners are burning and you move past the igniter position, the 120v load goes to zero. At that point, how would you detect if the burner is then turned off?

I may take a look at the 2Gig device and see if I can use the assembly and just connect (4) of them to a zwave contact sensor. Might be easier than trying to pick up a magnet through they (metal?) panel. Also not high on my priority list… but it’s been on my list to figure out for about a decade, I guess.

Yeah, it was my original goal so it has me thinking still. My original idea was to get a Zigbee temp sensor, and put it just under the hood but not inside it, and I would just check the temperature compared to the wall sensor about eight feet away. I thought maybe a two degree comparative rise could tell me even if a burner was on, with it being right above the stove. I don't mind the fan running if the oven is still hot, but off trigger could be a larger comparative difference when temps are falling, like 20 degrees or more.

Funny thing is, I never tested it to see if it is practical. Maybe even use a Zigbee sensor with a probe to get most of the sensor out of sight.

I have a temp sensor laying around, I think I will see how practical that idea is. I'm thinking with air currents it may not sense a single burner on low. After taking the front panel off on my stove, I realized it is a major undertaking to get the top off, unlike other stoves where it lifts off for cleaning. So getting under the burners is already out for me, so it is either on the dials somehow or with temperature changes.

I run my bathroom fan with two humidity sensors in a similar way, with the other sensor in the next room to compare to.