Tuto - Afficher les cartes vigilances Météo France

Bonjour,

Je vais vous présenter ici comment afficher dans Gladys les cartes d’alertes de vigilances météo france
Les cartes proviennent de : https://public-api.meteofrance.fr

L’intérêt est discutable mais cela peut-être sympas pour avoir une vue global :wink:

Le résultat final :

Il faut tout d’abord créer un compte et récupérer une clé API sur le site :

https://portail-api.meteofrance.fr/web/fr/

Dans un second temps il faut créer les dossier dans Gladys pour la réception des images et du script : ( Pour cela il faut se connecter en ssh sur la machine hôte de Gladys )

mkdir /var/lib/gladysassistant/img/meteofrance
mkdir /var/lib/gladysassistant/img/
mkdir /scripts

Créer ensuite le script

nano /scripts/meteofrancealertes.sh
#!/bin/bash

# Définir l'URL du fichier à télécharger
URL_TODAY="https://public-api.meteofrance.fr/public/DPVigilance/v1/vignettenationale-J/encours"
URL_TOMORROW="https://public-api.meteofrance.fr/public/DPVigilance/v1/vignettenationale-J1/encours"

# Définir les chemins de destination des fichiers
DEST_TODAY="/var/lib/gladysassistant/img/meteofrance/today.png"
DEST_TOMORROW="/var/lib/gladysassistant/img/meteofrance/tomorrow.png"

# Nombre maximal de tentatives
MAX_ATTEMPTS=5

