[Modul] WarnHub — Warn- und Alarmmeldungen für Deutschland, Österreich und die Schweiz, mit Umkreis-Filter, Push und Schutzaktionen

Hallo zusammen,

ich möchte hier ein neues, eigenständiges Modul vorstellen: WarnHub. Kein Teil eines größeren Verbunds, sondern für sich stehend nutzbar – Warnmeldungen betreffen schließlich jeden, nicht nur PV-/Speicher-Besitzer, und nicht nur in Deutschland.

Worum geht es?

Es gibt eine ganze Reihe offizieller Warnkanäle – in Deutschland MoWaS, KATWARN, BIWAPP, DWD-Wetterwarnungen, Hochwassermeldungen, Polizeimeldungen, europaweit Meteoalarm (deckt auch Österreich und die Schweiz ab) – aber keinen davon direkt in der eigenen Hausautomation. Wer wissen will, ob gerade eine Unwetterwarnung für den eigenen Ort vorliegt, muss eine eigene App öffnen – und selbst dann bekommt die Jalousie oder das Garagentor davon nichts mit.

WarnHub bündelt diese Quellen, filtert geometrisch auf einen selbst definierten Umkreis um beliebig viele Standorte (nicht grob nach Postleitzahl), schickt bei Treffern eine Push-Benachrichtigung an alle WebFront-/Kachel-Visualisierung-Geräte, Telegram und Pushover – und kann optional automatisch reagieren, kurz bevor der Sturm da ist.

Wozu braucht man das?

  • Push-Warnung aufs Handy, sobald eine Meldung tatsächlich den eigenen Standort betrifft – nicht jede Landeswarnung, die anderswo gilt.
  • Mehrere Standorte gleichzeitig im Blick: eigener Wohnort, Zweitwohnsitz, Angehörige – jeder mit eigenem Umkreis und Mindest-Schweregrad.
  • Automatisch reagieren statt nur benachrichtigt werden: Raffstore hochfahren, Markise einfahren, Garagentor schließen, bei entsprechend ausgestatteten Fahrzeugen sogar Fenster oder Kofferraum/Heckklappe schließen – kurz bevor Hagel oder Starkregen eintreffen, nicht schon stundenlang vorher beim bloßen Eingang der Meldung (Vorlauf einstellbar).
  • Auch eine eigene Wetterstation lässt sich einbinden: löst unabhängig von den amtlichen Quellen aus, wenn die lokal gemessene Windböe oder Regenrate den eigenen Schwellwert überschreitet – ein Sicherheitsnetz für den Fall, dass eine amtliche Warnung ein tatsächlich lokal auftretendes Ereignis mal nicht (rechtzeitig) erfasst.
  • Auch unterwegs: ein Standort lässt sich statt an feste Koordinaten an zwei Live-Variablen (z. B. aus einem GPS-/Fahrzeug-Modul) binden, damit immer die Warnung für den aktuellen Aufenthaltsort kommt, nicht nur für zuhause. Eine eigene Objektbaum-Suche findet passende Fahrzeug-/Standort-Variablen (getestet mit Tessie und Geofency) automatisch und legt den mobilen Standort direkt verknüpft an – kein Heraussuchen einzelner Variablen-IDs von Hand.

Funktionsumfang

