Skip to main content

⚙️ 2. Ziel dieser Seite

Diese Seite dokumentiert das MODX-Snippet dwdWeather für die Wettervorhersage über die DWD OpenData MOSMIX_L-Daten.

Es wird gezeigt:

  • Aufbau des Snippets
  • Aufrufparameter und Beispiele
  • verwendete Pfade, Optionen und Platzhalter
  • Hinweise zu Performance und Caching

Überblick

Das Snippet dwdWeather lädt über cURL die komprimierte DWD-Vorhersagedatei (.kmz), extrahiert die KML-Inhalte und verarbeitet sie zu strukturierten Daten, die in MODX-Platzhaltern bereitgestellt werden.

Damit kann MODX diese Daten in Chunks oder Templates darstellen, etwa als 10-Tage-Trend oder Kalenderansicht.

MODX_Kalender.jpg


Aufrufbeispiele

1. Einfacher Aufruf (Standardzeit 12:00 Uhr)

[[!dwdWeather? &STATION=`K428` &TPL=`dwdWetterTPL`]]
[[+dwdWeather]]

2. Alle Vorhersagen stündlich

[[!dwdWeather? &STATION=`K428` &fcAll=`true` &TPL=`dwdWetterTPL`]]
[[+dwdWeather]]

3. Mit vier Uhrzeiten pro Tag (T1–T4)

[[!dwdWeather?
   &STATION=`K428`
   &TPL=`dwdWetterTPL`
   &QTY=`12`
   &T1=`06:00`
   &T2=`12:00`
   &T3=`18:00`
   &T4=`00:00`
]]
[[+dwdWeather]]

4. Eine definierte Zeit pro Tag

[[!dwdWeather?
   &STATION=`K428`
   &TPL=`dwdWetterTPL`
   &T1=`18:00`
]]
[[+dwdWeather]]

5. Aufruf über Chunk (empfohlen)

[[$chunkWeather? &STATION=`K428` &TPL=`dwdWetterTPL` &QTY=`QTY` &T1=`06:00` &T2=`12:00` &T3=`18:00` &T4=`00:00`]]
[[+dwdWeather]]

Im Chunk chunkWeather wird das Snippet aufgerufen:

[[!dwdWeather? &STATION=`[[+STATION]]` &TPL=`[[+TPL]]` &QTY=`16` &T1=`[[+T1]]` &T2=`[[+T2]]` &T3=`[[+T3]]` &T4=`[[+T4]]`]]

Parameterübersicht

Parameter Beschreibung Standardwert
STATION DWD-Stations-ID (z.B. K428 = Bitburg) 10609 (Trier)
TPL Name des MODX-Chunks für Ausgabe
QTY Anzahl der Vorhersagen (z.B. 40 = 10 Tage à 4 Werte) 40
fcAll true = alle Vorhersagen; false = gefiltert nach Uhrzeit false
T1..T4 Uhrzeiten für Ausgabe (z.B. 06:00) 12:00 (nur T1)
fcAll Liefert alle Zeitschritte statt Auswahl nach T1–T4 false

Pfade und Dateien

  • Temporäres Verzeichnis:
    assets/dwd_temp/

  • Wetter-Icons (Pfad anpassbar):
    assets/dwd_img/

  • DWD-Datenquelle:
    https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/[STATION]/kml/MOSMIX_L_LATEST_[STATION].kmz

💾 Caching

Das Snippet lädt die DWD-Datei höchstens einmal pro Stunde.
Alte Dateien werden gelöscht, sobald eine neue geladen wird.


Zeit & Zeitzonen

Sommer-/Winterzeit kann per Variable angepasst werden:

$bolTimeOffset = false;
$timeOffset = '0';

Wird $bolTimeOffset = true gesetzt, berechnet das Snippet die aktuelle Offset-Zeit automatisch anhand von date('I').


Sonnenaufgang & Sonnenuntergang

Berechnung erfolgt über:

date_sun_info($timestamp, $latitude, $longitude);

Verfügbare Platzhalter:

  • [[+sunrise]]
  • [[+sunset]]
  • [[+dayduration]]

Luftdrucktendenz

Die Luftdruckänderung zwischen zwei Messungen wird ausgewertet.
Bei einem Unterschied > ±4 hPa gilt die Tendenz als steigend oder fallend, sonst stabil.

Platzhalter:

  • [[+pTendenz]]steigend | fallend | stabil
  • [[+pDelta]] → z.B. (+3 hPa/6h)

⚠️ Fehlerbehandlung

Das Snippet dwdWeather prüft alle Downloads automatisch:

  • HTTP-Fehler:
    Server nicht erreichbar → ERROR: Page not available!

  • Leere Datei / Größe 0:
    Datei wird gelöscht → ERROR: File is empty and deleted!

  • Keine cURL-Unterstützung:
    Kein Download möglich → Snippet bricht ab.

💡 So werden defekte oder unvollständige Wetterdaten vermieden.


Hinweis zu MOSMIX-Daten

Die MOSMIX_L-Daten enthalten Werte im KML-Format.
Diese werden von PHP per SimpleXML in Arrays konvertiert und mit Einheiten versehen (°C, km/h, % usw.).

Für ww (Significant Weather) werden die deutschen Bezeichnungen aus einem Array strConditions_de geladen (Details siehe Seite 5).