DISCLAIMER: This project is a private open source project and doesn't have any connection with Deutscher Wetterdienst.
DWD Precipitation Forecast is a Home Assistant component which provides a detailed precipitation forecast for the next two hours. The forecast is derived from the DWD (Deutscher Wetterdienst) rain radar forecast. This integration only works in Germany!
The integration proveds these sensors:
- DWD Precipitation Forecast: The current precipitation intensity (mm/h) at your location
- This sensor also contains attributes with the forecasted precipitation over the next two hours, in 5-minute-steps
- Next Precipitation: Information about the start, end, length and intensity of the next precipitation event
- Precipitation in next 15/30/60min: Will it rain in the next 15/30/60 minutes?
This is an example for a forecast card that you can create with data from this integration:
To create a forecast card like this, you need following components:
Use this code for your dashboard:
type: custom:mushroom-template-card
primary: >-
{% from 'easy_time.jinja' import custom_time, custom_relative_time,
custom_time_between %}
{% if not is_state_attr(entity, 'next_start', 'unknown') %}
{% if (state_attr(entity, 'next_start') | as_timestamp > now() |
as_timestamp) and (state_attr(entity, 'next_end') is not none) %}
In {{ custom_time(state_attr(entity, 'next_start'), 'hour, minute', 'de')
}} regnet es für {{ state_attr(entity, 'next_length') }} Minuten.
{% elif (state_attr(entity, 'next_start') | as_timestamp > now() |
as_timestamp) %}
In {{ custom_time(state_attr(entity, 'next_start'), 'hour, minute', 'de')
}} beginnt es zu regnen.
{% elif (state_attr(entity, 'next_end') is not none) %}
Es regnet noch für {{ custom_time_between(now() | as_timestamp,
state_attr(entity, 'next_end') | as_timestamp, 'hour, minute', None, None,
'de') }}.
{% else %}
Es regnet noch mindestens 2 Stunden lang.
{% endif %}
{% else %}
Kein Regen in den nächsten 2 Stunden.
{% endif %}
icon: mdi:weather-rainy
icon_color: |-
{% if float(states(entity)) > 0 %}
blue
{% else %}
grey
{% endif %}
entity: sensor.dwd_precipitation_forecast_leipzig
card_mod:
style: |
{% set entity = 'sensor.dwd_precipitation_forecast_leipzig' %}
ha-card {
background-image: linear-gradient(90deg{% set entity = entity %}{% set duration = state_attr(entity, 'forecast').keys() | last | as_timestamp - now() | as_timestamp %}{% set hue_min = 200 %}{% set hue_max = 300 %}{% set prec_max = 20 %}{% for x, y in state_attr(entity, 'forecast').items() %}{% set pos = ((x | as_timestamp - (now() | as_timestamp))/duration*100) | round %}{% set hsl_h = (y/prec_max*(hue_max-hue_min)+hue_min)|round %}{% set hsl_l = 50 if y > 0 else 100 %}{% set hsl_alpha = 0.5 if y > 0 else 0 %}{% if pos >= -4 %}, hsla({{hsl_h}}, 100%, {{hsl_l}}%, {{hsl_alpha}}) {{ max(pos,0) }}%{% endif %}{% endfor %});
}
Change sensor.dwd_precipitation_forecast_leipzig
in entity
and card_mod
to your sensor.
This package uses public data from DWD OpenData. The Copyright can be viewed here.