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:
und
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