Anleitung - Anzeigen der Météo-France-Warnkarten

Hallo,

Ich werde Ihnen hier zeigen, wie Sie in Gladys die Wetterwarnkarten von Météo France anzeigen können
Die Karten stammen von: https://public-api.meteofrance.fr

Der Nutzen ist fraglich, aber es kann Spaß machen, einen globalen Überblick zu haben :wink:

Das Endergebnis:

Zuerst müssen Sie ein Konto erstellen und einen API-Schlüssel auf der Website abrufen:

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

Als Nächstes müssen Sie die Ordner in Gladys für den Empfang der Bilder und des Skripts erstellen: (Dazu müssen Sie sich per SSH auf der Host-Maschine von Gladys anmelden)

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

Erstellen Sie dann das Skript

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

# Definiere die URL der herunterzuladenden Datei
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"

# Definiere die Zielpfade der Dateien
DEST_TODAY="/var/lib/gladysassistant/img/meteofrance/today.png"
DEST_TOMORROW="/var/lib/gladysassistant/img/meteofrance/tomorrow.png"

# Maximale Anzahl der Versuche
MAX_ATTEMPTS=5

# Funktion zum Herunterladen der Datei
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"
}

# Datei für heute herunterladen
attempt=1
while [ $attempt -le $MAX_ATTEMPTS ]; do
    echo "Versuch, die Datei für heute herunterzuladen ($attempt/$MAX_ATTEMPTS)..."
    if download_file "$DEST_TODAY" "$URL_TODAY"; then
        echo "Herunterladen der Datei für heute erfolgreich."
        break
    else
        echo "Fehler beim Herunterladen der Datei für heute."
        attempt=$((attempt + 1))
        if [ $attempt -le $MAX_ATTEMPTS ]; then
            echo "Neuer Versuch in 5 Sekunden..."
            sleep 5
        else
            echo "Maximale Anzahl der Versuche für die Datei von heute erreicht. Herunterladen wird gestoppt."
        fi
    fi
done

# Datei für morgen herunterladen
attempt=1
while [ $attempt -le $MAX_ATTEMPTS ]; do
    echo "Versuch, die Datei für morgen herunterzuladen ($attempt/$MAX_ATTEMPTS)..."
    if download_file "$DEST_TOMORROW" "$URL_TOMORROW"; then
        echo "Herunterladen der Datei für morgen erfolgreich."
        break
    else
        echo "Fehler beim Herunterladen der Datei für morgen."
        attempt=$((attempt + 1))
        if [ $attempt -le $MAX_ATTEMPTS ]; then
            echo "Neuer Versuch in 5 Sekunden..."
            sleep 5
        else
            echo "Maximale Anzahl der Versuche für die Datei von morgen erreicht. Herunterladen wird gestoppt."
        fi
    fi
done

Ersetzen Sie apikey_aremplacer durch Ihren API-Schlüssel, den Sie auf der Website https://public-api.meteofrance.fr abgerufen haben

Crontab erstellen:

Die Werte werden täglich um 16:10 Uhr und 06:10 Uhr abgerufen, da die Website von Météo France angibt:
image

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

Erstellen Sie dann die 2 Kameras wie folgt:

Sie können diese dann in der Gladys-Oberfläche anzeigen

Ich habe es nicht geschafft, einen weißen Hintergrund zu bekommen, aber wenn Sie einen Tipp haben, bin ich dankbar :slight_smile:

Wenn Sie Fragen oder Anmerkungen haben, zögern Sie nicht, mir Bescheid zu sagen :slight_smile:

Changelog zu kommen:

  • Keine (Ihre Kommentare :slight_smile: )

Edit 13/05/2024:

  • Änderung des Crontab, um es alle Stunden zu 5 Minuten zu ändern

Edit 14/05/2024:

  • Behebung eines Problems beim Herunterladen der Karten (Hinzufügen von Header in Curl)

Edit 15/05/2024:

  • Behebung eines Problems beim Herunterladen der Karten (Ersetzen von Curl durch Wget)
  • Korrektur der Zeiten im Crontab

