< BBUGKS-Live #9 | Amüsieren >

RPi-Projekt Twitternde Webcam: Wechsel der Wetter-API

Ich hab es irgendwie nicht mitgeschnitten, aber als ich damals im Projekt die Wetter-API von worldweatheronline.com implementiert habe, dachte ich noch, es gäbe eine kostenlose Variante der API. Komischerweise ist das auch immer noch auf der Webseite in den FAQs so zu lesen. Allerdings bemerkte ich jetzt nach dem Ablauf des Testzeitraums für den Premium-Zugriff, dass ich nirgends auf die freie Version der API wechseln konnte. Ein weinig Googlen brachte mich dann auf einen Facebook-Post von WorldWeatherOnline, in dem angekündigt wurde, dass es ab April keine neuen kostenlosen Accounts mehr gibt. Also kurz bevor ich meinen Account erstellt hatte. :-(

Ok, also habe ich mich mal im Netz nach einer kostenlosen Alternative umgesehen und mit bei OpenWeatherMap hängen geblieben. Dort wird eine einfache kostenlose API angeboten, mit der ich die momentanen Wetterdaten und einige grundlegende Vorhersagen abrufen kann. Reicht mir völlig.

Das momentane Wetter ruft man über die URL

http://api.openweathermap.org/data/2.5/weather?id=2803564&units=metric&appid=[DeinApiKey]

auf.

Die Antwort als JSON-Objekt ist recht simpel:

{"coord":
{"lon":145.77,"lat":-16.92},
"weather":[{"id":803,"main":"Clouds","description":"broken clouds","icon":"04n"}],
"base":"cmc stations",
"main":{"temp":293.25,"pressure":1019,"humidity":83,"temp_min":289.82,"temp_max":295.37},
"wind":{"speed":5.1,"deg":150},
"clouds":{"all":75},
"rain":{"3h":3},
"dt":1435658272,
"sys":{"type":1,"id":8166,"message":0.0166,"country":"AU","sunrise":1435610796,"sunset":1435650870},
"id":2172797,
"name":"Cairns",
"cod":200}

Also sieht der Teil meines Python-Skripts, dass die beiden Temperaturwerte ausgiebt, nun so aus:

url = "http://api.openweathermap.org/data/2.5/weather?id=2803564&units=metric&appid=xxxxxxxxxxxxxxxxx"

try:
    response = urllib.urlopen(url)
except:
    print ("Error getting foreign weather")

object = json.load(response)

cTemp = int(object["main"]["temp"])
hTemp = int(object["main"]["temp_max"])

# now we get the complete text for the tweet
ttext = "Täglicher Blick über Bad Zwesten bei " + str(cTemp) + " Grad. Die erwartete Höchsttemperatur beträgt heute " +str(hTemp) + " Grad. #raspitweet"

So sollte das Ganze erstmal wieder funktionieren. Vielleicht mache ich noch mal ein paar andere Sachen mit der Wetter-API, mal schauen.

Trackbacks

Trackback-URL für diesen Eintrag

Dieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.