A burst supply line or a slow drip behind the washer can run for hours before anyone notices. This recipe turns your water leak sensors into an instant alert: the second any of them detects water, the automation sends a push notification that names the sensor that tripped, so you know exactly where to look before the damage spreads.
It is built around the IKEA KLIPPBOK water leak sensor, which pairs over Matter and is cheap enough to place at every at-risk spot in the home. The recipe is not locked to it, though. Any water leak sensor Home Assistant exposes can fill the role, and you can mix brands freely.
How it works
During install, Selora AI generates a single Home Assistant automation from the leak sensors you pick: under sinks, behind toilets, by the water heater, the washing machine, and the sump pit. From then on the automation runs entirely in Home Assistant, with no dependency on Selora AI. It triggers whenever any one of those sensors reports water and names the sensor that tripped, so “Water detected by Under kitchen sink” reaches your phone the moment it happens, day or night.
Because the automation watches each sensor independently, adding more coverage is just a matter of selecting more sensors and reinstalling. There is nothing to wire together by hand.
Announcing on a speaker
A push notification is easy to miss if your phone is on silent or across the house. During install you can optionally pick one or more speakers, and the same warning is announced out loud over text to speech in addition to the notification. Leave the speaker selection empty and the recipe stays notification-only.
To add or change the speakers later, reinstall the recipe and adjust the speaker selection.
Placement tips
Put each sensor at the lowest point where water would pool first. A leak sensor flat on the floor under a sink catches a drip long before it reaches the cabinet edge. Battery-powered models keep reporting through an internet outage, which matters for a sensor whose whole job is to fire during an emergency.
Files Selora AI's pipeline reads to install this recipe. The manifest declares roles, inputs, and integrations; the package files are Jinja-templated YAML applied to Home Assistant.
# Water Leak Alert — notify the moment any water leak sensor goes wet,
# with an optional spoken announcement on the household speakers.
#
# The recipe resolves one multi-select role, ``leak_sensors``, against
# the homeowner's water leak sensors (IKEA KLIPPBOK and friends register
# as ``binary_sensor`` entities with device_class ``moisture``). A single
# automation triggers on any of them going wet and sends a push
# notification naming the sensor that tripped.
#
# Speaker announcement is opt-in: the ``announce_speakers`` role is
# optional. Pick one or more media players and the automation also speaks
# the alert over TTS; leave it empty and the recipe is notification-only.
slug: water-leak-alert
version: 1.0.0
title: Water Leak Alert
tagline: The second a water leak sensor goes wet, get a push notification that names the spot, and optionally hear it called out on your speakers.
description: >-
Watches every water leak sensor you select and fires the moment any of
them detects water. Sends a push notification that names the sensor that
tripped so you know where to look. Add one or more speakers and the same
alert is announced over TTS. Built around the IKEA KLIPPBOK water leak
sensor, but works with any leak sensor Home Assistant exposes.
author: Selora AI
released: "2026-06-26"
tags: [safety, water-leak, alerts]
roles:
# Water leak sensors — multi-select so the homeowner can cover every
# at-risk spot (under sinks, water heater, washer, sump pit) with one
# recipe. ``binary_sensor`` + device_class ``moisture`` is how leak
# sensors register in HA; the IKEA KLIPPBOK (Matter over Thread)
# surfaces exactly this. min_count 1: a leak recipe with no sensors
# has nothing to watch, so the wizard requires at least one.
- id: leak_sensors
title: Water leak sensors
kind: binary_sensor
device_class: moisture
min_count: 1
selection: required
description: >-
Every water leak sensor you want watched. Pick each one covering an
at-risk spot: under sinks, behind toilets, by the water heater,
washing machine, and sump pump. The IKEA KLIPPBOK is the suggested
model, but any leak sensor Home Assistant reports works.
# Announcement speakers — optional. When the homeowner picks at least
# one media player, the leak automation also speaks the alert over TTS.
# Leave empty and the recipe is push-notification-only. Multi-select so
# the announcement can fan out across whole-home speakers.
- id: announce_speakers
title: Announcement speakers
kind: media_player
min_count: 0
selection: required
description: >-
Optional. Speakers that announce the leak out loud over TTS in
addition to the push notification. Pick the media players you want
included, or leave this empty to be notified on your phone only.
package_files:
- package/automations/leak_alert.yaml.j2
{# Water Leak Alert — fire the moment any configured leak sensor goes
wet. Sends a push notification naming the sensor that tripped, and,
when the homeowner picked speakers, announces the same alert over TTS.
Moisture binary_sensors report ``on`` when wet, so the trigger fans
out one state trigger per sensor with ``to: "on"``. trigger.to_state
names the specific sensor so the alert says where the water is.
mode: queued so two sensors going wet at once each get handled rather
than the second being dropped while the first is in flight.
Every template stays on a single quoted line so the renderer's
trim_blocks can't swallow following YAML at an end-of-line tag. #}
automation:
- id: selora_recipe_{{ slug | replace('-', '_') }}_leak_detected
alias: "Water Leak Alert — leak detected"
description: >-
When any configured water leak sensor detects water, send a push
notification and, if speakers are configured, announce the leak.
mode: queued
max: 10
trigger:
{% for sensor in roles.leak_sensors %}
- platform: state
entity_id: {{ sensor }}
to: "on"
{% endfor %}
action:
# Name the sensor that tripped so the alert points at the spot.
- variables:
source: "{% raw %}{{ trigger.to_state.name | default(trigger.entity_id, true) }}{% endraw %}"
# 1. Push notification to every device registered with HA.
- service: notify.notify
data:
title: "Water leak detected"
message: "{% raw %}Water detected by {{ source }}. Check it right away.{% endraw %}"
{% if roles.announce_speakers %}
# 2. Optional spoken announcement on the configured speakers.
- service: tts.cloud_say
data:
entity_id:
{% for player in roles.announce_speakers %}
- {{ player }}
{% endfor %}
message: "{% raw %}Warning. Water leak detected by {{ source }}. Check it right away.{% endraw %}"
{% endif %}
Author-maintained release notes. Each release of the recipe lists what changed.
Changelog
v1.0.0 - 2026-06-26
Initial release.
- Watches every water leak sensor you select and fires the moment any of them detects water.
- Sends a push notification that names the sensor that tripped.
- Optionally announces the alert over TTS on one or more speakers; leave the speaker selection empty to stay notification-only.
- Built around the IKEA KLIPPBOK water leak sensor, but works with any leak sensor Home Assistant exposes.