Datenquellen (einzeln zuschaltbar):

  • NINA-Aggregation (warnung.bund.de, dieselbe API wie die offizielle BBK-Warn-App) – MoWaS, KATWARN, BIWAPP, DWD-Wetterwarnungen, Hochwasser (LHP), Polizeimeldungen
  • Direkte DWD-CAP-Anbindung – mehr Detail/präzisere Polygone
  • PEGELONLINE (WSV) – erhöhte Pegelstände an Wasserstraßen-Messstellen
  • BfS Ortsdosisleistung – Radioaktivitäts-Messwerte, mit eigener Einordnungshilfe (Dosisleistung/Verweildauer bis zum Jahres-Vorsorgewert der Bevölkerung)
  • Meteoalarm – europaweite Wetterwarnungen für 39 Länder, inklusive Österreich und Schweiz, wichtig auch für mobile Standorte im Ausland
  • GeoSphere Austria (ZAMG) – zusätzlich koordinatengenaue amtliche Warnungen direkt von der österreichischen Wetterbehörde, übernimmt für österreichische Standorte automatisch von Meteoalarm
  • BAFU-Hochwasserdaten (Schweiz, via LINDAS) – amtliche 5-stufige Gefahrenstufen-Skala für Fliessgewässer und Seen, echte behördliche Klassifikation statt Eigenkonstruktion
  • Eigene Wetterstation – unabhängiges Sicherheitsnetz, löst bei lokal gemessener Windböe/Regenrate über einem eigenen Schwellwert aus. Beide gestuft in je drei Werten (Moderate/Severe/Extreme – Wind 40/65/90 km/h, Regen 15/25/40 mm/h, an DWDs eigene Warnstufen angelehnt) – eine Markise ist windempfindlicher als ein Raffstore, jede Schutzaktion wählt selbst, ab welcher Stufe sie reagiert. Meldet sich auch wieder mit einer echten „Entwarnung“, sobald Wind/Regen unter den Schwellwert zurückgehen (nicht nur „Sturm kommt“, sondern auch „Sturm vorbei“). Optional (standardmäßig aus) stellt WarnHub eine dadurch ausgelöste Raffstore-/Markisen-/Garagentor-Aktion nach 20 Minuten durchgehender Ruhe automatisch zurück – die einzige Ausnahme von „keine automatische Rückstellung“ im ganzen Modul, geprüft gegen eine zwischenzeitliche manuelle Änderung, protokolliert in der Warnungs-Historie, eine anstehende Rückstellung als eigene Statuszeile sichtbar. Froggit (Ecowitt-Protokoll), Sainlogic/ELV (Wunderground-Protokoll) und Meteobridge/Meteohub (Aggregator, deckt zusätzlich Marken wie DAVIS ab) werden per Objektbaum-Suche automatisch gefunden – Windgeschwindigkeiten in m/s werden dabei automatisch zu km/h umgerechnet. Als letzter Rückfall hilft eine systemweite Suche nach dem Symcon-Standardprofil (findet z. B. eine bereits profilierte KNX-Variable); für jedes andere Fabrikat (KNX, Netatmo, TFA, Homematic, …) lässt sich die passende Wind-/Regen-Variable auch manuell auswählen – eine automatische KNX-Erkennung ohne Profil ist technisch nicht möglich (keine feste Variablenbenennung), die manuelle Auswahl deckt das trotzdem ab
  • BETA, ungetestet: eigene VKF-Hagelschutz-Signalbox (Schweiz) – wer eine bei einem Schweizer Gebäude registrierte Hagelschutz-Signalbox hat (hagelschutz-einfach-automatisch.ch), kann deren Poll-URL eintragen. Protokoll aus offizieller Doku + Community-Adapter-Quellcode gebaut, mangels eigener Signalbox aber nicht live getestet – wer eine hat und es ausprobiert, mir gerne eine Rückmeldung hier im Thread

Standorte: beliebig viele, per Symcon-Systemstandort, Adress-/PLZ-Suche, Kartenauswahl oder automatischer Objektbaum-Suche nach Fahrzeug-/ Standort-Variablen (mobiler Standort, z. B. Tessie/Geofency) angelegt; je Standort eigener Umkreis, Mindest-Schweregrad und optional ein Filter, welche Push-Ziele benachrichtigt werden (praktisch bei mehreren Personen/Fahrzeugen).

Benachrichtigung: automatische Objektbaum-Suche nach WebFront-, Kachel-Visualisierung-, Telegram-Bot- und Pushover-Instanzen, voraktiviert, Abwahl per Klick. Telegram/Pushover mangels eigenem Bot-/Account-Zugang nicht selbst live getestet, aber gegen den echten Quellcode der jeweiligen Symcon-Module gebaut – auch hier Rückmeldungen willkommen.

Schutzaktionen: Raffstore/Rollladen, Markise, Garagentor, akustischer Alarm, eigenes Skript, sowie Fenster- und Kofferraum-/Heckklappen-Schließen für entsprechend angebundene Fahrzeuge (Kofferraum/Heckklappe nur mit Sicherheitsprüfung gegen ein versehentliches Öffnen). Auch hierfür gibt es eine automatische Objektbaum-Suche. Ausgelöst wird jeweils erst kurz vor dem tatsächlichen Gültigkeitsbeginn der Warnung (einstellbarer Vorlauf), nicht schon beim Eintreffen der Meldung selbst – die Push-Benachrichtigung kommt trotzdem sofort. Jeder Alarmtyp lässt sich außerdem einzeln testen („:tornado: Sturm testen“ usw.) – löst sofort alle passenden aktiven Aktionen aus, ohne auf eine echte Warnung zu warten.

Eigenes Dashboard/IPSView: vier Statusvariablen (Aktive Warnungen, Höchster Schweregrad, Status, Letzte Prüfung) stehen automatisch im Objektbaum der Instanz – Anknüpfungspunkt für eine eigene Visualisierung.

