Garonne — Technologies

Retour aux prévisions

Vue d'ensemble

Le système fonctionne en boucle automatique toutes les 15 minutes, sans intervention humaine. Il collecte les données publiques, effectue les calculs et diffuse les résultats en temps réel aux navigateurs connectés.

Hub'Eau APIn8n (orchestration) → Python (calcul) → JSONMercure (push) → Navigateur

Workflow détaillé

1. Orchestration — n8n

n8n est un orchestrateur de workflows open source auto-hébergé. Un cron déclenche le pipeline toutes les 15 minutes. Il exécute le script Python, puis publie une notification vers Mercure si le calcul réussit.

2. Collecte et calcul — Python

Un script Python interroge l'API Hub'Eau Hydrométrie (BRGM) pour récupérer les 48 dernières heures de mesures sur les 13 stations surveillées. Il effectue ensuite :

Le résultat est écrit dans un fichier JSON statique servi directement par le serveur web.

3. Diffusion temps réel — Mercure

Mercure est un protocole et serveur de push open source basé sur Server-Sent Events (SSE). Quand de nouvelles données sont disponibles, n8n publie un événement sur un topic Mercure. Tous les navigateurs abonnés reçoivent instantanément la notification et rechargent les données.

Un mécanisme de polling de secours (60 secondes) prend le relais si la connexion SSE est interrompue.

4. Affichage — Frontend

L'interface est une page HTML statique avec du JavaScript vanilla (aucun framework). Elle consomme le fichier JSON et dessine les cartes stations, les graphiques (Canvas 2D) et les indicateurs de tendance.

Stack technique

ComposantTechnologieRôle
Source de données Hub'Eau API Mesures hydrométriques temps réel (BRGM)
Orchestration n8n Planification cron, enchaînement des étapes
Calcul Python 3, numpy, requests Collecte API, traitement statistique, sortie JSON
Push temps réel Mercure (SSE) Notification instantanée des navigateurs
Serveur web Nginx Serveur de fichiers statiques, reverse proxy
Frontend HTML, CSS, JS (vanilla) Interface utilisateur, graphiques Canvas 2D
Analytique Matomo Statistiques anonymisées, sans cookies tiers
Hébergement Serveur dédié Auto-hébergé, Agen (47)

Principes de conception