Suivre le niveau des crues et l’intégrer dans la box domotique Eedomus4 minute(s) de lecture

Ces dernières semaines, le niveau de l’eau dans les ruisseaux, rivières et autres fleuves a été une source de surveillance et d’inquiétude de bon nombre de personnes. Les intempéries et les inondations ont dévasté des villes et des villages laissant nombreux habitants sans autres choix que de quitter leur logement. Le site de Vigicrues dont on a déjà parlé sur ce blog a donc été d’une source d’information indéniable pour permettre de se tenir au courant de l’avancée du débordement des cours d’eau. On y trouve notamment les mesures de la hauteur de l’eau ainsi que le débit. Ces données ne peuvent malheureusement pas être facilement récupérables dans un tableau de bord de la Smart Home ou mieux, être utilisés dans des scénarii. Le script proposé aujourd’hui permet de palier à ce manque.

Le site de Vigicrues permet de suivre les évolutions des alertes ainsi que celles des relevés des cours d’eaux de France et de Navarre. En arrivant sur la page principale du site, il vous suffit de cliquer sur le cours d’eau qui vous intéresse pour “zoomer” sur votre région. Prenons par exemple la “région” Loire-Cher-Indre.

vigicrues-france

Il vous suffit ensuite de cliquer encore une fois sur la station de relevé exacte qui vous intéresse pour avoir accès aux derniers relevés.

vigicrues-loire-cher-indre

Dans mon exemple voici les données de la station de mesure de Tours [St-Sauveur].

vigicrues-tours-st-sauveur

En vous promenant sur les onglets, vous pourrez visualiser les données sous forme de graphe ou de tableaux. En fonction des stations l’hauteur d’eau sera disponible seule ou bien elle pourra être accompagnée de la mise à disposition des débits.

Si l’on souhaite que le script pointe vers cette station il faut alors récupérer dans l’URL du site le code de la station de mesure. Dans mon exemple, la station de Tours (St Sauveur) a pour code K671091001. Gardez ce code “CdStationHydro” il vous sera demandé ultérieurement.

vigicrues-tours-st-sauveur_code

Les plus curieux d’entre vous iront même constater que la station a sa propre petit photo. Les relevés sont pris ici :

Le script que je vous propose a été réalisé rapidement. Il n’est pas des plus propres mais il fonctionne bien. Quelque part c’est tout ce qu’on lui demande (après avoir vérifié bien entendu qu’il ne prenait pas trop de ressources non plus). Il n’a pas besoin d’hôte particulier pour pouvoir être appelé car il trouvera sa place sur la box Eedomus. En revanche si la structure de l’affichage du site Vigicrues change, le script devra être modifié en conséquence. C’est tout ce que je peux faire tant que les données ne sont pas disponibles via des API en Open Data. c’est bien regrettable.

Le script est à télécharger ICI.

Téléchargez-le et ouvrez le zip reçu. Prenez le fichier vigicrues.php et installez-le comme n’importe quel script Eedomus sur votre box.

Ce script se connecte sur la page Vigicrues donnant les relevés sous forme de tableaux. Il en récupère la dernière donnée publiée et la formate au format XML directement lisible par la box domotique.

Pour récupérer la hauteur du niveau de l’eau il vous suffit de créer un périphérique Eedomus de type “HTTP – Capteur” et de la paramétrer de la manière suivante:

eedomus_surveillance_vigicrues_peripherique_param

Les paramètres du périphérique sont les suivants;

  • URL de la requête :
http://localhost/script/?exec=vigicrues.php&CdStationHydro=K671091001&data=h
  • XPath :

/root/vigicrues/station/releve

  • Fréquence de la requête : 60

Dans l’URL vous penserez à remplacer la valeur K671091001 avec le code de votre station que vous avez obtenu précédemment en vous rendant sur le site Vigicrues.

En fonction de la station vous aurez plus ou moins de relevés. En ce qui concerne la station Tours [St-Sauveur] on remarque que sur le site de Vigicrues, les données sont publiées tout les heures. C’est pour cela que je vous propose de les récupérer toutes les 60 minutes.

Dans l’URL vous y trouverez le paramètre data=h il est à utiliser pour récupérer les hauteurs d’eau. Si votre station le permet et si cela vous intéresse vous pouvez créer un autre périphérique HTTP-Capteur, en utilisant cette foic-ci l’URL ayant comme paramètre data=d. Vous récupérerez alors… les débits. C’est aussi simple que cela

Une fois lue par la box domotique , il ne vous reste plus qu’à utiliser cette donnée pour activer vos propres alertes ou bien pour suivre l’évolution de la situation. Il faut bien entendu espérer que la sonde de mesure ne soit pas victime d’une panne comme ce fut le cas à Paris lors de la dernière crue de la Seine….

Avec ce tutoriel et ce script vous pourrez constituer un tableau de bord de surveillance sérieux pour suivre ce phénomène naturel et potentiellement dévastateur. Dans certaines cas il vaut mieux être bien informés.

eedomus_vigilance

9 Comments

  1. Max59 said:

    Good job
    Merci

    mardi 14 juin 2016
    Reply
  2. Fab said:

    Rien à voir avec l’eau. Mais, est-il possible avec une box domotique (laquelle ?) de prendre en compte le trafic routier fournit par Google (par exemple) afin de savoir si le chemin emprunté habituellement le matin est embouteillé ?

    mardi 14 juin 2016
    Reply
  3. schwartz said:

    Bonjour,
    J’ai testé le script pour la station de Vendôme sur le Loir ( CdStationHydro=M114161010 )(bassin Maine loir Aval) et j’obtiens un message d’erreur dans la box eedomus :
    Erreur : valeur non numérique: avec le contenu suivant :
    Vendôme (Loir)Hauteurs en m22/06/2016 06:000.21% […]

    j’ai testé celui de la station de tours et le résultat est bon.
    Une idée sur ce qui ne fonctionne pas sur la station de Vendôme ?

    mercredi 22 juin 2016
    Reply
  4. schwartz said:

    le contenu complet du message d’erreur a été interprété : le message complet est :
    “”Vendôme (Loir)Hauteurs en m22/06/2016 06:000.21% […]””

    mercredi 22 juin 2016
    Reply
    • Hervé Hervé said:

      Bonjour
      je viens de tester avec ta station (M114161010) et cela semble fonctionner normalement. As-tu bien mis en place la bonne valeur du xpath (/root/vigicrues/station/releve)?

      jeudi 23 juin 2016
      Reply
  5. Will said:

    Bonjour Hervé et merci pour ce tuto.

    J’obtiens le même message d’erreur que shwartz avec ma station (E334602001) alors que cela fonctionne avec l’ID de Tours. Une idée ?

    jeudi 30 juin 2016
    Reply

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain: * Time limit is exhausted. Please reload CAPTCHA.