GDS: Unterschied zwischen den Versionen
(Neu angelegt, Daten aus CommandRef und 19 Seiten Thread zusammengeführt) |
K (Informationen aus weiteren Threads hinzugefügt.) |
||
Zeile 48: | Zeile 48: | ||
=== Liste der verfügbaren Wetterstationen abrufen === | === Liste der verfügbaren Wetterstationen abrufen === | ||
<code>get [gdsName] list stations</code> | <code>get [gdsName] list stations</code> | ||
=== Liste der verfügbaren Zellen für Warnungen abrufen === | |||
<code>get [gdsName] list capstations</code> | |||
=== Manuelle Aktualisierung der Daten === | === Manuelle Aktualisierung der Daten === | ||
Zeile 58: | Zeile 61: | ||
=== Station setzen für automatischen, periodischen Abruf === | === Station setzen für automatischen, periodischen Abruf === | ||
<code>set [gdsName] [Station]</code> | <code>set [gdsName] conditions [Station]</code> | ||
Automatisch abgerufen (alle 20 Minuten) werden nur die mit c_ beginnenden Readings. Die a_ Readings (Warnungen, etc.) müssen manuell aktualisiert werden. | |||
=== Unwetterwarnungen aus gelesenen Daten raussuchen === | === Unwetterwarnungen nach Region aus gelesenen Daten raussuchen === | ||
<code>set [gdsName] warnings [Region]</code> | <code>set [gdsName] warnings [Region]</code> | ||
Zeile 66: | Zeile 71: | ||
Die Region kann ausgeschrieben oder mit den [http://www.bmelv-statistik.de/de/daten-tabellen-suche/abkuerzungen-der-bundeslaender/ offiziellen Abkürzungen] bezeichnet werden. | Die Region kann ausgeschrieben oder mit den [http://www.bmelv-statistik.de/de/daten-tabellen-suche/abkuerzungen-der-bundeslaender/ offiziellen Abkürzungen] bezeichnet werden. | ||
=== Unwetterwarnungen granularer nach Kreis aus gelesenenen Daten raussuchen === | |||
<code>set [gdsName] alerts [Warncell-ID]</code> | |||
Die passende Warncell-ID kann man sich über <code>get [gdsName] list capstations</code> heraussuchen. | |||
Ob es passende Warnmeldungen gibt, kann dann über das Reading <code>a_valid</code> abgefragt werden. Wenn <code>a_valid</code> 1 ist, gibt <code>a_count</code> die Anzahl der vorhandenen Warnmeldungen an. Die Warnungen stehen dann in den Readings <code>a_X_...</code>, wobei X ab 0 hochzählt. D.h. wenn <code>a_count</code> 2 ist, gibt es a_0_... und a_1_... Ein praktisches Reading ist z.B. <code>a_X_headline</code>, das die Zusammenfassung der jeweiligen Warnung als kurze Textzusammenfassung enthält. | |||
Alle eingelesenen Warnmeldungen kann man sich über die Funktion <code>gdsHeadlines()</code> ausgeben lassen. Z.B. einfach in der Befehlszeile von fhem eingeben: | |||
<code>{gdsHeadlines([gdsName])}</code> | |||
Wer möchte, kann auch das Trennzeichen bei mehreren Meldungen konfigurieren: | |||
<code>{gdsHeadlines([gdsName],'[Trennzeichen]')}</code> | |||
Z.B. also | |||
<code>{gdsHeadlines(gds, '***')}</code> | |||
Standard für das Trennzeichen ist der senkrechte Strich. | |||
Jedenfalls nach <code>attr [gdsName] gdsLong 1</code> werden in a_X_description die Langmeldungen zu den Warnungen ausgegeben. | |||
=== Aktuelles Wetter abrufen === | === Aktuelles Wetter abrufen === | ||
Zeile 101: | Zeile 129: | ||
=== Karten regelmäßig vom Server neu laden === | === Karten regelmäßig vom Server neu laden === | ||
<code>define Karten at +*00:30:00 get | <code>define Karten at +*00:30:00 get [gdsName] radarmap Nordost; get [gdsName] conditionsmap Nordost; get [gdsName] warningsmap Berlin</code> |
Version vom 22. Februar 2015, 11:56 Uhr
GDS | |
---|---|
Zweck / Funktion | |
Herunterladen und Auswerten von Daten des Deutschen Wetterdienstes | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE Thema |
Support (Forum) | Unterstuetzende Dienste |
Modulname | 55_GDS.pm |
Ersteller | betateilchen |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
GDS ist ein Modul, mit dessen Hilfe man sich die Daten des Deutschen Wetterdienstes herunterladen kann und dann Wetterlage, diverse Wetterkarten und/oder Unwettermeldungen anzeigen/auswerten kann.
Voraussetzungen
Anmeldung beim DWD
Als erstes muss man sich beim Deutschen Wetterdienst zur Grundversorgung kostenlos anmelden.
Installation der benötigten Perl-Module
GDS benötigt die Perl-Module Net::FTP, List::MoreUtils, XML::Simple, Text::CSV.
Für Ubuntu und Raspi sollte funktionieren:
apt-get install libnet-lite-ftp-perl liblist-moreutils-perl libxml-simple-perl libtext-csv-perl
Das ftp-Modul verursacht manchmal Probleme bei der Installation. Teilweise ist es wohl auch schon in der Grundinstallation vorhanden, ansonsten kann man versuchen:
apt-get install libnet-ftp-perl
oder
apt-get install libwww-perl
Anwendung
Define
define [gdsName] GDS [gdsUsername] [gdsPasswort]
[gdsUsername] und [gdsPasswort] gibt es nach Anmeldung vom DWD.
Attribute
Die vollständige Liste der Attribute ist in der commandref.
Station setzen, für die beim fhem-Start die Daten eingelesen werden sollen:
attr [gdsName] gdsSetCond [Station]
Hilfreich kann u.a. sein, wenn man hinter eine Firewall sitzt und der Datenabruf nicht funktioniert:
attr [gdsName] gdsPassiveFtp 1
Anwendung
Liste der verfügbaren Wetterstationen abrufen
get [gdsName] list stations
Liste der verfügbaren Zellen für Warnungen abrufen
get [gdsName] list capstations
Manuelle Aktualisierung der Daten
Aktuelle Daten vom Server abrufen
set [gdsName] rereadcfg
Readings aus abgerufenen Daten aktualisieren
set [gdsName] update
Station setzen für automatischen, periodischen Abruf
set [gdsName] conditions [Station]
Automatisch abgerufen (alle 20 Minuten) werden nur die mit c_ beginnenden Readings. Die a_ Readings (Warnungen, etc.) müssen manuell aktualisiert werden.
Unwetterwarnungen nach Region aus gelesenen Daten raussuchen
set [gdsName] warnings [Region]
z.B.: set gds warn Nordrhein-Westfalen
Die Region kann ausgeschrieben oder mit den offiziellen Abkürzungen bezeichnet werden.
Unwetterwarnungen granularer nach Kreis aus gelesenenen Daten raussuchen
set [gdsName] alerts [Warncell-ID]
Die passende Warncell-ID kann man sich über get [gdsName] list capstations
heraussuchen.
Ob es passende Warnmeldungen gibt, kann dann über das Reading a_valid
abgefragt werden. Wenn a_valid
1 ist, gibt a_count
die Anzahl der vorhandenen Warnmeldungen an. Die Warnungen stehen dann in den Readings a_X_...
, wobei X ab 0 hochzählt. D.h. wenn a_count
2 ist, gibt es a_0_... und a_1_... Ein praktisches Reading ist z.B. a_X_headline
, das die Zusammenfassung der jeweiligen Warnung als kurze Textzusammenfassung enthält.
Alle eingelesenen Warnmeldungen kann man sich über die Funktion gdsHeadlines()
ausgeben lassen. Z.B. einfach in der Befehlszeile von fhem eingeben:
{gdsHeadlines([gdsName])}
Wer möchte, kann auch das Trennzeichen bei mehreren Meldungen konfigurieren:
{gdsHeadlines([gdsName],'[Trennzeichen]')}
Z.B. also
{gdsHeadlines(gds, '***')}
Standard für das Trennzeichen ist der senkrechte Strich.
Jedenfalls nach attr [gdsName] gdsLong 1
werden in a_X_description die Langmeldungen zu den Warnungen ausgegeben.
Aktuelles Wetter abrufen
get [gdsName] conditions [Station]
Karten abrufen
Wetterlage: get [gdsName] conditionsmap [Station]
Vorhersage: get [gdsName] forecastsmap [Station]
Warnungen: get [gdsName] warningsmap [Station]
Radar: get [gdsName] radarmap [Station]
Anwendungsbeispiele
Für GDS sollten die Daten regelmäßig aktualisiert werden. Dafür richtet man am besten zwei zeitlich nacheinander laufende ats ein:
Einen zum Holen aktualisierter Daten vom Server:
define readGDS at +*00:10:00 get [gdsName] rereadcfg attr readGDS alignTime 22:30:05
Einen zweiten, der danach läuft, der aus den aktualisierten Serverdaten dann die Readings aktualisiert; z.B. für die Alerts:
define checkGDS at +*00:10:00 get [gdsName] alerts [Region] attr checkGDS alignTime 22:35:05
Wichtig ist, dass beide at zeitlich auseinander liegen, im vorstehenden Beispiel durch die unterschiedlichen "alignTime" Attribute um 5 Minuten.
Karten regelmäßig vom Server neu laden
define Karten at +*00:30:00 get [gdsName] radarmap Nordost; get [gdsName] conditionsmap Nordost; get [gdsName] warningsmap Berlin