bot de avisos de terremotos

Cómo crear un bot de avisos de terremotos con APIs oficiales

¿Te has preguntado alguna vez cómo las grandes aplicaciones de noticias reciben las alertas sísmicas apenas milisegundos después de que ocurren? En un mundo donde la inmediatez salva vidas, depender de una notificación de redes sociales que puede tardar minutos no es una opción aceptable en pleno 2026.

La democratización de los datos geoespaciales nos permite hoy, con apenas unas líneas de código y acceso a infraestructuras en la nube, montar nuestro propio sistema de monitorización profesional. He configurado personalmente decenas de estos sistemas para entornos de Smart Home y la precisión que se alcanza con las fuentes oficiales es, sencillamente, de otro nivel.

En esta guía técnica, vamos a desglosar cómo conectar con los servidores del USGS y el EMSC para construir un bot automatizado que te avise directamente a Telegram o Discord. No necesitas ser un ingeniero de la NASA, pero sí tener ganas de ensuciarte las manos con un poco de Python y APIs de baja latencia.

Fuentes de datos: Eligiendo la API correcta

El primer paso crítico es decidir de dónde obtendremos la información. En 2026, la latencia es el factor diferencial. No todas las instituciones actualizan sus feeds con la misma velocidad ni ofrecen el mismo nivel de detalle técnico.

Las tres grandes autoridades sísmicas

  • USGS (United States Geological Survey): Es el estándar de oro global. Su GeoJSON Summary Feed es extremadamente estable y se actualiza cada minuto.
  • EMSC-CSEM (Euro-Mediterranean Seismological Centre): Vital si te encuentras en Europa o el Mediterráneo. Ofrecen un servicio de WebSockets para notificaciones en tiempo real casi instantáneas.
  • SSN (Servicio Sismológico Nacional): Específico para México, aunque su API es más restrictiva y suele requerir scraping o peticiones REST muy controladas.
ProveedorFormatoLatencia EstimadaCobertura
USGSGeoJSON / Atom1-2 minutosGlobal
EMSCJSON / WebSocket< 30 segundosGlobal / Europa
Raspberry ShakeUDP / SeedLinkMilisegundosRed Ciudadana

Requisitos técnicos y entorno de desarrollo

Para que este bot sea fiable, no podemos ejecutarlo en nuestro PC personal que se apaga por las noches. Necesitamos una infraestructura que garantice un Uptime del 99.9%. He probado diversas configuraciones y la más eficiente en relación coste-rendimiento es un micro-instancia en la nube.

Lo que vas a necesitar

  1. Python 3.11+: La versión de 2026 incluye mejoras de rendimiento en el manejo de peticiones asíncronas (asyncio).
  2. Librerías clave: requests para peticiones simples, websockets para tiempo real y python-telegram-bot para la interfaz.
  3. Token de Bot: Deberás obtenerlo a través de @BotFather en Telegram.
  4. Servidor: Una Raspberry Pi 5 o un VPS económico (Oracle Cloud tiene un tier gratuito excelente para esto).
💡 Consejo Pro: No uses polling tradicional (preguntar cada X segundos). Si la API lo permite, usa WebSockets. Ahorrarás ancho de banda y recibirás el aviso hasta 15 segundos antes.

Scripting en Python: Conexión y filtrado de datos

El núcleo del bot es un bucle que analiza los datos entrantes. El mayor error de los principiantes es enviar una alerta por cada microsismo de magnitud 2.0. Esto saturará tu canal y hará que ignores el bot cuando ocurra algo importante.

Lógica de filtrado inteligente

Debemos programar el bot para que solo nos despierte si se cumplen ciertas condiciones geográficas o de magnitud. Aquí tienes un ejemplo de cómo estructurar la lógica de filtrado en Python:

if magnitude >= 5.0:
    send_urgent_alert(data)
elif distance_from_home < 200 and magnitude >= 3.5:
    send_local_alert(data)

Para calcular la distancia, utilizaremos la fórmula de Haversine, que permite determinar la distancia entre dos puntos en una esfera (la Tierra) usando latitud y longitud. Es fundamental para evitar alertas de terremotos en Japón si vives en España.

⚠️ Importante: Las APIs oficiales a veces actualizan un evento sísmico varias veces (revisión de magnitud). Tu código debe gestionar los EventIDs para no repetir notificaciones de un mismo sismo.

Automatización y despliegue en la nube (24/7)

Una vez que el script funciona en local, toca llevarlo a producción. En AndroFan siempre recomendamos usar Docker para estas tareas. Crear un contenedor asegura que las dependencias no choquen con otros servicios de tu servidor.

Pasos para el despliegue profesional

  1. Dockerización: Crea un Dockerfile ligero basado en Python Alpine para minimizar el consumo de RAM (menos de 50MB).
  2. Gestión de procesos: Usa PM2 o Systemd para reiniciar el script automáticamente si falla por un error de red.
  3. Logs de salud: Configura un Healthcheck que te envíe un mensaje diario confirmando que el bot sigue vivo.
  4. Variables de entorno: Nunca escribas tus API Keys directamente en el código; usa archivos .env.

Ventajas y Desventajas

✅ Ventajas

  • Personalización total: Tú eliges el umbral de magnitud y radio de acción.
  • Privacidad: No compartes tu ubicación con apps comerciales de terceros.
  • Cero publicidad: Alertas limpias y directas al grano.

❌ Desventajas

  • Dependencia de red: Si tu servidor pierde internet, no hay aviso.
  • Mantenimiento: Las APIs pueden cambiar sus endpoints cada pocos años.

Preguntas Frecuentes

¿Es legal usar las APIs de la USGS?

Sí, los datos proporcionados por la USGS son de dominio público. Sin embargo, piden no saturar sus servidores con peticiones excesivas (máximo una por segundo).

¿Puedo recibir la alerta antes de sentir el temblor?

Depende de tu distancia al epicentro. Las ondas sísmicas viajan más lento que los datos de internet. Si estás a más de 100km, podrías ganar entre 5 y 20 segundos de ventaja.

¿Cuánto cuesta mantener este bot al mes?

Si usas el tier gratuito de Oracle Cloud o una Raspberry Pi en casa, el coste es prácticamente 0 euros, más allá del consumo eléctrico residual.

Conclusión

  • Utiliza siempre fuentes oficiales como USGS o EMSC para evitar falsos positivos.
  • Filtra los datos por geolocalización y magnitud para evitar el spam de notificaciones.
  • Despliega el bot en un entorno Docker para garantizar estabilidad 24/7.
  • Considera integrar el bot con Home Assistant para una automatización completa del hogar.

Tener el control de tu propia seguridad tecnológica es una de las mayores ventajas de la era digital. ¿Te animas a montar tu sistema de alerta este fin de semana? Cuéntanos en los comentarios si lograste bajar la latencia de los 10 segundos.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *