Unwetterwarnungen

Advertisements

Extreme Wettersituationen kommen meist unerwartet und die Unwetterwarnungen im Radio verfolgt man naturgemäß auch nicht 24 Stunden am Tag. Überrascht von starkem Wind oder sinnflutartigen Regenfällen gilt es das Eigentum zu schützen, Rolladen zu schließen und Markisen einzufahren. Derartige Aufgaben sind kein Problem, wenn die Einrichtungen in das Smart Home integriert sind. Man muss es nur wissen. Die nachfolgende Szene sucht die aktuellen Unwetterwarnungen für Deinen Landkreis heraus und benachrichtigt Dich – auch mobil – auf der Fibaro App.

Unwetterwarnungen des DWD

Der Deutsche Wetterdienst stellt auf seiner Homepage die aktuellen Unwetterwarnungen zur Verfügung. Die Szene greit diese ab und wertet sie aus. Ist für Deinen Landkreis etwas gemeldet, erfolgt eine Benachrichtigung.

Benachrichtigung in der App

Die Benachrichtigung über neue Warnungen erfolgt (wenn gewünscht) über Push-Meldungen. Weiterhin wird für jede Warnung eine PopUp an alle verbundenen Geräte gesendet. Innerhalb der Szene kann zwischen einfachen Warnungen wie Bodenfrost und leichter Schneefall sowie „richtigen“ Unwetterwarnungen unterschieden werden.

(Un- )Wetterwarnung in der Fibaro App

(Un- )Wetterwarnung in der Fibaro App

Die WarnCellID

Die Meldungen des DWD sind nach Landkreisen/Städten aufgebaut, wobei jede Region eine eigene ID – die sogenannte WarnCellId – hat. Um die für Deinen Wohnort gültige ID zu finden gibt es zwei Möglichkeiten: Eine Excelliste und diese Website. Um die benötigte ID in der Karte auf der Website herauszufinden öffne die Adresse mit dem Firefox Browser und klicke auf Deine Region. Klicke nun mit der rechten Maustaste (Kontextmenü) auf die Region und wähle den Punkt „Element untersuchen (Q)“.

WarnCellID für Unwetterwarnungen herausfinden

WarnCellID für Unwetterwarnungen herausfinden

Im unteren Drittel Deines Browserfensters öffnet sich der Quellcode der Website und der ausgewählte Bereich in der Karte wird markiert. Deine WarnCellId findest Du im HTML-Tag <path id>. Im Screenshot durch den roten Kasten markiert. In diesem Fall lautet die WarnCellId für den Heidekreis in Niedersachen 103358000. Diese ID muss in die Variable regionID in der Szene eingetragen werden.

WarnCellId des Heidekreis

WarnCellId des Heidekreis

Weitere Konfigurationen

WarnLevel

In der Szene kann weiterhin die Warnschwelle definiert werden. Der Deutsche Wetterdienst klassifiziert seine Meldungen in den Stufen 1 bis 4:

  • Stufe 1 : Vorabinformationen zur Wetterlage
  • Stufe 2 : Allgemeine Wetterwarnungen (beispielsweise Frost, Nebel)
  • Stufe 2 : Markante Wetterwarnungen (Glatteis)
  • Stufe 3: Unwetterwarnungen (Sturm, Hagen)
  • Stufe 4: Extreme Wetterlagen (alles übrige)

Wenn Du nicht bei jeder Bodenfrost-Warnung eine Meldung erhalten möchtest, kannst Du in der Szene den Parameter warnLevel entsprechend Deiner Wünsche definieren.

Push-Messages

Da bei der Zustellung von PopUps keine Benachrichtigung erfolgt, gibt es die Möglichkeit sich zusätzlich eine Push-Message senden zu lassen. Dafür sind die Parameter pushMessages (true/false) sowie pushMessageIds (ID des/der Empfangsgeräte) zuständig.

Icons in PopUps

Damit innerhalb der PopUps Icons angezeigt werden können, ist die IP Adresse des HC2 in den Parameter hc2IP einzutragen.

regionID 			= "103359000" -- Siehe http://www.dwd.de/DE/wetter/warnungen_aktuell/warnanwendung_node.html
warnLevel 			= 1 -- Ab welcher Stufe soll benachrichtigt werden? 1 = Vorabinformationen Unwetter, 2 = Wetterwarnungen, 3 = Warnung vor markantem Wetter, 4 = Unwetterwarnung, 5 = Extremes Unwetter
pushMessage			= true
pushMessageIds		= {8}
url 				= 'https://www.mkshb.de/json/DWDwarnings.json'
hc2IP				= '10.10.10.14'
advDebug			= true
version 			= 'v0.2'

