Hey everyone, I wanted to share my recent DIY smart kettle project. It was a fun way to add some smart functionality to a regular household appliance without breaking the bank. Here’s how I did it and what I learned along the way!
The Setup
I started with a basic, non-smart kettle from the supermarket. The key was finding one with a physical switch that stays on when the power is off. I paired this with a TP-Link Kasa smart plug, which handles high power devices like kettles (up to 13A in the UK). The plug also has energy monitoring, which was perfect for detecting when the kettle was boiling.
The Script
I used Home Assistant to automate the process. The script does a few things:
- Turns on the smart plug when the kettle is needed.
- Checks if the kettle is drawing enough power to confirm it’s boiling.
- Notifies me once the water is ready or if there’s an issue.
- Turns off the plug after use to save energy.
Here’s a simplified version of the script:
yaml
alias: Boil Kettle
description: Boils the kettle with a notification once complete
sequence:
- service: switch.turn_on
data: entity_id: switch.kettle_plug - delay: seconds: 30
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.kettle_plug_amps
below: 10
sequence: - service: notify.pushover
data:
title: Kettle Error
message: The kettle did not start heating water when turned on. - service: switch.turn_off
data: entity_id: switch.kettle_plug
- condition: numeric_state
- default:
- wait_for_trigger:
- platform: numeric_state
entity_id: sensor.kettle_plug_amps
below: 10
timeout: minutes: 2
continue_on_timeout: true
- platform: numeric_state
- choose:
- conditions:
- condition: template
value_template: “{{ wait.completed }}”
sequence: - service: notify.pushover
data:
title: Kettle Finished
message: The kettle has finished boiling. - service: switch.turn_off
data: entity_id: switch.kettle_plug
- condition: template
- default:
- service: notify.pushover
data:
title: Kettle Error
message: Timed out waiting for kettle to finish boiling. Something may be wrong. - service: switch.turn_off
data: entity_id: switch.kettle_plug
- service: notify.pushover
- conditions:
- wait_for_trigger:
- conditions:
Tips for Success
- Safety First: Always ensure the kettle has water and the lid is on before turning it on.
- Energy Monitoring: The smart plug’s energy monitoring was key for detecting when the kettle was boiling.
- Script Flexibility: This script can be adapted for other appliances that use a lot of power but don’t have smart features.
Expansion Ideas
- Brewing Timer: Add a timer to notify you when to take the tea bag out.
- Boiling Time Tracking: Track average boiling times to estimate how long it will take based on water level.
This project was a great way to experiment with smart home automation on a budget. If anyone has questions or wants to share their own DIY projects, I’d love to hear about them! ![]()
![]()