Regar con horario fijo es regar a ciegas: el mismo riego de un día fresco y nublado se queda corto en una ola de calor y sobra el día antes de una tormenta. La solución no es un sensor más, sino usar los datos del tiempo que ya podemos obtener gratis. En esta guía explicamos los dos niveles que usamos: omitir el riego si va a llover, y ajustar la duración según la evapotranspiración.

Resumen rápido

  • Nivel 1: consultar la previsión de precipitación y saltarse el riego si es suficiente.
  • Nivel 2: calcular los minutos con la fórmula ETc = ET0 × Kc.
  • Fuentes gratuitas: integración de AEMET y datos de Open-Meteo.
  • Siempre conserva un límite máximo de minutos como seguridad.

1. Conceptos clave sin complicarse

TérminoQué esUnidad
ET0 (evapotranspiración de referencia)Agua que pierde una superficie de césped bien regada por evaporación y transpiraciónmm/día
Kc (coeficiente de cultivo)Factor que ajusta ET0 a cada cultivo y etapaSin unidad
ETcAgua que necesita realmente tu cultivomm/día
Lluvia efectivaParte de la lluvia que aprovecha el suelomm

Fórmula: ETc = ET0 × Kc. Y recuerda que 1 mm equivale a 1 litro por m².

2. Coeficientes de cultivo orientativos

Valores aproximados basados en las tablas de la FAO; varían con la etapa de desarrollo y el clima local.

CultivoKc en pleno desarrollo (orientativo)
Lechuga1,0
Tomate1,15
Pimiento1,05
Calabacín0,95
Césped (clima templado)0,8–0,95
Frutales adultos0,8–1,1 según especie
Aromáticas mediterráneas0,5–0,7

3. Nivel 1: saltarse el riego si va a llover

Home Assistant ofrece la integración de AEMET OpenData (requiere una clave gratuita de AEMET) y también la integración de Open-Meteo. Ambas crean una entidad weather. Desde hace unas versiones, la previsión no se lee como atributo, sino con el servicio weather.get_forecasts:

yaml

automation:
  - alias: "Riego zona 1 con previsión de lluvia"
    triggers:
      - trigger: time
        at: "06:00:00"
    actions:
      - action: weather.get_forecasts
        target:
          entity_id: weather.aemet
        data:
          type: daily
        response_variable: prevision
      - variables:
          lluvia_hoy: "{{ prevision['weather.aemet'].forecast[0].precipitation | default(0) | float(0) }}"
      - if:
          - condition: template
            value_template: "{{ lluvia_hoy < 3 }}"
        then:
          - action: switch.turn_on
            target:
              entity_id: switch.valvula_zona_1
          - delay: "00:15:00"
          - action: switch.turn_off
            target:
              entity_id: switch.valvula_zona_1

Con esto, si la previsión indica 3 mm o más, el riego se omite. Ajusta el umbral a tu criterio: 3 mm de lluvia es una cantidad discreta; en climas secos puede ser más prudente omitir solo con lluvias mayores.

Consejo: la previsión falla. Combínala con un sensor de lluvia o con sensores de humedad del suelo para confirmar lo que realmente ha caído.

4. Nivel 2: obtener la ET0 diaria

AEMET no expone ET0 directamente en la integración, pero Open-Meteo ofrece una API gratuita con la variable et0_fao_evapotranspiration. Podemos leerla con un sensor REST (sustituye LATITUD y LONGITUD por tus coordenadas):

yaml

rest:
  - resource: "https://api.open-meteo.com/v1/forecast?latitude=LATITUD&longitude=LONGITUD&daily=et0_fao_evapotranspiration&timezone=auto"
    scan_interval: 21600
    sensor:
      - name: "ET0 prevista hoy"
        value_template: "{{ value_json.daily.et0_fao_evapotranspiration[0] }}"
        unit_of_measurement: "mm"

Revisa la documentación de Open-Meteo para confirmar el nombre de las variables y sus condiciones de uso antes de ponerlo en producción.

5. Convertir ET0 en minutos de riego

Definimos los datos de cada zona en ayudantes (input_number) y calculamos los minutos con una plantilla:

Dato de la zonaEjemplo
Cultivo (Kc)Tomate: 1,15
Superficie6 m²
Caudal de la zona1,5 L/min
ET0 prevista hoy5,5 mm
Eficiencia del riego por goteo (orientativa)0,9

Cálculo:

  • ETc = 5,5 × 1,15 = 6,3 mm.
  • Litros = 6,3 × 6 = 37,9 L.
  • Litros con eficiencia = 37,9 ÷ 0,9 ≈ 42 L.
  • Minutos = 42 ÷ 1,5 = 28 minutos.

En plantilla:

yaml

template:
  - sensor:
      - name: "Minutos riego zona 1"
        unit_of_measurement: "min"
        state: >
          {% set et0 = states('sensor.et0_prevista_hoy') | float(0) %}
          {% set kc = 1.15 %}
          {% set m2 = 6 %}
          {% set caudal = 1.5 %}
          {% set eficiencia = 0.9 %}
          {% set lluvia = states('sensor.lluvia_prevista_hoy') | float(0) %}
          {% set mm = [et0 * kc - lluvia, 0] | max %}
          {{ [ (mm * m2 / eficiencia / caudal) | round(0), 45 ] | min }}

Fíjate en dos detalles: se resta la lluvia prevista y se aplica un tope de 45 minutos como seguridad. Si el sensor de lluvia previsto no existe, créalo a partir de la previsión del apartado 3.

6. Usar el resultado en la automatización

yaml

actions:
  - action: switch.turn_on
    target:
      entity_id: switch.valvula_zona_1
  - delay:
      minutes: "{{ states('sensor.minutos_riego_zona_1') | int(0) }}"
  - action: switch.turn_off
    target:
      entity_id: switch.valvula_zona_1

Si el resultado es 0 minutos, la válvula se abre y se cierra de inmediato. Añade una condición para no ejecutar nada cuando el valor sea 0.

7. Alternativa lista para usar

Si no quieres montar todo esto a mano, existe una integración comunitaria para HACS llamada Smart Irrigation, que calcula la duración de riego a partir de datos meteorológicos. Su configuración y proveedores de datos compatibles cambian con el tiempo, así que consulta su documentación actual antes de decidirte.

8. Comparativa de estrategias

EstrategiaComplejidadAhorro de aguaRiesgo de error
Horario fijoMuy bajaNuloAlto (riego innecesario o insuficiente)
Horario + omitir si llueveBajaMedioMedio
Sensores de humedadMediaAltoBajo si están calibrados
Cálculo con ET0 y previsiónMedia–altaAltoBajo si los datos de zona son correctos
ET0 + sensores de humedadAltaEl más altoEl más bajo

Preguntas frecuentes

¿Puedo hacerlo sin ningún sensor físico? Sí, con la previsión y la ET0 de Open-Meteo, pero un sensor de humedad sirve para verificar y corregir.

¿Cada cuánto conviene recalcular? Una vez al día, antes del riego, es suficiente. Actualizar más a menudo no aporta precisión.

¿Qué pasa si falla internet? Deja un riego por horario básico como «plan B» con los minutos más conservadores.

Conclusión

La previsión y la evapotranspiración convierten un riego mecánico en uno que responde al clima. Empieza por el nivel 1, que se monta en pocos minutos y ya evita riegos innecesarios, y añade el nivel 2 cuando tengas medidos el caudal y la superficie de cada zona con la guía de riego por goteo.

Por adbruiz