Who needs smart fans when you have smart plugs?
A Smart Home Shortcut with Just One Metric
Our kitchen stove fan isn’t smart. It has physical buttons - one for the light, one for the fan, some for timers we never use. No Wi-Fi, no app, no voice control. Just a single power cord.
But what if we could make it smart - not by replacing it, but by watching how much power it draws?
That’s exactly what I did.
The Problem: Forgotten Lights and a Hard-to-Reach Switch
We’d often forget the light on the stove fan. The fan itself is loud - you know when it’s on. But the lights? Silent. So after cooking, we’d leave the kitchen, shut off all the house lights via automation or wall switch… and the stove fan lights would still be glowing.
The buttons to turn them off are on the underside of the fan, meaning you’d have to go back and reach up to shut them off. It’s not a huge deal - but it was annoying. Especially because it happened every day.
The Insight: Power Tells the Whole Story
The breakthrough was realizing the stove fan’s state - off, lights only, or lights + fan - is reflected entirely in the wattage it draws.
Here’s roughly how it breaks down:
- 0W → completely off
- ~10W → lights only
- ~100W → fan and lights
I didn’t need multiple sensors or button detectors. Just a smart plug with power monitoring, feeding live wattage into Home Assistant.
The Automation: All in One, Stateless, and Based on Watts
With the power data available as sensor.stove_fan_power
, I created a single automation using mode: restart
. That way, it never tracks state manually and always responds to the most recent changes. Mode restart is a nifty trick in HA to ensure that only one instance of the automation runs at any one point, this allows us to use delay timers, and cancel them (restart the script) if something happens that changes the action to take.
Here’s how it behaves:
- If it’s been on for 6 hours, we assume someone forgot it entirely - fan or lights - and shut it off.
- If power is low (<15W) and it’s been like that for 2 hours, it’s just the lights. We shut them off - useful when someone’s cleaning and forgets.
- If the fan turns off, we assume we’re done cooking. We wait 15 minutes (enough time to serve food or tidy up) and then shut the lights off.
All of this happens without any helpers, templates, or device-specific state. It’s just watts.
alias: stove fan automation
mode: restart
trigger:
- id: any_over_6h
platform: numeric_state
entity_id: sensor.stove_fan_power
above: 1
for: "06:00:00"
- id: light_over_2h
platform: numeric_state
entity_id: sensor.stove_fan_power
above: 1
for: "02:00:00"
- id: fan_stopped
platform: numeric_state
entity_id: sensor.stove_fan_power
below: 15
action:
- choose:
- conditions: "{{ trigger.id == 'any_over_6h' }}"
sequence:
- service: switch.turn_off
target:
entity_id: switch.stove_fan
- conditions:
- condition: template
value_template: "{{ trigger.id == 'light_over_2h' and states('sensor.stove_fan_power') | float < 15 }}"
sequence:
- service: switch.turn_off
target:
entity_id: switch.stove_fan
- conditions:
- condition: template
value_template: "{{ trigger.id == 'fan_stopped' and states('sensor.stove_fan_power') | float > 1 }}"
sequence:
- delay: "00:15:00"
- condition: numeric_state
entity_id: sensor.stove_fan_power
above: 1
- service: switch.turn_off
target:
entity_id: switch.stove_fan
A Tiny Companion Automation: Turn the Plug Back On
Now for the clever part: all this works by cutting power to the stove fan, which is safe in my case because it doesn’t auto-restart when power is restored. But I don’t want to manually turn the plug back on, or litter all my automations with “turn it back on” steps.
So I made one small automation that does this:
alias: stove fan auto-restore
trigger:
- platform: state
entity_id: switch.stove_fan
to: "off"
for: "00:00:01"
action:
- service: switch.turn_on
target:
entity_id: switch.stove_fan
Now any automation - this one or others - can turn it off briefly to “reset” the fan, and the system will take care of restoring power. It’s also configured in the plug itself to turn on automatically after a power outage.
Why This Works
This setup is low-tech and foolproof:
- No matter how the buttons on the unit are used, we only care about power.
- We detect everything from one single metric -
sensor.stove_fan_power
. - It’s resilient. Even if Home Assistant restarts, the plug still restores itself.
And now, we never leave the stove lights on. Amazing :).