Conocer si lloverá hoy es crucial para muchos, ya que impacta en los planes y actividades diarias. Este artículo describe un método para usar los datos meteorológicos de Dark Sky en Home Assistant para determinar si se espera lluvia y automatizar acciones según el pronóstico.
La API de Dark Sky permite obtener las condiciones climáticas actuales y futuras. Puedes especificar el número de días y horas a incluir en el pronóstico, junto con los parámetros meteorológicos específicos que deseas rastrear, como la probabilidad e intensidad de la precipitación. Esto permite un control granular sobre los datos recibidos.
sensor:
- platform: darksky
api_key: YOUR_API_KEY
forecast:
- 0
- 1
hourly_forecast:
- 0
- 1
monitored_conditions:
- precip_intensity
- precip_type
- precip_probability
Dado que Dark Sky no proporciona datos históricos, se utiliza un booleano de entrada para rastrear si llovió el día anterior. Este booleano se establecerá mediante una automatización y se reiniciará cada mañana.
input_boolean:
rained_yesterday:
name: Lluvia ayer
icon: mdi:weather-pouring
Una automatización se activa cada hora y 15 minutos para verificar la intensidad actual de la precipitación. Si la intensidad supera un umbral predefinido (por ejemplo, 0.5 mm/h, lo que indica lluvia moderada), el booleano “rained_yesterday” se establece en verdadero.
- alias: medidor_lluvia
trigger:
# Ejecutar cada 1h 15 minutos.
platform: time_pattern
hours: "/1"
minutes: "15"
conditions:
# No es necesario hacer nada si ya está activado
- condition: state
entity_id: input_boolean.rain_meter
state: 'off'
# ... otras condiciones para validar la lluvia ...
action:
# Llovió hoy. Activar esto.
service: input_boolean.turn_on
entity_id: input_boolean.rain_meter
Una automatización separada, programada para las 5:30 AM, verifica el pronóstico para el día actual. Si la intensidad de precipitación prevista está por encima del umbral, lo que indica una probabilidad de lluvia, no se realiza ninguna acción. Esto supone que si se predice lluvia para hoy, el booleano “rained_yesterday” sigue siendo relevante.
- alias: Hora del Aspersor
name: Encender el aspersor si no llueve.
trigger:
platform: time
at: "05:30:00"
condition:
platform: template
value_template: "{{ states('sensor.dark_sky_precip_intensity_1d') | float > 0.5 }}"
action:
service: script.turn_on_sprinklers_if_no_rain
data_template:
rain_yesterday: "{{ is_state('input_boolean.rain_meter', 'on') }}"
Finalmente, un script gestiona la lógica del aspersor. Primero reinicia el booleano “rained_yesterday”. Si este booleano era falso (lo que indica que no llovió ayer) y el pronóstico de hoy no predice lluvia, el script activa los aspersores.
script:
turn_on_sprinklers_if_no_rain:
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.rain_meter
- condition: template
value_template: "{{ not rain_yesterday}}"
- service: sprinkler.turn_on
entity_id: sprinklers.money_maker
Este sistema proporciona una solución robusta para responder a la pregunta “¿Lloverá hoy?” y automatizar tareas como el control de aspersores según la respuesta. El uso de la intensidad de precipitación prevista ayuda a anticipar la lluvia y evitar el riego innecesario.