Fertige WebFront-Kacheln: zwei weitere Variablen enthalten fertiges HTML, kein eigenes Bauen nötig – einfach im Objektbaum in den Bereich des WebFronts verlinken. Eine kompakte Badge-Kachel (Farbkreis + Anzahl) und eine Übersichts-Kachel (Liste der aktiven Warnungen als Karten). Moderner, durchscheinender „Liquid Glass“-Stil, hell/dunkel-adaptiv.

Warnungs-Historie: bis zu 500 vergangene Warnungen/Entwarnungen über eine eigene Funktion abrufbar (WHUB_GetHistory()), für eigene Auswertungen/Skripte – auch was passiert wäre, wenn Push zwischenzeitlich ausgeschaltet war.

Push-Ruhephase: Benachrichtigung für 1/4/24 Stunden pausierbar (z. B. Urlaub, Feier, Nachtruhe) – Erkennung, Historie und Schutzaktionen laufen währenddessen unverändert weiter, nur das Handy bleibt still. Ein manueller Testklick kommt trotzdem an.

Eskalation & Handlungsempfehlung: Verschärft sich eine bereits gemeldete Warnung (z. B. DWD stuft von Moderate auf Severe hoch), kommt jetzt eine erneute Push-Benachrichtigung – eine Abstufung dagegen nicht. Der Push-Text zeigt außerdem, falls vorhanden, die Handlungsempfehlung der Quelle (z. B. „Meiden Sie den Aufenthalt im Wald“). Eine bereits abgelaufene Warnung zählt außerdem nicht mehr als aktiv, auch wenn eine Quelle sie verzögert weiterliefert.

Voraussetzungen

  • IP-Symcon 9.0 oder neuer
  • Für die direkte DWD-Anbindung zusätzlich die PHP-Erweiterungen curl und ZipArchive (ohne sie liefert NINA weiterhin DWD-Wetterwarnungen, nur ohne das zusätzliche Detail)
  • Kein API-Schlüssel/Zugangsdaten nötig – alle Quellen sind frei zugänglich

Einrichtung in Kürze

  1. Modul über den Symcon Module Store hinzufügen (aktuell im Beta-Kanal, das Stable-Release folgt), Instanz anlegen.
  2. Mindestens einen Standort anlegen (Systemstandort/Adresssuche/Karte/ automatische Fahrzeugsuche für einen mobilen Standort).
  3. Datenquellen nach Bedarf zuschalten (für eine eigene Wetterstation reicht meist der Suchen-Knopf), Push-Ziele-Suche und optional die Schutzaktionen-Suche einmal klicken – Treffer sind bereits aktiv, unerwünschte einfach abwählen.

Module Store, Lizenz & Haftung

WarnHub gibt es im offiziellen Symcon Module Store: [:link: Store-Link folgt nach Freigabe] – aktuell im Beta-Kanal, das Stable-Release folgt, sobald die laufende Betaphase abgeschlossen ist. Der Quellcode bleibt dabei offen einsehbar.

Lizenz: PolyForm Noncommercial 1.0.0 – private und nicht-kommerzielle Nutzung ist frei, für den gewerblichen Einsatz bitte einfach melden.

Ein wichtiger Hinweis vorweg: WarnHub ist ein zusätzlicher Kanal in der eigenen Hausautomation, kein Ersatz für die offiziellen Warn-Apps (NINA, KATWARN, Wetter-Apps der Behörden) oder amtliche Katastrophenschutz-Durchsagen. Bei allem, was über eine reine Bequemlichkeitsfunktion hinausgeht, gilt im Zweifel immer die Einschätzung der zuständigen Behörden.

Feedback

Das Modul ist noch jung (aktuell Beta) und wird aktiv weiterentwickelt – über Rückmeldungen, Fehler, fehlende Datenquellen oder Ideen für weitere Schutzaktionen freue ich mich sehr, hier im Thread.

Danksagung

Gewidmet Sepp Lausch, der zeitgleich an einer eigenen Symcon-Warnmeldungs-Anbindung arbeitet – der freundschaftliche Wetteifer hat WarnHub sichtlich gutgetan. :wink:

Viele Grüße Dietmar

3 „Gefällt mir“

Aus gegebenem Anlass mal ein Blick über den Symcon-Tellerrand: Wie sieht es mit vergleichbaren Lösungen in anderen verbreiteten SmartHome-Systemen aus? Kurz recherchiert (Stand 05.09.2026, Quellen unten) – Korrekturen/Ergänzungen sehr willkommen, gerade wenn sich dort seitdem etwas getan hat.

Hier die aktualisierte Tabelle (nur die Tabelle, wie gewünscht):

Plattform Modul / Integration Länder Quellen Standort-Matching Mehrkanal-Push Schutzaktionen Verlauf
IP-Symcon WarnHub (dieses Modul) DE, AT, CH NINA, direkte DWD-CAP, PEGELONLINE, BfS ODL, Meteoalarm (39 Länder), GeoSphere Austria, BAFU, Schweizer Erdbeben (SED), Waldbrandgefahrenindex (DWD), Ozonbelastung (Umweltbundesamt), VKF-Hagelschutz (Beta) geometrisch (Polygon/Kreis der Warnung) + Umkreis, auch mobile Standorte (7 automatisch erkannte Quellen: Tessie, Geofency, Stellantis, Smartcar, BMW Connected Drive, Hyundai/Kia Bluelink, OVMS native) WebFront/Kachel-Visualisierung, Telegram, Pushover, E-Mail Raffstore/Markise/Garage/Fenster/Kofferraum, mit Sicherheitsprüfung, optionale Auto-Rückstellung; zusätzlich unabhängige Fenster-/Tür-Überwachung (klassische Profile + neue Symcon-9-Variablendarstellung) bis 500 Einträge
Home Assistant NINA (Core-Integration) DE NINA Auswahl nach Landkreis/Stadt über HA-eigene Notify-Automationen über HA-eigene Automationen –
Home Assistant Deutscher Wetterdienst (DWD) Weather Warnings DE DWD Warncell-ID/-Name – – –
ioBroker ioBroker.weather-warnings (Community, ticaki) – inzwischen echter, aktiv gepflegter Adapter statt Copy-Paste-Skript DE, AT DWD, UWZ, ZAMG, NINA Warnzelle (DWD/UWZ) + Koordinaten (ZAMG/NINA) Telegram, WhatsApp, Pushover, E-Mail, Alexa, Sayit u. a. nur Datenpunkte zur Eigenverdrahtung –
openHAB DWD Unwetter Binding DE DWD Warncell-ID – – –
FHEM DWD_OpenData (Wetterwarnungs-Teil) DE DWD Warnzelle/Landkreis – – –

„–“ heißt: nicht eingebaut/nicht Teil des Moduls – nicht, dass es unmöglich wäre. Home Assistant, openHAB und FHEM bieten alle eigene, generische Automations-/Regel-Engines, mit denen sich Push und Aktionen selbst verdrahten lassen; das ist nur eben Marke-Eigenbau statt eingebauter Funktion.

Ein paar Einordnungen:

  • Geometrisches Standort-Matching statt Landkreis-/Warnzellen-Namen ist über alle Plattformen hinweg selten – meist wird stattdessen ein administrativer Bezirk ausgewählt, was gerade bei kleinräumigen Gewittern/ Unwettern an Gemeindegrenzen ungenau werden kann.
  • Österreich/Schweiz als eigenständige amtliche Quellen (statt nur über die europaweite Meteoalarm-Zusammenfassung) sind mir außerhalb von WarnHub bislang nirgends begegnet.
  • Das ioBroker-Skript von ticaki ist beim Mehrkanal-Push tatsächlich sehr umfangreich (mehr Kanäle als WarnHub aktuell), ist aber ein Copy-Paste- Skript für den JavaScript-Adapter statt ein installierbarer Adapter, laut eigener Einordnung eher Alpha- als Beta-Stand, letztes Update 2023.

Wie immer: kein Anspruch auf Vollständigkeit, und wenn ich einer Lösung unrecht tue oder etwas übersehen habe – immer gerne melden.

2 „Gefällt mir“

Großartiges Modul!
Auf so etwas habe ich schon lange gewartet! Toll!

Direkt installiert. Ganz toll strukturiert. Man findet sich gleich zurecht. Perfekte Erklärungen.

Push Test: Bei einem ausgewählten Ziel (Name: IPSiriusChr) kommt die Fehlermeldung:
:warning: Test fehlgeschlagen – an keines der 1 aktivierten Ziele konnte zugestellt werden (siehe Systemprotokoll).
Bei Test in der Visu Instanz funktioniert die Push Zustellung.

Bei einem anderen Ziel (Name: IPSirius) funktioniert die Push-Sendung aus dem WarnHub

Debug: 05.09.2026, 11:32:17 | pushToAllWebfronts | Push an Instanz 57792 (webfront) fehlgeschlagen.

Was kann da falsch laufen?

Vielen Dank für das tolle Modul!

Danke für den Fund — echter Bug, nicht bei dir! Der letzte Parameter von WFC_PushNotification() ist laut Symcon-Doku eine TargetID fürs Deep-Linking beim Antippen der Nachricht (0 = kein Sprungziel), keine Absender-Instanz-ID. WarnHub hat dort versehentlich seine eigene Instanz-ID übergeben — die ist innerhalb einer fremden WebFront-Instanz kein gültiges Objekt, wodurch die Zustellung dort scheitern konnte, während sie bei einer anderen WebFront zufällig durchging.

Gefixt in 1.0.2 (gerade veröffentlicht) — bitte über den Module Store aktualisieren und den Push-Test nochmal probieren, sollte jetzt auch bei „IPSiriusChr“ funktionieren. Danke fürs Melden und die netten Worte zum Modul!

Super!
Werde ich testen. Aber wohl erst morgen.
Schönen Samstag!

1 „Gefällt mir“

Installiert und eingerichtet, die meisten “Übernahmen” funktionierten problemlos, die Froggit Instanz wurde nicht gefunden.

Telegram Bots werden gefunden, aber beim Test kommt

pushToAllWebfronts | TB_SendMessage ist nicht verfügbar (kein Telegram-Bot-Modul installiert).

Visu und Kachel passt, muss ich dann mal in IPSview einbinden.

Noch eine Ergänzung, in der

steht und bleibt “gerade eben überprüft” in der Übersicht steht die Uhrzeit der letzten Prüfung.

Und noch eine Frage, laut Modul “Unwetterwarnung” und beim DWD geprüft, habe ich aktuell eine “Amtliche WARNUNG vor WINDBÖEN“, also Stufe 1 (gelb), die aber durch dein Modul nicht angezeigt wird.

1 „Gefällt mir“

Guten Morgen!
Prima. Push funktioniert nun. Perfekt.

Nun braucht es nur noch eine Warnung . . . nicht dass ich das prinzipiell möchte :woozy_face:

Beste Grüße Christian

1 „Gefällt mir“

Danke für die ausführlichen Rückmeldungen — gleich drei echte Fundstellen dabei!

Froggit nicht gefunden: Bug, gefixt in 1.0.3. Die Suche verglich bisher die angezeigten Variablennamen („Windböe“/„Regenrate“) — die kommen aber erst über die Sprachdatei des Froggit-Moduls zustande und sind deshalb sprachabhängig bzw. verschwinden, sobald jemand die Variable umbenennt. Jetzt läuft der Abgleich wie bei den anderen zwei unterstützten Wetterstationen über den technischen Ident statt den Anzeigenamen. Bitte über den Module Store aktualisieren und „:magnifying_glass_tilted_right: Wetterstation suchen“ nochmal klicken.

Kachel (kompakt) hängt bei „gerade eben geprüft“: auch ein echter Bug, ebenfalls in 1.0.3 gefixt. Die Kachel zeigt jetzt wie die Übersichts-Kachel die tatsächliche Uhrzeit der letzten Prüfung statt einer nie fortschreitenden Relativangabe.

Telegram „TB_SendMessage ist nicht verfügbar“ trotz gefundener Bots: Die GUID-Zuordnung ist korrekt, das ist das offizielle symcon/TelegramBot-Modul. Bevor ich hier im Code weitersuche: Hast du TelegramBot erst NACH WarnHub installiert? Falls ja, probier bitte mal einen Kern-Neustart (Instanzen → Kern neu starten) und dann den Push-Test erneut — es gibt einen bekannten IP-Symcon-Effekt, bei dem neu installierte Modul-Funktionen bereits laufenden Skript-Prozessen erst danach bekannt werden. Meld dich gerne nochmal, falls das nicht hilft, dann schauen wir genauer hin.

DWD Stufe 1 (gelb) wird nicht gemeldet: kein Bug, sondern Absicht — der Standort-Filter „Ab Schweregrad“ steht standardmäßig auf „Mittel (Moderate)“, um nicht bei jeder gelben Vorabinfo zu pushen. Einfach am jeweiligen Standort auf „Gering (Minor)“ stellen, dann kommt auch Stufe 1 durch.

Danke fürs genaue Testen und Melden — genau dafür ist die Beta-/frühe Stable-Phase da!

Ich habe schon vor langer Zeit die Wetterwarnungen von Gesphere Austria bei mir integriert. Inklusive Karte und Warnungen per Mail. Geosphere hat dafür eine eigene API.

Eventuell kanns du da etwas brauchen (ohne dein Modul jetzt im Detail zu kennen). Ich zeige eine HTML Table an, setze einen Status und versichcke ggf. ein Mail mit der Warnung.

<?php
// Überarbeitete Wetterwarnungen für IP-Symcon
// Basierend auf dem Originalskript des Benutzers.

$location_id=46071;
$html_id=52228;
$warnungvorhanden_id=14981;
$crc_id=15986;
$smtp_id=27953;
$warnunganzeige_id=16978;
$adressen=["mail1@anbieter.at","mail2@anbieter.at"];
$immersenden=false;

$warnTypen=[1=>"Sturm",2=>"Regen",3=>"Schnee",4=>"Glatteis",5=>"Unwetter",6=>"Hitze",7=>"Kälte"];
$warnStufen=[
1=>["Gelb","yellow"],
2=>["Orange","orange"],
3=>["Rot","red"]
];

SetValue($warnungvorhanden_id,false);

$lat=json_decode(json_decode(IPS_GetConfiguration($location_id),true)["Location"],true)["latitude"];
$long=json_decode(json_decode(IPS_GetConfiguration($location_id),true)["Location"],true)["longitude"];

$url="https://warnungen.zamg.at/wsapp/api/getWarningsForCoords?lon=".number_format($long,4,".",".")."&lat=".number_format($lat,4,".",".")."&lang=de";
$json=@file_get_contents($url);
if($json===false){
    SetValue($html_id,"<b>Wetterdienst derzeit nicht erreichbar.</b>");
    return;
}
$data=json_decode($json,true);
if(!isset($data["properties"]["warnings"])){
    SetValue($html_id,"<b>Keine Daten verfügbar.</b>");
    return;
}
$warnings=$data["properties"]["warnings"];

usort($warnings,function($a,$b){
    $ta=strtotime($a["properties"]["begin"]);
    $tb=strtotime($b["properties"]["begin"]);
    if($ta===$tb){
        return $b["properties"]["warnstufeid"]<=>$a["properties"]["warnstufeid"];
    }
    return $ta<=>$tb;
});

$crcParts=[];
$mail="";
$maxLevel=0;

$html=<<<HTML
<meta name="viewport">
<html><head><link rel="stylesheet" href="../skins/WwXSkin/webfront.css"></head>
<table class="wwx" border="1" style="width:100%;border-spacing:0">
HTML;

foreach($warnings as $w){
    $p=$w["properties"];
    $typ=$warnTypen[$p["warntypid"]]??"Unbekannt";
    [$stufe,$farbe]=$warnStufen[$p["warnstufeid"]]??["?","gray"];
    $maxLevel=max($maxLevel,$p["warnstufeid"]);

    $crcParts[]=$p["warnstufeid"].$p["begin"].$p["end"].$p["text"];

    $text=htmlspecialchars($p["text"]);
    $meteo=nl2br(htmlspecialchars($p["meteotext"]));
    $ausw=nl2br(str_replace("*","• ",htmlspecialchars($p["auswirkungen"])));
    $empf=nl2br(str_replace("*","• ",htmlspecialchars($p["empfehlungen"])));

    if(in_array($p["warnstufeid"],[2,3])){
        SetValue($warnungvorhanden_id,true);
        $mail.="<h3>$typ ($stufe)</h3>";
        $mail.="<b>{$p["begin"]}</b> bis <b>{$p["end"]}</b><br>";
        $mail.="$text<br><br><b>Auswirkungen</b><br>$ausw<br><br><b>Empfehlungen</b><br>$empf<hr>";
    }

    $html.=<<<ROW
<tr>
<td style="background:$farbe;width:20px"></td>
<td><center>$typ</center></td>
<td><center>{$p["begin"]}<br>{$p["end"]}</center></td>
<td>$text</td>
<td>$ausw</td>
<td>$empf</td>
<td>$meteo</td>
</tr>
ROW;
}

if(empty($warnings)){
$html.="<tr><td style='background:green'></td><td colspan='6'><center>Keine Warnungen vorhanden!</center></td></tr>";
}
$html.="</table>";
SetValue($html_id,$html);

$crc=crc32(implode("|",$crcParts));
if(($crc!=GetValue($crc_id)||$immersenden) && $mail!=""){
    foreach($adressen as $a){
        SMTP_SendMailEx($smtp_id,$a,"Wetterwarnungen","<html>$mail</html>");
    }
}
SetValue($crc_id,$crc);
SetValue($warnunganzeige_id,$maxLevel);

Es gibt auch eine interaktive Karte

2 „Gefällt mir“

Danke dir für den Anstoß, gleich drei Dinge haben sich daraus ergeben!

