Wetterdaten von Openweather

Wir entnehmen der Homepage von Openweather, dass das Unternehmen 2014 gegründet wurde und seinen Hauptsitz in London, UK, hat. Openweather stellt historische, aktuelle und Vorschaudaten für den gesamten Globus zur Verfügung.

Stellenmarkt
  1. DevOps Software Engineer im Bereich "Software Factory" (m/w / divers)
    Continental AG, Frankfurt
  2. Embedded Linux-Programmierer (m/w/d) Entwicklung
    wenglor MEL GmbH, Eching
Detailsuche

Zu den wesentlichen Wetterdaten gehören Wind, Temperatur, Niederschlag und Bewölkung. Darüber hinaus werden Daten geliefert wie gefühlte Temperatur, Luftfeuchtigkeit, Luftdruck, UV-Index, Sichtweite, lokale Warnungen, Mondphasen und die Zeiten für Sonnenauf- und -untergänge. Sogar wetterabhängige Tag- und Nacht-Icons für die eigene Webseite können dort abgefragt werden.

  • Openweather-Icons zur Einbindung in eigene Apps oder Webseiten (Bild: Openweather)
  • Beispiel für ein Openweather-Resultset im JSON-Format (Screenshot: Michael Bröde)
  • UML-Schema der für Openweather zuständigen Klassen (Screenshot: Michael Bröde)
  • Für das Projekt aufbereitete Wetterdaten im CSV-Format (Screenshot: Michael Bröde)
  • Koordinaten und Bedeutung der einzelnen Linear-Uhr-Blöcke (Screenshot: Michael Bröde)
  • Beispiel für die Zeitermittlung anhand der aktiven Linear-Uhr-Blöcke (Screenshot: Michael Bröde)
  • UML-Schema der für die Linear-Uhr zuständigen Klassen (Screenshot: Michael Bröde)
  • Koordinaten der Blöcke für die Anzeige der Temperatur (Screenshot: Michael Bröde)
  • Beispiel für die Anzeige des Verlaufs der Temperatur in den nächsten zwölf Stunden (Bild: Michael Bröde)
  • Durch eigene Daten erweiterte Liste der Openweather-IDs (Screenshot: Michael Bröde)
  • Koordinaten der Blöcke für die Anzeige von Bewölkung und Niederschlag (Screenshot: Michael Bröde)
  • Beispiel für die Anzeige des Bewölkungs- und Niederschlagverlaufs in den nächsten zwölf Stunden (Screenshot: Michael Bröde)
  • Koordinaten der Blöcke für die Anzeige des Windstärke (Screenshot: Michael Bröde)
  • Beispiel für die Anzeige des Verlaufs der Windstärken in den nächsten zwölf Stunden (Bild: Michael Bröde)
  • Beispiel für die Anzeige der Min/Max-Wetter-Werte der nächsten zwölf Stunden (Bild: Michael Bröde)
  • Idee für eine Vorschau auf den Wetterverlauf der nächsten sieben Tage (Screenshot: Michael Bröde)
Openweather-Icons zur Einbindung in eigene Apps oder Webseiten (Bild: Openweather)

Openweather bietet verschiedene Lizenzen an. Die meisten sind kostenpflichtig. Je nach Lizenz variieren Inhalte und Formate der gelieferten Daten. Wir wählen das kostenlose One-Call-Modell.

Die One-Call-Lizenz enthält maximal 1.000 Abrufe pro Tag und 30.000 Abrufe pro Monat. Wir füllen das Subscribe-Formular aus und bekommen den API-Key. Wie man ihn verwendet, um die Daten abzufragen, erfahren wir hier:

Openweather - URL für Datenabruf

Golem Karrierewelt
  1. Angular für Einsteiger: virtueller Zwei-Tage-Workshop
    19./20.12.2022, Virtuell
  2. ITIL 4® Foundation: virtueller Zwei-Tage-Workshop
    10./11.10.2022, virtuell
Weitere IT-Trainings

Nachdem wir den API-Key erhalten haben, probieren wir den Abruf gleich online im Webbrowser. Für den Zusammenbau der URL gilt zunächst folgende Regel:

https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&appid={key}

Die GPS-Koordinaten Breitengrad {lat} und Längengrad {lon} bekommen wir zum Beispiel über Openstreetmap. Wir suchen auf der Karte die gewünschte Location, zoomen hinein, klicken im Kontextmenü auf den Punkt Adresse anzeigen und kopieren die Koordinaten aus dem linken Toolfenster heraus.

Wegen der besseren Lesbarkeit von heimischen Formaten ergänzen wir noch zwei URL-Parameter, die selbsterklärend sind:

&units=metric&lang=de

