Skip to main content
Glama
rundata-re

rundata · La Réunion 974 en direct

README.md
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/rundata-logo-nuit.svg"><img src="docs/rundata-logo-sable.svg" alt="rundata.re" width="420"></picture></p>

# rundata.re · La Réunion 974 en direct

Sorties, randos, météo mesurée, routes : les données publiques de La Réunion en direct, datées et sourcées.

Sur rundata.re et dans votre assistant IA (ChatGPT, Claude, Le Chat). Gratuit, sans compte.

Ce serveur [MCP](https://modelcontextprotocol.io) donne à votre assistant IA (Claude, ChatGPT, Le Chat…) les **données publiques de La Réunion en ce moment** : météo mesurée aux stations, vigilance, mer, volcan, électricité, qualité de l'air, services publics, horaires de bus, terrain et risques. Il répond à des questions comme « quel temps fait-il à Saint-Pierre ? », « le prochain bus à la gare de Saint-Pierre ? » ou « le volcan est en éruption ? » avec des valeurs datées et sourcées. Une mesure n'est jamais mélangée à une prévision : pour « il va pleuvoir demain ? », un outil à part donne la prévision d'un modèle, toujours étiquetée comme telle.

> *English: an MCP server giving AI assistants the public data of Réunion Island right now (measured weather, warnings, sea, volcano, electricity, air quality, public offices, bus timetables, land and hazards), dated and sourced, with forecasts kept apart and clearly labelled. See [English summary](#english).*

## Outils

| Outil | Pour quelles questions | Ce qu'il renvoie |
|---|---|---|
| `meteo_actuelle(lieu)` | « il fait chaud à Saint-Gilles ? », « il pleut à Mafate ? », « il a plu quand à Saint-Joseph ? », « du vent à Saint-Pierre ? » | Mesures de la station la plus représentative : température, pluie (6 min et 1 h), humidité, vent, rafales, pression, temps présent. Inclut l'heure, la distance, l'écart d'altitude et le versant. Ajoute la pluie vue par le radar de Météo-France au lieu même et à 3 km autour (image de 5 min, avec la qualité du radar, faible au fond des cirques). Avec un lieu, la pluie des dernières heures au pluviomètre le plus proche : heure par heure sur 12 à 24 h (« 14 h–15 h : 1,4 mm »), l'heure de la dernière pluie et le cumul depuis minuit, d'après le paquet horaire et les mesures 6 min de Météo-France ; quand rien n'est mesuré sous un ciel chargé, rappelle qu'une bruine peut échapper aux pluviomètres. |
| `prevision_meteo(lieu, quand)` | « il va pleuvoir demain à Saint-Denis ? », « quel temps ce week-end à Cilaos ? » | **Prévision** du modèle AROME outre-mer de Météo-France (maille de 2,5 km) pour les 48 premières heures, puis du modèle IFS de l'ECMWF (9 km) jusqu'à 7 jours, par jour et par tranches de 3 h, températures ramenées à l'altitude du lieu ; chaque jour dit quel modèle a donné quelles heures. Indice UV prévu de chaque jour (CAMS, Copernicus), sur l'échelle de l'OMS. Dans les Hauts (au-dessus de 800 m), la mer de nuages du matin (de 6 h à 9 h, de 9 h à 12 h) d'après la base et le sommet des nuages d'AROME : dégagé, au-dessus, au bord, dans ou sous les nuages, avec leurs altitudes à 100 m près. Confiance de chaque jour (forte, moyenne ou faible) : l'accord entre les 51 scénarios de l'ensemble ECMWF ENS sur un carré de 25 km, avec sa raison, jamais une probabilité de pluie au lieu même, et rien quand le calcul a plus de 24 h. Chaque réponse porte `nature: "prevision"` et rappelle que ce n'est pas une mesure, que le modèle ne voit pas les microclimats, et que pour un cyclone seule compte la vigilance officielle. `quand` : « demain », « ce soir », « samedi », « ce week-end »… |
| `vigilance_meteo(lieu?)` | « il y a une alerte cyclonique ? », « vigilance fortes pluies dans l'Est ? » | Vigilance officielle de Météo-France : alerte cyclonique (pré-alerte, orange, rouge…), et par zone fortes pluies / orages, vents forts, vagues-submersion, pour les 24 h du bulletin, avec les textes de suivi. Sans `lieu` : toute l'île ; avec : la zone du lieu. `meteo_actuelle` et `prevision_meteo` signalent d'elles-mêmes toute vigilance au-dessus du vert. Une ligne `feux_detectes` quand un feu de végétation a été détecté par satellite ces dernières 24 h. |
| `temperature_mer(lieu)` | « l'eau est à combien à Boucan ? », « la houle à Saint-Leu ? » | Dernière température de l'eau mesurée près du lieu, avec sa date, sa distance et sa nature (bouée ou satellite) ; à part, dans `etat_de_la_mer`, la **prévision** des vagues du modèle WAM de l'ECMWF (9 km, 4 jours) : hauteur, période et direction maintenant, par tranches de 3 h et le maximum de chaque jour, toujours étiquetée comme une prévision. |
| `volcan_seismes()` | « le volcan est en éruption ? », « on peut monter au volcan ? », « il y a eu un séisme ? » | Éruption en cours ou non, niveau ORSEC, dernière éruption, accès à l'Enclos (pitonlive.com, d'après les arrêtés préfectoraux), dernières publications de l'OVPF-IPGP et séismes localisés en 30 jours, sous le volcan et ailleurs. |
| `electricite(lieu?)` | « d'où vient l'électricité ? », « quand recharger ma voiture électrique ? », « coupure de courant à Sainte-Marie ? » | Production d'EDF toutes les 5 min par filière et part renouvelable ; « météo de l'électricité » d'EDF (heures de pointe, réseau contraint) pour les jours qui viennent ; les coupures d'électricité annoncées par EDF que relaient les mairies (jours, heures, secteurs, avec le lien de l'avis, jamais son texte), lues par l'événement planifié ; ailleurs, la réponse dit que la mairie ne les publie pas, jamais « pas de coupure ». |
| `qualite_air(lieu?)` | « l'air est pollué à Saint-Louis ? » | Indice ATMO du jour et du lendemain par commune (Atmo Réunion), avec le polluant en cause. |
| `sites_sans_reponse(quoi?)` | « le site de l'OVPF marche ? », « pourquoi pas de bulletin du volcan ? », « le site de Sudéau ne répond plus ? » | Les sites publics de l'île qui ne répondent pas en ce moment : depuis quand, le dernier constat en mots simples et ce qui manque donc sur rundata.re ; un site qui répond de nouveau sort de la liste. Une lecture qui échoue est notée par `src/http.ts` dans la table `sans_reponse` de D1 (`scripts/sans-reponse.sql`), seulement quand l'état du site change ; le site reste « à vérifier », jamais affiché, jusqu'à la revérification de 06:00 (un GET par site, par l'événement planifié). Deux échecs avant tout statut public, deux 403 de suite avant « répond, mais pas à nos lectures ». Un site d'une commune qui n'a pas encore donné son accord n'y figure pas. Aussi sur `/sites-sans-reponse`. |
| `annuaire_services_publics(quoi, lieu?)` | « horaires de la mairie de Saint-Paul ? », « où est la CAF ? », « prix de l'essence ce mois-ci ? » | Adresse, horaires (ouvert en ce moment ?), téléphone et site des services publics, d'après l'annuaire de service-public.fr. Et les prix maximums des carburants et de la bouteille de gaz du mois, fixés par arrêté du préfet (les mêmes dans toute l'île), lus chaque jour dans les communiqués de la préfecture par `.github/workflows/carburants.yml` ; aussi sur la page circulation. Et les pharmacies, hôpitaux et cliniques les plus proches d'un lieu, d'après FINESS (`quoi` = « pharmacie », « urgences », « hôpital ») : la pharmacie de garde n'est jamais devinée, la réponse renvoie à 3237.fr et au 32 37 comme l'ARS La Réunion ; l'urgence passe d'abord par le 15. Et les marchés forains et couverts cartographiés dans OpenStreetMap, avec leurs jours quand ils y sont (`quoi` = « marché ») : la liste n'est pas complète, la réponse le dit. Et les déchèteries de l'Ouest (`quoi` = « déchèterie », « encombrants », « déchets verts »…) : les bennes pleines ou non d'après les agents du TCO, une mise à jour de plus de 6 h dite à vérifier ; ailleurs, la réponse renvoie à la CINOR, la CIREST, la CIVIS ou la CASUD. Et le jour de collecte des déchets rue par rue dans les cinq communes de l'Ouest (`quoi` = « collecte », « poubelles », `lieu` = la rue et la commune), d'après les calendriers 2026 du TCO. |
| `transports(arret, ligne?)` | « prochain bus à la gare routière de Saint-Pierre ? », « à quelle heure passe le car jaune à Saint-Leu ? » | Prochains départs à l'arrêt (ligne, direction, heure, minutes d'attente), tous réseaux confondus : Car Jaune, Citalis, Kar'Ouest, Alternéo, CarSud, Estival, téléphérique Papang. Horaires publiés par les réseaux et, pour Car Jaune (et Alternéo, CarSud quand leur flux fonctionne), l'heure annoncée en direct par le réseau, le retard, les arrêts non desservis et l'info trafic. Un lieu qui n'est pas un arrêt donne les arrêts les plus proches. |
| `velos_libre_service(lieu?)` | « il reste des vélos à la station IUT ? », « où prendre un vélo près du front de mer de Saint-Pierre ? » | Vélos à assistance électrique Altervélo en libre-service (Saint-Pierre, Saint-Louis, L'Étang-Salé), en direct : vélos à prendre et places libres de chaque station, stations les plus proches d'un lieu, ou tout le réseau. |
| `maree(lieu?)` | « la marée monte ? », « c'était quand la marée haute ? », « niveau de la mer au Port ? » | Hauteur d'eau mesurée chaque minute par les marégraphes du SHOM au Port (Pointe des Galets) et à Sainte-Marie : niveau, marée montante ou descendante, dernières pleine et basse mer observées. Puis les prochaines pleines et basses mers, **calculées** par rundata d'après les mesures, pas la prédiction officielle du SHOM (qui n'est pas en données ouvertes) : heures arrondies à 5 min, à environ 15 min près au Port et 20 min à Sainte-Marie, hauteurs à environ 5 cm près, sans coefficient (voir « Marée calculée » plus bas). |
| `crues_rivieres(lieu?)` | « la rivière des Galets est en crue ? », « il y a une vigilance crues ? », « niveau de la ravine Saint-Gilles ? » | Vigilance crues de Vigicrues Réunion rivière par rivière, et hauteur d'eau et débit mesurés toutes les 5 minutes aux 29 stations des rivières, avec leur tendance et les crues historiques comme repères. |
| `bornes_recharge(lieu?, rapide?)` | « borne de recharge libre près de Saint-Gilles ? », « où recharger rapidement à Saint-Pierre ? » | Bornes de recharge publiques pour voiture électrique (136 stations, 411 points de charge) et l'état en direct de chaque point : libre, occupé ou hors service, avec sa puissance, ses prises, ses horaires et son réseau. |
| `qualite_eau(lieu?, eau?)` | « l'eau du robinet est potable à Cilaos ? », « on peut se baigner à l'Hermitage ? » | Qualité de l'eau d'après les analyses de l'ARS : eau du robinet réseau par réseau (dernière analyse, non-conformités sur 6 mois) et eau des 26 plages et bassins contrôlés, prélèvement par prélèvement. |
| `sentiers_randonnee(lieu?, longueur_min_km?, longueur_max_km?, denivele_max_m?)` | « sentiers fermés à Mafate ? », « le sentier de la Roche Pendue est ouvert ? », « la trace GPS du Piton des Neiges ? », « une rando de 10 km à Cilaos ? » | Sentiers de randonnée et routes forestières ouverts ou fermés d'après la carte de l'ONF, avec la cause de chaque fermeture et la date de réouverture prévue ; par sentier, autour d'un lieu, dans un cirque ou une commune, filtrés par longueur ou dénivelé. Trace GPS (GPX) de chaque sentier de l'ONF et des itinéraires complets d'OpenStreetMap (GR R1, R2, R3, Piton des Neiges, Roche Écrite…), avec longueur, dénivelé positif et négatif et profil (altitudes de l'IGN) ; pour un itinéraire, l'état des sentiers de l'ONF qu'il emprunte. Dès qu'un de ces sentiers est fermé, un champ `avertissement` et le début du résumé le disent. Avec la clé FIRMS, un bloc `feux_detectes` : les feux de végétation détectés par satellite ces dernières 24 h (faux positifs possibles), avec le 18 et le 112 ; un feu près du lieu demandé ouvre le résumé. |
| `restrictions_eau(lieu?, profil?)` | « restrictions d'eau à Saint-Joseph ? », « j'ai le droit d'arroser mon jardin ? » | Restrictions d'eau de l'arrêté sécheresse en vigueur, par commune (eau du robinet, rivières et sources, nappes) et ce qui est interdit pour un particulier, une entreprise, une collectivité ou une exploitation agricole. |
| `coupures_eau(lieu?)` | « coupure d'eau à Saint-Denis ? », « l'eau est potable à la Plaine-des-Palmistes ? » | Avis des distributeurs d'eau : coupures pour travaux (heures, rues), pannes et avis « ne pas boire l'eau » ; Saint-Denis, La Possession, les six communes de l'Est et runéo. |
| `resume_du_jour(lieu)` | « quoi de neuf à Saint-Paul aujourd'hui ? », « ma journée au Tampon » | La journée d'une commune en un appel (un lieu est rapporté à sa commune) : météo mesurée et prévision du jour, vigilance de sa zone, mer, air, électricité, routes et blocages signalés par les médias (sans mesure des bouchons), actualités de la commune, coupures d'eau, événements du jour, jour férié ou vacances, soleil, mairie ouverte ou non, marché du jour (d'après les jours d'OpenStreetMap), état des bennes des déchèteries pour les communes du TCO (seulement les états de moins de 6 h), prix maximums des carburants du mois, et la pharmacie de garde renvoyée à 3237.fr, jamais devinée. Lu dans les copies des pages du site, jamais reconstruit pendant l'appel : une douzaine de lectures au plus ; ce qui n'a pas de copie récente est nommé dans `non_inclus` avec l'outil à appeler, et la plus ancienne copie manquante est remise à jour après la réponse si ce qu'elle coûte tient dans le budget de l'appel. Les copies communes à toute l'île (actualités, routes, électricité, coupures d'eau, air, mer, calendrier) sont aussi tenues à jour pour tous les centres de données par l'événement planifié, après les grilles AROME (`src/web/partagees.ts`). |
| `defibrillateurs(lieu?)` | « où est le défibrillateur le plus proche de la plage de l'Hermitage ? » | Les défibrillateurs les plus proches d'un lieu (plus de 1 200 sur l'île) : adresse, distance et temps à pied, emplacement, accessible à toute heure ou aux heures d'ouverture ; rappelle d'appeler le 15 ou le 112. |
| `sport(sport?, lieu?, quand?)` | « match de volley dimanche dans le sud ? », « le VBSP joue quand ? », « quels matchs ce week-end ? », « classement du handball ? », « qui a gagné le Grand Raid ? » | Rendez-vous à venir et derniers résultats officiels du handball (D1) et du volley (R1 et R2, toutes les poules) régionaux, avec les clubs en toutes lettres et la commune où l'on joue (un lieu peut être une commune, « le sud » ou le sigle d'un club), les matchs annulés ou reportés d'après les avis de la Ligue de volley et l'actualité locale, classements, régates, compétitions de golf, calendrier du sport automobile, Grand Raid (partants, abandons, podiums) et actualité sportive de Réunion La 1ère (titres et liens). Pas de résultats de football : aucune source ouverte. |
| `cyclones(lieu?)` | « il y a un cyclone en ce moment ? », « la tempête va passer près de Saint-Philippe ? », « c'était quoi le dernier cyclone ? », « école fermée demain ? » | Systèmes tropicaux actifs du sud-ouest de l'océan Indien d'après les bulletins du CMRS de La Réunion (Météo-France) : stade, vent moyen, pression, position, distance et direction depuis l'île ou un lieu, déplacement, prévision officielle et passage au plus près ; alerte cyclonique de la préfecture, et ce qu'elle veut dire pour les crèches et les établissements scolaires selon le dispositif ORSEC Cyclones (arrêté 2026-182), jamais une école en particulier. Hors saison : le dernier système et les systèmes de la saison. |
| `historique_meteo(lieu?, jours?, du?, au?, detail?)` | « il a beaucoup plu ce mois-ci à Saint-Benoît ? », « il fait gris tous les jours depuis deux semaines ? », « quelle température hier à Cilaos ? », « record de chaleur à Saint-Denis ? », « à quelle heure a-t-il plu hier ? », « rafale max cette nuit ? » | Mesures quotidiennes des stations Météo-France, de leur première année (1900 pour les plus anciennes) jusqu'à hier : pluie, températures, ensoleillement, rafales, jour par jour jusqu'à deux mois, par mois ou par année au-delà (10 ans au plus par question), comparées à la normale 1991-2020 de la station, avec ses records. Sur 3 jours ou moins (7 sur demande), depuis 2000, aussi heure par heure, nuit dernière comprise : heures de pluie, soleil, températures, vent et rafales. |
| `evenements(lieu?, quand?, quoi?)` | « que faire ce week-end à Saint-Paul ? », « un concert ce soir ? », « un spectacle à Saint-Denis samedi ? », « marché forain demain ? » | Concerts, théâtre, danse, humour, soirées, fêtes, festivals, marchés et animations à venir, d'après les programmes des salles (TÉAT Champ Fleuri et Plein Air, Cité des Arts, CDNOI, Kabardock, Le Séchoir, Léspas, Bisik, Théâtre Luc Donat), les agendas des mairies de Saint-Paul, du Port, des Trois-Bassins, de La Possession, du Tampon, de l'Entre-Deux, de Saint-Louis, de L'Étang-Salé, de Petite-Île, de Saint-André, de Bras-Panon et de Saint-Benoît, de l'office de tourisme de l'Est, de la CINOR et de l'office de tourisme du Nord (OpenAgenda) et de reunion.fr : titre, date et heures, salle, commune, genre, prix et billetterie quand ils sont donnés, statut (annulé, reporté, complet), y compris quand un média de l'île l'annonce avant l'organisateur (« d'après Imaz Press », avec le lien), lien vers la page de l'événement. Par commune, par jour (aujourd'hui, ce soir, demain, ce week-end, une date) et par genre ; les séances de cinéma renvoient aux sites des cinémas. |
| `actualites(lieu?, sujet?, heures?)` | « il y a des blocages à Saint-Pierre ? », « la manifestation se passe comment ? », « quoi de neuf à Saint-Benoît ? », « dernières infos sur le cyclone » | Ce qui se passe en ce moment sur l'île, d'après les médias locaux relus toutes les 5 minutes et leurs directs : pour chaque information, l'heure, le média, le titre, la première phrase, les communes et lieux nommés, ce qu'elle dit du lieu demandé et le lien vers l'article ; les communiqués de la préfecture. Par commune ou quartier, par sujet (manifestations et blocages, routes, météo, volcan, eau, faits divers…). |
| `calendrier(lieu?)` | « c'est quand les vacances ? », « le 20 décembre est férié ? », « lever du soleil au Maïdo ? » | Vacances de l'académie de La Réunion, jours fériés (dont le 20 décembre), lever et coucher du soleil au lieu. |
| `fiche_terrain(adresse)` | « cette parcelle est constructible ? », « prix au m² à Boucan ? », « cette maison est en zone inondable ? » | Parcelle cadastrale (section, numéro, surface), zone du PLU (U, AU, A, N) avec le lien vers son règlement, altitude du sol, prix médians des maisons, appartements et terrains vendus autour depuis 5 ans (DVF, agrégés : aucune vente individuelle). Risques : le point est-il dans une zone réglementée d'un plan de prévention des risques (inondation, mouvements de terrain, littoral, ou technologique), avec le lien vers le plan ; arrêtés de catastrophe naturelle de la commune ; glissements et éboulements recensés à moins de 500 m ; sismicité et radon. |
| `donner_avis(type, message, outil?, lieu?, question_utilisateur?)` | (appelé par l'assistant) | Transmet à rundata.re un avis : une donnée qui manque, une valeur fausse, une idée, un bravo. L'assistant est invité à l'envoyer de lui-même quand un outil n'a pas trouvé ou s'est trompé, ou quand l'utilisateur exprime un souhait. Sans donnée personnelle ; numéros et adresses électroniques retirés. |
| `sources_donnees()` | « d'où viennent ces chiffres ? » | Sources, licences et attributions. |

`lieu` est du texte libre : une commune, une plage, un quartier, un cirque, un sommet, ou des coordonnées `-21.05, 55.22`. Le répertoire contient environ 1 250 lieux tirés d'OpenStreetMap, avec leur altitude IGN.

**Citer la source.** Chaque réponse finit par `citer` (« rundata.re, d'après Météo-France (station Saint-Pierre Pierrefonds) », fait des sources réellement utilisées) et `lien`, la page de rundata.re qui montre la même chose. Le champ `sources` garde l'attribution et la licence complètes de chaque producteur : rundata.re s'ajoute à eux, il ne les remplace pas. Quand une réponse n'a rien trouvé, une ligne `avis` rappelle l'outil `donner_avis`.

**Fraîcheur et nouveautés dans chaque réponse.** À côté de `citer`, `fraicheur` dit de quand date la donnée quand la source le dit (`donnee_du`), quand rundata.re l'a lue (`lue_a`, heure de La Réunion), son âge, et `copies_de_secours` quand une partie vient de la dernière copie lue : la source qui n'a pas répondu, nommée, avec l'heure de cette copie (`partielle` quand la même réponse a aussi des parties de cette source lues à jour : chaque copie retient la source qu'elle a lue), ou une partie dont notre lecture n'a pas abouti (l'avertissement le dit, et le reste de la réponse n'est dit à jour que s'il l'est) ; le cache note ce qu'il sert à chaque appel (`src/lectures.ts`), aucun outil n'a à le dire. Un bloc `serveur` donne la version, le nombre d'outils et les outils de moins d'une semaine : un assistant dont la liste d'outils est ancienne (certains la gardent des heures) le voit et peut le dire. `sources_donnees` donne la liste de tous les outils et les dernières nouveautés. Le tout vient de `src/nouveautes.ts`, à tenir à jour à chaque nouvel outil ou changement visible ; l'index en tête des instructions du serveur en est tiré, et les changements font aussi la page `/nouveautes` du site et [CHANGELOG.md](CHANGELOG.md) (`npm run changelog` le réécrit ; un test vérifie qu'il est à jour).