Zum einen bestätigt dein Skript schön, dass WarnHubs eigene GeoSphere-Austria-Anbindung bereits dieselbe offizielle API mit denselben Feldern nutzt. Eine echte Ergänzung war aber meteotext (die meteorologische Kurzerklärung, z. B. „Mit einer stürmischen Nordwestströmung erreichen Sturmböen etwa 60 bis 80 km/h“) – das liefert die API immer mit, WarnHub hat es bisher nicht ausgelesen. Steht seit 1.1.0 mit in der Warnungs-Beschreibung.

Zum zweiten hat mich dein Hinweis auf die interaktive ZAMG-Karte dazu gebracht, das Thema Karten anzugehen. Seit 1.1.0 gibt es dafür zwei neue WebFront-Kacheln: eine OpenStreetMap-Kachel, die sich automatisch auf einen frei wählbaren Standort zentriert (auch mobil, folgt der Live-Position), sowie speziell für Österreich eine Kachel, die die offizielle ZAMG-Warnkarte direkt einbettet. DWD und MeteoSchweiz senden übrigens X-Frame-Options: SAMEORIGIN und lassen sich technisch gar nicht einbetten – dafür gibt’s stattdessen kleine Direktlinks zu allen drei amtlichen Karten in den bestehenden Kacheln.

Zum dritten hat mich dein Mail-Ansatz gefragt, ob wir E-Mail nicht generell als Zustellweg anbieten sollten – und ja, sollten wir. Seit 1.2.0 ist E-Mail ein fünfter Push-Kanal, über eine ganz normal eingerichtete SMTP-Instanz (das offizielle Symcon-Kernmodul). Kein eigener HTML-Tabellen-Report wie bei dir – WarnHub schickt einfach dieselbe Warnmeldung, die auch an WebFront/Telegram/Pushover geht, jetzt eben auch als (automatisch als HTML erkannte) Mail.

Nochmal danke – deine Rückmeldung hat WarnHub gleich dreifach weitergebracht.

1 „Gefällt mir“

Update: drei neue Funktionen seit der Ankündigung

WarnHub ist inzwischen bei 1.3.0 angekommen — kurzer Überblick, was seitdem dazugekommen ist:

:world_map: Zwei neue WebFront-Kacheln
Neben „Kachel (kompakt)“ und „Kachel (Übersicht)“ gibt es jetzt:

  • Kachel (Karte): eine OpenStreetMap-Karte, zentriert auf einen frei wählbaren Standort — auch mobile, folgt der Live-Position. Markerfarbe nach höchstem aktivem Schweregrad.
  • Kachel (ZAMG-Warnkarte, Österreich): bettet die offizielle ZAMG-Warnkarte direkt ein — speziell für unsere österreichischen Nutzer.

Außerdem haben „Kachel (kompakt)“ und „Kachel (Übersicht)“ jetzt kleine Direktlinks zu den amtlichen Warnkarten (DWD, ZAMG, MeteoSchweiz). DWD und MeteoSchweiz lassen sich technisch übrigens nicht einbetten (beide senden X-Frame-Options: SAMEORIGIN), deshalb dort nur Links statt Kachel.

:e_mail: E-Mail als fünfter Push-Kanal
Neben WebFront, Kachel-Visualisierung, Telegram und Pushover jetzt auch E-Mail — über eine ganz normal eingerichtete SMTP-Instanz (offizielles Symcon-Modul). Einfach „:magnifying_glass_tilted_right: Push-Ziele suchen“ klicken, Zieladresse eintragen, aktivieren. Für alle, die kein Handy mit Push-fähiger App/Bot einrichten wollen oder schlicht lieber Mails lesen.

:window: Fenster-/Tür-Überwachung
WarnHub kann ein Fenster nicht selbst schließen — anders als Raffstore, Markise oder Garage gibt es dafür keinen generischen Aktor. Ist aber ein Öffnungskontakt vorhanden, erkennt WarnHub jetzt, dass er offen ist, und warnt gezielt bei einer passenden aktiven Warnung. Die Objektbaum-Suche findet Kontakte sowohl über klassische Symcon-Profile (~Window/~Door) als auch über die neue Variablendarstellung (seit Symcon 9.0) — herstellerunabhängig, auch Matter-Kontakte.

Kleinere Verbesserung: GeoSphere Austria zeigt in der Warnungs-Beschreibung jetzt zusätzlich die meteorologische Kurzerklärung der Quelle an (Dank an hfichtinger für den Anstoß).

Wie immer: Rückmeldungen, Fehler, Ideen — immer gerne hier im Thread.

Danke für Dein Modul. Ich teste gerade und bei mir wird die Kartenansicht im Firefox-Browser nicht dargestellt. Es kommt Fehler 403. Firefox ist da wohl etwas zickig, was die Einbindung angeht.

