Homey Community Forum

Unwetterwarnung

Homey könnte durchaus Leben retten, wenn wir eine App hätten, die regionale Unwetterwarnungen triggern kann. Eine Verbindung z.B für Nina oder dem DWD hätte richtig Potenzial.
Ich hab aber leider keine Ahnung vom programmieren.

Im Moment ist das nur um 3 Ecken möglich. Home Assistant stellt über die Weatherbit Integration eine Warnung als Sensor dar.

Screenshot_20210727-093557_Chrome

Dieser Sensor kann über die Home Assistant App in Homey importiert werden.

Screenshot_20210727-093733_Homey

Der Sensor gibt leider nur eine Zahl an, wieviel Warnungen für die Region vorliegen.
Durch so einen Flow, kann man zumindest eine erste Warnung aufs Handy schicken lassen, um dann genauer nachzusehen.

Vielleicht hat jemand einen Plan, wie so etwas direkt in Homey per App zu integrieren ist. Der traurige Anlass ist vielleicht eine Motivation.

1 Like

Finde ich gut. Da muss ich mich mal umschauen, ob die Anbieter eine offene API haben. Vermutlich schon, sonst gäbe es die HA-Integration nicht.

Der DWD bietet zwar keine API an (siehe FAQ), aber andere “Datensätze” über den DWD-GeoWebService.
Daten vom DWD fände ich jedenfalls besser als Daten von einem in North Carolina ansässigen Unternehmen. Da ich aber auch kein Programmierer bin, weiß ich nicht ob sich das irgendwie realisieren lassen würde.

https://maps.dwd.de/geoserver/web/

https://docs.geoserver.org

Die Daten vom Geoserver scheinen mir eher Kartendaten zu sein.

Ich bin hier fündig geworden:
Daten vom DWD:
https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json
Ein Implementierungsbeispiel:

Daraus ließe sich was machen.
Die Warnungen sind aber nur je Landkreis. Würde euch das genügen?
Die Stadt/Gemeindespezifischen Warnungen gibt es wohl nur als FTP-Download und nach Anmeldung:

Das wäre mir auch zu kompliziert bei der Auswahl in Homey.

Das Problem wäre dabei erst einmal eine Liste der Länderkürzel und Landkreise zu finden. Da gibt es keine Abfrage, sondern nur Excellisten.

Die Warnungen sind auch sehr textlastig. Ich kann mir nur vorstellen, dass die App eine Timeline-Eintrag bei neuen Warnungen schreibt, die man sich ja automatisch per Push schicken lassen kann.
Die Summe und höchste Stufe kann man ja als Geräteattribut anzeigen. Ein Gerät wäre dann je ein Landkreis, der “überwacht” wird.
Oder was hättet ihr für eine Erwartung an so eine App?

Also Landkreise wären schon viel Wert. Ein Timeline Eintrag lässt sich triggern und reicht völlig.
Es geht doch hauptsächlich darum zu wissen, dass in der eigenen Umgebung das Theater los gehen “kann”.
Meine HA Warnung hat nur Alarmfunktion. Ich habe keine Lösung gefunden, den in der Entität gut versteckten Text an mein Handy zu senden.

Hier wird der Alarmtext in 5 Sprachen angezeigt. Der Text ist identisch mit den DWD Warnungen.

Was jemand daraus macht ist sein Problem, sofern die Oma nicht im Kellergeschoss wohnt.
Eine einfache Warnung ist besser als keine. In Zukunft werden wir das leider öfters brauchen.

Ich habe schon eine KML-Datei mit den Kreisen gefunden. Damit kann man vermutlich eine GollgeMaps-Karte basteln, wo man seinen Kreis suchen kann.

Du siehst, ich bin schon an der Umsetzung :slight_smile:
Wenn man die Daten ertstmal hat, wäre die App das kleiner Problem. Ich habe ja euch als Betatester :grin:

1 Like

Ich mach dir sogar den Alpha Tester ! :stuck_out_tongue_winking_eye::+1::beers::beers:

Lästige Kreis-Liste :roll_eyes:
Die KML kann man nicht in GoogleMaps importieren - zu groß/komplex.
Ich habe soinst nur eine Excel-Liste gefunden:

https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.html

Nur wie gestaltet man nun die Eingabe beim Hinzufügen eines Gerätes? Nur ein Eingabefeld für die Nummer? Ich wüsste nicht, wie man das sonst sinnvoll auswählbar machen sollte.
Habt ihr Ideen dazu?