# Fonction pour télécharger le fichier
download_file() {
    wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" -O "$1" "$2" --header="accept: */*" --header="apikey: apikey_aremplacer"
}

# Télécharger le fichier pour aujourd'hui
attempt=1
while [ $attempt -le $MAX_ATTEMPTS ]; do
    echo "Tentative de téléchargement du fichier pour aujourd'hui ($attempt/$MAX_ATTEMPTS)..."
    if download_file "$DEST_TODAY" "$URL_TODAY"; then
        echo "Téléchargement du fichier pour aujourd'hui réussi."
        break
    else
        echo "Échec du téléchargement du fichier pour aujourd'hui."
        attempt=$((attempt + 1))
        if [ $attempt -le $MAX_ATTEMPTS ]; then
            echo "Nouvelle tentative dans 5 secondes..."
            sleep 5
        else
            echo "Nombre maximal de tentatives atteint pour le fichier d'aujourd'hui. Arrêt du téléchargement."
        fi
    fi
done

# Télécharger le fichier pour demain
attempt=1
while [ $attempt -le $MAX_ATTEMPTS ]; do
    echo "Tentative de téléchargement du fichier pour demain ($attempt/$MAX_ATTEMPTS)..."
    if download_file "$DEST_TOMORROW" "$URL_TOMORROW"; then
        echo "Téléchargement du fichier pour demain réussi."
        break
    else
        echo "Échec du téléchargement du fichier pour demain."
        attempt=$((attempt + 1))
        if [ $attempt -le $MAX_ATTEMPTS ]; then
            echo "Nouvelle tentative dans 5 secondes..."
            sleep 5
        else
            echo "Nombre maximal de tentatives atteint pour le fichier de demain. Arrêt du téléchargement."
        fi
    fi
done

Modifier apikey_aremplacer par votre clé api que vous avez récupéré sur le site https://public-api.meteofrance.fr

Créer le crontab :

Les valeurs sont récupérées tous les jours à 16h10 et 06h10 car le site de Météo France indique :
image

crontab -e
10 16 * * * /scripts/meteofrancealertes.sh >/dev/null 2>&1
10 06 * * * /scripts/meteofrancealertes.sh >/dev/null 2>&1

Créer ensuite les 2 caméras comme ceci :

Vous pourrez ensuite les afficher sur l’interface de Gladys

je n’ai pas réussi à avoir le fond blanc mais si vous une piste je suis preneur :slight_smile:

Si vous avez des questions/remarques, n’hésitez pas à m’en faire part :slight_smile:

Changelog à venir :

  • Aucun (A vos commentaires :slight_smile: )

Edit 13/05/2024 :

  • Modification du crontab pour l’exécutez toutes les heures passé de 5 minutes

Edit 14/05/2024 :

  • Correction d’un problème lors du téléchargement des cartes (Ajout de header dans le Curl)

Edit 15/05/2024 :

  • Correction d’un problème lors du téléchargement des cartes (Remplacement de Curl par Wget)
  • Correction des heures sur le crontab

Edit 16/05/2024 :

  • Modification du script de téléchargement pour prendre en compte le retry en cas d’échec et ajout d’un user-agent pour tenter d’éviter de se faire passer pour un bot auprès du site de Météo France
7 Likes

Je trouve ça vraiment super tous ces tutos. Peu importe au fond l’utilité, ça montre aussi tout ce que Gladys peut faire !!

Super initiative encore une fois ! :+1:

4 Likes

@prohand

En même temps @pierre-gilles avait besoin d’idées pour de futurs live coding :+1: donc entre ce tuto et celui des pollens la mission est remplie ! :wink: :rofl:

Génial ces tutoriels @prohand, c’est chouette ça montre bien les possibilités de Gladys !

A mon sens, c’est vraiment ce qu’il nous manque en ce moment: du contenu !

2 Likes

salut @prohand

Je n’arrive pas à créer les dossiers sous terminal. peux tu expliquer la manip à faire avant stp

Merci

Pour créer les dossiers il te faut avoir accès soit directement au terminal sur la machine qui fait tourner Gladys, soit t’y connecter en ssh.

Par ailleurs, en fonction de ton installation il te faudra peut être un accès avec des privilèges plus élevés, pour cela il faut ajouter sudo avant chaque commande

C’est exactement ça :slight_smile:
Merci pour la réponse, j’ai ajouté une précision dans le tuto

Oui désolé j’aurai du préciser pour ma part je suis bien connecté en ssh mais il me dit que je n’ai pas les droit. J’ai essayer sudo ou chmod 777 mais ça ne fonctionne pas.

Je suis pas expert en ligne de commande je dois mal faire quelque chose mais je ne vois pas ou, voila ce que j’ai :

Citation

pi@gladys**:~ $ mkdir /var/lib/gladysassistant/img/meteofrance

mkdir /var/lib/gladysassistant/img/

mkdir /scripts

mkdir: cannot create directory ‘/var/lib/gladysassistant/img/meteofrance’: No such file or directory

mkdir: cannot create directory ‘/var/lib/gladysassistant/img/’: Permission denied

mkdir: cannot create directory ‘/scripts’: Permission denied

Il faut ajouter le sudo je pense.

Et surtout, il faut éviter de mettre des chmod 777 ou alors remettre l’ancien paramétrage des droits après.

sudo mkdir /var/lib/gladysassistant/img

sudo mkdir /var/lib/gladysassistant/img/metofrance

sudo mkdir /scripts

Pour aller plus loin :
En faisant un ls -l dans le dossier var/lib/ tu va voir tous les dossiers et droits associé (sous forme de rwx) ainsi que le propriétaire et groupe.
A confirmer mis pour moi ils n’appartiennent pas a l’utilisateur PI

Merci @McFlyPartages 1ere étape passée. Je n’avais pas mis les sudo sur chaque ligne.

je suis arrivée à la fin mais par contre j’ai une erreur :

ffmpeg exited with code 254: Error opening input file /var/lib/gladysassistant/img/meteofrance/tomorrow.png. Error opening input files: No such file or directory

Une idée ?

Essaye de faire un :

ls /var/lib/gladysassistant/img/meteofrance

Pour voir si l’image est bien présente

Si pas présente as-tu bien exécuté le flow node red ?

1 Like

Le flow nodered ???

Tu en parle pas, je comprends pas.

Pardon j’ai confondu de sujet :frowning:
Je voulais parler du script :wink:

Mise à jour du tutoriel :slight_smile:
Voir le changelog sur le 1er message.
Merci :wink:

Mise à jour du tutoriel :slight_smile:
Voir le changelog sur le 1er message.
Merci :wink:

1 Like

Mise à jour du tutoriel :slight_smile:
Voir le changelog sur le 1er message.
Merci :wink:

1 Like

Mise à jour du tutoriel :slight_smile:
Voir le changelog sur le 1er message.
Merci :wink:

2 Likes