
Actualizado el 24 de agosto de 2026 · Cálculo de caudal, calibración, ESPHome Pulse Meter y contadores de Home Assistant revisados.
El YF-B5 es un sensor de caudal con una turbina y un captador Hall. Cada vuelta genera pulsos eléctricos: contando su frecuencia podemos estimar litros por minuto y acumulando los pulsos obtenemos el volumen total. Con ESPHome y Home Assistant puede utilizarse para vigilar consumo, llenar depósitos o detectar un flujo inesperado.
El nombre YF-B5 se aplica a varias versiones de latón y acero con constantes de calibración distintas. Por eso esta guía no trata un número encontrado en Internet como universal: primero identificaremos la constante de tu unidad y después la verificaremos con un volumen conocido.
Cómo convierte pulsos en litros
Llamaremos K al número de pulsos que genera el sensor por cada litro. Si ESPHome recibe 660 pulsos y tu K real es 660 pulsos/litro, habrá pasado aproximadamente un litro.
- Frecuencia en Hz: pulsos por segundo.
- Pulse Meter de ESPHome: entrega por defecto pulsos por minuto.
- Caudal (L/min): pulsos por minuto ÷ K.
- Volumen total (L): pulsos acumulados ÷ K.
Por ejemplo, con K = 660, el factor de conversión es 1 / 660 = 0,00151515. Una lectura de 3300 pulsos/min equivale a 5 L/min. Si la ficha expresa una relación del tipo f = k × Q + b, donde f está en Hz, debes despejar Q = (f - b) / k; no confundas ese coeficiente con pulsos por litro.
Por qué hay constantes diferentes
Existen documentos de variantes YF-B5 que indican alrededor de 660 pulsos/litro y otros, como determinadas versiones inoxidables, que especifican aproximadamente 897 pulsos/litro o una ecuación de frecuencia. El cuerpo, el diámetro interno y la electrónica cambian. Utiliza la etiqueta o ficha del vendedor como punto de partida y calibra la pieza que tienes en la mano.
| K inicial | Factor multiply | Uso |
|---|---|---|
| 660 pulsos/L | 0.00151515 | Ejemplo frecuente, confirmar mediante calibración |
| 897 pulsos/L | 0.00111483 | Documentado en algunas variantes inoxidables |
| Otro valor | 1 ÷ K | Usa la ficha y el resultado de tu prueba |
Instalación hidráulica y eléctrica
- Respeta la flecha de dirección marcada en el cuerpo.
- Instálalo sin forzar las roscas y realiza una prueba de fugas.
- Comprueba presión, temperatura, diámetro y aptitud para agua potable de tu modelo.
- Deja un tramo recto antes y después si el fabricante lo recomienda.
- No permitas que el peso de la tubería quede soportado por el cable o la tapa del sensor.
Los colores habituales son rojo para alimentación, negro para GND y amarillo para pulsos, pero no son una norma. Algunas salidas son de colector abierto y admiten una resistencia pull-up a 3,3 V; otras pueden entregar una señal próxima a su tensión de alimentación. No conectes una salida de 5 V directamente a un GPIO de 3,3 V. Consulta la ficha o mide la señal y utiliza divisor, transistor o conversor de nivel cuando sea necesario.
ESPHome moderno con Pulse Meter
pulse_meter mide el tiempo entre pulsos y ofrece buena resolución cuando el caudal es bajo. Este ejemplo utiliza un ESP32, GPIO27 y una constante inicial de 660 pulsos/litro:
sensor:
- platform: pulse_meter
name: "Caudal de agua"
id: caudal_agua
pin:
number: GPIO27
mode:
input: true
pullup: true
unit_of_measurement: "L/min"
device_class: volume_flow_rate
state_class: measurement
accuracy_decimals: 2
timeout: 10s
internal_filter: 100us
filters:
- multiply: 0.00151515
total:
name: "Agua total"
unit_of_measurement: "L"
device_class: water
state_class: total_increasing
accuracy_decimals: 1
filters:
- multiply: 0.00151515El mismo factor se aplica al caudal y al total porque ambos parten de pulsos, aunque el primero representa pulsos por minuto y el segundo pulsos acumulados. timeout: 10s hace que el caudal vuelva a cero si no llega ningún pulso durante ese tiempo. Ajusta internal_filter solo después de comprobar la anchura de pulso de tu modelo; un filtro demasiado largo elimina pulsos válidos a caudal alto.
En ESP8266 elige GPIO4 (D2) o GPIO5 (D1) y evita GPIO0, GPIO2 y GPIO15 para no interferir con el arranque. Si el sensor ya incorpora una salida pull-up, revisa si debes retirar pullup: true.
Cómo calibrar el YF-B5
- Instala el sensor en su orientación definitiva y elimina el aire del circuito.
- Pon a cero una lectura auxiliar de pulsos o anota el total inicial.
- Haz pasar un volumen conocido, preferiblemente 10 litros o más.
- Calcula los pulsos obtenidos: total final menos total inicial.
- Calcula
K real = pulsos contados ÷ litros reales. - Sustituye el factor del YAML por
1 ÷ K realy repite la prueba a otro caudal.
Una jarra de un litro genera mucho error por salpicaduras, aire y resolución. Cuanto mayor sea el volumen de prueba, más fiable será K. Si el resultado cambia mucho entre caudal bajo y alto, el sensor puede estar fuera de su rango útil o la instalación introduce turbulencias.
Consumo diario y mensual en Home Assistant
La entidad Agua total es acumulativa y utiliza state_class: total_increasing. Esa es la fuente adecuada para estadísticas y para un contador por periodos; no utilices el caudal instantáneo directamente como si fuera volumen.
- Ve a Ajustes → Dispositivos y servicios → Ayudantes.
- Selecciona Crear ayudante → Contador de servicios (Utility Meter).
- Elige Agua total como sensor de entrada.
- Crea un contador diario y otro mensual según tus necesidades.
- Marca la opción de reinicio periódico solo si la entidad de origen realmente se pone a cero.
Si Home Assistant se reinicia, el total del nodo puede necesitar restauración según la plataforma y configuración. Para facturación o control crítico, compara periódicamente con un contador homologado; un YF-B5 doméstico no sustituye un instrumento legal de medida.
Errores frecuentes
| Síntoma | Causa probable |
|---|---|
| Marca 60 veces más o menos | Confusión entre Hz (pulsos/s) y pulsos/min |
| El total se desvía | K incorrecta o sensor sin calibrar |
| No llegan pulsos | Cableado, masa común, nivel lógico o flecha invertida |
| Pulsos con el agua parada | Ruido eléctrico, cable largo o entrada flotante |
| Se pierden pulsos a caudal alto | internal_filter excesivo o límite del sensor |
Fuentes comprobadas
- ESPHome: Pulse Meter Sensor.
- Home Assistant: Utility Meter.
- Home Assistant: estado total_increasing.
- Ejemplo de ficha YF-B5 inoxidable con constante específica.
Continúa leyendo
Siguiente guía relacionada · 5 min de lectura
Sensor magnético de puerta con ESPHome: guía completa
Actualizado el 27 de agosto de 2026 · Pull-up, lógica invertida, cableado largo, rebotes y estados seguros revisados. Un contacto magnético de puerta es…
Continuar con este artículo