Ich denke, dass jeder fähig sein sollte, aus der csv Datei, den für ihn relevanten Kreis/Stadt herauszuzuchen und die die #Warncell Nummer in ein Feld der App einzutragen. Wenn sich längerfristig eine andere Lösung abzeichnet, kannst du die App immer noch updaten.

Edit.
Ich konnte nicht schlafen und hab ein bisschen in HA experimentiert und auch einen Code gefunden. Der Code wird als Markdown eingebunden und zeigt folgendes Ergebnis:

Vielleicht nützt dir der YAML-Code etwas ?

{% set current_count = state_attr(“sensor.wetterwarnungen_current_warning_level”, “warning_count”) %} {% set advance_count = state_attr(“sensor.wetterwarnungen_advance_warning_level”, “warning_count”) %} {% if ((current_count == 0 or current_count == None) and (advance_count == 0 or advance_count == None)) %} Keine Warnungen {% else %}
{% for i in range(current_count) %}
{% set headline = state_attr(“sensor.wetterwarnungen_current_warning_level”, “warning_” ~ loop.index ~ “headline") %}
{% set description = state_attr(“sensor.wetterwarnungen_current_warning_level”, "warning
” ~ loop.index ~ “description") %}
{% set level = state_attr(“sensor.wetterwarnungen_current_warning_level”, "warning
” ~ loop.index ~ “level") %}
{% set time_start = state_attr(“sensor.wetterwarnungen_current_warning_level”, "warning
” ~ loop.index ~ “start") %}
{% set weekday_start = as_timestamp(time_start) | timestamp_custom("%w", True) | int %}
{% set time_end = state_attr(“sensor.wetterwarnungen_current_warning_level”, "warning
” ~ loop.index ~ “end") %}
{% set weekday_end = as_timestamp(time_end) | timestamp_custom("%w", True) | int %}
{% set color = state_attr(“sensor.wetterwarnungen_current_warning_level”, "warning
” ~ loop.index ~ “color") %}
<font color={{ color }}>{{ headline }}
{{ [‘Montag’,‘Dienstag’,‘Mittwoch’,‘Donnerstag’,‘Freitag’,‘Samstag’,‘Sonntag’][weekday_start-1] ~ “, " ~ time_start.strftime(”%H:%M") ~ " - " ~ [‘Montag’,‘Dienstag’,‘Mittwoch’,‘Donnerstag’,‘Freitag’,‘Samstag’,‘Sonntag’][weekday_end-1] ~ “, " ~ time_end.strftime(”%H:%M") }}
{{ description|trim }}
{% 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.wetterwarnungen_advance_warning_level”, "warning
” ~ loop.index ~ “headline") %}
{% set description = state_attr(“sensor.wetterwarnungen_advance_warning_level”, "warning
” ~ loop.index ~ “description") %}
{% set level = state_attr(“sensor.sensor.wetterwarnungen_advance_warning_level”, "warning
” ~ loop.index ~ “level") %}
{% set time_start = state_attr(“sensor.wetterwarnungen_advance_warning_level”, "warning
” ~ loop.index ~ “start") %}
{% set weekday_start = as_timestamp(time_start) | timestamp_custom("%w", True) | int %}
{% set time_end = state_attr(“sensor.wetterwarnungen_advance_warning_level”, "warning
” ~ loop.index ~ “end") %}
{% set weekday_end = as_timestamp(time_end) | timestamp_custom("%w", True) | int %}
{% set color = state_attr(“sensor.wetterwarnungen_advance_warning_level”, "warning
” ~ loop.index ~ “_color”) %}
<font color={{ color }}>{{ headline }}
{{ [‘Montag’,‘Dienstag’,‘Mittwoch’,‘Donnerstag’,‘Freitag’,‘Samstag’,‘Sonntag’][weekday_start-1] ~ “, " ~ time_start.strftime(”%H:%M") ~ " - " ~ [‘Montag’,‘Dienstag’,‘Mittwoch’,‘Donnerstag’,‘Freitag’,‘Samstag’,‘Sonntag’][weekday_end-1] ~ “, " ~ time_end.strftime(”%H:%M") }}
{{ description|trim }}
{% if not loop.last %}***{% endif %}
{% endfor %}
{% endif %}

Ich kann vor der ersten Warnung nicht sagen ob es funktioniert.

Das sehe ich auch so.

@Undertaker @fantross

Kleiner Appetithappen, Screenshot aus der Homey WebApp:

grafik

grafik

8 Likes

tenor

Sieht richtig klasse aus!!! :+1:t4:

:clap: :+1:

Das warten hat ein Ende.

Sieht mega gut aus.
:+1:

Vielen Dank.