NINA-Warnmeldungen kannst du relativ einfach in Home Assistant einbinden und dir „im Ernstfall“ auf deinem Dashboard anzeigen lassen. Du benötigst lediglich die NINA-Integration sowie fürs Frontend eine Erweiterung über HACS. Wie du genau vorgehen musst, erkläre ich dir in diesem Beitrag!
Wenn immer ich eine App von meinem Handy schmeißen kann, mache ich dies! Nun habe ich dank des Hinweises vom Blog-Leser Theo mit Home Assistant eine weitere App von meinem Smartphone werfen können. Home Assistant ist für mich nun die „Schaltzentrale“, um mich über mögliche Warnmeldungen der NINA-Warn-App zu informieren.
Inhaltsverzeichnis
Eine solche Warnmeldung kann wie folgt aussehen, hier an einem echten Beispiel von gestern Abend, zu einem Stromausfall innerhalb der von mir definierten Region:
Du magst Home Assistant? Dann abonniere kostenlos meine Beiträge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders überlegen!
Eine solche Warnmeldung möchte ich nicht mehr über die extra zu installierende NINA-Warn-App erhalten, sondern zukünftig in Home Assistant angezeigt bekommen. Zusätzlich kann man sich natürlich von Home Assistant auch per Push benachrichtigen lassen, was aber nicht Bestandteil dieses Beitrages ist!
Hier findest du das Ganze auch als Video von mir:
NINA-Integration für Home Assistant
Für Home Assistant gibt es eine NINA-Integration, die man unter Integrations hinzufügen kann.
Fügt man diese Integration hinzu, wird man aufgefordert Städte/Landkreise auszuwählen, für die man Warnmeldungen erhalten möchte. Neben der Angabe von Städten und Landkreisen, kann man noch definieren, wie viele Warnmeldungen man maximal je Stadt/Landkreis erhalten möchte (ich habe dies auf den vorausgewählten 5 gelassen). Ebenso ist bereits aktiviert, dass Corona Warnungen ignoriert werden.
Sobald die Integration eingerichtet ist, solltest du neue Entitäten haben, die wie folgt aufgebaut sind:
binary_sensor.warning_deinestadt_stadt_1
Für die Stadt Köln könnte das dann wie folgt aussehen:
Nun da Home Assistant NINA-Warnmeldungen für die von dir gewählte Stadt erhalten kann, können wir uns diese anzeigen lassen, sofern es eine (oder mehrere) Warnmeldung(en) gibt:
Lovelace-Code für die dynamische Benachrichtigung
Vorweg: Damit die Meldungen immer nur angezeigt werden, wenn es tatsächlich eine Warnmeldung gibt, benötigen wir über HACS eine Erweiterung für das Frontend, die es erlaubt Lovelace-Cards in Abhängigkeit von Bedingungen (also einer Condition) anzuzeigen: Lovelace Local Condition Card
Meine Umsetzung basiert auf einem Code-Beispiel von Chaosville im offiziellen Home Assistant Forum. Vielen Dank dafür!
Und hier dann der YAML-Code, welchen ich bei mir für die situative Darstellung im Dashboard nutze:
cards: - type: conditional conditions: - entity: binary_sensor.warning_koln_stadt_1 state: 'on' card: type: entities style: | ha-card { background-color: rgba(255, 80, 80, 0.2); font-size: 16px; } entities: - type: attribute entity: binary_sensor.warning_koln_stadt_1 attribute: headline name: Köln image: /local/Nina_app.png - type: attribute entity: binary_sensor.warning_koln_stadt_1 attribute: sent name: " "
In meinem Code-Beispiel ist lediglich eine Warnmeldung für die Stadt Köln aufgeführt. Je nach von dir gewählter Anzahl an Warnmeldungen, musst du den Code (ohne das „cards:“ am Anfang) x-fach wiederholen. Ebenso natürlich auch, wenn du mehr als nur eine Stand ausgewählt hast.
Mit „/local/Nina_app.png“ gebe ich ein Bild in der Card an. Dieses habe ich einmalig im Verzeichnis „www“ abgelegt. Da es sich lediglich um das NINA-Icon handelt, ist dies natürlich reine Geschmackssache 😉
YAML-Code aus der Videoanleitung
Über die Zeit habe ich meine Nutzung der Wanmeldungen im Dashboard etwas angepasst. Wie in meinem Video beschrieben, nutze ich nun eine Markdown-Karte mit der Bedingung diese nur anzuzeigen, wenn der Sensor der NINA-Integration auf „on“ ist.
Hier der Code aus dem Video (bitte auf deine Sensoren anpassen!):
<ha-alert alert-type="warning">{{ state_attr('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_1', 'headline') }}</ha-alert> {% if is_state('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_2', 'on') %} <ha-alert alert-type="warning">{{ state_attr('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_2', 'headline') }}</ha-alert> {% endif %} {% if is_state('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_3', 'on') %} <ha-alert alert-type="warning">{{ state_attr('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_3', 'headline') }}</ha-alert> {% endif %} {% if is_state('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_4', 'on') %} <ha-alert alert-type="warning">{{ state_attr('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_4', 'headline') }}</ha-alert> {% endif %} {% if is_state('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_5', 'on') %} <ha-alert alert-type="warning">{{ state_attr('binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_5', 'headline') }}</ha-alert> {% endif %}
Situative Anzeige von NINA-Warnmeldungen in Home Assistant
Sofern du nun die NINA-Integration in Home Assistant nutzt und mittels conditional-card in deinem Dashboard eingebunden hast, solltest du in Home Assistant immer dann eine neue Card im Dashboard sehen, sobald es für die von dir gewählte Stadt eine Warnmeldung gibt.
Konkret kann dies dann wie folgt aussehen:
Das konkrete Beispiel ist das passende Beispiel zu der eingangs gezeigten Warnmeldung der NINA-App.
Natürlich kann man sich nun auch immer von Home Assistant informieren lassen, sobald eine der Entitäten einen Warnmeldung beinhaltet. Ggf. schreibe ich hierzu noch ein konkretes Beispiel in einem Folgebeitrag.
Produktempfehlungen
die Attribute stehen tatsächlich gar nicht „Standardmäßig“ zur Verfügung, deswegen hatte ich sie nicht gefunden. der Tipp mit dem template war super.
Ich hab mir jetzt irgendeinen deutschen Kreis mit Warnung rausgesucht und damit konnte ich es tatsächlich konfigurieren und v.a. testen
Danke dir! 🤗
Hallo, danke für die Beschreibung!
aber… gab es eine Änderung? Ich kann keinerlei Attribute ausgeben , es wird nur „sicher“/“unsicher“ angezeigt.
VG
Hi!
Also hier wurden heute noch Unwetter/Hochwasserwarnungen wie im Beitrag beschrieben angezeigt. Was wird dir denn bei einer aktiven Meldung (also „unsicher“) in den Entwicklertools unter Templates angezeigt, wenn du folgenden Code reinkopierst?
{{ (states.binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_1.attributes|list) }}
(natürlich statt warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_1 deinen Namen eingeben)
Im Falle von „unsicher“ solltest du dort device_class, friendly_name, headline und sent bspw. angezeigt bekommen.
Durch
{{ (states.binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_1.attributes|list)[ZAHL] }}
mit ZAHL = Index der Attribute (also 0, 1, 2, …) kannst du dir dann die Values des jeweiligen Attributes ausgeben lassen.
Vielleicht hast du nur nen Typo in deinem Dashboard?
VG
Olli
@olli Kann man evtl. Hochwassermeldungen ausblenden, wenn sowas in der nähe nicht sein kann ?
@distanzcheck Klar, wenn du die Infos über eine Markdown-Karte anzeigen lässt, kannst du das mit folgender Abfrage lösen:
Du musst natürlich „binary_sensor.warning_overath_stadt_rheinisch_bergischer_kreis_nordrhein_westfalen_1“ gegen den für dich zutreffenden Sensor ersetzen.
@olli Super, gerade versucht aber wohl falsch eingefügt.Wo muss das
{% if ‚Hoch‘ not in state_attr(‚binary_sensor.warning_bochum_stadt_1‘, ‚headline‘) %}
{{ state_attr(‚binary_sensor.warning_bochum_stadt_1‘, ‚headline‘) }}
{% endif %}
hin wenn die Markdown so aussieht:
<ha-alert alert-type=“warning“>{{ state_attr(‚binary_sensor.warning_bochum_stadt_1‘, ‚headline‘) }}</ha-alert>
{% if is_state(‚binary_sensor.warning_bochum_stadt_2‘, ‚on‘) %}
<ha-alert alert-type=“warning“>{{ state_attr(‚binary_sensor.warning_bochum_stadt_2‘, ‚headline‘) }}</ha-alert>
{% endif %}
{% if is_state(‚binary_sensor.warning_bochum_stadt_3‘, ‚on‘) %}
<ha-alert alert-type=“warning“>{{ state_attr(‚binary_sensor.warning_bochum_stadt_3‘, ‚headline‘) }}</ha-alert>
{% endif %}
{% if is_state(‚binary_sensor.warning_bochum_stadt_4‘, ‚on‘) %}
<ha-alert alert-type=“warning“>{{ state_attr(‚binary_sensor.warning_bochum_stadt_4‘, ‚headline‘) }}</ha-alert>
{% endif %}
{% if is_state(‚binary_sensor.warning_bochum_stadt_5‘, ‚on‘) %}
<ha-alert alert-type=“warning“>{{ state_attr(‚binary_sensor.warning_bochum_stadt_5‘, ‚headline‘) }}</ha-alert>
{% endif %}
Und bei dem anderen geht das nicht richtig ? Oder kann man da auch beide ins eins anzeigen lassen. Also Anzeige nur wenn dann.
[attach]41[/attach]
@distanzcheck Also das müsste dann so aussehen:
Man muss die Abfrage nach dem „Hoch“ für jede Entität (also 1-5) machen.
@olli Ok, Flackert nun irgendwie.
[attach]42[/attach]
@distanzcheck Sorry für die späte Antwort, aber ich glaube ich weiß nun, was die Ursache für das Flackern ist – zumindest hatte ich heute etwas ähnliches. In meinem Fall lag es daran, dass die Entität nicht verfügbar war, weshalb der YAML-Code das Frontend anscheinend überfordert.
Existieren bei dir alle 5 Entitäten/Sensoren
Aus diese wird ja im Code referenziert. Wenn du beispielsweise nur 3 Warnungen je Stadt in NINA konfiguriert hast, gibt es ja nur 1-3 und der Code prüft auf nicht vorhandene Sensoren.
Oder NINA hat(te) warum auch immer die Entitäten/Sensoren (noch) nicht bereitgestellt.
@olli Hi, also bei mir sind alle 5 Enitäten konfiguriert.
[attach]50[/attach]
@distanzcheck kannst du einen Screenshot aus den Entwicklerwerkzeugen bereitstellen, in dem man die Entitäten vollständig, also inkl. Spalte „Attribute“ sehen kann?
Ich glaube ich weiß, was das Problem ist: wenn der Sensor sicher ist, gibt es keine Attribute. Der Code prüft aber darauf, was dann „knallt“. Ich lasse mir was einfallen! 🤔
@olli Meinst DU so ?
[attach]51[/attach]
@distanzcheck Es ist mir wirklich unangenehm, aber der Fehler liegt in der Syntax meines Code-Schnipsels an dich… Da scheint beim Copy & Paste bei mir irgendwas schief gegangen zu sein – sorry!
Beim ersten endif haben sich zwei Leerzeichen eingeschlichen, die da nicht sein dürften.
Statt
muss es natürlich
heißen, also ohne die Leerzeichen zwischen den geschweiften Klammern und den Prozentzeichen.
Ich hoffe nun klappt es endlich! 😲
@olli Habe es mal eingefügt und es Flackert nichts.
Ich gebe eine Rückmeldung wenn man ein Alarm da ist.
lg Dirk
Klappt! Jetzt versuche ich dies gerade in eine Automation einzubauen welche die Nina Warnungen auf der Ulanzi Pixel Clock ausgibt. Lüppt aber noch net so richtig. Hochwasser wird gemeldet.
Ich habe gerade in der Beschreibung bei Home Assistant der Nina Warn Integration folgendes gefunden.
Wo muß dieses „Regex:
.*corona.*
“ eingetragen werden ?Headline filter
This filter filters warnings based on the headline as a blacklist. In other words, if the regular expression matches the headline of the warning, the warning will be ignored.
Default: Match nothing (
/(?!)/
)Example
Ignore warnings that contain the word
corona
Regex:
.*corona.*
Headline:corona-verordnung des landes: warnstufe durch landesgesundheitsamt ausgerufen
Habe es gerade selbst gefunden, in der Konfiguration der Integration. Damit hätten wir uns das herrausfiltern von Hochwasser ersparen können. 😀 🤣
@distanzcheck Ja, jetzt wo du es sagst… 🤣
Aber betrachte es mal so: Auf diese Weise hast du eine weitere Funktionalität/Möglichkeit von HA kennenlernen dürfen 😉
@olli Da hast DU recht und das finde ich auch gut so.
Wie siehts aus mit nem Artikel für Benachrichtigungen?
z.B. via Telegram
Hi Marcel,
wie du eine Benachrichtigung an Telegram schickst, ist bspw. hier beschrieben: https://smarterkram.de/1570/
VG
Olli
Danke für die Info, aber ich verstehe nicht wo Dein Yaml-Code hin soll. Cards: führt zu Fehlern in der conditional card und auch an anderen Stellen. Nun, wo wird der Yaml-Code platziert?
Hi!
Wenn du dein Dashboard nicht im YAML-Modus bearbeitest, sondern über den Editor, klickst du auf „Karte hinzufügen“ und scrollst dann bis ganz nach unten klickst da auf „Manuell“. Der Editor-Feld beinhaltet ja schon „type: ““. Hier kannst du also den Code ab Zeile 2 oben reinkopieren. Es kann dann sein, dass die Einrückungen nicht korrekt übernommen werden bzw. passen. Die Zeile „type: conditional“ muss gleich eingerückt sein, wie die Zeilen „conditions:“ und „card:“ – ggf. musst du also ein paar Leerzeichen am Zeilenanfang der Zeile „type: conditional“ machen, bis diese auf gleicher Höhe mit den genannten ist. Dann sollte die Fehlermeldung „Konfigurationsfehler erkannt:
bad indentation of a mapping entry (2:15)“ verschwinden. Eine Vorschau im rechten Bereich wird es aber vermutlich nicht geben, da die Karte ja eben nur angezeigt wird, wenn der Sensor den Wert ‚on‘ hat.
Ich hoffe das hilft soweit!
VG
Olli
Ja das geht mir genauso. Auch die manuelle Karte brachte keinen Erfolg obwohl die Einrückungen alle gepasst haben.
Probier mal folgendes in dem Editor-Fenster aus:
type: conditional
conditions:
- entity: binary_sensor.warning_koln_stadt_1
state: 'on'
card:
type: entities
style: |
ha-card {
background-color: rgba(255, 80, 80, 0.2);
font-size: 16px;
}
entities:
- type: attribute
entity: binary_sensor.warning_koln_stadt_1
attribute: headline
name: Köln
image: /local/Nina_app.png
- type: attribute
entity: binary_sensor.warning_koln_stadt_1
attribute: sent
name: " "
Also ohne
cards:
-
Im Kommentar hier gehen leider die Einrückungen verloren, die musst du natürlich beachten!