Damit erhalten wir beispielsweise Windgeschwindigkeiten in der Einheit Meter pro Sekunde und Temperaturen in Grad Celsius.

Wir rufen die URL im Webbrowser auf und bekommen folgendes Ergebnis:

  • Openweather-Icons zur Einbindung in eigene Apps oder Webseiten (Bild: Openweather)
  • Beispiel für ein Openweather-Resultset im JSON-Format (Screenshot: Michael Bröde)
  • UML-Schema der für Openweather zuständigen Klassen (Screenshot: Michael Bröde)
  • Für das Projekt aufbereitete Wetterdaten im CSV-Format (Screenshot: Michael Bröde)
  • Koordinaten und Bedeutung der einzelnen Linear-Uhr-Blöcke (Screenshot: Michael Bröde)
  • Beispiel für die Zeitermittlung anhand der aktiven Linear-Uhr-Blöcke (Screenshot: Michael Bröde)
  • UML-Schema der für die Linear-Uhr zuständigen Klassen (Screenshot: Michael Bröde)
  • Koordinaten der Blöcke für die Anzeige der Temperatur (Screenshot: Michael Bröde)
  • Beispiel für die Anzeige des Verlaufs der Temperatur in den nächsten zwölf Stunden (Bild: Michael Bröde)
  • Durch eigene Daten erweiterte Liste der Openweather-IDs (Screenshot: Michael Bröde)
  • Koordinaten der Blöcke für die Anzeige von Bewölkung und Niederschlag (Screenshot: Michael Bröde)
  • Beispiel für die Anzeige des Bewölkungs- und Niederschlagverlaufs in den nächsten zwölf Stunden (Screenshot: Michael Bröde)
  • Koordinaten der Blöcke für die Anzeige des Windstärke (Screenshot: Michael Bröde)
  • Beispiel für die Anzeige des Verlaufs der Windstärken in den nächsten zwölf Stunden (Bild: Michael Bröde)
  • Beispiel für die Anzeige der Min/Max-Wetter-Werte der nächsten zwölf Stunden (Bild: Michael Bröde)
  • Idee für eine Vorschau auf den Wetterverlauf der nächsten sieben Tage (Screenshot: Michael Bröde)
Beispiel für ein Openweather-Resultset im JSON-Format (Screenshot: Michael Bröde)

Die Daten werden im Javascript-Object-Notation-(JSON)-Format ausgeliefert. Bei anderen Openweather-Lizenzen besteht zusätzlich die Möglichkeit, Daten auch im XML-Format abzuholen. Wir kommen mit dem JSON-Format aber klar. Es ist gut lesbar. Zu den obersten JSON-Knoten gehört ein Array namens hourly mit 48 Elementen. Das sind Stundendaten, die wir für unsere Wettervorschau verwenden werden.

Bei unserem gewählten Lizenzmodell sind keine historischen Daten dabei. Da wir diese nicht benötigen, ist das auch okay.

Raspberry Pi: Das umfassende Handbuch. Über 1.000 Seiten in Farbe. Mit Einstieg in Linux, Python und Elektrotechnik. Aktuell zum Raspberry Pi 4

Im praktischen Betrieb für unsere Uhr fügen wir einen weiteren Parameter zur URL hinzu, um Daten, die wir definitiv nicht benötigen, gar nicht erst abzuholen.

&exclude=alerts,minutely

Alerts wie Unwetterwarnungen wollen wir auf unserer Uhr nicht anzeigen. Die kommen auf anderem Wege zu uns. Auch für minutengenaue Daten haben wir keine Verwendung.

Im Detail erhalten wir Wetterdaten zu folgenden Kennzahlen:

KennzahlBeschreibungCSV-Übernahme
dtDatum und Uhrzeit (UTC, Unixformat)Ja
sunriseUhrzeit des Sonnenaufgangs (UTC, Unixformat)
sunsetUhrzeit des Sonnenuntergangs (UTC, Unixformat)
tempTemperatur in °CJa
feels_likeGefühlte Temperatur in °C
pressureLuftdruck in hPa
humidityLuftfeuchtigkeit in %
dew_pointTaupunkt in °C
uviUV-Index
cloudsBewölkung in %Ja
visibilityDurchschnittliche Sichtweite in m
wind_speedWindgeschwindigkeit in m/sJa
wind_degWindrichtung in Grad (360°-Basis)Ja
wind_gustWindspitzen (Böen) in m/sJa
weather.idWetter-IDEine Liste mit den Wetter-IDs liegt hier: https://openweathermap.org/weather-conditions#Weather-Condition-CodesJa
weather.mainName des WettersJa
weather.descriptionBeschreibung des WettersJa
weather.iconName des Wetter-IconsJa
popNiederschlagswahrscheinlichkeit in %Ja
Kennzahlen der Wetteruhr

