Water Leak Alert - Multi-Sensor, Mobile Push, TTS with Presence Check

This blueprint monitors one or more water leak sensors and fires a coordinated alert the moment moisture is detected: push notifications to your phones, optional TTS playback on your speakers (only if someone is home), and a custom actions slot for anything else you want to trigger. This is based on the great work done by Bekkenes, but I modified it to support multiple leak sensors.

Everything is configured through the UI — no YAML editing required after import.


What it does

  • Monitors multiple leak sensors: one automation covers your whole house
  • Sends push notifications: to any Home Assistant companion app devices you select, with the triggering sensor’s friendly name in the title and message
  • Critical notification toggle: bypasses Do Not Disturb on iOS (critical alert, full volume) and Android (alarm stream, high priority) with a single checkbox
  • Presence-aware TTS: plays an audio warning on selected media players only if at least one resident is home; sensor name is prepended automatically
  • TTS engine fallback: defaults to Nabu Casa cloud TTS but automatically falls back to the built-in tts.google_translate if unavailable
  • Custom actions slot: run anything else on trigger (flash lights, close a water valve, etc.) with access to {{ sensor_name }}, {{ full_tts_message }}, and {{ is_critical }} in any template field

Required

  • One or more binary sensors with device class moisture (any Z-Wave, Zigbee, or Wi-Fi leak sensor supported by HA)
  • Home Assistant Companion App installed on any phones you want to notify
  • A media player entity for TTS playback (HomePod, Google Home, Alexa, HA Voice Preview Edition, etc.)

Optional

  • Nabu Casa subscription for cloud TTS (falls back to Google Translate TTS automatically if not available)
  • Person entities configured for presence detection

Import

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Hi there,

there are two error notifications in my log:

Error rendering variables: UndefinedError: ‘dict object’ has no attribute ‘to_state’
Template variable error: ‘dict object’ has no attribute ‘to_state’ when rendering ‘{{ trigger.to_state.name }}’

Any ideas?