La mayoría de las aplicaciones meteorológicas responden a una pregunta sencilla: ¿qué tiempo hará mañana?
Este proyecto parte de una pregunta algo más útil: ¿qué se pronosticó, qué ocurrió realmente y cómo podemos medir la diferencia?
Elche Tiempo es un sistema automatizado para recopilar, conservar, comparar y publicar información meteorológica de Elche. No es solo una consulta a una API: es un pequeño sistema de datos de extremo a extremo, desde la ingesta hasta el informe que llega cada mañana a Slack.
Resumen
#tiempo-elche.El objetivo
El sistema tenía que resolver cuatro necesidades:
- CapturarObtener diariamente la previsión oficial para el municipio de Elche.
- ConservarGuardar las versiones anteriores antes de que fueran sustituidas.
- CompararContrastar el pronóstico con observaciones reales.
- EntregarPublicar un resumen claro sin intervención manual.
La clave es conservar el contexto en el que se hizo cada previsión. No basta con saber que para una fecha se esperaban 34 ºC: también hay que saber si esa cifra se publicó con uno, dos o tres días de antelación.
Qué datos recoge
AEMET aporta la previsión diaria para el municipio de Elche mediante el código INE 03065. Se guardan temperaturas, probabilidad de precipitación, cielo, humedad, viento, índice ultravioleta y la hora de actualización.
Open-Meteo incorpora al día siguiente las observaciones reales: máximas, mínimas, precipitación y viento máximo. RadarSpain aporta las series horarias de Alicante-Elche/Aeropuerto (8019) y Rojales El Molino (7261X), que sirven para representar la evolución de la jornada.
Arquitectura
Todo funciona en una Raspberry Pi doméstica. n8n coordina los procesos, una API local ejecuta la lógica de actualización y SQLite conserva los datos.
El sistema captura previsiones de AEMET, observaciones de Open-Meteo y series de RadarSpain, las conserva en SQLite y publica un informe diario en Slack.
Dos workflows, dos responsabilidades
09:30 · Captura de datos
- Entradan8n inicia un
POSTa la API local. - ProcesoConsulta AEMET, Open-Meteo y RadarSpain y actualiza SQLite.
- SalidaConfirmación del estado de la captura.
10:35 · Informe diario
- EntradaResumen JSON y series horarias disponibles.
- ProcesoGenera el texto y la tarjeta PNG con las dos estaciones.
- SalidaUn único mensaje publicado en
#tiempo-elche.
Separar captura y publicación facilita el diagnóstico: si algo falla, se puede saber si el problema está en la ingesta, en la generación del informe o en la distribución.
La decisión clave: conservar el histórico
Las previsiones meteorológicas cambian. Si solo se guarda la última versión, se pierde la posibilidad de analizar la calidad del pronóstico.
La tabla previsiones_historico combina fecha_objetivo y fecha_captura. Una misma jornada puede tener varias previsiones, cada una con una antelación diferente.
| Fecha objetivo | Captura | Antelación | Qué permite medir |
|---|---|---|---|
| 24/08/2026 | 23/08/2026 | D-1 | Predicción inmediata |
| 24/08/2026 | 22/08/2026 | D-2 | Efecto de un día adicional |
| 24/08/2026 | 21/08/2026 | D-3 | Degradación a más antelación |
Los problemas reales también forman parte
Durante la construcción, un nodo executeCommand no reconocido provocaba un bucle infinito de reintentos en n8n y saturaba el scheduler.
También hubo que controlar la diferencia entre UTC y hora local, los días de 23/24/25 horas, la deduplicación de series mediante claves UTC y la retención limitada del histórico de ejecuciones de n8n.
Resultado
Más importante que el volumen es que el sistema funciona como una operación diaria: recoge datos, los almacena con contexto, conserva los cambios, comprueba las horas disponibles, genera una visualización y publica el resultado.
Qué he aprendido
Un proyecto de datos no termina cuando conseguimos consultar una API. El valor aparece cuando los datos se capturan de forma consistente, se pueden auditar, se comparan con resultados reales y llegan automáticamente a las personas que los necesitan.