In der Tabellenspalte namens CSV-Übernahme zeigen wir an, welche Daten wir für die Wetter-Uhr verwenden.

Openweather - Zyklus der Abfrageausführung

Da wir eine stündliche Vorschau haben wollen, müssten wir eigentlich jede volle Stunde eine Openweather-Abfrage machen. Was passiert aber, wenn im Augenblick der Abfrage das Internet ausgefallen ist oder ein anderer Fehler auftritt? Dann haben wir für die betreffende Stunde keine Daten. Nun könnten wir nach solch einem Fehler gleich eine neue Abfrage hinterherschicken. Wie gehen wir aber vor, wenn das Problem länger anhält?

In kurzen Zeitabständen die Abfrage so lange zu wiederholen, bis korrekte Wetterdaten erfolgreich angekommen sind, ist keine gute Idee. Damit würden wir die Hardware unseres kleinen Raspberry Pi nur unnötig herausfordern. Außer Wetterdaten wollen wir schließlich auch noch die Uhrzeit ausgeben.

Wir vereinfachen das Vorgehen und legen ein moderates Zeitintervall in Minuten fest, in dem wir die Abfrage regelmäßig ausführen. Wir wählen zunächst zehn Minuten. Diesen Wert weisen wir einer internen Variablen zu, um damit später ein bisschen zu experimentieren. Wenn eine Abfrage fehlschlägt, warten wir einfach die festgelegte Minutenzahl bis zum nächsten Versuch ab.

Darüber hinaus greifen wir nur dann auf die Openweather-Webseite zu, wenn neue Daten gebraucht werden. Zunächst prüfen wir bei jedem Zyklusdurchlauf, ob die vorhandenen Daten noch zur aktuellen Stunde passen. Nur wenn das nicht der Fall ist, holen wir neue Daten ab.

Mit diesem Verfahren bleiben wir locker unter 1.000 Abfragen pro Tag beziehungsweise 30.000 Abfragen pro Monat, wie sie in der kostenlosen One-Call-Lizenz enthalten sind.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Openweather: Eine Wetter-Uhr auf dem Raspberry PiOpenweather - Einbindung in die Uhr 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10.  


mbroede 22. Aug 2022 / Themenstart

Hallo Kastenbrot, ich gebe Dir recht: Windows Forms, WPF o.ä. unter Linux nur wenn man...

OutOfCoffee 19. Aug 2022 / Themenstart

Flaschenhals? Willst Du die Daten alle paar Millisekunden abfragen? Das Wetter scheint...

Paramus 18. Aug 2022 / Themenstart

... sind genau was man momentan braucht - aber immerhin kann man mit dem Ding im...

landfuerst 18. Aug 2022 / Themenstart

Wenn du deine Wettervorhersage selber berechnen willst, mit ähnlichem Umfang, wirst du...

Kommentieren



Aktuell auf der Startseite von Golem.de
Minority Report wird 20 Jahre alt
Die Zukunft wird immer gegenwärtiger

Minority Report zog aus, die Zukunft des Jahres 2054 vorherzusagen. 20 Jahre später scheint so manches noch prophetischer.
Von Peter Osteried

Minority Report wird 20 Jahre alt: Die Zukunft wird immer gegenwärtiger
Artikel
  1. Luftfahrt: Wisk Aero zeigt autonomes Flugtaxi
    Luftfahrt
    Wisk Aero zeigt autonomes Flugtaxi

    Das senkrecht startende und landende Lufttaxi soll in fünf Jahren im regulären Einsatz sein.

  2. Gegen Agile Unlust: Macht es wie Bruce Lee
    Gegen Agile Unlust
    Macht es wie Bruce Lee

    Unser Autor macht seit vielen Jahren agile Projekte und kennt "agile Unlust". Er weiß, warum sie entsteht, und auch, wie man gegen sie ankommen kann.
    Ein Erfahrungsbericht von Marvin Engel

  3. Firefly Aerospace: Rakete erreicht den Orbit
    Firefly Aerospace
    Rakete erreicht den Orbit

    Der zweite Start der Alpha-Rakete war erfolgreich. Sie hat Satelliten in einer niedrigen Erdumlaufbahn ausgesetzt.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MindFactory (u. a. PowerColor RX 6700 XT Hellhound 489€, ASRock RX 6600 XT Challenger D OC 388€) • Kingston NV2 1TB (PS5) 72,99€ • be quiet! Silent Loop 2 240 99,90€ • Star Wars: Squadrons PS4a 5€ • Acer 24"-FHD/165 Hz 149€ + Cashback • PCGH-Ratgeber-PC 3000 Radeon Edition 2.500€ [Werbung]
    •  /