Medidor de Consumo de Agua y Detector de Fugas con Home Assistant y ESPHome
La domótica no solo se trata de controlar luces o climatización, también puede ayudarnos a monitorear recursos vitales como el agua. En este artículo técnico aprenderás a crear un sistema completo de medición de consumo de agua y detección de fugas utilizando Home Assistant, ESPHome y un sensor de flujo económico.
El dispositivo que utilizo en el video es el siguiente: https://amzn.to/4j3UPdK
Opción compatible #:2 https://amzn.to/3GV7HFU
Otras opciones: https://amzn.to/3YLD5Na
Código utilizado en el video: https://nativodigital.org/codigo-utilizado-en-la-creacion-de-contador-de-consumo-de-agua/
En este video te explico cómo instalar ESPHome: https://www.youtube.com/watch?v=05wYJyRioy0
Componentes Necesarios
Para implementar este proyecto necesitarás los siguientes elementos:
- Sensor de flujo de agua: Un sensor de pulsos que detecta el paso de agua mediante una hélice interna
- Controlador ESP8266 o ESP32: Cualquiera de los dos es compatible con este proyecto
- Fuente de alimentación de 5V: Para alimentar tanto el ESP como el sensor
- Home Assistant con ESPHome instalado: Si aún no tienes ESPHome configurado, deberás instalarlo previamente
Funcionamiento del Sensor de Flujo
El sensor de flujo de agua funciona mediante un principio simple pero efectivo: contiene una hélice interna que gira cuando el agua pasa a través de él. Cada rotación genera pulsos eléctricos que son enviados al microcontrolador. La cantidad de pulsos por unidad de tiempo es proporcional al flujo de agua.
La mayoría de estos sensores generan aproximadamente 500 pulsos por litro de agua, lo que equivale a 2 mililitros por pulso. Sin embargo, este valor puede variar según el fabricante, por lo que es fundamental consultar la documentación técnica del sensor específico que utilices.
Consideraciones sobre Precisión
Es importante mencionar que estos sensores no son exactos al 100%. Tienen un margen de error que puede reducirse mediante calibración. El proceso de calibración consiste en hacer pasar exactamente un litro de agua por el sensor y contar los pulsos reales generados. Si el valor difiere de 500, puedes ajustar la fórmula de cálculo para mejorar la precisión.
Conexión del Hardware
El sensor de flujo de agua típicamente tiene tres cables con el siguiente esquema de conexión:
- Cable rojo: Alimentación de 5V (conectar al pin VIN o 5V del ESP)
- Cable negro: Tierra o GND (conectar a cualquier pin GND del ESP)
- Cable amarillo: Señal de pulsos (conectar a un pin digital, en este caso D2/GPIO4)
La alimentación de 5V se comparte entre el ESP8266 y el sensor. El cable de señal amarillo se conecta al pin D2 del ESP8266, que corresponde al GPIO4 en la nomenclatura interna. Este pin puede cambiarse a cualquier otro pin digital disponible, solo deberás ajustar la configuración en consecuencia.
Configuración en ESPHome
Una vez conectado el hardware, el siguiente paso es configurar el dispositivo en ESPHome. Accede al panel de ESPHome en Home Assistant y crea un nuevo dispositivo con un nombre descriptivo como “contador_de_agua”.
Sensor de Flujo Instantáneo
El primer sensor que configuraremos mide el flujo de agua en tiempo real, expresado en litros por minuto. Este sensor utiliza el componente pulse_counter de ESPHome:
sensor:
- platform: pulse_counter
pin: GPIO4
name: "Flujo de Agua"
id: flujo_de_agua
update_interval: 3s
unit_of_measurement: "L/min"
accuracy_decimals: 1
filters:
- lambda: return x / 500.0;
Desglosando esta configuración:
- platform: pulse_counter para contar pulsos
- pin: GPIO4 correspondiente al pin D2
- update_interval: 3 segundos entre actualizaciones a Home Assistant
- filters – lambda: Divide los pulsos entre 500 para convertir a litros
- accuracy_decimals: Un decimal de precisión
Sensores de Consumo Total
Para llevar un registro acumulativo del consumo, se agregan dos sensores adicionales basados en el componente integration:
sensor:
- platform: integration
name: "Total Agua Metros Cúbicos"
sensor: flujo_de_agua
time_unit: min
unit_of_measurement: "m³"
accuracy_decimals: 4
filters:
- lambda: return x / 1000.0;
- platform: integration
name: "Total Agua Litros"
sensor: flujo_de_agua
time_unit: min
unit_of_measurement: "L"
accuracy_decimals: 2
Estos sensores integran el flujo a lo largo del tiempo para calcular el volumen total consumido. El primero lo expresa en metros cúbicos (dividiendo entre 1000) con 4 decimales de precisión, mientras que el segundo lo muestra directamente en litros.
Creación de Contadores Periódicos
Los sensores de consumo total son históricos y nunca se reinician. Para obtener estadísticas por períodos específicos (día, semana, mes), utilizaremos la integración Utility Meter de Home Assistant.
Configuración de Utility Meter
Desde Configuración → Dispositivos y Servicios → Agregar Integración, busca “Utility Meter” y agrégalo. El proceso es el siguiente:
- Asigna un nombre descriptivo (ejemplo: “Consumo de Agua al Día”)
- Selecciona el sensor fuente (Total Agua Litros)
- Define el ciclo de facturación (diario, semanal, mensual, etc.)
- Confirma la creación
Puedes crear múltiples utility meters con diferentes ciclos para el mismo sensor. Por ejemplo:
- Consumo diario (ciclo: daily)
- Consumo semanal (ciclo: weekly)
- Consumo mensual (ciclo: monthly)
- Consumo anual (ciclo: yearly)
Estos contadores se reinician automáticamente al inicio de cada período, proporcionando estadísticas segmentadas sin perder el histórico total.
Detección de Fugas de Agua
Una de las funcionalidades más valiosas de este sistema es la capacidad de detectar fugas o consumos anormales. Sin embargo, es importante entender sus limitaciones.
Limitaciones del Sensor
Los sensores de flujo típicos tienen un rango de detección de 1 a 30 litros por minuto. Esto significa que:
- Fugas muy pequeñas (goteos lentos) no serán detectadas
- Solo se detectarán fugas con flujo superior a 1 L/min
- Para fugas menores se requieren sensores de humedad en puntos estratégicos
El sistema es efectivo para detectar llaves abiertas, tuberías rotas o electrodomésticos con mal funcionamiento.
Automatización de Detección
La detección se basa en identificar patrones de consumo anormales. Primero debes analizar el comportamiento normal de tu hogar. Por ejemplo, el consumo más prolongado suele ser durante duchas (10-15 minutos) o lavadoras (ciclos intermitentes).
Para crear la automatización, ve a Configuración → Automatizaciones y Escenas → Crear Automatización:
Desencadenador:
- Dispositivo: Contador de Agua
- Entidad: Flujo de Agua
- Condición: Por encima de 0 L/min
- Durante: 25 minutos (ajustar según tus hábitos)
Acción:
- Enviar notificación al móvil
- Título: “Posible Fuga de Agua”
- Mensaje: “Hay un consumo de agua constante”
Esta automatización te alertará cuando el flujo de agua se mantenga activo por más tiempo del normal, indicando una posible fuga o llave abierta.
Integración con Válvulas Automáticas
Para una solución más completa, puedes integrar una electroválvula que corte automáticamente el suministro de agua al detectar una fuga. Esto permite detener el problema inmediatamente mientras recibes la notificación y puedes investigar la causa.
Integración con el Panel de Energía
Home Assistant incluye un panel de energía que no solo monitorea electricidad, sino también otros recursos como el agua. Para integrarlo:
- Accede al panel de Energía en Home Assistant
- Haz clic en “Configurar”
- Omite paneles solares, baterías y gas si no los tienes
- En “Consumo de Agua”, selecciona “Agregar fuente de agua”
- Elige el sensor “Total Agua Litros” o “Total Agua Metros Cúbicos”
- Guarda y visualiza el panel
El panel mostrará gráficos detallados del consumo por hora, día, semana y mes, permitiéndote identificar patrones y optimizar el uso del agua.
Visualización de Datos
Una vez configurado todo el sistema, tendrás acceso a múltiples métricas:
- Flujo instantáneo: Litros por minuto en tiempo real
- Consumo total histórico: Desde la instalación del sensor
- Consumo diario: Reiniciado cada medianoche
- Consumo mensual: Reiniciado el primer día de cada mes
- Gráficos históricos: En el panel de energía
Estos datos pueden agregarse a dashboards personalizados, utilizarse en otras automatizaciones o exportarse para análisis externos.
Consejos de Instalación
Para una instalación exitosa, considera estos aspectos:
- Ubicación del sensor: Instálalo en la tubería principal de entrada para medir todo el consumo de la vivienda
- Dirección del flujo: Los sensores tienen una flecha indicando la dirección correcta del agua
- Conexión WiFi: Asegúrate de que el ESP tenga buena señal en el lugar de instalación
- Protección del circuito: Utiliza una caja estanca para proteger el ESP de la humedad
- Calibración: Realiza pruebas con volúmenes conocidos para ajustar la precisión
Código Completo de ESPHome
A continuación se presenta la configuración completa que integra todos los sensores descritos:
sensor:
- platform: pulse_counter
pin: GPIO4
name: "Flujo de Agua"
id: flujo_de_agua
update_interval: 3s
unit_of_measurement: "L/min"
accuracy_decimals: 1
filters:
- lambda: return x / 500.0;
- platform: integration
name: "Total Agua Metros Cúbicos"
sensor: flujo_de_agua
time_unit: min
unit_of_measurement: "m³"
accuracy_decimals: 4
filters:
- lambda: return x / 1000.0;
- platform: integration
name: "Total Agua Litros"
sensor: flujo_de_agua
time_unit: min
unit_of_measurement: "L"
accuracy_decimals: 2
Este proyecto demuestra cómo la domótica puede extenderse más allá del control de dispositivos para incluir monitoreo de recursos, ahorro económico y prevención de daños por fugas de agua. Con una inversión mínima en hardware y algo de configuración, obtienes un sistema profesional de gestión hídrica integrado completamente en tu ecosistema de Home Assistant.