Dieses Dokument gibt es nur auf Englisch.

Usage — `dwd`

Use-case-driven examples for the dwd CLI, a read-only client for the open DWD Warnwetter app API (warnwetter.de): station forecasts/observations and the published weather-warning feeds (nowcast, municipality/Gemeinde, coastal) plus crowd-sourced reports. Every command prints pretty JSON to stdout, so it composes cleanly with jq.

Install

npm i -g @maschinenlesbar.org/dwd-cli

This installs the dwd binary. Without a global install you can run it straight from a built checkout:

node dist/src/cli/index.js --help

All examples below use the installed bin name dwd.

Use cases

1. Forecast/observation for a single station

Pull the current forecast/observation payload for one DWD station (e.g. München-Stadt, id 10865).

dwd station-overview --id 10865

Output is a JSON object keyed by station id. Each value carries the raw DWD fields (forecast1, forecast2, days, warnings, threeHourSummaries).

2. Compare several stations in one call

Fetch multiple stations at once by repeating --id — handy for a small dashboard or a city-vs-city comparison.

dwd station-overview --id 10865 --id 10147

The result is keyed per station, so you can address each independently: jq '."10865"'.

3. List which monitored stations currently have active warnings

--compact keeps it to one line for scripts; jq surfaces only the stations whose payload contains warnings.

dwd --compact station-overview --id 10865 --id 10147 \
  | jq 'to_entries | map(select(.value.warnings != null and (.value.warnings | length) > 0)) | from_entries'

4. Current nationwide nowcast (short-term) warnings

The nowcast feed is the short-fuse warning layer (e.g. imminent thunderstorms).

dwd warnings nowcast

The feed envelope has a time (publish timestamp) and a warnings array. Count the active entries:

dwd --compact warnings nowcast | jq '.warnings | length'

5. Nowcast warnings in English for a quick triage table

Switch the feed language with --lang en, then flatten event + severity level + description into a compact table with jq. (The feed has no headline/regionName fields; in --lang en only event/descriptionText are translated.)

dwd warnings nowcast --lang en \
  | jq -r '.warnings[] | [.event, .level, .descriptionText] | @tsv'

--lang accepts de (default) or en.

6. Municipality-level (Gemeinde) warnings

The Gemeinde feed resolves warnings down to municipality granularity — the layer the app uses when you select your home town.

dwd warnings gemeinde --lang de

Same envelope shape as nowcast (time + warnings[]). Warnings carry no regionName field (only regions[] geometry), so to find ones mentioning a specific town, search the headline/description text:

dwd --compact warnings gemeinde \
  | jq '.warnings[] | select(((.headLine // "") + " " + (.descriptionText // "")) | test("München"))'

7. Coastal warnings by zone

Coastal warnings (gale/storm-surge style) for boating and the coast. Here the warnings field is an object keyed by coastal zone rather than a flat array.

dwd warnings coast

List the zones that currently carry a warning:

dwd --compact warnings coast | jq '.warnings | keys'

8. Crowd-sourced weather reports overview

The crowd feed is the user-submitted reports overview (meldungen), useful as a ground-truth cross-check against the official warnings.

dwd crowd

Count the submitted reports:

dwd --compact crowd | jq '.meldungen | length'

9. Snapshot a feed to a timestamped file (cron-friendly)

--compact plus a redirect gives you an archivable one-line snapshot per run.

dwd --compact warnings nowcast > "nowcast-$(date +%Y%m%dT%H%M).json"

10. Harden a call behind a flaky network

Tighten the timeout, cap the response size, and identify yourself politely — all global options that apply to any command.

dwd --timeout 10000 --max-retries 3 --user-agent "my-monitor/1.0" \
    --max-response-bytes 5242880 \
    warnings gemeinde

Global options recap

Global options may be given before or after the command — both dwd --compact warnings nowcast and dwd warnings nowcast --compact work.

Option Description
-V, --version Output the version number
--base-url <url> Live web-service base URL (default https://app-prod-ws.warnwetter.de) — used by station-overview
--static-base-url <url> Static (S3) bucket base URL — used by the warnings and crowd feeds
--timeout <ms> Time limit per request in milliseconds, reading the whole response included (default 30000)
--user-agent <ua> User-Agent header value
--max-retries <n> Retries for transient 429/503 responses (default 2)
--max-response-bytes <n> Cap response body size in bytes (0 = unlimited; default 104857600 / 100 MiB)
--compact Print JSON on a single line instead of pretty-printed
-h, --help Display help for a command

Command flags

Command Flag Notes
station-overview --id <stationId> Required, repeatable; 5-digit DWD station id
warnings nowcast --lang <lang> de (default) or en
warnings gemeinde --lang <lang> de (default) or en
warnings coast --lang <lang> de (default) or en
crowd No flags beyond globals

Quelle auf GitHub ansehen →