Alle Aktuelle Wetterwarnungen in Home Assistant ausgeben mit Templates

DWD Wetterwarnung im Template von Home Assistant
Echo Show 5 (1. Gen, 2019) – Smart Display mit Alexa – Durch Alexa in Verbindung bleiben – Anthrazit
Echo Show 5 (1. Gen, 2019) – Smart Display mit Alexa – Durch Alexa in Verbindung bleiben – Anthrazit
--

Die DWD-Wetterwarnungs-Integration werden sicherlich viele von Euch im Einsatz haben. Für alle die die Integration noch nicht kennen, dabei handelt es sich um eine Erweiterung für Home Assistant, mit der sich ein Sensor erzeugen lässt, welcher Informationen zu aktuellen Wetterwarnungen zu einem definierbaren Standort liefert. Genauer gesagt werden je Standort zwei Sensoren erzeugt. Einen für die Daten der aktuellen Wetterwarnungen. Der zweite Sensor liefert Informationen zu Vorhersagen für in der Zukunft zu erwartenden Wetterwarnungen.

Zur DWD-Wetterwarnung habe ich bereits ein Video gemacht:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

https://www.youtube.com/watch?v=yYK5giUO19E

Da es möglich ist, dass auch einmal mehr als nur eine Wetterwarnung zur gleichen Zeit ausgesprochen wird, ist die Auswertung des Sensors etwas komplizierter als ein einfacher Textsensor oder ähnliches. Der Zustand des Sensors gibt das Warnungs-Level, also die schwere des erwarteten Ereignisses an.

Das Attribut „warning_count“ gibt an, wie viele Wetterwarnungen der Sensor aktuell liefert.
Für jede Warnung werden mehrere Attribute „warning_<x>_…“ erzeugt über die die entsprechenden Werte abgerufen werden können.
Detail-Informationen zu den einzelnen Attributen findet man in der Dokumentation unter:
https://www.home-assistant.io/integrations/dwd_weather_warnings/#attributes

Möchte man die Informationen also verwenden, kommt man um ein Template wohl nicht herum. Egal ob man die Daten auf dem Dashboard anzeigen, oder sie in einer Automatisierung zum Beispiel für eine Benachrichtigung benutzen möchte.


Template um alle Wetterwarnungen des DWD Sensor auszugeben

Das folgende template ist ein Beispiel, um alle Beschreibungen der aktuellen Wetterwarnungen des hinterlegten DWD-Wetterwarnungs-Sensors als Text auszugeben.
Die FOR-Schleife sorgt dafür, dass für jede Warnung ein Durchlauf erfolgt, bei dem „i“ dem Index der jeweiligen Warnung entspricht. Auf diese Weise lassen sich dann die gewünschten Attribut-Namen zusammensetzen um alle Werte zu ermitteln die man verwenden möchte.

{%- for i in range(1,state_attr("sensor.wetterwarnung_wermelskirchen_current_warning_level", "warning_count")+1) -%}
{%- set attrName = "warning_" + i | string -%}
von: {{  as_timestamp(state_attr("sensor.wetterwarnung_wermelskirchen_current_warning_level", attrName+"_start")) | timestamp_custom('%d.%m.%Y  %I:%M') }}
bis: {{  as_timestamp(state_attr("sensor.wetterwarnung_wermelskirchen_current_warning_level", attrName+"_end")) | timestamp_custom('%d.%m.%Y  %I:%M') }}
{{ state_attr("sensor.wetterwarnung_wermelskirchen_current_warning_level", attrName+"_description") }}
---
{%- endfor -%}

Die Ausgabe dieses Beispiel-Templates sähe dann in etwa wie folgt aus:

von: 27.02.2023  07:00
bis: 28.02.2023  11:00
Es tritt leichter Frost zwischen -1 °C und -5 °C auf. In Bodennähe wird mäßiger Frost bis -8 °C erwartet.
---


Ausgabe der Warnung auf der LEDMatrix (ESPHomatrix)

Ich zeige mir die Wetterwarnungen zum Beispiel auf einer LED-Matrix basierend auf ESPHomatrix an.
Infos zur Matrix habe ich in einem Video ebenfalls zusammengefasst:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

https://www.youtube.com/watch?v=DTd9vAhet9A

Beim senden der Texte an die Matrix möchte ich z:B. sicherstellen, dass die Meldung auch nur so lange angezeigt wird, wie sie relevant ist. Dazu benötige ich den Endzeitpunkt, beziehungsweise die Anzahl an Minuten, bis das Ereignis endet.

Die Anzahl an Minuten bis das Ereignis endet erhält man wie folgt:

{{( (as_timestamp(state_attr("sensor.wetterwarnung_wermelskirchen_current_warning_level", "warning_1_end")) - as_timestamp(now())) / 60) | int(0) }}


Automatisierungsbeispiel für aktuelle DWD Wetterwarnungen auf der LED-Matrix

Aktuelle DWD Wetterwarnungen gebe ich mit folgender Automatisierung mit Hilfe des Templates auf dem Display aus.
Um im Dienstaufruf die Dauer mitzuteilen, wie lange die Nachricht auf dem Display angezeigt werden soll, wird hier mit Hilfe des o.g. Beispiels die Dauer in Minuten ermittelt und an das „duration“ Attribut übergeben.

Diese Variante zeigt zwar nur die erste Warnung an, aber in der Regel reicht mir das schon. Das ganze lässt sich natürlich auch noch weiter ausbauen. Aber als Beispiel denke ich sollte der Code ausreichen.

alias: ESPHomatrix DWD-Warnung
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.wetterwarnung_buxtehude_current_warning_level
condition:
  - condition: numeric_state
    entity_id: sensor.wetterwarnung_buxtehude_current_warning_level
    above: 0
action:
  - service: esphome.esphomatrix_screen_t
    data:
      icon: dwd_warning
      duration: >-
        {{
        ((as_timestamp(state_attr("sensor.wetterwarnung_buxtehude_current_warning_level",
        "warning_1_end")) - as_timestamp(now())) / 60) | int(0) }}
      text: >-
        {{
        state_attr("sensor.wetterwarnung_buxtehude_current_warning_level",
        "warning_1_description") }}
mode: single




Solltet Ihr noch Fragen haben, schaut einfach auf unserem Discord vorbei. Dort kann euch sicher bei eurem Problem geholfen werden!
https://smarthomeyourself.de/discord

Falls Ihr mehr über Home Assistant wissen wollt, werft gerne einen Blick in meine Home Assistant Playlist auf YouTube:

Playlist:

https://www.youtube.com/watch?v=wZ1Qd0wDY8Y&list=PLtEjuZQyAkqHBqpF8Pg5hjqCMIht74OmS


Ansonsten findet Ihr jede Menge weiterer Informationen rund um Home Assistant in unserem Wiki: