Skip to content

Wettervorhersage im Wohnmobil

roe-dl edited this page Nov 1, 2023 · 18 revisions

Diese Anleitung entstammt einem praktischen Beispiel aus Disussion #30. Wenn die Wetterstation auf einem Fahrzeug angebracht ist, ändert sich regelmäßig der Standort. Der Nutzer möchte hier automatisch die Wettervorhersage für seinen momentanen Aufenthaltsort und/oder das Tagesziel in die Website aufgenommen haben.

Voraussetzungen

Für diesen Zweck ist es natürlich erforderlich, daß WeeWX den Aufenthaltsort kennt. Für die folgenden Beispiele nehmen wir an, daß dieser Aufenthaltsort als $current.latitude und $current.longitude zur Verfügung steht. Hierzu eignet sich ein GPS-Empfänger, der die Koordinaten per MQTT versendet. Die Erweiterung MQTTSubscribe kann die Koordinaten dann in WeeWX einlesen und zur Verfügung stellen.

Da der Aufenthaltsort beliebige Koordinaten haben kann, funktioniert das nur mit den Vorhersagen von Open-Meteo, bei denen der gewünschte Ort nicht als Codierung sondern als Koordinaten übergeben wird. Open-Meteo sucht dann den nächstliegenden Gitterpunkt heraus, für den eine Vorhersage vorliegt.

Vorgehensweise

Das Programm dwd-mosmix kann nicht direkt auf Werte in WeeWX zugreifen. Stattdessen wird mit den Mitteln, mit denen WeeWX die Webseiten erzeugt, ein Shell-Script geschrieben, das den Programmaufruf mit den passenden Parametern inklusive der aktuellen Koordinaten enthält. Dieses Script wird in einem zweiten Schritt durch ein weiteres Script ausführbar gemacht und mittels crontab aufgerufen.

Installation und Konfiguration

Für die folgende Anleitung nehmen wir an, daß WeeWX in die folgenden Verzeichnisse installiert ist:

  • SKIN_ROOT = /etc/weewx/skins
  • SQLITE_ROOT = /var/lib/weewx

Wenn Sie WeeWX in andere Verzeichnisse installiert haben, passen Sie die Verzeichnisnamen entsprechend an.

Skin-Verzeichnis anlegen

Erzeugen Sie im Skin-Verzeichnis von WeeWX ein Unterverzeichnis namens open-meteo-forecast:

mkdir /etc/weewx/skins/open-meteo-forecast

Template-Datei

In diesem Verzeichnis erstellen Sie eine Datei namens dwd-mosmix-call.sh.tmpl mit folgendem Inhalt:

#!/bin/bash
/usr/local/bin/dwd-mosmix --weewx --belchertown --html --daily --hourly --open-meteo=icon_global $current.latitude.raw,$current.longitude.raw
#set $inc_pth=$os.path.join($SKIN_ROOT,$skin,'dwd')
mv $(os.path.join($inc_pth,'dwd-forecast-openmeteo-%s-%s-icon_global.inc' % ($current.latitude.raw,$current.longitude.raw))) $(os.path.join($inc_pth,'forecast-where-I-am.inc'))

Von den Optionen --belchertown, --html, --daily und --hourly sind nur die wirklich benötigten anzugeben. Die anderen sind wegzulassen.

Die Zeilen #set und mv werden nur benötigt, wenn die Option --html genutzt wird, anderenfalls entfallen sie.

Eintragungen in weewx.conf

In weewx.conf ergänzen Sie im Abschnitt [StdReport]:

    [[open-meteo-forecast]]
        skin = open-meteo-forecast
        HTML_ROOT = /var/lib/weewx
        [[[CheetahGenerator]]]
            [[[[ToDate]]]]
                [[[[[shellscript]]]]]
                    template = dwd-mosmix-call.sh.tmpl
        [[[Generators]]]
            generator_list = weewx.cheetahgenerator.CheetahGenerator,

Hilfsdatei zum Aufruf

Erstellen Sie im Verzeichnis /usr/local/bin eine Datei mobile-forecast mit folgendem Inhalt:

#!/bin/bash
/bin/chmod +x /var/lib/weewx/dwd-mosmix-call.sh
/var/lib/weewx/dwd-mosmix-call.sh

Machen Sie die Datei anschließend ausführbar:

sudo chmod +x /usr/local/bin/mobile-forecast

Crontab

Damit die Vorhersage regelmäßig berechnet wird, ergänzen Sie folgende Zeile in /etc/crontab:

3,8,13,18,23,28,33,38,43,48,53,58 * * * * root /usr/local/bin/mobile-forecast >/var/log/mobile-forecast.log 2>&1

Wenn es Ihnen genügt, daß die Vorhersage stündlich berechnet wird, können Sie die Datei mobile-forecast auch nach /etc/cron.hourly speichern und /etc/crontab unverändert lassen.

Nutzung in Skins

Sie können die erzeugten Vorhersagen in jede Visualisierung (Skin) einbinden, die Sie installiert haben.

Belchertown-Skin

Die Option --belchertown bewirkt, daß die Datei forecast.json erzeugt wird, die die Belchertown-Skin zur Darstellung der Wettervorhersage verwendet. Dazu muß in weewx.conf der Unterabschnitt [[Belchertown]] im Abschnitt [WeatherServices] wie in Konfiguration in weewx.conf beschrieben konfiguriert werden.

Einbinden der .inc-Dateien

Wird die Option --html genutzt, werden CheetahGenerator-Include-Dateien (*.inc) erzeugt, die in den Templates Ihrer Visualisierung (Skin) mittels #include eingefügt werden.

Beispiel:

  <div class="col-sm-8">
    <p style="font-size:110%">Wettervorhersage</p>
    #include raw "dwd/forecast-where-I-am.inc"
  </div>

Verweise (Links)