Water damage is the most common and expensive homeowner insurance claim, averaging over $12,000 per incident. A $15 Zigbee sensor and a Home Assistant automation can detect a leak in seconds and shut off your water before the damage spreads. This guide covers the best sensors, where to place them, how to set up automatic valve shutoff, and the automations that tie it all together.
Jump to a section
Here is a stat that should make you uncomfortable: the average water damage claim costs $12,514, and about 1 in 50 homeowners file one every year. A slow drip behind a washing machine can go unnoticed for weeks, rotting subfloors and breeding mold. A burst pipe while you are on vacation? That is a full renovation.
Commercial water leak detection systems (like Flo by Moen or Phyn) charge $200+ for the device and $5 to $10/month for monitoring. They work fine, but they lock you into a subscription, run through the cloud, and give you limited automation options.
With Home Assistant, you can build a better system for a fraction of the cost. Zigbee sensors cost $12 to $20 each, a smart shutoff valve runs $80 to $150, and all the brains (automations, notifications, logging) come free with your existing HA setup. No subscriptions. No cloud dependency. And you can integrate it with the rest of your smart home: turn on lights when a leak is detected, announce it on your speakers, send photos from a nearby camera.
Zigbee sensors report moisture in under 2 seconds. That is fast enough to catch a leak before it spreads beyond the immediate area.
Pair sensors with a smart valve and Home Assistant can cut your water supply automatically. No human intervention needed.
Everything runs on your local network. No cloud, no subscription, no internet needed. Your leak detection works even during an outage.
Many insurance companies offer 5 to 10% discounts for homes with water leak detection and automatic shutoff. The system can pay for itself.
There are three main protocols for leak sensors: Zigbee, Z-Wave, and DIY (ESP32 with ESPHome). Each has trade-offs. Here is what actually works well in 2026.
The default recommendation in the HA community. About $15, CR2032 battery lasts 2+ years, reports instantly via Zigbee. Works with ZHA and Zigbee2MQTT out of the box. Tiny form factor fits under sinks and behind appliances. Also available as the older (cheaper) non-T1 version.
Protocol: Zigbee 3.0 | Battery: CR2032 (~2 years) | Price: ~$15
A solid budget alternative. Around $12, works great with Zigbee2MQTT. Has an audible alarm built into the sensor itself, which is handy as a backup if HA is down. Battery life is slightly shorter than Aqara at around 18 months.
Protocol: Zigbee 3.0 | Battery: CR2032 (~18 months) | Price: ~$12
The cheapest option at about $10. The newer SNZB-05P adds a longer cable probe so you can place the sensor in tight spots. Detection reliability is comparable to Aqara. Works well with both ZHA and Zigbee2MQTT.
Protocol: Zigbee 3.0 | Battery: CR2032 (~2 years) | Price: ~$10
The best Z-Wave option. Incredibly small, 3-year battery life, temperature reporting as a bonus. Zooz is known for excellent Z-Wave JS compatibility. If you already have a Z-Wave network, this is the one to get.
Protocol: Z-Wave 700 | Battery: CR2032 (~3 years) | Price: ~$25
A premium option with an external probe cable and built-in buzzer. The probe can reach into tight spaces while the main unit stays accessible. More expensive at around $40, but the cable probe adds real flexibility in tricky installations.
Protocol: Z-Wave 700 | Battery: CR123A (~2 years) | Price: ~$40
For the tinkerers. An ESP32 dev board ($4) plus a simple moisture/water detection probe ($1) running ESPHome firmware. You get analog moisture readings (not just wet/dry), Wi-Fi connectivity, and you can add temperature, humidity, or other sensors on the same board. The downside: it needs USB power, so it is not as flexible for placement as battery sensors. Best for locations near an outlet, like under a sink or next to a water heater.
Protocol: Wi-Fi (ESPHome) | Power: USB (5V) | Price: ~$5 in parts
Here is a minimal ESPHome config for a water leak sensor:
binary_sensor:
- platform: gpio
pin:
number: GPIO32
mode: INPUT_PULLUP
name: "Laundry Room Leak"
device_class: moisture
filters:
- delayed_on: 500ms
- delayed_off: 30s| Sensor | Protocol | Battery | Price | Best For |
|---|---|---|---|---|
| Aqara T1 | Zigbee | ~2 years | ~$15 | Most people |
| Third Reality | Zigbee | ~18 months | ~$12 | Budget + built-in alarm |
| SONOFF SNZB-05P | Zigbee | ~2 years | ~$10 | Cheapest with cable probe |
| Zooz ZSE42 | Z-Wave | ~3 years | ~$25 | Z-Wave networks |
| Aeotec 7 Pro | Z-Wave | ~2 years | ~$40 | External probe, premium |
| ESP32 DIY | Wi-Fi | USB powered | ~$5 | Tinkerers, near outlets |
A leak sensor without a shutoff valve is like a smoke detector without a fire extinguisher. It tells you there is a problem, but you still need to run to the basement to fix it. A smart shutoff valve paired with Home Assistant can cut your water supply within seconds of a leak detection, even when you are not home.
Clamps onto your existing ball valve (no plumbing changes needed). Z-Wave 700, reports valve position, and includes a manual override lever. About $90. The most popular choice in the HA community for a reason: it just works.
Another clamp-on Z-Wave valve. Slightly cheaper at about $70. Works well, though some users report it needs occasional recalibration. Compatible with most standard quarter-turn ball valves.
The DIY approach: buy a motorized ball valve ($20 to $40 on Amazon/AliExpress) and wire it to a Shelly Plus 1 relay. Total cost around $35 to $55. Requires basic wiring knowledge, but gives you a Wi-Fi controlled valve at half the price of the Z-Wave options.
Install the shutoff valve on your main water supply line, right after the meter or where it enters your house. This gives you a single point to cut off all water. If you rent or cannot modify plumbing, clamp-on options like the Zooz ZAC36 are perfect because they require zero plumbing changes. You literally clamp it onto your existing ball valve handle.
Strategic placement is the difference between catching a leak in time and discovering water damage weeks later. Here are the priority locations, ranked by risk.
HIGH RISK
Garbage disposals, supply lines, and dishwasher connections make this the most common leak source. Place the sensor flat on the cabinet floor, directly under the P-trap.
HIGH RISK
Rubber supply hoses degrade over time and burst without warning. This is one of the most catastrophic leak locations because it involves pressurized water. Place the sensor on the floor behind or beside the machine.
HIGH RISK
Water heaters have a 10 to 15 year lifespan. When they fail, they dump 40 to 80 gallons of water. Place the sensor on the floor at the base, near the drain pan if you have one.
MEDIUM RISK
Supply and drain connections can loosen. Place a sensor on the floor near the front of the dishwasher where water would pool first if the door seal fails.
MEDIUM RISK
Toilet wax seals fail, supply valves corrode, and sink drains loosen. Place sensors under each bathroom vanity and behind toilets. Use the SONOFF SNZB-05P with its cable probe to reach tight spots.
MEDIUM RISK
If your sump pump fails during heavy rain, you want to know immediately. Place a sensor near the sump pit, raised slightly on a small platform (a bottle cap works) so it does not trigger from normal condensation.
Apartment (1 bathroom): 3 to 4 sensors (kitchen, bathroom, washing machine, water heater)
Average home (2 bathrooms): 6 to 8 sensors (add dishwasher, second bathroom, basement)
Large home (3+ bathrooms): 10 to 12 sensors (every fixture, HVAC condensate line, ice maker)
At $10 to $15 per Zigbee sensor, full coverage for an average home costs $60 to $120. That is less than 1% of the average water damage claim.
The setup process depends on your protocol, but all paths get you to the same result: a binary sensor in HA that reads "dry" or "wet."
binary_sensor.water_leak entity with device class "moisture."binary_sensor.kitchen_sink_leak. You will thank yourself when you have 8 sensors and an alarm goes off at 3 AM.Once you have multiple sensors, create a group so your automations can trigger on any leak:
# configuration.yaml
binary_sensor:
- platform: group
name: "Any Water Leak"
unique_id: water_leak_group
device_class: moisture
entities:
- binary_sensor.kitchen_sink_leak
- binary_sensor.washing_machine_leak
- binary_sensor.water_heater_leak
- binary_sensor.bathroom_vanity_leak
- binary_sensor.basement_leak Now binary_sensor.any_water_leak turns "wet" if any single sensor detects water. One trigger for all your automations.
The most important automation. When any leak sensor triggers, shut off the main water valve immediately and send a critical notification.
automation:
- alias: "Water Leak: Emergency Shutoff"
trigger:
- platform: state
entity_id: binary_sensor.any_water_leak
to: "on"
action:
- service: switch.turn_off
target:
entity_id: switch.main_water_valve
- service: notify.mobile_app
data:
title: "๐จ WATER LEAK DETECTED"
message: >
Water detected by {{ trigger.to_state.name }}.
Main water valve has been shut off automatically.
data:
priority: high
channel: alarm
push:
sound:
name: default
critical: 1
volume: 1.0If you are home, a phone notification might not be enough. Announce the leak on every speaker in the house.
automation:
- alias: "Water Leak: Speaker Alert"
trigger:
- platform: state
entity_id: binary_sensor.any_water_leak
to: "on"
condition:
- condition: state
entity_id: person.your_name
state: "home"
action:
- service: tts.speak
target:
entity_id: media_player.all_speakers
data:
message: >
Warning. Water leak detected near the
{{ trigger.to_state.name | replace('_', ' ') }}.
Check immediately.If you have a camera near the water heater or basement, grab a snapshot when a leak is detected. Helpful for insurance documentation and assessing the severity before you get home.
automation:
- alias: "Water Leak: Camera Snapshot"
trigger:
- platform: state
entity_id: binary_sensor.basement_leak
to: "on"
action:
- service: camera.snapshot
target:
entity_id: camera.basement
data:
filename: "/config/www/leak_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
- service: notify.mobile_app
data:
title: "Basement Leak Photo"
message: "Snapshot taken at {{ now().strftime('%H:%M') }}"
data:
image: "/local/leak_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"A dead sensor cannot detect anything. Get a heads up when any leak sensor battery drops below 20%.
automation:
- alias: "Water Leak: Low Battery Alert"
trigger:
- platform: numeric_state
entity_id:
- sensor.kitchen_sink_leak_battery
- sensor.washing_machine_leak_battery
- sensor.water_heater_leak_battery
below: 20
action:
- service: notify.mobile_app
data:
title: "๐ Leak Sensor Battery Low"
message: >
{{ trigger.to_state.name }} is at
{{ trigger.to_state.state }}%.
Replace the CR2032 battery soon.When everyone is away for more than 24 hours, automatically shut the main valve and send a confirmation. Reopens when someone comes home.
automation:
- alias: "Vacation: Shut Off Water"
trigger:
- platform: state
entity_id: group.family
to: "not_home"
for:
hours: 24
action:
- service: switch.turn_off
target:
entity_id: switch.main_water_valve
- service: notify.mobile_app
data:
title: "๐๏ธ Vacation Mode Active"
message: >
Nobody has been home for 24 hours.
Main water valve shut off as a precaution.
- alias: "Vacation: Restore Water"
trigger:
- platform: state
entity_id: group.family
to: "home"
condition:
- condition: state
entity_id: switch.main_water_valve
state: "off"
action:
- service: switch.turn_on
target:
entity_id: switch.main_water_valve
- service: notify.mobile_app
data:
title: "Welcome Home"
message: "Main water valve has been turned back on."Set a monthly reminder to test each sensor with a damp paper towel. It takes 2 minutes and confirms that the sensor, Zigbee mesh, and automations are all working. Create a recurring HA notification to remind you.
While you are adding leak sensors, upgrade your washing machine supply hoses to braided stainless steel. Rubber hoses are the number one cause of catastrophic home water damage. Braided hoses cost $15 and last 10+ years.
Add your leak sensors to the History panel and enable long-term statistics. If a sensor keeps triggering briefly in the same location, you might have condensation or a slow drip that needs attention before it becomes a real problem.
Leak sensors are typically in hard-to-reach spots (under sinks, behind appliances). Make sure your Zigbee mesh has nearby router devices (smart plugs or powered sensors) so the signal can reach. A weak signal means delayed or missed alerts.
Call your home insurance company and ask about water leak detection discounts. Many insurers offer 5 to 10% off your premium if you have automatic shutoff valves and leak detection. Some require certification or specific equipment, so ask before you buy.
In humid basements, condensation can trigger false alarms. Raise sensors slightly (a bottle cap works) or add a delayed_on: 5s filter in your automation. For sump pump areas, position the sensor above the normal water line.
Here is what a complete water leak detection system costs with Home Assistant, assuming you already have a Zigbee coordinator.
STARTER
3x Aqara sensors (kitchen, washing machine, water heater). No valve shutoff. Notification-only system. Good for renters or apartments.
RECOMMENDED
6x Aqara sensors + Zooz ZAC36 shutoff valve. Full coverage for a 2-bathroom home with automatic shutoff. The sweet spot for most homeowners.
COMPLETE
10x sensors (mix of Aqara + SONOFF with cable probes) + Zooz valve + ESPHome flow sensor on the main line. Detects leaks AND unusual water usage patterns.
Compare that to Flo by Moen ($250 device + $60/year subscription) or Phyn Plus ($300 device + $60/year), and the Home Assistant approach saves you money every year after the first.
The Aqara Water Leak Sensor T1 is the most popular choice. It costs around $15, connects via Zigbee, has a 2-year battery life, and is detected instantly by Home Assistant through ZHA or Zigbee2MQTT. For Z-Wave users, the Zooz ZSE42 is excellent. For DIY enthusiasts, an ESP32 with a moisture probe and ESPHome firmware costs under $5.
Yes. Pair a smart shutoff valve (like the Zooz ZAC36 or a Shelly Plus 1 wired to a motorized ball valve) with an automation that triggers when any leak sensor detects water. The whole system can react in under 2 seconds, shutting off your main water supply and sending you a notification.
Prioritize high-risk areas: under the kitchen sink, behind the washing machine, near the water heater, next to the dishwasher, around toilets, and in the basement near the sump pump. Most homes need 5 to 8 sensors for solid coverage.
Yes. Zigbee and Z-Wave sensors communicate directly with your Home Assistant hub over your local network. No internet or cloud connection needed. Your leak detection keeps working even during an internet outage.
Most Zigbee leak sensors last 2 to 3 years on a single CR2032 coin cell. Z-Wave sensors like the Zooz ZSE42 last about 3 years. Home Assistant tracks battery levels so you can set up alerts when they drop below 20%.
Not sure which sensors work with your current setup? Run our free scan and we will tell you exactly what you need and how to set it up.