Seite 1 von 1

DWD Push-Benachrichtigung

Verfasst: So 5. Sep 2021, 08:34
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ß

Re: DWD Push-Benachrichtigung

Verfasst: So 5. Sep 2021, 17:19
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

Re: DWD Push-Benachrichtigung

Verfasst: So 12. Sep 2021, 20:40
von wuschel
So jetzt mal Zeit gefunden, einwandfrei.
Dank dir für den Code

Gruß