OPENWEATHER
OPENWEATHER | |
---|---|
Zweck / Funktion | |
Das Modul extrahiert Wetterdaten über die "openweather"-Schnittstelle (API) von www.wetter.com. | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Unterstützende Dienste/Wettermodule |
Modulname | 59_OPENWEATHER.pm |
Ersteller | tupol |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Das Modul extrahiert Wetterdaten über die "openweather"-Schnittstelle (API) von www.wetter.com.
API-Key erhalten
Zuerst ist eine Registrierung für wetter.com unter folgender URL notwendig: http://at.wetter.com/mein_wetter/register/
Nach Bestätigung des Accounts mittels der zugesandten E-Mail ist der Login möglich. Sobald man an der Seite angemeldet ist, kann man über die Navigation Apps & Mehr - Für Ihre Website die API auswählen (http://at.wetter.com/apps_und_mehr/website/api/). Dort klickt man auf Projektverwaltung.
In der Projektverwaltung wählt man Neues Projekt und vergibt dann einen Namen, eine Beschreibung und eine Kategorie des Projekts sowie eine Webseite mit weiteren Informationen zum Projekt. Die AGBs müssen natürlich noch gelesen und abgenickt werden, danach kann man mit einem Klick auf Projekt anlegen den Vorgang abschließen.
Anschließend erhält man den gewünschten API-Key, der auch jederzeit in der Projektverwaltung nachgesehen werden kann.
In der Projektverwaltung können dann noch Such- und Vorhersageeinstellungen konfiguriert werden, je nachdem, welche Werte man bei einer Abfrage an das API zurückbekommen möche. Wichtig: Wählt man hier nur einen Tag für die Vorhersage aus (Standard-Einstellung), so gibt es keine Vorhersage für die nachfolgenden Tage!
Definition in fhem
Ein OpenWeather-Device kann in fhem wie folgt angelegt werden:
define <name> OPENWEATHER <project> <cityCode> <apiKey> [language]
Wobei
- name angibt, unter welchem Namen das Device in fhem angezeigt werden soll
- project der Projektname ist, den man beim Anlegen des Projektes auf wetter.com vergeben hat
- cityCode der Code ist, der auch in der URL auf wetter.com ersichtlich ist, wenn man einen Ort auswählt (z.B. Wien: http://at.wetter.com/wetter_aktuell/aktuelles_wetter/oesterreich/wien/ATAT10678.html -> ATAT10678)
- apiKey der Key ist, den man beim Anlegen des Projektes auf wetter.com erhalten hat
- language eine optionale Sprachangabe ist (de ... deutsch, en ... englisch, usw.)
Vollständige Beispiel wäre also:
define meinWetter OPENWEATHER meinProjekt ATAT10678 0fb12e... de
Konfiguration in fhem
Nach der Definition des Devices können noch zwei Attribute gesetzt werden:
- disable (0 oder 1): Der Wert 1 stoppt die automatische Aktualisierung der Wettervorhersage. Standard-Wert: 0.
- INTERVAL (0 oder >=3600): Das Zeitintervall in Sekunden, in dem die Wettervorhersage aktualisiert wird. Standard-Wert: 3600. 0 stoppt die automatische Aktualisierung.
Um die Aktualisierung auf sechs Stunden zu setzen verwendet man also
attr meinWetter INTERVAL 21600
Hinweis
Das OpenWeather-Modul verwendet die Perl-Module HTTP::Request, LWP::UserAgent, HTML::Parse und Digest::MD5 Sind sie nicht vorhanden, können sie aus der Shell mittels
cpan Modulname
installiert werden.
OpenWeather-API Rückgabewerte
Ortsdaten
Wertname | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|
name | Name des Ortes | ||||||||
post_code | PLZ des Ortes/der Wetterstation | ||||||||
url | Link auf die jeweilige Ortsseite auf wetter.com | ||||||||
Credit | Um die kostenlose wetter.com openweather API benutzen zu dürfen, müssen zwei von den drei
Hinweisen auf wetter.com angezeigt werden.
|
Wetterdaten
Es gibt (derzeit) für jeden Tag vier verschiedene Tagesabschnitte:
- 06:00 bis 11:00
- 11:00 bis 17:00
- 17:00 bis 23:00
- 23:00 bis 06:00
Für jeden dieser Abschnitte werden (abhängig von der getroffenen Auswahl in den Projekteinstellungen) folgende Werte zurückgeliefert:
Wertname | Beschreibung |
---|---|
du | Unixtimestamp Unicode [int unsigned] |
d | Unixtimestamp lokal [int unsigned] |
dhu | ISO 8601 formatiertes Datum und Zeit, UTC [string] |
dhl | ISO 8601 formatiertes Datum und Zeit, lokal [string] |
p | Gültigkeitszeitraum der Prognose (24 Stunden, 1 Stunde, 3 Stunden, …) [int
unsigned, 0-24] |
w | Code für Wetterzustand [int unsigned, 0-999] (siehe #Definition Wetterzustände) |
pc | Änderung des Luftdrucks [float 1 Nachkommastelle] |
wd | Windrichtung in Grad [int, 0=N, 90=O, 180=S, 270=W] |
ws | Windgeschwindigkeit in Kilometer/Stunde [float unsigned, 1 Nachkommastelle] |
wd_txt | Windrichtung in Textform (N,NO,S,SW …) [string] |
w_txt | Wetterzustand in Textform [string] |
tn | Mindesttemperatur |
tx | Maximaltemperatur |
Definition Wetterzustände
Die Codes von 0-9 sind die Hauptwetterzustände. Alle anderen Codes sind Varianten dieser Zustände. Zum Beispiel ist 65: starker Regen eine Variante von 6: Regen. Sollen nur die Hauptzustände angezeigt werden kann einfach die erste Stelle des Codes verwendet werden.
Code (w) | Wetterzustand (w_txt) |
---|---|
0 | sonnig |
1 | leicht bewölkt |
2 | wolkig |
3 | bedeckt |
4 | Nebel |
5 | Sprühregen |
6 | Regen |
7 | Schnee |
8 | Schauer |
9 | Gewitter |
10 | leicht bewölkt |
20 | wolkig |
30 | bedeckt |
40 | Nebel |
45 | Nebel |
48 | Nebel mit Reifbildung |
49 | Nebel mit Reifbildung |
50 | Sprühregen |
51 | leichter Sprühregen |
53 | Sprühregen |
55 | starker Sprühregen |
56 | leichter Sprühregen, gefrierend |
57 | starker Sprühregen, gefrierend |
60 | leichter Regen |
61 | leichter Regen |
63 | mäßiger Regen |
65 | starker Regen |
66 | leichter Regen, gefrierend |
67 | mäßiger od. starker Regen, gefrierend |
68 | leichter Schnee-Regen |
69 | starker Schnee-Regen |
70 | leichter Schneefall |
71 | leichter Schneefall |
73 | mäßiger Schneefall |
75 | starker Schneefall |
80 | leichter Regen - Schauer |
81 | Regen - Schauer |
82 | starker Regen - Schauer |
83 | leichter Schnee / Regen - Schauer |
84 | starker Schnee / Regen - Schauer |
85 | leichter Schnee - Schauer |
86 | mäßiger od. starker Schnee - Schauer |
90 | Gewitter |
95 | leichtes Gewitter |
96 | starkes Gewitter |
999 | Keine Angabe |
Readings des OpenWeather-Moduls in fhem
Im folgenden werden die unterschiedlichen Readings erklärt, die das Modul liefert.
Dabei bedeutet fcX ein Platzhalter für
- fc0... heute
- fc1... morgen
- fc2... übermorgen
Die Zahlen (06,11,17,23) hinter diversen Readings bedeuten den jeweiligen Tagesabschnitt wie in den OpenWeather-Rückgabewerten beschrieben.
Reading | Beispielausgabe | Beschreibung | OpenWeather-Wert |
---|---|---|---|
city | Wien | Ort | name |
fcX_chOfRain | 20 | Regenwahrscheinlichkeit | pc |
fcX_tempMax | 4 | Höchsttemperatur | tx |
fcX_tempMin | 1 | Mindesttemperatur | tn |
fcX_valHours | 24 | Gültigkeitszeitraum der Prognose in Stunden | p |
fcX_wday | Di | Abkürzung des Wochentages | d |
fcX_weather | leicht bewölkt | Wetterzustand als Text | w_txt |
fcX_weatherCode | 1 | Code für den Wetterzustand | w |
fcX_wind | 6 | Windgeschwindigkeit in km/h | ws |
fcX_windDir | 135 | Windrichtung in Grad | wd |
fcX_windDirTxt | SO | Windrichtung als Text | wd_txt |