In Chrome und mobil wird die Kartenansicht fehlerfrei geladen.

Es wäre außerdem schön, wenn sich die Größe der Karte vertikal innerhalb der Kachel an die Höhe der Kachel anpassen würde, so wie das in der Breite schon funktioniert.

Danke und Grüße

Andreas

Wie immer: Rückmeldungen, Fehler, Ideen — immer gerne hier im Thread

Hallo.

Erst einmal vielen Dank für das coole Modul. Ich bin zwar noch in der Staun- und Lernphase aber hätte schon einen Wunsch. Ich würde mir wünschen, dass man die Größe der Karte entweder vorgeben kann oder diese automatisch skaliert. Derzeit skaliert die Karte (bei mir) auf die Breite der Kachel aber nicht auf die Höhe.

Grüsse.

Danke fürs Testen und die zwei guten Funde!

Der 403-Fehler in Firefox: OpenStreetMaps eigene Kartenserver verlangen laut ihrer Nutzungsrichtlinie für genau solche eingebetteten Widgets (viele unabhängige Installationen, die dieselben Server anfragen) einen Referer-Header. Firefox hat im WebFront offenbar keinen mitgeschickt, Chrome/Mobile zufällig schon. Ab sofort (Version 1.5.1) kommen die Kartenkacheln stattdessen von Esri, die das nicht verlangen — sollte jetzt in jedem Browser laden.

Die Höhe: du hattest recht, die war fest auf 220px genagelt. Füllt jetzt wie die Breite den verfügbaren Platz in der Kachel.

Bitte über den Module Store aktualisieren und nochmal testen — meld dich gerne, falls es noch klemmt!

Danke für den Hinweis — genau dasselbe Problem wie bei einem anderen Nutzer kurz zuvor. Ab 1.6.0 gibt es dafür ein neues Feld „Höhe ‚Kachel (Karte)‘ in Pixel“ im Panel „Prüfung & Status“: bei 0 (Standard) versucht die Kachel weiterhin automatisch die Höhe der umgebenden WebFront-/Kachel-Visualisierung-Kachel zu übernehmen — funktioniert aber offenbar nicht in jeder Konfiguration zuverlässig. Trägst du dort stattdessen eine feste Pixelzahl ein, wird genau die verwendet.

Bitte über den Module Store aktualisieren und ausprobieren, ob das bei dir die gewünschte Größe bringt!

Übrigens, 16 Jahre Community-Moderator und -Anführer und trotzdem noch in der „Staun- und Lernphase“ :wink: — wenn das keine gute Einstellung fürs Software-Hobby ist, weiß ich auch nicht.

Update: was seit 1.3.0 alles dazugekommen ist (jetzt 1.6.0)

:switzerland: Schweizer Erdbeben (1.4.0)
Amtliche seismologische Überwachung durch den Schweizerischen Erdbebendienst (SED, ETH Zürich), ab Magnitude 2.5. Anders als bei den Wetterquellen liefert der SED keine Warnfläche und kein „Gültig bis“ — ein Erdbeben ist ein Momentereignis. WarnHub bildet deshalb selbst einen Kreis um das Epizentrum (Radius je nach Magnitude) und ein 2-Stunden-Zeitfenster.

:fire: Deutscher Waldbrandgefahrenindex (1.5.0)
Amtliche 5-stufige DWD-Skala. WarnHub ermittelt automatisch die nächstgelegene der 484 DWD-Messstationen zu jedem Standort.

:sun: Deutsche Ozonbelastung (1.6.0)
Amtlicher Luftqualitätsindex des Umweltbundesamts — bewusst nur Ozon/Sommersmog, kein allgemeines Luftgüte-Monitoring.

:world_map: Zwei Fixes für „Kachel (Karte)“ (1.5.1/1.6.0)
Kartenkacheln kommen jetzt von Esri statt von OpenStreetMaps eigenen Servern (die für eingebettete Widgets wie diese Kachel einen Referer verlangen, was je nach Browser zu einer leeren Karte führen konnte). Außerdem gibt es jetzt ein Feld für eine feste Kachel-Höhe, falls sich die Karte bei dir nicht automatisch an die Kachel-Höhe anpasst.

Danke an ruan/Andreas und kronos/Bricoleur für die genauen Fehlerberichte zur Karten-Kachel — genau dafür ist die Beta-/frühe Stable-Phase da.

Wie immer: Rückmeldungen, Fehler, Ideen — immer gerne hier im Thread.

Ideen und Anregungen die auch noch in diesem Modul eine Heimat finden sollten?

Man lernt nie aus…schon gar nicht in diesem Forum.