**Les microclimats.** L'île monte de 0 à 3 000 m en 20 km. L'est est exposé aux alizés (« au vent »), l'ouest est abrité (« sous le vent »). Chaque réponse donne donc la pertinence de la station (`bonne` / `moyenne` / `faible`) et un avertissement quand la station est plus basse, plus loin ou sur l'autre versant. Une station du littoral ne répond jamais en silence pour Cilaos.

## Sources

| Source | Ce qu'elle mesure | Fraîcheur | Licence |
|---|---|---|---|
| Stations Météo-France, API Package Observations (clé gratuite, facultative) | ~56 stations, de la côte aux sommets : air, pluie, et pour une partie humidité, vent, pression | toutes les 6 min, publiées 5 à 10 min après | Licence Ouverte Etalab 2.0 |
| METAR Gillot et Pierrefonds (Météo-France, via NOAA aviationweather.gov) | air, humidité, vent, pression, temps présent | toutes les 30 min, environ 20 min de retard | données OMM, diffusion libre |
| Balises Pioupiou / [OpenWindMap](https://openwindmap.org) | vent | toutes les 4 min | licence communautaire OpenWindMap, attribution obligatoire |
| NOAA CoastWatch ACSPO L3S | température de surface de la mer, satellite, carrés de 2 km | quotidienne, paraît au plus tôt le lendemain | domaine public |
| NASA Aqua MODIS (via NOAA PFEG), en secours | idem, carrés de 4 km, de jour | quotidienne, paraît au plus tôt le lendemain | domaine public |
| Vigilance météo et alerte cyclonique, Météo-France (API DPVigilance, même clé) | couleurs par zone et par heure, textes de suivi | à chaque nouveau bulletin, lu toutes les 5 min | Licence Ouverte Etalab 2.0 |
| Radar Météo-France, lame d'eau de La Réunion à 500 m (API DPRadar, même clé) | pluie estimée par les radars du Colorado et de Piton Villers, avec un indice de qualité | toutes les 5 min | Licence Ouverte Etalab 2.0 |
| Séismes de l'OVPF-IPGP (service FDSN de l'IPGP) | séismes localisés sous le volcan et sur l'île, magnitude, profondeur | dès qu'un analyste les a localisés | CC BY 4.0 |
| Publications de l'OVPF-IPGP (son compte Bluesky public) | bulletins mensuels, communiqués, éruptions ; le texte des communiqués publiés en images, lu automatiquement dans leur première image (Tesseract, `scripts/ovpf-ocr.ts`) et cité comme tel | à chaque publication | citées avec leur lien |
| [pitonlive.com](https://pitonlive.com) (site indépendant) | niveau ORSEC, éruption en cours, accès à l'Enclos d'après les arrêtés préfectoraux | lu toutes les 10 min | non précisée : cité avec son nom et son lien |
| EDF SEI Réunion, [open data](https://opendata-reunion.edf.fr) | production par filière ; « météo de l'électricité » | toutes les 5 min ; chaque jour | Licence Ouverte Etalab 2.0 |
| Avis de coupure d'électricité d'EDF Réunion relayés par les mairies de Sainte-Marie, Saint-Philippe, Cilaos, Saint-André et Sainte-Suzanne (API WordPress de leurs sites ; pour Saint-André, la liste des courriers d'EDF qu'elle met en ligne en PDF) | jours, heures et secteurs de chaque coupure, coupure en cours ou programmée, avec le titre et le lien de l'avis ; le texte de l'avis n'est pas repris ; d'un PDF, seule la date de coupure que donne son nom, sinon sa date de mise en ligne, avec son lien (aucun PDF n'est lu) | relu toutes les 2 heures par l'événement planifié (`web:courant`, `src/web/partagees.ts`) | information publique, faits seuls |
| [Météo des déchèteries](https://data.tco.re/explore/dataset/meteo-des-decheteries/) du Territoire de l'Ouest (TCO) | pour chacune des 13 déchèteries du TCO et chaque déchet (encombrants, déchets verts, gravats, métaux…), benne pleine ou non, rempli par les agents environ toutes les 2 heures ; la liste des sites est dans le paquet (`scripts/build-decheteries.py`) | relu toutes les 30 minutes | Licence Ouverte |
| [Calendriers de collectes du Territoire de l'Ouest](https://data.tco.re/explore/dataset/calendriers-de-collectes-du-territoire-de-louest-gru/) (TCO) | pour chacune des 3 247 voies de Saint-Paul, La Possession, Saint-Leu, Le Port et Trois-Bassins, son calendrier ; de chacun des 125 calendriers, les jours de collecte des ordures ménagères, du tri, des déchets verts et des encombrants et les jours fériés, lus dans son PDF (`scripts/build-collecte.py`, chaque mois vérifié contre les jours de la semaine) ; dans le paquet | le lundi, `.github/workflows/collecte.yml` compare la date de mise à jour du jeu et échoue quand le jeu change, pour qu'on le refasse (il échoue aussi si un PDF ne se lit plus) | Licence Ouverte |
| Marchés forains et couverts d'[OpenStreetMap](https://www.openstreetmap.org/) (`amenity=marketplace`) | nom, jours et heures quand ils sont renseignés, adresse, position ; liste incomplète | dans le paquet, refait par `scripts/build-marches.py` | ODbL, © les contributeurs d'OpenStreetMap |
| [FINESS](https://www.data.gouv.fr/datasets/finess-extraction-du-fichier-des-etablissements/), fichier national des établissements sanitaires et sociaux (ministère de la Santé) | pharmacies, sites hospitaliers et cliniques de La Réunion : nom, adresse, commune, téléphone, position (sans les sites psychiatriques ni de rééducation) ; ni les horaires ni les services d'urgences, que FINESS ne donne pas ; noms et adresses sans accents, comme dans le fichier | dans le paquet, refait par `scripts/build-sante.py` | Licence Ouverte 2.0 |
| Prix maximums des carburants et de la bouteille de gaz ([communiqués de la préfecture](https://www.reunion.gouv.fr/Actualites/Communiques-de-presse), arrêté mensuel du préfet) | supercarburant, gazole, GNR, pétrole lampant, carburants des professionnels de la mer, bouteille de gaz de 12,5 kg, et l'écart au mois précédent | lu chaque jour par `.github/workflows/carburants.yml`, qui échoue si l'arrêté du mois manque après le 2 | Licence Ouverte (informations publiques de l'État) |
| Calendrier scolaire (Éducation nationale) et jours fériés (calendrier.api.gouv.fr) | vacances de l'académie de La Réunion, jours fériés | lu une fois par jour | Licence Ouverte Etalab 2.0 |
| Indice ATMO d'Atmo Réunion (géoserveur d'Atmo France) | qualité de l'air par commune, polluant en cause | chaque jour, pour le jour et le lendemain | Licence Ouverte Etalab 2.0 |
| Annuaire de l'administration (service-public.fr, DILA) | adresses, horaires, téléphones des services publics | mis à jour par chaque service | Licence Ouverte Etalab 2.0 |
| Base adresse nationale et Géoplateforme de l'IGN : géocodage, cadastre (DGFiP), Géoportail de l'urbanisme, altitude RGE ALTI | adresse, parcelle, zone du PLU, altitude du sol | à chaque mise à jour des registres | Licence Ouverte Etalab 2.0 |
| Plans de prévention des risques (servitudes PM1 et PM3 publiées par la DEAL sur le Géoportail de l'urbanisme) | zones réglementées des PPR inondation, mouvements de terrain, littoral et technologiques | à chaque révision d'un plan | Licence Ouverte Etalab 2.0 |
| Géorisques (ministère de la Transition écologique, BRGM) | arrêtés de catastrophe naturelle, mouvements de terrain recensés (BDMvt), sismicité, radon | à chaque arrêté ou relevé | Licence Ouverte Etalab 2.0 |
| Horaires des réseaux de bus (GTFS) : Car Jaune (Région), Citalis et téléphérique Papang (CINOR), Kar'Ouest (TCO), Alternéo (CIVIS), CarSud (CASUD), Estival (CIREST), via [transport.data.gouv.fr](https://transport.data.gouv.fr) | horaires théoriques de ~10 000 arrêts ; préparés par `scripts/build-transit.py` dans une base Cloudflare D1 | à chaque nouvelle version publiée par un réseau | Licence Ouverte Etalab 2.0 |
| Bus en direct (GTFS-RT) : Car Jaune, Alternéo, CarSud, via [transport.data.gouv.fr](https://transport.data.gouv.fr) | heure annoncée de chaque course à ses prochains arrêts, courses et arrêts supprimés, info trafic ; rapprochés des horaires par course et par arrêt | chaque minute | Licence Ouverte Etalab 2.0 |
| Vélos en libre-service Altervélo (CIVIS, exploité par Ecovélo), flux GBFS via [transport.data.gouv.fr](https://transport.data.gouv.fr/datasets/velos-a-assistance-electrique-en-libre-service-saint-pierre-la-reunion-civis-altervelo) | vélos et places libres de chaque station | en direct (relu au plus chaque minute) | Licence Ouverte Etalab 2.0 |
| Marégraphes du SHOM, réseau RONIM ([REFMAR](https://data.shom.fr/donnees/refmar)) : Pointe des Galets (Le Port) et Sainte-Marie | hauteur d'eau au-dessus du zéro des cartes, données brutes ; hauteurs horaires validées pour le calcul de la marée | chaque minute, environ 4 min de retard ; calcul refait par `scripts/build-maree.py` | Licence Ouverte 2.0, citer « REFMAR. http://dx.doi.org/10.17183/REFMAR#RONIM » |
| [Vigicrues Réunion](https://www.vigicrues-reunion.re) (DEAL Réunion) : vigilance crues et 29 stations de rivières ; positions des stations par le référentiel [Hub'Eau](https://hubeau.eaufrance.fr), préparées par `scripts/build-crues.py` | vigilance crues par rivière, hauteur d'eau et débit, crues de référence | toutes les 5 minutes | Licence Etalab, citer « © VIGICRUES » et la date |
| Bornes de recharge : [base nationale des IRVE](https://transport.data.gouv.fr/datasets/beta-bases-nationales-des-points-de-recharge-pour-vehicules-electriques-en-france-irve) de transport.data.gouv.fr, liste des stations préparée par `scripts/build-irve.py`, état filtré du fichier national toutes les 15 minutes (`.github/workflows/irve.yml`) | stations, puissance et prises de chaque point, libre, occupé ou hors service | toutes les 15 minutes | Licence Ouverte Etalab 2.0 |
| Eau du robinet : [contrôle sanitaire de l'ARS](https://hubeau.eaufrance.fr/page/api-qualite-eau-potable) via Hub'Eau | analyses par réseau de distribution, conformité, paramètres au-dessus des limites | à chaque publication (un à deux mois après le prélèvement) | Licence Ouverte Etalab 2.0 |
| Eau de baignade : [contrôle sanitaire des eaux de baignade](https://baignades.sante.gouv.fr/baignades/navigMap.do?idCarte=reu) (ARS, ministère chargé de la santé), liste des sites préparée par `scripts/build-baignades.py`, toute l'île rassemblée quatre fois par jour (`.github/workflows/eau.yml`) | entérocoques et E. coli de chaque prélèvement, plages et bassins | toutes les deux semaines environ | information publique |
| Randonnée : [carte des sentiers fermés de l'ONF](https://www.onf.fr/vivre-la-foret/+/b90::randonnee-la-reunion-connaitre-les-sentiers-fermes.html) (service cartographique public) | état de chaque sentier et route forestière géré par l'ONF, cause, réouverture prévue | à chaque mise à jour de l'ONF (arrêtés préfectoraux, décisions ONF) | information publique, ONF La Réunion |
| Feux de végétation : [NASA FIRMS](https://firms.modaps.eosdis.nasa.gov/) (API par zone, satellites VIIRS Suomi NPP, NOAA-20 et NOAA-21, 375 m), avec une clé MAP_KEY gratuite (`FIRMS_MAP_KEY`) ; sans clé, rien n'est demandé ni affiché | points chauds des dernières 24 h : position, heure, confiance, puissance ; « détection satellite, faux positifs possibles » (toit chaud, site industriel, brûlage autorisé) | 4 à 6 passages par jour ; une requête par satellite (3 sous-requêtes), gardée 30 min pour toute l'île, seulement s'il reste deux fois ce coût | données de la NASA, partage libre ; « We acknowledge the use of data and/or imagery from NASA's FIRMS (https://earthdata.nasa.gov/firms), part of NASA's Earth Science Data and Information System (ESDIS). » |
| Traces de randonnée : relations « hiking » d'[OpenStreetMap](https://www.openstreetmap.org) à La Réunion, mises bout à bout et simplifiées (5 m) par `scripts/build-traces.py` ; sentiers de l'ONF à pleine résolution, lus à la demande ; altitudes du [service d'altimétrie de l'IGN](https://geoservices.ign.fr/documentation/services/services-geoplateforme/altimetrie) (RGE ALTI) | traces GPS (GPX), longueur, dénivelé, profil | itinéraires à chaque reconstruction ; sentiers de l'ONF relus toutes les heures | ODbL, « © les contributeurs d'OpenStreetMap » ; ONF : information publique ; IGN : Licence Ouverte Etalab 2.0 |
| Sécheresse : [VigiEau](https://vigieau.gouv.fr) (arrêtés préfectoraux de restriction d'eau) | niveau par commune et par ressource, usages restreints | à chaque nouvel arrêté | Licence Ouverte Etalab 2.0 |
| Coupures d'eau : flux des avis de [Dionéo](https://dioneo.re), [runéo](https://www.runeo.re), [Eaux de La Possession](https://www.eauxdelapossession.re) et communiqués eau de la [CIREST](https://www.cirest.fr/categorie/communique/communique-eau/) (CISE Réunion) | coupures, travaux, avis « ne pas boire l'eau » | à chaque avis | information publique (avis aux abonnés) |
| Défibrillateurs : [Géo'DAE](https://www.data.gouv.fr/datasets/geodae-base-nationale-des-defibrillateurs), base nationale du ministère chargé de la santé, liste préparée par `scripts/build-dae.py` | emplacement, accès, horaires déclarés de chaque appareil | à chaque reconstruction de la liste | Licence Ouverte Etalab 2.0 |
| Sport : [FFHB](https://www.ffhandball.fr/competitions/saison-2026-2027-22/regional/o-ligue-de-la-reunion-31/), [FFVB](https://www.ffvbbeach.org/ffvbapp/resu/vbspo_calendrier.php?saison=2026/2027&codent=LIRE), avis de la [Ligue réunionnaise de volley-ball](https://lrvb.re/), [FFVoile](https://regates.ffvoile.fr/), [ffgolf](https://www.ffgolf.org/), [Ligue du sport automobile](https://lsar.re/), [Sportsregions (calendrier des clubs)](https://portail.sportsregions.fr/reunion/calendrier-clubs-sportifs-en-reunion), [Grand Raid (Livetrail)](https://grandraid-reunion.v3.livetrail.net/), [Réunion La 1ère](https://la1ere.franceinfo.fr/reunion/sport/) | matchs, scores, classements, annulations et reports, régates, compétitions, rallyes, événements des clubs, podiums, titres d'articles | de 30 min (Grand Raid, actualité, avis de la Ligue de volley) à 24 h (calendrier du sport automobile) | information publique (calendriers et résultats officiels, événements publiés par chaque club, avis cités avec leur lien) ; titres et liens seulement pour Réunion La 1ère |
| Cyclones : bulletins du CMRS de La Réunion (Météo-France), republiés par [GDACS](https://www.gdacs.org) (Commission européenne, Nations unies) ; côtes [Natural Earth](https://www.naturalearthdata.com/) pour la carte, préparées par `scripts/build-ocean.py` | position, stade, vent, pression, trajectoire et prévision de chaque système | toutes les 6 heures pendant un système | réutilisation libre en citant « Global Disaster Alert and Coordination System, GDACS » ; Natural Earth : domaine public |
| Historique : [données climatologiques de base quotidiennes](https://meteo.data.gouv.fr/datasets/6569b51ae64326786e4e8e1a) de Météo-France, 249 stations depuis 1900, rangées par `scripts/build-climat.py` ; normales 1991-2020 calculées par `scripts/build-normales.py` | pluie, températures, rafales, ensoleillement, rayonnement, humidité, jour par jour | chaque matin, avec la veille | Licence Ouverte 2.0 |
| Historique heure par heure : [données climatologiques de base horaires](https://meteo.data.gouv.fr/datasets/6569b4473bedf2e7abad3b72) de Météo-France, 104 stations depuis 2000, rangées par `scripts/build-climat-h.py` | pluie, température, humidité, vent, rafales, ensoleillement, rayonnement, heure par heure (heure de La Réunion) | chaque matin, avec la nuit qui vient de finir | Licence Ouverte 2.0 |
| Événements : programmes des salles [TÉAT Champ Fleuri et Plein Air](https://www.teat.re/programmation/), [Cité des Arts](https://www.citedesarts.re/Programmation), [CDNOI](https://www.cdnoi.re/programmation/), [Kabardock](https://kabardock.com/), [Le Séchoir](https://www.lesechoir.com/) (The Events Calendar), [Léspas](https://lespas.re/category/la-saison/), [Bisik](https://bisik.re/agenda/), [Théâtre Luc Donat](https://www.theatrelucdonat.re/tld_agenda) ; [The Events Calendar](https://theeventscalendar.com/) des mairies de [Saint-Paul](https://www.mairie-saintpaul.re/evenements/), du [Port](https://www.ville-port.re/events/) et des [Trois-Bassins](https://trois-bassins.re/events/), flux RSS de l'agenda du [Tampon](https://letampon.fr/agenda/), de [Saint-Louis](https://saintlouis.re/agenda/evenements), de [Saint-André](https://www.saint-andre.re/category/agenda/), de [L'Étang-Salé](https://www.letangsale.fr/mes-acces-rapides/telechargements/l-agenda-des-manifestations), de l'[Entre-Deux](https://entredeux.re/agenda) et de [La Possession](https://www.lapossession.re/agenda), pages agenda de [Petite-Île](https://www.petite-ile.re/actualites/agenda/), de [Bras-Panon](https://www.braspanon.re/fr/ev/2512733/agenda-1634) et de [Saint-Benoît](https://www.saint-benoit.re/evenements/general), [agenda de l'office de tourisme de l'Est](https://www.reunionest.fr/agenda-et-evenements) (OTI EST REUNION), [OpenAgenda](https://openagenda.com/cinor-territoire-du-nord-de-la-reunion) de la CINOR et de l'office de tourisme du Nord, [agenda de reunion.fr](https://www.reunion.fr/organisez/actualites-de-l-ile/agenda/) (Île de La Réunion Tourisme) | événements : dates, heures, lieu, prix | relu toutes les heures | Licence Ouverte Etalab 2.0 (OpenAgenda) ; information publique (programmes des salles, agendas des mairies et de reunion.fr) : de chaque événement, ses faits seulement (titre, dates, heures, lieu, genre, statut) et au plus la première phrase de son texte, avec le nom de qui le publie, le lien vers sa page et l'heure de lecture ; office de tourisme de l'Est : reproduction autorisée par ses mentions légales, citée « OTI EST REUNION — Droits réservés », titres repris tels quels |
| Actualités : titres de [Réunion La 1ère](https://la1ere.franceinfo.fr/reunion/) (sitemap Google News et RSS), [Clicanoo](https://www.clicanoo.re/), [Imaz Press](https://imazpress.com/) (sitemap Google News et son direct « l'actu en continu »), [Freedom](https://freedom.fr/), [Parallèle Sud](https://www.parallelesud.com/), [Témoignages](https://www.temoignages.re/) ; [communiqués de presse de la préfecture](https://www.reunion.gouv.fr/Actualites/Communiques-de-presse) | titre, heure, première phrase, communes et lieux nommés, phrase qui nomme un lieu, lien | relu toutes les 5 minutes | titres, première phrase et lien seulement, comme un agrégateur : les articles restent sur le site de chaque média ; communiqués de la préfecture : Licence Ouverte. Linfo.re et Zinfos974, qui refusent les lecteurs automatiques, ne sont pas lus. |
| Demandes de valeurs foncières (DGFiP), API DVF du Cerema | ventes immobilières, agrégées en médianes | deux fois par an | Licence Ouverte Etalab 2.0 |
| Prévisions AROME outre-mer, Météo-France (API « AROME », même clé que les observations ; outil `prevision_meteo` seulement) | prévision de modèle, maille de 2,5 km, 48 h | 4 calculs par jour | Licence Ouverte Etalab 2.0 |
| Prévisions ECMWF IFS HRES, via [Open-Meteo](https://open-meteo.com/) (outil `prevision_meteo` seulement, au-delà de 48 h et en secours) | prévision de modèle, maille de 9 km | nouveau calcul toutes les 6 h | CC BY 4.0 ; API Open-Meteo gratuite pour usage non commercial |
| Prévision des vagues ECMWF WAM, via l'[API marine d'Open-Meteo](https://open-meteo.com/en/docs/marine-weather-api) (outil `temperature_mer`, page `/mer`) | hauteur, période de pic et direction des vagues, 4 jours, toutes les plages en une requête | nouveau calcul toutes les 6 h, lu toutes les 30 min | CC BY 4.0 ; API Open-Meteo gratuite pour usage non commercial |
| Ensemble ECMWF ENS (51 scénarios), via l'[API d'ensemble d'Open-Meteo](https://open-meteo.com/en/docs/ensemble-api) (outil `prevision_meteo`, pages météo) | dispersion des scénarios jour par jour (maximum, pluie, rafales : écart entre le 1er et le 9e décile des scénarios), maille de 25 km, 7 jours, toute l'île en une requête | nouveau calcul toutes les 6 à 12 h, lu toutes les 3 h par la tâche planifiée, jamais par une question | CC BY 4.0 ; API Open-Meteo gratuite pour usage non commercial |
| Indice UV du service Copernicus de surveillance de l'atmosphère (CAMS global), via l'[API qualité de l'air d'Open-Meteo](https://open-meteo.com/en/docs/air-quality-api) (outil `prevision_meteo`) | indice UV prévu, nuages compris, maille de 45 km, 5 jours, toute l'île en une requête | 2 calculs par jour, lu toutes les heures | licence Copernicus (citer CAMS) et CC BY 4.0 ; API Open-Meteo gratuite pour usage non commercial |

### Marée calculée

Les prédictions de marée du SHOM ne sont pas en données ouvertes ; ses mesures le sont. `scripts/build-maree.py` ajuste aux hauteurs horaires validées de plusieurs années le modèle harmonique classique de la marée (31 ondes, corrections nodales de Schureman, moindres carrés, Python sans bibliothèque) ; le serveur fait la somme pour les heures à venir (`src/maree/calcul.ts`, mêmes formules), sans requête. Les hauteurs sont recalées sur l'écart entre la mesure et le calcul des 6 dernières heures (le vent, la pression et la houle montent ou baissent la mer pendant des jours). Chaque réponse le dit : « calcul de rundata d'après les mesures, pas la prédiction officielle du SHOM », et cite « REFMAR. http://dx.doi.org/10.17183/REFMAR#RONIM ».

Contrôle sur des mois que le calcul n'a pas vus, pleines et basses mers mesurées toutes les 10 minutes (lissées sur une heure, comme le calcul), recalage pris 12 h avant :

| Marégraphe | Ajusté sur | Contrôlé sur | Écart d'heure médian | Écart de hauteur médian |
|---|---|---|---|---|
| Pointe des Galets (Le Port) | 2022-07 à 2026-06 (34 969 heures) | 2026-07 à 2026-09, 346 pleines et basses mers | 14,2 min (38 % sous 10 min, 64 % sous 20 min) | 2,1 cm recalée (89 % sous 5 cm) ; 5,3 cm sans recalage |
| Sainte-Marie | 2022-07 à 2026-06 (26 767 heures) | 2026-07 à 2026-09, 347 pleines et basses mers | 21,3 min (26 % sous 10 min, 48 % sous 20 min) | 2,6 cm recalée (79 % sous 5 cm) ; 5,3 cm sans recalage |

La marée est faible à La Réunion (20 à 80 cm) : en mortes-eaux, la pleine ou la basse mer s'étale et son heure est plus incertaine (la réponse le signale). Le bruit de la mer hors marée (vent, pression, houle, seiches : environ 7 cm) déplace l'heure observée d'un extrême de plusieurs dizaines de minutes ; ni des ondes de plus ni un calage de l'heure n'y changent rien. D'où les heures arrondies à 5 min et annoncées « à environ 15 min près » au Port et « à environ 20 min près » à Sainte-Marie.

## Code source

https://github.com/rundata-re/rundata — licence MIT (fichier [`LICENSE`](LICENSE)).

Ailleurs : la fiche de réutilisation sur [data.gouv.fr](https://www.data.gouv.fr/reuses/rundata-re-la-reunion-974-en-direct-pour-vous-et-votre-assistant-ia), la fiche du serveur sur [Glama](https://glama.ai/mcp/servers/bLd75/rundata) et les comptes [Facebook](https://www.facebook.com/1432704299917309), [Instagram](https://www.instagram.com/rundata.re/) et [WhatsApp](https://www.whatsapp.com/channel/0029VbEDFav5Ui2agqGyG63Q) (la chaîne).

Chaque pull request fusionnée est mise en ligne sur rundata.re dès que les tests passent (`.github/workflows/deploy.yml`). Quand un réseau de bus publie de nouveaux horaires, ils sont importés dans D1 avant la fusion (`scripts/build-transit.py --d1 rundata-transports`) : sans eux, le déploiement s'arrête avant de mettre en ligne.

## Utilisation

**Dans votre assistant IA** : ajoutez un connecteur personnalisé avec l'adresse `https://rundata.re/mcp` (Claude.ai, ChatGPT, Le Chat…). Rien à installer, pas de compte.

**En local** (Node ≥ 20) : `npm install`, puis `npm run dev:http` (point d'accès `http://127.0.0.1:8787/mcp`, visible de cette machine seulement ; `HOST=0.0.0.0` pour l'ouvrir au réseau, par exemple dans un conteneur) ou `npm run dev:stdio`. `npm test` lance les tests, sans réseau.

**En conteneur** : `docker build -t rundata .` puis `docker run -i --rm rundata` lance le serveur en stdio (variables facultatives `METEOFRANCE_APPLICATION_ID` ou `METEOFRANCE_API_KEY` pour les stations, la vigilance et le radar de Météo-France).

## Le site

Les pages sont rendues par le serveur, données comprises, pour les moteurs de recherche et les aperçus de liens (`src/web/`). Le menu, les tuiles de l'accueil, le pied de page et le sitemap viennent d'une seule liste de catégories (`src/web/categories.ts`) :
- `/` : l'île en ce moment, une tuile par catégorie avec sa donnée du moment, puis comment brancher le connecteur ;
- Liens croisés : chaque page météo d'un lieu liste les randonnées qui passent à moins de 12 km avec leur état, et la page de son secteur ; chaque fiche de sentier ou d'itinéraire renvoie à la page météo la plus proche et à la vigilance ; la page d'une commune a ses tuiles « Randonnée » (ses sentiers de l'ONF, ceux qui sont fermés) et « Sorties » (ses événements des deux semaines) ; /evenements/ce-week-end donne, jour par jour, la prévision des communes où il se passe quelque chose ;
- `/meteo` : la météo de toute l'île (carte, stations de la côte aux sommets, mer), et `/meteo/<commune>` pour les 24 communes et quelques lieux (volcan, Maïdo, Hell-Bourg…), avec la station la plus pertinente, la mer sur la côte et la prévision, étiquetée ;
- `/communes/<commune>` : tout ce qui concerne une commune en ce moment (météo de sa station, vigilance de sa zone, air, mer sur la côte, prochains bus à sa gare ou près de son centre, mairie ouverte ou fermée, soleil), puis le volcan et l'électricité de toute l'île ; `/communes` les liste par zone ;
- `/communes/<commune>.rss` : les alertes d'une commune en flux RSS, un article seulement quand il se passe quelque chose : vigilance de Météo-France au-dessus du vert pour sa zone (vagues-submersion pour une commune du littoral, alerte cyclonique pour toutes), avis de coupure d'eau qui la nomment, sentiers de l'ONF fermés sur son territoire, volcan au-dessus de « Vigilance ». Lu dans les copies des pages (vigilance, `/coupures-eau`, `/randonnees`, `/volcan`), jamais construit pour le flux ; chaque article garde le même identifiant tant que l'événement dure, pour qu'un lecteur ne le montre qu'une fois (`src/web/rss.ts`). Annoncé dans l'en-tête de la page de la commune et lié dans son pied de page ;
- `/vigilance` : la vigilance météo et l'alerte cyclonique, zone par zone ;
- `/ecoles-cyclone` : ce que prévoit le dispositif ORSEC Cyclones de la préfecture pour les crèches, écoles, collèges, lycées et universités, et l'alerte en vigueur d'après le bulletin de Météo-France ; le dernier communiqué cyclone de la préfecture y est cité (titre et lien), avec la levée de l'alerte et la réouverture des écoles quand un communiqué les dit, et les deux sources quand elles divergent ;
- `/alerte-cyclone` : ce que le dispositif ORSEC Cyclones de la préfecture prévoit à chaque niveau d'alerte (travail, écoles, manifestations, circulation, centres d'hébergement, phase de sauvegarde), cité page par page avec le lien du PDF, sous l'alerte en vigueur ; rien sur ce que le plan ne dit pas (bus, commerces) ;
- `/mer` : la température de l'eau au large des plages ;
- `/volcan` : éruption ou non, accès à l'Enclos, séismes et messages de l'observatoire ;
- `/bus` : les réseaux et les prochains départs dans les gares routières ;
- `/actualites` : ce qui se passe sur l'île depuis 24 h, d'après les médias locaux : le direct du jour quand un média en tient un, toutes les informations avec leur heure, leur média et les communes qu'elles nomment, un filtre par commune et par sujet, les communiqués de la préfecture ; les jours de mobilisation, les derniers titres passent aussi en tête de l'accueil ;
- `/trafic` : la circulation, sans donnée de trafic reprise : la carte Waze en direct (chargée seulement au clic, car elle dépose des cookies), un lien vers infotrafic.re (état officiel des routes, Région Réunion), les retards et déviations des bus, les routes forestières fermées, l'accès à l'Enclos, la vigilance, et ce que disent les médias des routes et des barrages dans leurs titres des six dernières heures, avec les communiqués du jour de la préfecture (d'après la dernière lecture des actualités, refaite après la réponse quand elle date) ;
- `/coupures-eau/<commune>` : l'eau d'une commune : les avis de coupure de son distributeur, ou « aucun avis publié à HH:MM », qui distribue son eau (d'après le contrôle sanitaire de l'ARS, `src/eau/distributeurs.json`, `scripts/build-distributeurs.py`), son niveau de sécheresse et son eau du robinet ; tirée des copies de `/coupures-eau`, `/secheresse` et `/eau`. La page de chaque commune y renvoie par sa tuile « Eau » ;
- `/air` : l'indice ATMO du jour dans chaque commune, sur une carte ;
- `/electricite` : la production d'électricité filière par filière, la part renouvelable et les heures de tension ; une section `#coupures` donne les coupures annoncées par les mairies qui relaient les avis d'EDF ;
- `/calendrier` : les vacances scolaires de l'académie de La Réunion pour l'année scolaire en cours, toutes ses périodes (et l'année suivante dès qu'elle est publiée), les jours fériés, le lever et le coucher du soleil ;
- `/randonnees` : la page des randonneurs, avec tous les itinéraires et sentiers sur une carte de l'île selon leur état, leurs distances et dénivelés, un filtre (recherche, distance, dénivelé, ouverts seulement, boucle) et les itinéraires coupés par une fermeture ; `/sentiers` : les sentiers fermés du jour, commune par commune, et, avec la clé FIRMS, les feux de végétation vus par satellite ces dernières 24 h (en tête quand il y en a, avec le 18 et le 112 ; la tuile « Randonnée » d'une commune les dit aussi) ; `/feux` : ces feux sur la carte de l'île et en liste, avec les sentiers fermés (copie de `/sentiers`) et la vigilance ; sans la clé, la page dit que la détection n'est pas encore active, n'est pas indexée (`noindex`), n'est pas dans le sitemap et rien n'y renvoie ;
- `/randonnees/<secteur>` : une page par secteur (Mafate, Cilaos, Salazie, Volcan, Hauts de l'Ouest, Nord, Est, Sud, Sud sauvage, Littoral) : ses sentiers fermés en tête, ses itinéraires et ses sentiers de l'ONF, les accès et la météo de la page la plus proche ; tirée de la copie de `/randonnees`, sans rien lire de plus. Le secteur d'un sentier ou d'un itinéraire est calculé une fois par `scripts/build-traces.py` : celui où passe la plus grande partie de son tracé (cirque de Mafate d'OpenStreetMap, communes de geo.api.gouv.fr, altitudes de l'IGN pour le volcan et le littoral) ; un itinéraire qui traverse l'île n'en a pas, il est listé dans chaque secteur qu'il traverse ;
- `/sentiers/<sentier>` et `/randonnees/<randonnée>` : un sentier de l'ONF ou un itinéraire de randonnée, sa trace sur la carte, son profil, son état d'après l'ONF (les tronçons fermés d'un itinéraire en tête de page) et son fichier GPX (la même adresse suivie de `.gpx`, avec un point « FERMÉ » au début de chaque tronçon fermé) ;
- `/evenements` : les événements des deux semaines qui viennent, jour par jour, filtrables par genre ; `/evenements/ce-week-end` : ceux du week-end (du vendredi 17 h au dimanche soir, avec un jour férié qui y est collé ; à partir du lundi, le week-end qui vient) ; `/evenements/concerts` : les concerts, ceux du soir à part. Les deux sont tirées de la copie de `/evenements`, sans rien lire de plus ;
- `/decheteries` : les déchèteries de l'Ouest (TCO), une section par commune avec son ancre, les bennes pleines ou non d'après les agents, une mise à jour de plus de 6 h dite à vérifier ; une tuile sur les pages des cinq communes du TCO y renvoie ;
- `/collecte` et `/collecte/<commune>` : le jour de collecte des déchets rue par rue dans les cinq communes du TCO, avec une recherche par rue, les rues groupées par calendrier ;
- `/carburants` : les prix maximums du mois, fixés par le préfet, avec l'écart au mois précédent et le lien vers le communiqué ; daté dans le sitemap par l'arrêté ; aussi en carte sur `/trafic` ;
- `/aujourdhui/<commune>` : la journée de chacune des 24 communes sur une page, faite du même résumé que l'outil `resume_du_jour` (`src/tools/resume.ts`) : la météo est construite si elle n'a pas de copie, comme sur la page de la commune, le reste est seulement lu dans les copies des pages, et ce qui manque renvoie à sa page ; liée depuis `/communes/<commune>` ;
- `/sites-sans-reponse` : les sites publics de l'île qui ne répondent pas en ce moment, par thème, depuis quand, le dernier essai et ce qui manque ici, avec ceux qui répondent de nouveau depuis moins de 7 jours ; la même liste que l'outil `sites_sans_reponse` (`src/sans-reponse.ts`), lue au plus toutes les 15 minutes ; liée depuis `/a-propos` ;
- `/nouveautes` : ce que le site et le connecteur savent faire de plus, jour après jour, en une phrase par changement, liée depuis le pied de page et donnée par `sources_donnees` ; la même liste que CHANGELOG.md ;
- `/presse` : l'espace presse, lié depuis le pied de page : le communiqué, des chiffres clés comptés dans les données du site au moment de l'affichage (outils, stations, arrêts, bornes, défibrillateurs, sentiers…) et les visuels à télécharger, libres avec la mention rundata.re. Les visuels sont des fichiers statiques servis par Cloudflare à côté du Worker (`public/presse/`, construits par `scripts/build-presse.py`), pas dans son paquet ;
- en bas de chaque page, un formulaire « Un avis, une donnée qui manque ? » (`src/web/avis.ts`) : un formulaire HTML simple, sans script, envoyé à `POST /avis`, qui renvoie à la page avec un merci. Les avis du site et de l'outil `donner_avis` vont dans la table `avis` de D1 (`scripts/avis.sql`), sans adresse IP, effacés au bout de 12 mois ;
- `/robots.txt`, `/sitemap.xml`, `/og.png` (aperçu Facebook, WhatsApp…, `scripts/build-og.py`), `/favicon.svg` et `/favicon.ico` (le symbole de rundata.re, le « Point chaud », en SVG et en PNG de 48 px), `/manifest.webmanifest` (le site gardé sur l'écran d'accueil d'un téléphone, ouvert sur `/?ref=pwa`, avec les raccourcis Météo, Vigilance et Randonnées ; icônes `public/icons/`, symbole et logos `public/logo/`, repris du kit de la marque par `scripts/build-icons.py`), `/sw.js` (le service worker : réseau d'abord, et sans réseau la dernière copie de chaque page ouverte, sous un bandeau qui en donne la date ; rien de `/mcp`, de `?maj=`, des flux ni des traces), `/hors-ligne` (la page d'une adresse jamais ouverte sans réseau, avec les pages gardées sur le téléphone).

Sous le titre de chaque page, une phrase dit à quoi elle sert ; au bas de chaque page, au-dessus du formulaire d'avis, un lien « Partager sur WhatsApp » (`?ref=wa`) et l'appel à suivre rundata.re sur Facebook, Instagram ou WhatsApp (`?ref=site`).

## English

Public data for Réunion Island (French overseas department 974, Indian Ocean), live and sourced:

- **Tools:**
  - `meteo_actuelle(lieu)`: current weather at the most representative station.
  - `prevision_meteo(lieu, quand)`: model forecast (Météo-France AROME outre-mer 2.5 km for 48 h, then ECMWF IFS 9 km via Open-Meteo up to 7 days), with each day's forecast UV index (Copernicus CAMS) and confidence (agreement of the 51 ECMWF ENS members), always labelled as a forecast, never mixed with measurements.
  - `vigilance_meteo(lieu?)`: Météo-France's official weather warnings and cyclone alert, island-wide or for a place's zone.
  - `volcan_seismes()`: Piton de la Fournaise status (eruption, alert level, access) and recent earthquakes located by the OVPF-IPGP.
  - `electricite(lieu?)`: EDF's real-time production mix, renewable share and grid signal for the coming days; the power cuts EDF announces as some town halls relay them (days, hours, streets and the link, never the notice's text).
  - `calendrier(lieu?)`: school holidays (austral calendar), public holidays including 20 December, sunrise and sunset.
  - `qualite_air(lieu?)`: ATMO air quality index per commune, today and tomorrow.
  - `sites_sans_reponse(quoi?)`: the island's public websites that do not answer at the moment, rechecked every day: since when, the last error in plain words and what is missing on rundata.re as a result; a site that answers again leaves the list.
  - `annuaire_services_publics(quoi, lieu?)`: addresses, opening hours and phone numbers of public offices; this month's maximum fuel prices, set by the prefect (`quoi: "carburant"`); and the nearest pharmacies and hospitals from FINESS (`quoi: "pharmacie"`, `"urgences"`), sending to 3237.fr or the 32 37 for the duty pharmacy and to the 15 for an emergency. And the markets OpenStreetMap maps (`quoi: "marché"`), an incomplete list. And the West's déchèteries (`quoi: "déchèterie"`), with which skips are full, as the TCO's staff report it; and the days the bins are collected, street by street, in the West (`quoi: "collecte"`, `lieu`: the street and its commune), from the TCO's calendars.
  - `transports(arret, ligne?)`: next bus departures at a stop, all networks of the island (published timetables, and real-time times, delays and traffic alerts where the network publishes a GTFS-RT feed).
  - `velos_libre_service(lieu?)`: live Altervélo bike-share availability (e-bikes and free docks per station) in Saint-Pierre, Saint-Louis and L'Étang-Salé.
  - `maree(lieu?)`: measured sea level at Réunion's two SHOM tide gauges (Le Port, Sainte-Marie): level, rising or falling, last high and low water observed; then the next high and low waters computed by rundata from years of these measurements (harmonic analysis, `scripts/build-maree.py`), not the SHOM's official prediction, which is not open: times rounded to 5 min, within about 15 min at Le Port and 20 min at Sainte-Marie (median, checked on months outside the fit), heights within about 5 cm, no tidal coefficient.
  - `crues_rivieres(lieu?)`: river flood vigilance and live river levels and flows at 29 gauges (Vigicrues Réunion), with trend and historical floods as landmarks.
  - `bornes_recharge(lieu?, rapide?)`: public EV charging stations with the live status of each charge point (free, in use, out of order), power, plugs and hours.
  - `qualite_eau(lieu?, eau?)`: tap water quality per distribution network and bathing water quality of the 26 beaches and river pools checked by the regional health agency.
  - `sentiers_randonnee(lieu?)`: hiking trails and forest roads open or closed according to the ONF (French forestry office) map, with the cause of each closure; a GPS trace (GPX), length, elevation gain and profile for every ONF trail and for the whole hiking routes of OpenStreetMap (GR R1, R2, R3, Piton des Neiges…), with the state of the ONF trails each route uses and a warning first when one is closed; hikes can be filtered by length and elevation gain.
  - `restrictions_eau(lieu?, profil?)`: drought water-use restrictions in force, per commune and resource, and what is forbidden for a private person, a business, a local authority or a farm.
  - `coupures_eau(lieu?)`: water cuts and do-not-drink notices published by the water distributors.
  - `resume_du_jour(lieu)`: a commune's day in one call (weather, warnings, sea, air, power, roads, news, water cuts, events, town hall, the day's market, the West's waste centres, fuel prices, the duty pharmacy through 3237.fr), read from the site's page copies; what is missing is named with the tool to call.
  - `defibrillateurs(lieu?)`: nearest public defibrillators (AED) with address, walking time and access hours.
  - `sport(sport?, lieu?, quand?)`: fixtures, results and standings of the regional handball and volleyball leagues (clubs by acronym, town or part of the island; matches called off by the league's notices or the news), regattas, golf competitions, motor sport calendar, the Grand Raid's counts and podiums, and sport news headlines.
  - `cyclones(lieu?)`: active tropical cyclones of the south-west Indian Ocean from the RSMC La Réunion advisories (via GDACS): stage, wind, distance and direction from the island, movement, official forecast and closest approach; the cyclone alert in force, and what the prefecture's ORSEC plan says it means for nurseries and schools.
  - `historique_meteo(lieu?, jours?, du?, au?, detail?)`: past measured weather from the Météo-France stations, daily from their first year (1900 for the oldest) to yesterday: rain, min/max temperature, sunshine, gusts, against the station's 1991-2020 normal and its records; hour by hour since 2000 for periods of a few days, last night included.
  - `evenements(lieu?, quand?, quoi?)`: upcoming concerts, plays, dance, comedy, nightlife, fêtes, festivals and markets, from the programmes of the concert halls and theatres (TÉAT, Cité des Arts, CDNOI, Kabardock, Le Séchoir, Léspas, Bisik, Théâtre Luc Donat), the town halls' agendas, OpenAgenda (north of the island) and the tourist board's reunion.fr, with dates, hours, venue, genre, price, booking link, status (cancelled, postponed, sold out) and a link to each event's page.
  - `actualites(lieu?, sujet?, heures?)`: what is happening on the island now, from the local media's headlines and live blogs (time, outlet, first sentence, communes named, what each says of the place asked about, link) and the prefecture's press releases, by place and subject.
  - `fiche_terrain(adresse)`: cadastral parcel, zoning (PLU), altitude, median property prices around (aggregated DVF), and natural hazards: risk prevention plan at the point, natural disaster decrees, landslides recorded within 500 m.
  - `meteo_actuelle` also reports the rain seen by Météo-France's radar at the place.
  - `temperature_mer(lieu)`: measured sea surface temperature near a beach, and apart from it the wave forecast of the ECMWF WAM model (height, period, direction, 4 days, via Open-Meteo), always labelled as a forecast.
  - `donner_avis(type, message, …)`: feedback to rundata.re (missing data, wrong value, suggestion, praise); assistants are invited to send it when a tool came up short.
  - `sources_donnees()`: sources and licences.
- **Places:** free text (town, beach, peak) or `lat, lon`.
- **Traffic:** no live traffic measurement in Réunion is open for reuse, so there is no traffic tool. The `/trafic` page loads Waze's live map only on request (it sets cookies) and links to the Région's infotrafic.re, next to what is open: bus delays and detours, closed forest roads, weather warnings, the local media's headlines of the last six hours about roads and blockades, and the prefecture's press releases of the day on them.
- **Fuel prices:** `/carburants`, the prefect's monthly maximum prices, read every day from the prefecture's press releases.
- **What's new:** `/nouveautes` and [CHANGELOG.md](CHANGELOG.md), both generated from `src/nouveautes.ts`.
- **Press:** `/presse` has the press release, key figures counted live from the site's data, and screenshots free to use with the credit « rundata.re ».
- **Freshness and new tools:** every answer also carries `fraicheur` (when the data dates from, when rundata.re read it, its age, and whether a last copy was served for a source that did not answer) and a short `serveur` block (version, number of tools, tools added this week), so that an assistant with an old tool list can tell; `sources_donnees` lists every tool and the latest changes.
- **Citation:** every answer ends with `citer` (« rundata.re, d'après <producers> ») and `lien`, the matching rundata.re page; the producers' full attribution and licence stay in `sources`.
- **Answers:** every answer carries the measurement time, the station distance, the altitude difference, the windward or leeward side, and a relevance flag.
- **Licences:** code under MIT. Data under each source's licence (see `sources_donnees`). Place names © OpenStreetMap contributors (ODbL), altitudes IGN (Licence Ouverte).

TDQS

A4/5.0

Scored across 27 tools

Disambiguation4/5

The high-risk lookalikes are explicitly separated and cross-referenced: meteo_actuelle / prevision_meteo / historique_meteo split measured-now, forecast and past, and qualite_eau / coupures_eau / restrictions_eau split water quality, cuts and drought rules. Residual overlap remains at the edges — annuaire_services_publics also returns markets and pharmacies, evenements also returns markets, sport and evenements both surface club/sporting events, and resume_du_jour duplicates much of the surface — but the descriptions give the agent clear routing cues.

Naming Consistency4/5

All names are lowercase snake_case French noun phrases with no mixed camelCase or stray verb styles, so the pattern is predictable. There is minor variation in shape (single nouns like calendrier, sport, maree, actualites next to domain+qualifier compounds like qualite_air, coupures_eau, sentiers_randonnee, and adjective-order differences meteo_actuelle vs prevision_meteo), but nothing an agent would misread.

Tool Count3/5

27 tools is above the comfortable band and forces the agent to scan a large menu, though the scope (a whole island's open-data portal across weather, water, energy, mobility, hazards, news, culture) means most tools correspond to a real, disjoint data source. A few could be folded: resume_du_jour aggregates many others, and annuaire_services_publics multiplexes unrelated datasets (fuel prices, pharmacies, marches, decheteries, kids' places) behind a 'quoi' parameter, which is a scoping smell.

Completeness4/5

Coverage is unusually broad for the stated domain: weather now/forecast/history, sea, tides, rivers, air, tap and bathing water, water cuts and restrictions, electricity and EV charging, bike-share, trails with GPX, cadastre/PLU/hazards, volcano and seismes, cyclones, events, news, sport, public offices, defibrillators, plus meta tools for sources and feedback. The visible gaps are daily-life mobility — no public transport / Car Jaune schedules, no ferry or flight info, and road conditions only arrive indirectly through actualites — which an agent can partly work around but which will cause dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues