Wetterdienste in FHEM einbinden

Temperatur- und Luftfeuchtigkeitssensoren spielen in einem smarten Zuhause eine große und wichtige Rolle. Sei es zum Beispiel die MySensor-Sensoren oder die kleinen WeMos-Boards mit ESPEasy. Es gibt viele Möglichkeiten Umwelt-Sensoren in FHEM zu integrieren. Nicht immer liefern diese Selbstbausensoren jedoch korrekte Werte. Gründe dafür gibt es viele. Sei es, dass der Sensor von Schnee bedeckt ist oder in der prallen Sonne liegt. Im Sommer misst so der Sensor auf dem Balkon schnell mal 60 Grad. Für einen aussagekräftigen Temperaturverlauf eher unvorteilhaft. Aus diesem Grund kann es sinnvoll sein, sich neben den selbst gemessenen Werten auch offizielle Wetterdaten zu holen. FHEM stellt dafür eine Vielzahl an Modulen parat. In diesem Beitrag möchte ich euch folgende Module vorstellen und euch die Entscheidung somit etwas erleichtern.

Der erfahrende FHEM-Nutzer wird sich direkt fragen, warum ich zum Beispiel nicht auf das Modul WUNDERGROUND oder WWO eingehe. Der Grund ist, dass diese Module nicht ohne eine Anmeldung auf der entsprechenden Homepage funktionieren. Ich habe mich deswegen für diesen Beitrag auf Anmeldefreie-Module konzentriert. Dies sichert ein schnelles und unkomplizertes Einbinden in FHEM.

  • Weather
  • UWZ
  • PROPLANTA
  • YR

Neben der Web-Suche stellt Yahoo noch weitere Dienste zur Verfügung. Ein Wetterdienst ist eins davon. Mit dem Modul „Weather“ lassen sich diese Daten auch in FHEM einbinden. Das Weather-Modul stellt neben den aktuellen Wetterdaten auch eine Vorhersage für die nächsten zehn Tage zur Verfügung.

Definition

define <name> Weather <location> [<interval> [<language>]]

Für die Definition wird die WOEID (Where on Earth ID) benötigt. Jeder Ort hat eine eindeutige ID, was die Abfrage der korrekten Wetter-Daten sicher stellt. Die passende ID erhält man über die Wetter-Homepage von Yahoo. Im Normalfall erkennt Yahoo direkt euren Aufenhaltsort und zeigt entsprechend die passenden Wetterdaten an.

Leider lässt sich nun noch nicht die ID auslesen. Über „Change location“ muss deswegen der gewünschte Ort manuell eingegeben werden. Anschließend lässt sich die ID in Adresszeile auslesen:

In diesem Fall lautet die ID für Karlsruhe 664942. Mit dieser ID lässt sich nun das Weather-Modul definieren.

define YahooWetter Weather 664942 3600 de

Als <location> wurde die oben ausgelesene ID eingesetzt. Als Intervall wurde 3600 Sekunden (1 Stdt.) ausgewählt. Das entspricht eine Aktualisierung zu jeder Stunde. Dieser Wert entspricht dem Standartwert und wird bei Weglassen automatisch auf 3600 gesetzt. Ebenfalls optional ist das Setzen der Sprachen. Mit „de“ wird diese auf Deutsch gesetzt. Der Standartwert ist Englisch („en“). Ebenfalls möglich sind pl, fr oder nl. Wird <language> jedoch gesetzt, so muss ebenfalls der Intervall gesetzt werden.

Nach ein paar Sekunden werden dann die Readings geladen. Weather stellt dabei die Wetterdaten für die nächsten 10 Tage bereit und bietet neben den einfachen Temperaturwerten auch eine Vielzahl an weiteren Wetterdaten zur Verfügung. Wie zum Beispiel die Luftfeuchtigkeit, Tiefs- und Höchsttemperatur oder die Windgeschwindkeit. Wer ein Übersicht aller Readings haben möchte, kann sich gerne ?meinen Screenshot dazu ansehen?.

Ein Vorteil vom Weather-Modul ist, dass man durch ein get-Befehl sich die Readings ausgeben lassen kann. Dies erleichtert die Verarbeitung der Readings in selbst geschriebenen Skripten sehr.

get YahooWetter temperature

WebLinks

Ein Vorteil des Weather-Moduls ist, dass zusätzlich zu den einfachen Text-Readings auch Symbole definiert werden. Die Wetterdaten lassen sich somit visuell darstellen. Mit der 7 wird die Anzahl angegeben, wie viele Tage die Vorschau beinhalten soll. In diesem Fall also 7 Tage.

Horizontale Ausrichtung

define symbolYahooWetter weblink htmlCode {„Karlsruhe:<br>“.WeatherAsHtmlH(„YahooWetter“,7)}

Vertikale Ausrichtung

define symbolYahooWetter weblink htmlCode {„Karlsruhe:<br>“.WeatherAsHtml(„YahooWetter“,7)}

Der Eintrag „Karlsruhe:.“ bewirkt, dass über den Symbolen der Name der Stadt steht. Auf Wunsch kann dieser Eintrag weggelassen werden.

Damit die Symbole und das Weather-Modul auch im richtigen Raum angezeigt werden, empfehle ich euch, dies direkt über das room-Attribut festzulegen.

room YahooWetter Wetterroom iconsYahooWetter Wetter

Mit Hilfe des Moduls UWZ lassen sich Unwetterwarnungen der Website „http://unwetterzentrale.de“ in FHEM einbinden. Im Gegensatz zum „Weather-Modul“ ist die Definition des Moduls „UWZ“ etwas einfacher und komfotabler. Ansteller über eine Orts-ID wird für die Definition deutscher Städte nur die Postleitzahl benötigt.

Vorbereitung

Bevor ihr die Unwetterzentrale definieren könnt, muss auf eurem Raspberry noch das Perl-Packet installiert werden.

sudo apt-get install libxml-simple-perl

Definition

define UWZ [Ländercode] [Postleitzahl] [INTERVAL]

Städte innerhalb Deutschland

Wie oben schon erwähnt, erfolgt die Definition über die Postleitzahl. Um zum Beispiel die Unwetterwarnungen für Karlsruhe zu erhalten, definiert sich man sich das Modul wie folgt:

define Unwetterwarnungen UWZ DE 76135 3600

Städte außerhalb Deutschlands

Das Modul lässt sich auch für andere europäische Städte definieren. Jedoch wird für Stadte ausßerhalb Deutschland eine sogenannte AreaID ansteller der Postleitzahl benötigt. Um die passende AreaID zubekommen, wird das UWZ-Module zunächst wie folgt definiert:

define Unwetterwarnungen UWZ SEARCH

Über ein GET-Befehl lässt sich nun nach der AreaID eines Ortes suchen.

Man erhält eine Auflistung der Suchergebnissen.

Im Normalfall erhält man nun über den Button „Get AreaID“ die gewünschte AreID. Habt ihr jedoch eure FHEM-Installation durch eine SSL-Verbindung abgesichert, dann führt der Button leider auf eine Fehlerseite, da dieser über eine ungesicherte Verbindung versucht einen FHEM-Befehl abzusenden.

Aber keine Panik, der Befehl, der durch den Button abgesendet werden soll, kann natürlich auch manuell ausgeführt werden. Dazu einfach die Breiten- und Längengrade (latitude, longitude) des gewünschten Ortes notieren. In Falle vom Ort „Bern“ in der Schweiz wären es 46.9482 und 7.435. Mit diesen Werten lässt sich nun die AreaID abfragen:

get Unwetterwarnungen AreaID 46.9482,7.435

Es öffnet sich ein Fenster mit der benötigten Definition.

In diesem Fall lautet die AreaID 0869. Mit dieser ID lässt sich nun die Definition des Device über den DEF-Editor anpassen.

Hat man nun das Device definiert, entweder über die Postleitzahl oder über eine AreaID, erscheinen nach kurzer Zeit die Warnungen als Reading. Alernativ kann das Laden der Warnungen auch manuell über folgenden Befehl gestartet werden.

set Unwetterwarnungen update

In den Readings werden bis zu zehn Warnungen angezeigt. Gekennzeichnet mit einer Zahl im Readingnamen: Warn_0_LongText, Warn_1_LongText, Warn_2_LongText usw..

WebLinks

Genau wie das Weather-Modul stellt auch das UWZ-Modul diverse Weblinks zur Verfügung. Folgende Funktionen stehen dabei zur Verfügung:

WebLink

Beschreibung

UWZAsHtml

Warnsymbole mit zusätzlichem Info-Text und Beschreibung der Wetterwarnung

define UWZweblink weblink htmlCode {UWZAsHtml(„Unwetterwarnungen“)}

UWZAsHtmlLite

Warnsymbol mit abgespecktem Info-Text

define UWZweblink weblink htmlCode {UWZAsHtmlLite(„Unwetterwarnungen“)}

UWZAsHtmlFP

Warnsymbol ohne Text, gut geeignet für den Floorplan

define UWZweblink weblink htmlCode {UWZAsHtmlFP(„Unwetterwarnungen“)}

UWZAsHtmlKarteLand

Unwetterkarte für ein bestimmtes Gebiet

define UWZweblink weblink htmlCode {UWZAsHtmlKarteLand(„Unwetterwarnungen“,“baden-wuerttemberg“)}

kleine Auswahl möglicher Karten, komplette Auflistung im FHEM-Wik??i:

  • deutschland
  • bayern
  • baden-wuerttemberg
  • hessen
  • oesterreich
  • schweiz

UWZAsHtmlMovie

Videoclip bestimmter Wettermeldungen

define UWZweblink weblink htmlCode {UWZAsHtmlMovie(„Unwetterwarnungen“,“niederschlag-wolken-de“)}

kleine Auswahl möglicher Clips, komplette Auflistung im FHEM-Wik??i:

  • stroemung
  • temperatur
  • niederschlag-wolken-de
  • stroemung-de
  • niederschlag-wolken-ch

Attribute

Um unteranderem diese WebLinks etwas anzupassen, gibt es diverse Attribute.

Attribut

möglicher Wert

Beschreibung

download

0, 1

Ermöglicht das Downloaden der Wetterkarten bei einem Update der Wetterwarnungen

savepath

Gibt den Ordner an, in dem die Wetterkarten abgespeichert werden sollen. Standardmäßig ist dies /temp/

maps

Gibt an, welche Wetterkarten abgespeichert werden sollen. Mehrere lassen sich durch ein Leerzeichen trennen

humanreadable

0, 1

Aktiviert zusätzliche Readings: Warn_?_Start_Date, Warn_?_Start_Time, Warn_?_End_Date, Warn_?_End_Time.

Zusätzlich werden Readings erzeugt, welche den Typ und den Unwetter-Warn-Level beinhaltet: Warn_?_Type_Str und Warn_?_uwzLevel_Str

lang

de, en, it, fr, es, …

Ändert die Sprache der Warnmeldungen

sort_readings_by

start, severity

Ändert die Reihenfolge in der die Wanrmeldungen angezeigt werden. Entweder sortiert nach den Nummern (start) oder nach deren Schwere (severity).

htmlsequence

ascending, descending

Sortierfolge der HTML-Warnungen. Entweder Aufsteigend (ascending) oder Absteigend (descending).

htmltitle

Ermöglicht das Zufügen einer Überschrift zu den WebLinks

htmltitleclass

Ermöglicht das Anpassen der Überschrift über eine css-Class

localiconbase

Durch dieses Attribut lassen sich eigene Warn-Icons einsetzen. Die Basis-URL zu diesen wird über dieses Attribut angegeben. Der Dateityp ist png.

Mit Hilfe des Moduls PROPLANTA lassen sich die Wetterdaten der Homepage www.proplanta.de abrufen. Dabei wird eine Vorhersage der nächsten 12 Tage bereit gestellt. Die ersten sieben Tage besitzen dabei einen 3-Stunden-Intervall.

Definition

define <Name> PROPLANTA [Stadt] [Ländercode]

Im Gegensatz zum Modul „Weather“ oder „UWZ“ werden hier weder eine Postleitzahl oder eine ID benötigt. Für die Definition reicht der Name des Ortes aus – [Sadt]. Er muss jedoch auf der Wetter-Seite von Proplanta zu finden sein. Der Ländercode kann folgende Werte annehmen: de, at, ch, fr oder it. Wird dieser Parameter weggelassen, dann wird „de“ automatisch gesetzt.

Für Karlsruhe lautet die Definition wie folgt:

define WetterProplanta PROPLANTA Karlsruhe de

Auf Groß- und Kleinschreibung beim Ortsnamen muss geachtet werden. Gibt es jedoch mehrer Orte mit dem Namen, ist die Definition etwas komplexer. Zusätzlich zum Orts-Namen muss noch die Region angegeben werden. Den genauen Namen am besten auf der Proplanta-Hompage ermitteln.

Die Definition für den Ort „Weingarten“ in „Baden“ wird nun wie folgt definiert:

define WetterProplanta Weingarten+(Baden) de

Leerzeichen werden dabei durch ein + ersetzt.

Nach einer kurzen Zeit erscheinen die Wettermeldungen als Reading. Alternativ kann auch hier der Update-Vorgang manuell gestartet werden.

set WetterProplanta update

Genau wie beim Modul „Weather“ und „UWZ“, werden die Wettermeldungen der unterschiedlichen Tage durch Zahlen in den Readings unterschieden. Eine Auflistung aller Readings findet ihr im verlinkten Screenshot.

WebLinks

Wie auch die Module „Weather“ und „UWZ“ stellt auch das Modul „PROPLANTA“ WebLinks zur Verfügung. Im Gegensatz zu den anderen Moodulen jedoch leider nur eins.

define HTMLForecast weblink htmlCode {PROPLANTA_Html(„WetterProplanta“),3}

Die oben genannte Definition erstellt eine 3-Tages-Vorschau.

Aktuell gibt es zwar noch kein Modul, um die Wetterdaten vom norwegischen Wetterdienst YR in FHEM einzubinden, aber für Wetterdaten gibt es ja bereits eine Menge an Alternativen. Also warum hat es dieser Wetterdienst in diese Auflistung geschafft? Der Grund ist deren ansprechendes Wetterdiagram.

Ein weiterer Vorteil von YR ist, dass es Wetterdaten für sehr viele Ortschaften gibt. Auch innerhalb Deutschlands. Über die Startseite von YR lässt sich über ein Suchfeld der gewünschte Ort suchen. Die Sprache lässt sich oben rechts auf Englisch stellen.

Aufgrund der großen Anzahl an Ortschaften, kann sich die Suche etwas schwierig erweisen. Also genau schauen, dass ihr den richtigen Ort auswählt.

Habt ihr den passenden Ort gefunden, gelangt man auf die Übersichtsseite des gewünschten Ortes. In der linken Menüleiste gelangt man nun über „Hour by hour“ zum Wetterdiagram.

Für Einbindung als WebLink speichert man sich nun die URL des Diagramms ab. Für Karlsruhe zum Beispiel lautet die URL wie folgt:

http://www.yr.no/place/Germany/Baden-W%c3%bcrttemberg/Karlsruhe/meteogram.png?

Der WebLink lässt sich dann wie folgt definieren:

define WetterYR weblink image http://www.yr.no/place/Germany/Baden-W%c3%bcrttemberg/Karlsruhe/meteogram.png

Möchtet ihr eine etwas detailliertere Grafik haben, könnt ihr die Endung „…/meteogram.png“ zu „/avansert_meteogram.png“ ändern. Somit erhaltet ihr zusätzlich eine Anzeige für die Bewölkung und eine Linie für den Luftdruck.

Über ein Attribut lässt sich das Diagram noch ein bisschen anpassen:

attr WetterYR htmlattr width=“100%“ height=“300″ frameborder=“0″ marginheight=“0″ marginwidth=“0″

INFO: So wie es aussieht, stellt YR die Grafiken aktuell etwas um. Solltet ihr also für euer Wunschort keine Grafik geliefert bekommen, kann das Abändern der URL Abhilfe schaffen. Dazu einfach aus dem „…./meteogram.png“ ein „…./meteogram.svg“ machen.

Wie ihr seht, gibt es auch genug Möglichkeiten Wetterdaten einzubinden, ohne sich auf Websiten anmelden zu müssen. Sie bieten eine Vielzahl von Wetter-Daten und lassen im Grunde keine Wünsche übrig. Das Modul WEATHER oder PROPLANTA im Zusammenhang mit ein paar Wetterkarten von UWZ runden das „Wetter-Paket“ ab.

Ich persönlich habe mir ein SVG-Plot erstellt, in dem ich die Temperatur meines 1-Wire-Sensors und die Temperatur vom Proplanta-Modul anzeigen lasse. Zusätzlich lasse ich die Luftfeuchtigkeit von Proplante anzeigen. Ich kann somit sehr gut den selbstgemessenen und den offiziellen Wert miteinander vergleichen. Im Sommer lassen sich somit auch sehr gut Temperaturspitzen aufgrund direkter Sonneneinstrahlung rausfiltern.

Wetterdienste in meiner FHEM Live-Demo

Wer die hier definierten Devices in einer FHEM-Umgebung begutachten will, dem empfehle ich einen Besuch auf meiner FHEM Live-Demo. Dort findet ihr im Raum „Wetter“ diverse Wetter-Devices.

0 0 vote
Article Rating
Subscribe
Benachrichtige mich zu:
guest
28 Comments
älteste
neuste beste Bewertung
Inline Feedbacks
View all comments
Malte
3 Jahre her

Herzlichen Dank für die Anleitung!

Die Einbindung der Unwetterzentrale hat bei mir anfangs nicht geklappt. Nach der Installation von libxml-simple-perl funktionierte es dann (im Terminal, nicht in FHEM: sudo apt-get install libxml-simple-perl).

 

Thomas
Thomas
3 Jahre her

Hallo Daniel,

Herzlichen Dank für die Anleitung!

wie müsste den eine Definition für eine 7 Tages Vorschau aussehen

Gruß

Thomas

Thomas
Thomas
3 Jahre her

Hallo Daniel,

Super  Anleitung, funktionier sehr gut  Danke dir

Gruß Thomas

Martin
Martin
3 Jahre her

Die Grafik von YR ist wirklich gut, aber YR hat wohl umgestellt: statt .png muss es nun .svg heißen und es ist nicht mehr so einfach die URL zu bekommen. Aber einfach „/meteogram.svg“ and die Stadt-URL anhängen müßte funktionieren.
Das detailierte Meteogram sollte auf „/avansert_meteogram.png“ enden.

Hat es jemand geschafft den Graphen der „mobile version“ in FHEM einzubinden? Hier kann man Tage öffnen. Das wäre cool!

Peer
Peer
3 Jahre her
Reply to  Martin

bestätige. vieln dank!!
, kannst du das oben aktualisieren und vor den vier tabs nochmal drauf hinweisen, dass nachfolgend 4 tabs sind. Ich hatte es beim ersten mal echt übersehen 😉

Matthias Zwerschke
Matthias Zwerschke
2 Jahre her

Hi, mal ne Frage zu Proplantareadings. Ich habe da zig Readings mit Zahlen vor dem Namen. Zum Beispiel fc0_temp00. Die wiederholen sich dann mit fc1 und so weiter. Welcher Wert ist dann sinnvoll? temperature ohne Zahl hat sich seit 2 Tagen nicht verändert kann man also vergessen?
LG Matthias

Matthias Zwerschke
Matthias Zwerschke
2 Jahre her

Hi mein aktuelles Reading von temperature in Proplanta sieht so aus:

`temperature 2.2 2018-02-22 14:53:54

wenn ich das logge kommen keine Daten. Die anderen Werte mit fc_0 bis 10 scheinen Vorhersagen zu sein.Zum Beispiel fc0_temp12 der Vorhersagewert für heute um 12 Uhr. Insgesamt gibt es 10 Daten fc0 -9 und dann noch unterteilt in Stunden.

Readings ohne Zeitangaben sind am Ende der Tabelle. Die stehen alle bei 2018-02-22 14:53:54, warum ?
Eigentlich werden die Werte von Proplanta alle 5 Minuten geholt?

Freundliche Grüße Matthias

Matthias Zwerschke
Matthias Zwerschke
2 Jahre her

ich seh grade folgende Fehlermeldung:Error: Could not capture all data. Please check URL or city name..
Das gibts immer mal wieder eventuell wars das letzt Update von FHEM. Ich schau mal in die Commandref ob was verändert wurde?

Matthias Zwerschke
Matthias Zwerschke
2 Jahre her
Reply to  Daniel

manchmal reicht es auf die Proplanta Seite zu schauen. Da steht „Sehr geehrte Damen und Herren,
leider sind zurzeit keine aktuellen Messwerte von der zuständigen Wetterstation verfügbar……“
Jetzt ist Wochenende mal sehen ob ich Montag die Station wieder arbeitet…Schönen Sonntag. Morgen stehen die Gärten der Welt auf dem Plan….?

Matthias Zwerschke
Matthias Zwerschke
2 Jahre her

hat mir keine Ruhe gelassen und siehe da Frankfurt(Oder) 15234 geht ? …..Wie sagte mein alter Mathelehrer qed!

Pagemaster
Pagemaster
1 Jahr her

Hallo,
gute Anleitung. Leider hat Yahoo den Dienst zum 03.01.2019 eingestellt.
Da muss man wohl auf Proplanta umstellen.
Bis die Tage.

Meanwhile
Meanwhile
1 Jahr her
Reply to  Pagemaster

Habe gerade von Yahoo auf ProPlanta umgestellt, optisch nicht wirklich schön, auch Twilight ist leider auch betroffen da es sich auch die Wetterdaten von Yahoo geholt hat. 🙁

Gunnar
Gunnar
1 Jahr her

Die Yahoo API ist seit dem 3.1.2019 eingestellt. Wie richte ich z.B. Proplanta ein ? Danke

Micha360
Micha360
1 Jahr her
Reply to  Gunnar

Grüß Dich Gunnar, hier der Baukasten: define Wetterdaten PROPLANTA Wohnortname de
Eventuell attr alias Wettervorhersage zusätzlich vergeben.

Der Begriff Wetterdaten kannst Du auch nach Deinem Gusto anders benennen. Wohnortname ist wohl selbstsprechend… gell. Oder beispielhaft die Einrichtung bei einer Samtgemeinde, in welcher mehrere Ortschaften unter einer Postleitzahl zusammengefasst sind:
define Wetterdaten PROPLANTA + de

Mit Grafikeinbindung wird es „aufgehüpscht“ …

define Wettergrafik weblink htmlCode{PROPLANTA_Html(„Wetterdaten“)}

Freundlich grüßt Dich … Micha360

Micha360
Micha360
1 Jahr her
Reply to  Gunnar

ups … es sollte latürnich heißen: “ Den Begriff Wetterdaten … “ @-@

Micha360
Micha360
1 Jahr her
Reply to  Gunnar

… und noch ein Kopierfehler bei dem möglichen Problem „Samtgemeinden“. Hier nunmehr die Richtigstellung: define Wetterdaten PROPLANTA + de

Ich entschuldige mich für meine Tastatur…. “,)

Micha360
Micha360
1 Jahr her
Reply to  Gunnar

Irgendwie mag dieser Editor die Ctrl-C und Ctrl-V – Funktionen nicht. Also mache ich es jetzt händisch:
define Wetterdaten + de

… habe fertig …

Micha360
Micha360
1 Jahr her
Reply to  Gunnar

Der html-Editor hat Husten beim Thema Samtgemeinde . Dort wo Wohnortname steht muss es erweitert werden auf Postleitzahl+Wohnort. Hoffe jetzt nimmt der Editor es an. Sorry für das kleine CHAOS.

Dailydose
Dailydose
1 Jahr her

htmlCode {PROPLANTA_Html(„WetterProplanta“,5)}

Mit der Zahl 5 kann man die Anzahl der Tage anpassen die Dargestellt werden sollen
Bei dir inder Beschreibung ist deine Benennung verdreht ProplantaWetter muss WetterProplanta heissen

Markus
Markus
1 Jahr her

Hallo und herzlichen Dank für Deine Anleitung,
es scheint so, als dass einige der aufgezeigten Wetterdienste nicht mehr richtig funktionieren.
Ich konnte Proplanta und den Weblink erfolgreich konfigurieren.
Was ich mich frage und wozu ich noch nichts gefunden habe, ist wie ich den Weblink irgendwo einbaue und somit verfügbar mache?
Wo kann ich die Grafik wie anzeigen lassen?

Danke für jede Hilfe!
Markus

Philipp
1 Jahr her
Reply to  Markus

Hallo Markus hatte glaube das gleiche Problem… schau mal im FHEM WIKI. Es wurden die defines vom UWZ geändert

Lg Philipp