⚙️ 2. Ziel dieser Seite
Diese Seite dokumentiert das MODX-Snippet
dwdWeatherfü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.
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).