Der Trigger

Eine Herausforderung ist die Wahl des richtigen Triggers. Hier fehlt mir noch die „perfekte“ Idee, denn sich zyklisch – also beispielsweise einmal stündlich – über immer dieselben Meldungen informieren zu lassen ist sicher nicht zielführend. Daher habe ich mich für die globale Variable TimeOfDay entschieden. Bei vorhandenen Meldungen für die eingestellte Region erfolgt eine Benachrichtigung also bei jedem Wechsel der Tageszeit in der Variable.

Ideen für die nächsten Versionen

(Halb-) Automatische Aktionen

Aus den PopUps der Fibaro App heraus lassen sich Szenen starten. Hier ließen sich unzählige Aktionen steuern um auf die Unwetterwarnungen zu reagieren. Beispielsweise einen Button im PopUp der bei Auswahl alle Rolladen runter oder hoch fährt. Alles was es dazu braucht ist eine weitere Szene.

Benachrichtigungen für heute deaktivieren

Mit einem anderen Button könnte man die Benachrichtigungen für den aktuellen Tag deaktivieren um nicht laufend erneut über dieselbe Sachlage benachrichtigt zu werden.

Brainstorming

Dir kommen beim Lesen dieser Zeilen etliche Ideen? Dann nutze die Kommentarfunktion und lass es mich wissen. Ebenso freue ich mich über jede Art von Feedback, Kritik und Anregung.

Changelog

version 0.2

  • Icons in PopUps integriert (Konfigurationsanpassung siehe oben)
  • Code optimiert

Version 0.3

  • Anzahl Benachrichtigungen der warnLevel Einstellung angepasst

Version 0.3.1

  • Bugfix
  • Code Optimierung

Version 0.3.2

  • Anpassungen der JSON URL

Download

 

Posted in Sonstiges and tagged , .

31 Comments

  1. Hallo. Gerade installiert. Sehr coole Idee. Warte dann mal gespannt auf die erste Wetter Warnung. Aktualisiert sich die Scene selbst oder muss ich das per neuer Scene selber machen ? Gruß

    • Moin Campos,
      freut mich, dass die Idee ankommt.
      Die Szene wird durch die Veränderung der globalen Variabe TimeOfDay getriggert. Steht aber auch im Artikel 😉
      Gruß
      Bastian

  2. Ja, auch gerade gesehen.. Sorry. Ein Trigger- der je nach Warnung zeitnah aktualisiert – wäre gut. Wüsste aber auch keinen. Könnte man es nicht irgendwie mit dem Wetter vom HC abgleichen – wenn da aktualisiert wird – das dann deine Scene gestartet wird und beim DWD abfragt ? Passende Icons in den POP’s fände ich noch cool- Schneewarnung – links oben statt des Warnschildes Schneeicon oder so..

    • Hi Campos,

      das Wetter im HC wird zyklisch abgefragt. Alle 5 oder 10 Minuten, aber das hilft bei Unwetterwarnungen nicht wirklich, oder möchtest Du alle 30 Minuten dieselben Meldungen auf dem Smartphone haben?
      Neue Icons sind eine gute Idee, werde ich in die nächste Version mit aufnehmen. Danke.

      Gruß
      Bastian

  3. Das Script läuft soweit gut. Hat bisher Frost und Nebel angezeigt. Allerdings fände ichs glaub ich nicht schlecht wenn man zb. Zusätzlich oder anstelle von TimeOfDay eine oder mehrere Zeiten zum abfragen eingeben könnte. Mich interessieren zb. die Warnungen wenn ich aufstehe und losfahren muss. Das liegt natürlich vor dem Wechsel der Tageszeit.. Aber es ist echt ein cooles Script.

    • Hi Campos,

      beides, also einen Trigger mit globaler Variable und einen nach Zeit, halte ich für eher suboptimal. Entweder oder.
      Du hast jedoch jederzeit die Möglichkeit die Szene manuell zu starten. Dies hat denselben Effekt wie das Triggern durch TimeOfDay.

      Gruß
      Bastian

  4. Hi Bastian,

    zu den Triggern:
    Wird die Message vom DWD nicht mit einem Time-Code oder etwas ähnlichem Versehen (Datum und Uhrzeit der Veröffentlichung)?
    Könnte man die Uhrzeit der Veröffentlichung nicht als Trigger nehmen?

    • Hallo Christopher,

      externe Trigger gibt es leider nicht ohne Weiteres bei Fibaro, oder meinst Du die Daten zyklisch auslesen und bei Veröffentlichungen zwischen den letzten beiden Abfragen direkt benachrichtigen? Muss ich mir mal ansehen in welchem Format diese Daten vom DWD kommen.

      Gruß
      Bastian

  5. Ja, genau, nicht als externen Trigger, aber das Datum im HC „auswerten“ (Vergleich als letzter Lauf der Szene und Datum der Meldung (oder so ähnlich).

  6. Hi Bastian,

    ich habe mich soeben frisch auf Deiner Seite registriert und muss Dir erst einmal Respekt und vielen Dank aussprechen!
    Tolle Inhalte und super programmiert.

    In der V02 zur Unwetterwarnung habe ich aber noch einen kleinen Bug gefunden:
    Liegt z.B. eine Warnung auf Level 1 vor und mein Filter für PopUps ist auf Level 3 gestellt, bekomme ich trotzdem eine PushNachricht, dass es eine Unwetterwarnung gibt. Das PopUp gibt es (richtiger Weise) nicht.

    Auch ist mir aufgefallen, dass wenn 1 PopUp aufgrund meiner Einstellungen zugestellt wird, die PushNachricht aber auch die für mich irrelevanten Level mitzählt und z.B. auf 3 Warnung hinweist.

    Ich habe eben schon ein wenig rumprobiert, bin aber nicht fit genug in Lua, um den Fehler zu beheben.

    Ich danke Dir.

    VG
    Mr.Coffee

  7. HI Bastian,

    vielen Dank für die schnelle Überarbeitung.
    Eine Sache funktioniert aber noch nicht:
    Derzeit gibt es in meiner Region eine Warnung auf Level 2 und eine auf Level 3. Wenn ich Warnlevel 4 oder 5 als Grenze einstelle, bekomme ich aber dennoch eine Pushnachricht, dass eine Warnung vorliegt. Eine Popup gibt es (richtiger Weise)nicht. Nur die Push. Interessanter Weise spricht die Pushnachricht von genau einer Warnung, obwohl es eigentlich 2 wären, wenn er sie alle zählt. Das funktioniert also soweit.
    Schickt er evtl. immer eine Pushnachricht, auch wenn keine Warnung vorliegt, da der Counter irgendwo auf 1 steht?

    Ich finde den Fehler leider nicht im Code.

    Grüße
    Mr.Coffee

  8. Super Klasse! Vielen Dank! Funktioniert einwandfrei hast es auch klasse beschrieben, gerne weiter so 😉
    Hatte nur Probleme path id zu finden, hat aber dann schnell in der Excel Tabelle geklappt!

  9. hallo Bastian

    Leider klappt der http request nicht mehr, da sie auf https umgestellt haben 🙁 Ich abe Diverses probiert aber leider nicht weiter gekommen.

    –> [DEBUG] 15:30:55: error wrong version number

    Ich glaube, die Fehlermeldung bezieht sich auf die openssl Version.

    Hast du eine Idee wie wir das Problem beheben können?

    Merci und Grüsse Rubén

      • Ja, über den Browser funktionierts… bei mit auch. Aber die Scene im HC2 bringt den oben genannten Fehler:
        [DEBUG] 15:30:55: error wrong version number

        Bei dir etwa nicht? Dann ist meiner Verwirrung nämlich komplett…. 🙂

        • Du hast recht, es wird mittels Redirect auf https umgeleitet und das Lua Script wirft den von Dir geschilderten Fehler.
          Das muss ich mir im Detail angucken und dann ggf. eine neue Version veröffentlichen. Wird aber ein bisschen dauern, bis ich dazu komme.

          • Ok. Ich habe diverses probiert, aber leider nicht weitergekommen? Hast du eine Idee? Dann würde ich es für dich testen,auspogrammieren und zukommen lassen damit du es posten kannst.

            Gruess Rubén

          • Es scheint am SSL zu liegen, muss erstmal gucken welche Protokollversionen das HC2 unterstützt. Da wird es dann eng.
            Evtl. lade ich die Datei alle paar Minuten auf meinen Webserver und stelle sie selbst zur Verfügung. Muss aber erstmal die rechtliche Seite klären.

    • Hi,

      ich habe mal einen kleinen Workaround eingerichtet. Bitte folgende Zeilen anpassen, dann sollte es wieder laufen:
      –url = ‚https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json‘
      url = ‚https://www.mkshb.de/json/DWDwarnings.json‘

      Gruß
      Bastian

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere