DWD Push-Benachrichtigung Thema ist als GELÖST markiert

Rat und Tat rings um Home Assistant Automationen.
Antworten
wuschel
Beiträge: 23
Registriert: So 25. Jul 2021, 13:26

DWD Push-Benachrichtigung

Beitrag von wuschel »

Hallo zusammen,
ich lasse mir vom DWD die aktuellen Nachrichten/Warnungen anzeigen, es wäre cool wenn man es noch weitergepusht bekommt. Also sobald die Karte bzw. die Entität "sensor.dwd_warnungen_****" ihren Status ändert und mit Inhalt gefühlt, diesen Inhalt weiterzupushen.
Gibt es für sowas einen BP oder könnte mir vll jemand seinen Code geben, habe es jetzt über das Wochenende probiert, komme aber auf keinen grünen Zweig.

Danke und Gruß
Benutzeravatar
Osorkon
Administrator
Beiträge: 123
Registriert: Sa 17. Jul 2021, 16:53
Wohnort: Langenargen
Kontaktdaten:

Re: DWD Push-Benachrichtigung

Beitrag von Osorkon »

Tag @wuschel

Ich habe hier eine Script, welches den aktuellen Status der Wetterwarnungen per Telegram ausgibt.
Im Prinzip das gleiche wie Du vielleicht bereits als Markdown Karte verwenden tust. Zu Beachten ist, dass Du die Sensoren:

Code: Alles auswählen

sensor.wetter_warnung_current_warning_level
und

Code: Alles auswählen

sensor.wetter_warnung_advance_warning_level
ggf. durch Deine Entitäten ersetzen musst, falls sie anders benannt sind.

Code: Alles auswählen

alias: DWD Wetterwarnung status
sequence:
  - service: notify.telegram
    data:
      title: DWD Wetterwarnung
      message: >-
        {% set current_count =
        state_attr("sensor.wetter_warnung_current_warning_level",
        "warning_count") %} {% set advance_count =
        state_attr("sensor.wetter_warnung_advance_warning_level",
        "warning_count") %} {% if ((current_count == 0) and (advance_count ==
        0)) %} Keine Warnungen {% else %}
          {% for i in range(current_count) %}
            {% set headline = state_attr("sensor.wetter_warnung_current_warning_level", "warning_" ~ loop.index ~ "_headline") %}
            {% set description = state_attr("sensor.wetter_warnung_current_warning_level", "warning_" ~ loop.index ~ "_description") %}
            {% set level = state_attr("sensor.wetter_warnung_current_warning_level", "warning_" ~ loop.index ~ "_level") %}
            {% set time_start = state_attr("sensor.wetter_warnung_current_warning_level", "warning_" ~ loop.index ~ "_start") %}
            {% set time_end = state_attr("sensor.wetter_warnung_current_warning_level", "warning_" ~ loop.index ~ "_end") %}
          {{ headline }}
          {{ time_start.strftime("%a %H:%M") ~ " - " ~ time_end.strftime("%a %H:%M") }}
          *{{ description }}*
          {% if not loop.last %}***{% endif %}
          {% endfor %}
          {% if ((current_count != 0) and (advance_count != 0)) %}***{% endif %}
          {% for i in range(advance_count) %}
            {% set headline = state_attr("sensor.wetter_warnung_advance_warning_level", "warning_" ~ loop.index ~ "_headline") %}
            {% set description = state_attr("sensor.wetter_warnung_advance_warning_level", "warning_" ~ loop.index ~ "_description") %}
            {% set level = state_attr("sensor.wetter_warnung_advance_warning_level", "warning_" ~ loop.index ~ "_level") %}
            {% set time_start = state_attr("sensor.wetter_warnung_advance_warning_level", "warning_" ~ loop.index ~ "_start") %}
            {% set time_end = state_attr("sensor.wetter_warnung_advance_warning_level", "warning_" ~ loop.index ~ "_end") %}
          {{ headline }}
          {{ time_start.strftime("%a %H:%M") ~ " - " ~ time_end.strftime("%a %H:%M") }}
          *{{ description }}*
          {% if not loop.last %}***{% endif %}
          {% endfor %}
        {% endif %}     
mode: single
Jetzt kannst Du Dir eine Automationen erstellen, mit dem trigger warning_level und der Bedingung warning_level != 0

Code: Alles auswählen

alias: DWD Wetterwarnung Notification
description: ''
trigger:
  - platform: state
    entity_id: sensor.wetter_warnung_current_warning_level
    attribute: warning_count
  - platform: state
    entity_id: sensor.wetter_warnung_advance_warning_level
    attribute: warning_count
condition:
  - condition: template
    value_template: '{{ trigger.to_state.state | int != 0}}'
action:
  - service: script.dwd_wetterwarnung_senden
mode: single
Änderst sich jetzt die Warnstufe und ist ungleich 0, wird das Script ausgeführt und eine Nachricht per Telegramm verschickt.
Lässt Du die Bedingung weg, wirst Du auch per Nachricht informiert, wenn die Warnstufe aufgehoben (also = 0) wird.

Auch das kannst Du wiederum alles in eine Automation packen, wenn es Dir lieber ist.

Gruß
Osorkon
Einer muss ja für Ordnung sorgen. :D
wuschel
Beiträge: 23
Registriert: So 25. Jul 2021, 13:26

Re: DWD Push-Benachrichtigung

Beitrag von wuschel »

So jetzt mal Zeit gefunden, einwandfrei.
Dank dir für den Code

Gruß
Antworten