con “No molestar”, se cierra con un clic accidental o queda tapada por otras ventanas. • En una emergencia sísmica, eso es exactamente lo que no puede pasar. • Nace tras el terremoto de Venezuela de junio de 2026: la necesidad de una herramienta autoalojada, gratuita y robusta que cada máquina corra por su cuenta. • Según la distancia al epicentro, la alerta puede llegar antes de las ondas sísmicas más destructivas; y si no, garantiza que el evento no se pierda y quede registrado.
en tiempo real y dispara una alerta que no se puede ignorar ni cerrar por accidente. 4 fuentes sísmicas → Normaliza · filtra · dedup → Alerta no descartable Sin API keys · sin servicios pagos · sin depender de un teléfono · sin punto único de falla
polling constante. Respaldo REST USGS y GEOFON reconcilian lo que el push pudiera perder. Alerta no descartable Ventana al frente, con sonido; solo cierra al confirmar. Filtro geográfico Radio, magnitud mínima y país; auto- detección por IP. Multiplataforma Linux, Windows y macOS, con arranque automático. TUI headless Dashboard de terminal para servidores sin pantalla.
· distancia · profundidad · hora local ÚNICO BOTÓN QUE LA CIERRA Ventana topmost, sin decoración, que toma foco y se re- eleva si lo pierde. Sonido con insistencia según severidad, además del toast nativo del sistema. Ni Esc, ni la X, ni un clic afuera la cierran — solo el botón explícito. Cola de alertas: si llegan varias a la vez, se muestran una por una.
en paralelo; todo confluye en el mismo pipeline de normalización. EMSC WebSocket · push Canal primario USGS REST · 60 s Respaldo global GEOFON REST · 60 s Red independiente FUNVISIS REST · 60 s Solo Venezuela raw_queue ↓ ↓ Normalizar Filtrar (radio · magnitud · solo hoy) Deduplicar Alertar → → →
WebSocket en tiempo real Transporte WebSocket (wss://seismicportal.eu), no HTTP polling Latencia Empuje real: el evento llega apenas se publica Keepalive Ping cada ~15 s — sin él, el socket muere en silencio Reconexión Perpetua, con backoff exponencial + jitter Mensajes action: create | update — un update corrige sin re-alertar Límite conocido Puede perder mensajes en cortes — por eso existe el respaldo REST
independientes, sondeadas por REST cada 60 s con cursor persistido. USGS U.S. Geological Survey (FDSN) FORMATO GeoJSON FRECUENCIA Cada 60 s, cursor por epoch ms ROL Reconciliación — recupera lo que EMSC no entregó GEOFON GFZ Potsdam, Alemania (FDSN) FORMATO Texto delimitado por “|”, no GeoJSON FRECUENCIA Cada 60 s, cursor propio ROL Red totalmente distinta — cubre un blind spot compartido EMSC/USGS
única fuente que capta los sismos pequeños del país • Sin canal push: sondea maravilla.json (el mismo archivo que usa su mapa web) cada 60 s. • Capta sismos M2–M3 que EMSC, USGS y GEOFON —redes con estaciones dispersas en la zona— casi nunca catalogan. • Sin id propio del proveedor: el poller construye uno determinístico (fecha + hora + coordenadas). • Al arrancar, siembra en memoria los ~20 eventos ya publicados sin alertar — solo notifica lo que aparece después. • Endpoint HTTP plano (FUNVISIS no ofrece HTTPS válido); el dato es público.
fuentes sin duplicar ni desactualizar alertas. Deduplicación cross-source Si dos fuentes reportan el mismo sismo ( 100 km, 90 s, ≤ ≤ ≤ 0.5 de magnitud), la que llega primero se registra y alerta; las siguientes se descartan en silencio — sin importar cuál sea. Filtro “solo hoy” (nuevo) Solo se alertan sismos del día calendario local actual. Falla segura: si la zona horaria configurada es inválida, el filtro queda inerte en vez de silenciar una alerta real. Piso anti-backlog USGS y GEOFON nunca consultan más atrás de la medianoche local — evita traer semanas de historial tras un reinicio. Poda de estado (24 h) Los ids y firmas de deduplicación ya alertados se podan al registrar cada nueva alerta — el estado nunca crece sin límite.
no requiere Python, el binario es autocontenido. Linux • AppImage: chmod +x && ./run • .deb: sudo apt install ./*.deb • .rpm: sudo dnf install ./*.rpm Windows • vigia-eew.exe • Doble clic, o ejecutar desde una terminal macOS • vigia-eew-*.dmg • Abrir y arrastrar a Applications Descargas: github.com/ecrespo/vigia-eew/releases/latest
centrados en Caracas. Al primer arranque, se autogenera desde una plantilla. UBICACIÓN POR DEFECTO Linux ~/.config/vigia-eew/config.toml macOS ~/Library/Application Support/vigia-eew/config.toml Windows %LOCALAPPDATA%\vigia-eew\config.toml ▸ --config <ruta> para usar un archivo específico ▸ Desde el ícono de bandeja: “Edit configuration…” ▸ vigia-eew --check-config valida sin arrancar el agente SIN CONFIGURAR NADA Si se borra o comenta toda la sección [reference], Vigía detecta la ubicación por IP en el primer arranque y la guarda en caché — no vuelve a consultar el servicio después.
2.5 today_only = true # RF-40 country_filter = false [sources.emsc] enabled = true [sources.funvisis] enabled = true [notification] sound = true tray_icon = true language = "auto" MODOS DE USO vigia-eew Agente completo: GUI + ícono de bandeja --tui Dashboard headless para servidores por SSH --simulate Inyecta un M6.1 simulado cerca de La Guaira --check-config Valida la configuración y sale
4 fuentes sísmicas redundantes 3 sistemas operativos con paquete nativo • Supervisor con reinicio automático por backoff — nunca muere por un fallo transitorio. • Gate de calidad en cada fase: pytest + ruff + mypy en modo estricto. • Autoalojado y gratuito: cada máquina corre su propio agente, sin punto único de falla. github.com/ecrespo/vigia-eew