Radar-based precipitation forecasts and data from the German Weather Service (DWD).
Real-time location based precipitation analysis, forecasts, and historical accumulations — directly in Home Assistant.
- RADVOR RS: the past hour's total recomputed every 5 minutes, plus forecast totals for the next hour and the hour after
- RADVOR RV high-resolution nowcast, all derived from its 25-point 5-minute forecast series: peak-intensity forecasts in mm/h, Precipitation start / end timing sensors, and a Precipitation expected binary sensor
- HymecNG precipitation-type classification: an enum Precipitation type sensor telling rain from drizzle, snow, sleet, freezing rain/drizzle, graupel, and hail at your location
- Hourly and 24-hour precipitation accumulations from RADOLAN RW/SF (radar + weather station blend)
- Yesterday's 24-hour total updated once daily — ideal for irrigation or energy automations
- Per-location extraction: the nearest radar grid cell to your exact latitude/longitude
- Staleness guard: sensors can report
unavailablewhen DWD data is stale, preventing automations from acting on outdated values - Precise, quantitative analyses and predictions with high temporal and spatial resolution, enabling accurate tracking of rain events at your exact location
- Ideal data source for automations and early warnings of severe precipitation
Important
This integration only works for locations within Germany and areas immediately adjacent to the German border. The DWD radar composites do not cover other countries.
If you do not have HACS installed yet visit https://hacs.xyz for installation instructions.
To add the this repository to HACS in your Home Assistant instance, use this Button:
After installation, please restart Home Assistant. To add Power Insight to your Home Assistant instance, use this Button:
Manual configuration steps
- Go HACS integrations section.
- Click on the 3 dots in the top right corner.
- Select "Custom repositories"
- Add the URL (https://github.com/hoffmann77/ha-dwd-precipitation) to the repository.
- Select the integration category.
- Click the "ADD" button.
- Now you are able to download the integration
- Access the GitHub repository for this integration.
- Download the ZIP file of the repository and extract its contents.
- Copy the "dwd_precipitation" folder into the custom_components directory located typically at /config/custom_components/ in your Home Assistant directory.
- Restart your Home Assistant.
- Navigate to Settings > Devices & Services.
- Click Add Integration and search for "DWD Precipitation".
- Select the DWD Precipitation integration to initiate setup.
When adding the integration, you are prompted for:
| Field | Description |
|---|---|
| Name | A label for this integration instance (defaults to your HA location name) |
| Location | Latitude/longitude map picker — defaults to your HA home location |
After setup, open the integration's Configure dialog (Settings > Devices & Services > DWD Precipitation > Configure) to adjust:
| Option | Default | Description |
|---|---|---|
| Show sensor source metadata | Off | Adds per-sensor metadata attributes (see below) |
| Mark sensors unavailable when data is stale | On | Sensors become unavailable once cached data exceeds the product's release interval; prevents automations from acting on stale values |
| Precipitation detection threshold (mm per hour) | 0.0 | An RV forecast intensity above this value counts as precipitation for the Precipitation start / Precipitation end and Precipitation expected sensors. 0.0 means any DWD-detected rain; raise it to ignore drizzle/noise |
| Precipitation start/end sensor state | Absolute time | Whether the Precipitation start/end sensors report the absolute time (device class timestamp) or the minutes until the event (device class duration). The unused representation is exposed as an attribute |
| Precipitation end algorithm | First dry gap | How Precipitation end is derived from the forecast series. First dry gap ends the current rain episode at the first dry 5-minute window after it starts. Precipitation clears within 2 h looks past any lull to the last forecast precipitation, reporting when precipitation is gone for the rest of the horizon. They agree for a single uninterrupted episode and differ when rain arrives in separate waves |
| Precipitation reset threshold (mm) | 1.0 | Precipitation now at or above this value resets the Timespan without precipitation counter |
Some entities expose companion attributes at all times — these are a feature, not gated behind any option:
| Attribute | Entities | Description |
|---|---|---|
minutes_until / at |
Precipitation start, Precipitation end, Precipitation expected |
The representation not shown as the state: minutes_until is the whole-minute countdown to the event, at its absolute ISO-8601 UTC time. On the start/end sensors, whichever the Precipitation start/end sensor state option does not select is exposed here; the binary sensor always carries both, pointing at the forecast start (null when no precipitation is expected) |
forecast_5min |
Precipitation expected |
The full 25-point RV forecast series (leads 0–120 min in 5-minute steps); each point a dict of lead, start, end, value (mm) and intensity (mm/h). Excluded from recorder history to avoid bloat |
hours_without_precipitation |
Timespan without precipitation |
The dry streak expressed in hours (the state itself is in days); null until the first anchor is set |
dry_since |
Timespan without precipitation |
ISO-8601 UTC timestamp of the last precipitation that reset the counter |
When the Show sensor source metadata option is on, every DWD-product sensor additionally exposes its source metadata:
| Attribute | Description |
|---|---|
source_product |
DWD internal product identifier read from the file header (e.g. "RADVOR-RS", "RW") |
source_timestamp |
UTC ISO-8601 reference time of the DWD product — for RADVOR forecasts this is the analysis time before the lead offset; for RADOLAN products it is the end of the measurement window |
lead_time_minutes |
Forecast lead time in minutes (0 for the nowcast, 60 or 120 for RADVOR forecasts, null for RADOLAN products which have no lead time) |
data_start |
ISO-8601 UTC start of the accumulation window (e.g. T−60 min for "last hour"); null for products without an accumulation window |
data_end |
ISO-8601 UTC end of the accumulation window; for RADOLAN products this equals source_timestamp |
All sensors belong to a single DWD Precipitation device per configured location.
Most entities state their own time window:
last <N>— measured, accumulated over the N hours ending now.Precipitation last 24his the rain that fell since this time yesterday.next <N>— forecast, covering the N hours starting now.Precipitation next 1his the total expected over the coming 60 minutes.next 1–2h— the two numbers are the window's start and end, counted in hours from now. So this is the second hour ahead — from 60 to 120 minutes — and it excludes the coming hour. AddPrecipitation next 1handPrecipitation next 1–2htogether for the full two-hour total.
The remaining entities are named for the question they answer rather than for a window. Their time spans are:
| Entity | Time span |
|---|---|
Precipitation now |
The past 60 minutes. Millimetres accumulated over the last hour, not a mm/h rate — the same period as Precipitation last 1h, but recomputed every 5 minutes instead of once an hour |
Precipitation type |
This moment. The only genuinely instantaneous value in the integration — what is falling right now, if anything |
Precipitation start / Precipitation end |
Searched over the next 2 hours. Beyond that horizon the sensor reports unknown, so an unknown end means "still raining 2 hours from now", not "never" |
Precipitation expected |
Also the next 2 hours. off means "no precipitation forecast within 2 hours" |
Timespan without precipitation |
Open-ended — counts up from the last time Precipitation now reached the reset threshold |
| Entity | Data source | Unit | Update interval | Description |
|---|---|---|---|---|
Precipitation now |
RADVOR RS | mm | 5 min | Radar-only total for the past hour, recomputed every 5 minutes — the live counterpart to Precipitation last 1h. Use it when you want the value to respond promptly |
Precipitation last 1h |
RADOLAN RW | mm | 1 h | The same 60-minute window, radar + rain-gauge blended. Arrives once an hour, but is the more accurate of the two |
Precipitation last 24h |
RADOLAN SF | mm | 1 h | Radar + station-blended total for the rolling past 24 hours |
Precipitation yesterday |
RADOLAN SF | mm | Daily (~00:18 UTC+1) | Previous calendar day's 24-hour accumulated total |
Precipitation type |
HymecNG | enum | 5 min | What is falling at the location at this moment — one of no_precipitation, not_classified, drizzle, rain, freezing_drizzle, freezing_rain, sleet, snow, graupel, hail, large_hail (unknown outside radar coverage) |
Precipitation next 1h |
RADVOR RS | mm | 5 min | Calibrated radar forecast total for the next 0–60 minutes |
Precipitation next 1–2h |
RADVOR RS | mm | 5 min | Calibrated radar forecast total for the 60–120 minute window — the hour after the one above, not the two-hour total |
Peak intensity next 1h |
RADVOR RV | mm/h | 5 min | Heaviest rain rate expected in the next 0–60 minutes — the wettest 5-minute step extrapolated to an hourly rate. Use it to tell drizzle from a downpour; Precipitation next 1h tells you the volume |
Peak intensity next 1–2h |
RADVOR RV | mm/h | 5 min | Same, for the 60–120 minute window |
Precipitation start |
RADVOR RV | timestamp / min | 5 min | When precipitation begins at the location within the next 2 hours (0 / now if already raining, unknown if none within 2 h). Reports the absolute time or the minutes-until value per the start/end sensor state option; the other form is the minutes_until / at attribute |
Precipitation end |
RADVOR RV | timestamp / min | 5 min | When precipitation ends (unknown if it continues beyond the 2 h horizon). The Precipitation end algorithm option chooses between ending at the first dry gap or when rain clears for the rest of the horizon. Same representation option as Precipitation start |
Precipitation expected |
RADVOR RV | on / off | 5 min | on when precipitation is forecast within the next 2 hours. Exposes the forecast start time as minutes_until / at attributes so an automation can trigger on it and read the start time directly, and carries the full RV forecast curve in forecast_5min (excluded from recorder history) |
Timespan without precipitation |
RADVOR RS | days | 5 min | Time since Precipitation now last reached the rain reset threshold; exposes hours_without_precipitation and dry_since attributes. Persists across restarts and is corrected on startup against the RW/SF totals for rain during downtime |
Sensors show unavailable immediately after setup — the integration fetches data on startup; if DWD OpenData is temporarily unreachable the first refresh fails. Check your HA logs for HTTP errors and verify that opendata.dwd.de is reachable from your network.
Sensors always show unavailable — confirm that your configured coordinates are within Germany. Coordinates outside the radar composite coverage area produce a NaN from the grid lookup, which surfaces as unavailable.
extra_state_attributes are not appearing — enable the option in Settings > Devices & Services > DWD Precipitation > Configure.
Old values persist after a DWD outage — if Mark sensors unavailable when data is stale is disabled, the last cached value is kept indefinitely. Enable the option so that sensors go unavailable once the staleness window expires.
All data is derived from the DWD (Deutscher Wetterdienst):
This integration is only possible thanks to the great work done by the contributors of the wradlib package.
All files in custom_components/dwd_precipitation/radar/ are licensed under the wradlib license (MIT).
A copy of the license can be found under radar/LICENSE.txt.