Edit 16/05/2024:

  • Änderung des Download-Skripts, um den Retry bei Fehlschlag zu berücksichtigen und Hinzufügen eines User-Agents, um zu versuchen, nicht als Bot bei der Website von Météo France zu erscheinen

Ich finde das wirklich super, all diese Tutorials. Im Grunde ist die Nützlichkeit egal, es zeigt auch alles, was Gladys kann!!

Wieder mal eine super Initiative! :+1:

@prohand

Gleichzeitig brauchte @pierre-gilles Ideen für zukünftige Live-Codings :+1: also mit diesem Tutorial und dem der Pollen ist die Mission erfüllt! :wink: :rofl:

Genial diese Tutorials @prohand, das ist toll, das zeigt wirklich die Möglichkeiten von Gladys!

Meiner Meinung nach fehlt uns das gerade: Inhalte!

Hallo @prohand

Ich kann die Ordner unter dem Terminal nicht erstellen. Kannst du mir bitte erklären, was ich vorher machen muss?

Danke

Um die Ordner zu erstellen, musst du entweder direkten Zugriff auf das Terminal des Geräts haben, auf dem Gladys läuft, oder dich per SSH verbinden.

Außerdem benötigst du je nach deiner Installation möglicherweise Zugriff mit höheren Berechtigungen. Dafür musst du sudo vor jeden Befehl setzen.

Genau das ist es :slight_smile:
Danke für die Antwort, ich habe eine Präzisierung im Tutorial hinzugefügt

Ja, entschuldige, ich hätte genauer sein sollen. Ich bin per SSH verbunden, aber es sagt mir, dass ich keine Berechtigung habe. Ich habe sudo oder chmod 777 versucht, aber es funktioniert nicht.

Ich bin kein Experte für die Kommandozeile, ich muss etwas falsch machen, aber ich sehe nicht, was. Hier ist, was ich habe:

Zitat

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

mkdir /var/lib/gladysassistant/img/

mkdir /scripts

mkdir: kann Verzeichnis „/var/lib/gladysassistant/img/meteofrance“ nicht erstellen: Verzeichnis oder Datei nicht gefunden

mkdir: kann Verzeichnis „/var/lib/gladysassistant/img/“ nicht erstellen: Berechtigung verweigert

mkdir: kann Verzeichnis „/scripts“ nicht erstellen: Berechtigung verweigert

Ich denke, man muss sudo hinzufügen.

Und vor allem sollte man chmod 777 vermeiden oder die ursprünglichen Berechtigungen danach wiederherstellen.

sudo mkdir /var/lib/gladysassistant/img

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

sudo mkdir /scripts

Für Fortgeschrittene:
Wenn du ls -l im Verzeichnis var/lib/ ausführst, siehst du alle Verzeichnisse und die zugehörigen Berechtigungen (in Form von rwx) sowie den Besitzer und die Gruppe.
Zu bestätigen, aber für mich gehören sie nicht dem Benutzer PI.

Danke @McFlyPartages, erste Stufe geschafft. Ich hatte nicht auf jeder Zeile „sudo“ eingesetzt.

Ich bin bis zum Ende gekommen, aber ich habe einen Fehler:

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

Eine Idee?

Versuche, Folgendes auszuführen:

ls /var/lib/gladysassistant/img/meteofrance

Um zu überprüfen, ob das Bild vorhanden ist

Falls nicht vorhanden, hast du den Flow in Node Red richtig ausgeführt?

Der Node-RED-Flow???

Du sprichst nicht davon, ich verstehe nicht.

Entschuldigung, ich habe das Thema verwechselt :frowning:
Ich wollte über das Skript sprechen :wink:

Tutorial aktualisiert :slight_smile:
Siehe Changelog im ersten Beitrag.
Danke :wink:

Tutorial aktualisiert :slight_smile:
Siehe Changelog im ersten Beitrag.
Danke :wink:

Tutorial-Update :slight_smile:
Siehe Changelog im ersten Beitrag.
Danke :wink:

Tutorial-Update :slight_smile:
Siehe Changelog im ersten Beitrag.
Danke :wink: