KleinKlima - übersichtliches Wetter (Update 3)
Als ich letztens Umbrella Today? sah, kam mir die Idee für eine eigene Wetterseite. Nicht gar so spartanisch sollte sie sein, aber dennoch übersichtlich – hier ist sie:
Noch ist nicht alles getestet, deshalb kann es sein, dass bei bestimmten Wetterbedingungen ein falsches Icon angezeigt wird. Und auf ältere IE-Versionen habe ich keine Rücksicht genommen …
Update 1, Samstag, 18.10.08
Alle, die sich schon Bookmarks nach diesem Schema angelegt haben: kleinklima.de/?ort=Potsdam müssen leider noch einmal neu bookmarken. Jetzt funktionieren nur noch Links nach diesem Schema: kleinklima.de/Potsdam
Update 2, Montag, 20.10.08
Die Meldung, dass zur Zeit keine Wetterdaten vorlägen, entspricht in den allermeisten Fällen nicht ganz der Wahrheit – in diesen Fällen liegen in der Regel (außer der derzeitigen Temperatur) nur die „Jetzt“-Daten nicht vor. Ab sofort werden deshalb statt der Fehlermeldung zumindest die Vorhersagedaten angezeigt.
Miniversion
Unter http://kleinklima.de/mini kann man eine Version aufrufen, die auch bei einer Auflösung von 1024×768 Pixeln ohne Scrollbalken in ein Browserfenster passt.
Update 3, Montag, 20.10.08
iPhone-Version
Jetzt gibt es auch eine iPhone-Version: http://kleinklima.de/iphone.
Ähnliche Beiträge:
Designer sind keine Dekorateure „Smiles“ (Update)
Kommentare:
Bei den Kommentaren handelt es sich um fremde Inhalte, die sich „esse est percipi“ nicht zueigen macht. Verantwortlich für den Inhalt eines Kommentars ist der jeweilige Verfasser.
Gute Idee, sehr schick umgesetzt – klasse! ^^
Super!
Die klare Aufteilung (ohne blinkende Werbebanner) ist genau das, was ich mir von einer Wetterseite wünsche. Und die Icons sind klasse. Nur der Hintergrund ist für meinen Geschmack zu kindlich-verspielt.
Eventuell würde ich die Überschriften, die dem Icon einen Tag zu ordnen, noch etwas auffälliger machen, da sie im Verhältnis zu diesen ziemlich klein sind und nicht direkt auffallen.
Sehr schön und übersichtlich!
Gibt es eine Möglichkeit direkt einen bestimmten Ort zu Bookmarken, zum Beispiel: http://kleinklima.de/ort/münchen? Das wäre dann nämlich genial!
(Grüße aus München ;))
Super Idee, Michael, und so schön umgesetzt. Fehlt ja eigentlich nur eine iPhone-Version – und der Vorschlag von Johannes ist natürlich auch nett :)
Ich habe das gerade mal geändert, jetzt werden auch die GET-Variablen abgefragt. Orte kann man nun also auch bookmarken.
Schön schlicht. Obwohl der Hintergrund vielleicht wirklich ein wenig zu verspielt ist … ;-) Und vielleicht einen Tick kleiner? Ich fahre meinen Browser immer mit 1024x768 und da muss man vertikal scrollen … Aber sonst: Schöne Idee!
Und – das hat nichts mit der Seite zu tun – wie verlässig sind eigentlich die Wetterdaten von Google?
@ Nils: Wenn ich das momentane Potsdam-Wetter (Sonne mit Wolken) mit dem Weather Widget von Mac OS X (zeigt Regen an) vergleiche, sind die Google-Daten (Meistens bewölkt) auf jeden Fall genauer …
Oje, geht leider nicht fürs Nachbarland (Österreich).
@ mrks: Geht jetzt auch – einfach z.B. Wien,AT eintragen. Klappt natürlich auch mit anderen Ländern: Zürich,CH oder Rio de Janeiro,BR. Nur Postleitzahlen funktionieren ausschließlich für Deutschland.
Der Herr Preidel ist der Beste!
Das ist toll! Vielen Dank!
Herrlich. Ab in die Lesezeichensammlung. http://sankt-georg.info/sammlung/675/das-wetter-weltweit-extrem-uebersichtlich-zb-hamburg-st-georg-plz-20099-kleinklima
Spitze! Vielen Dank.
Schön, aber mir fällt ein Defizit auf: Auf so ein MacBook-Display, mit seinen üppigen 800 Pixeln in der Höhe, passt das nicht ganz drauf. Breiter wäre da günstiger, aber vermutlich nicht ganz so ästhetisch.
Sehr schöne Idee, sehr schön umgesetzt!
Als mod_rewrite-Fan wünsche ich mir natürlich noch, http://kleinklima.de/Stuttgart statt des umständlichen http://kleinklima.de/?ort=Stuttgart schreiben zu können. Und ganz perfekt wäre, wenn beim Submitten einfach ein redirect auf die entsprechende URL geschieht, sodass man die gleich bookmarken kann. Wer den Blogeintrag nicht gelesen hat, weiß ja sonst gar nicht, wie er sich die URL zusammenbasteln kann.
@ Nils und Hagen: Ich mache demnächst noch eine 1024×768 Version, die man dann unter kleinklima.de/mini (oder so ähnlich) aufrufen kann.
@ Christian: Dass die URL nicht angezeigt wird, war Absicht. Erstens aus Sicherheitsgründen und zweitens wird nirgends dokumentiert, ob und unter welchen Umständen Google die Verwendung der API für andere Websites überhaupt gestattet. Deshalb wollte ich die Zahl der Benutzer erst mal klein halten – vielleicht ändere ich das demnächst. Aber zumindest Leser dieser Kommentare können URLs nach dem Muster http://kleinklima.de/Stuttgart ab sofort aufrufen.
Jetzt geht’s raus in den Regen zum Laufen …
Danke für die Umsetzung der Vorschläge, Michael!
Darf och Fragen wie mn die Wetterdaten von Google bezieht? Gibt's da eine API?
@ Fabian: Damit bekommst du per XML alle benötigten Daten:
http://www.google.com/ig/api?weather=potsdam&hl=de
Leider scheint es Probleme mit Ortsnamen die Umlaute enthalten zu geben. Für »Köln« werden keine Wetterdaten angezeigt. Aber sonst eine sehr schöne Seite.
g
Kann ich nicht bestätigen – ich bekomme Wetterdaten für Köln, Lüneburg oder Wien, Österreich. Ich habe allerdings festgestellt, dass der Google-Server manchmal keine Antwort liefert, dann muss man es nach ein paar Minuten noch mal versuchen …
Vielen Dank! Die Bookmark Sache werd ich sofort ausnutzen, VIEL VIEL BESSER als jede andere Wetterseite!
.. einfach und alles was man braucht.
danke,
Robert
Super Michael, jetzt bitte noch kleinklima.de/iphone und alles ist perfekt! :-)
Schön wäre es noch, wenn es noch eine Art Widget-Version gäbe (für eine Sidebar oder so). Den aktuellen Tag in groß und darunter drei kleinere Icons für die kommenden Tage.
Respekt was du aus einer solch kleinen Idee binnen so kurzer Zeit gemacht hast Michael. Finde ich wirklich super!
Nun zur iPhone-Version: Das View geht nicht automatisch auf 100%. Dafür bedarf es einen Meta-Tag für Mobile Safari:
<meta name=„viewport“ content=„width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;“ />
Im CSS innerhalb der body-Deklaration muss noch folgendes hinein: -webkit-text-size-adjust: none;
Dann wäre natürlich eine Weiterleitung anhand des User-Agent-Strings von / auf /iphone/ nicht verkehrt. :-)
Und es fehlt noch ein hübsches apple-touch-icon.png für den Bookmark im Dashboard von Mobile OS X.
Ansonsten: Wirklich super! :-)
Ich bin schon gespannt auf die Statistik mit den am häufigsten nachgefragten Orten :-)
@ Cedric: Alles erledigt ;-) Der Viewport stimmt jetzt, die Weiterleitung von / auf /iphone funktioniert, das Eingabefeld wird bei onfocus praktischerweise automatisch geleert, und ein apple-touch-icon.png ist auch vorhanden.
Ich bin begeistert! :-)
Hier ein paar Screenshots für dich:
http://flickr.com/photos/nur-text/2960387749/
http://flickr.com/photos/nur-text/2960388715/
Viele Grüße,
Cedric
Ein schickes favicon fehlt noch. :-)
Zum Thema IPhone-Seite: Wäre es sinnvoll, das zusätzlich am User-Agent festzumachen und einem anfragenden IPhone auch ohne gesonderte URL die schmalere Seite zur Verfügung zu stellen? mod_rewrite wäre eine Variante.
@ Martin: Das Script auf / fragt den User-Agent ab. Wenn es sich um ein iPhone handelt, wird automatisch umgeleitet. Das funktioniert auch bei z.B. kleinklima.de/Potsdam, das wird dann umgeleitet auf kleinklima.de/iphone/Potsdam
Da ohnehin schon exzessiv mit mod_rewrite gearbeitet wird (ich musste mit fiesen Tricks arbeiten, damit keine Endlosschleife in der .htaccess ensteht, wenn bei Anfragen kleinklima.de/Potsdam zu kleinklima.de/?ort=Potsdam umgeschrieben wird, gleichzeitig aber nach Abschicken des Formulars kleinklima.de/?ort=Potsdam wieder zu kleinklima.de/Potsdam wird) überlasse ich das Umleiten auf die iPhone-Seite in diesem Fall dem PHP-Script – ich finde hier eine eigene URL auch nicht so dramatisch …
@ Cedric: Danke für die Screenshots. Ich hatte mir übrigens extra das iPhone SDK heruntergeladen, weil da ein iPhone-Simulator dabei war – sieht gottseidank exakt so aus wie auf deinen „echten“ Screenshots:

danke! ;)
ganz gross! red-wine-widget-version..?
@ Anne: Habe ich auch schon überlegt. Meine Beobachtungen der letzten Woche haben nämlich gezeigt, dass das Google-Wetter für Potsdam wesentlich genauere Voraussagen liefert als das Wetter-Widget von Mac OS X. Irgendwann in den nächsten Wochen wird es KleinKlima deshalb auch als Widget geben.
supi, schöne weathasite! Das mit ner Umsetzung in ein „Weather Widget“ für Mac OS X ist mir auch gleich eingefallen, wär schön falls du es machen kannst! :-)
Hallo Michael! Wird's auch eine Version zum Einbinden in die eigene Homepage geben (so ähnlich, wie Du es bereits auf hier Deinen Seiten rechts hast)? Wenn ja, unter welchen Bedingungen?
Vielen Dank, frohe Weihnachten und einen guten Rutsch ins Neue Jahr!
Gibt es für die Google API irgendwo eine Übersicht, welche Wetterbedingungen angezeigt werden? Wie hast du das herausgefunden?
Super Seite! Endlich das gefunden was ich lange gesucht habe. Alle Infos die man braucht schön und kompakt dargestellt! Danke!
@ Thorsten (38): Google dokumentiert die Schnittstelle nicht, aber wenn du diesen Link anklickst: Wetter für Potsdam und anschließend in den Quelltext schaust, solltest du alles herausfinden.
Diese Wetterseite ist echt super. Aber warum werden seit einigen Tagen die Wetter-Grafiken nicht mehr angezeigt?
Gruß,
David
Danke für den Hinweis – Google hat offensichtlich das API geändert. Ich habe die Skripte angepasst, die Bilder werden wieder angezeigt.
Jo, funktioniert wieder. Vielen Dank!
auch cool: www.goingtorain.com
oder […] (nur für Hamburg)
Wie unterhalb des Kommentareingabeformulars erwähnt: Einträge mit werbendem Charakter sind kostenpflichtig. Für dubiose SMS-Dienste sowieso. Da ich aber keine Rechnung zustellen kann, weil die E-Mail-Adresse des Kommentators nicht gültig ist, wurde dieser Kommentar teilweise gelöscht.
””Michael Preidel
Ich wollte gerade mal testen, inwieweit man über SimpleXML (PHP5) die Wetterdaten auslesen kann.
Scheint allerdings nicht wirklich zu gehen, da die XML Daten nicht im UTF-8 Format vorliegen (angeblich):
„Input is not proper UTF-8, indicate encoding…“
Wie liest du denn die Daten aus?
Doch, das geht. Du musst das ganze nur gleichzeitig auch UTf-8 encoden:
$wetter = simplexml_load_string(utf8_encode($googlestring));
Leider nein. Ich wollte es ja über simplexml_load_file() machen, die Fehlermeldung bleibt.
Mache ich es wie du es vorschlägst über simplexml_load_string(), bekomme ich eine Warnung:
„Entity: line 1: parser error : Start tag expected, '>' not found“
Stimmt was an meinem Link vielleicht nicht? Hier mal das Skriptchen:
code// === [ Content / Charset ] ==============================================
header('Content-Type: text/html; charset=utf-8');
// === [ PHP mb_string Funktionen auch explizit auf UTF-8 setzen ] ==============================================
if(function_exists('mb_internal_encoding'))
mb_internal_encoding('UTF-8');
$google_link = 'http://www.google.com/ig/api?weather=berlin&hl=de';
$xml = simplexml_load_string(utf8_encode($google_link));
var_dump($xml);@code@
Ich habs jetzt – wenn ich die Daten via curl einhole geht es. Siehe auch: http://www.hackthenet.de/weblog/225/google-wetter-api :)
@Boris: noch einfache rgeht's wenn man der API gleich mitteilt, dass man UTF-8 haben will, indem men einfach &oe=UTF8 an den Link anhängt.
@$google_link = 'http://www.google.com/ig/api?weather=berlin&hl=de&oe=UTF8';@
Wenn ich das an die URL anhänge, sind alle Umlaute falsch. ;)
Da die Daten dann korrekt kodiert geliefert werden muss das utf8_encode eine Zeile tierfer raus…
$xml = simplexml_load_string($google_link);
Ich kopiere mal meine komplette function hier rein:
function google_weather($city) {
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
// replace special characters in city name
// Ö->Oe, Ä->Ae, Ü->Ue
// ö->oe, ä->ae, ü->ue
$search = array(„/Ö/“, „/Ä/“, „/Ü/“, „/ö/“, „/ä/“, „/ü/“, „/ /“, „/ß/“);
$replace = array(„Oe“, „Ae“, „Ue“, „oe“, „ae“, „ue“, „+“, „ss“);
$city = trim(preg_replace($search, $replace, $city));
// Requesting the weather information from the google weather service.
// The google weather service is available under the following url.
// example http://www.google.com/ig/api?weather=Wien
$url = 'http://www.google.com/ig/api?hl=de&oe=UTF8&weather=' . $city;
$xml = simplexml_load_file($url);
if(!$xml) {
exit('Konnte ' . $xml . ' nicht laden.');
} else {
// aktuelles Wetter
// Stadt aufbereiten
$city = (string) $xml->weather->forecast_information->postal_code->attributes()->data;
//$city = explode(„,“, $city);
$data['general']['city'] = $city; //[0];
// Datum, Uhrzeit aufbereiten
$date_time = $xml->weather->forecast_information->current_date_time->attributes()->data;
$date = explode(„ “, $date_time);
$date['date'] = explode(„-“, $date[0]);
$date['time'] = explode(„:“, $date[1]);
$date['d'] = $date['date'][2];
$date['m'] = $date['date'][1];
$date['y'] = $date['date'][0];
$time['h'] = $date['time'][0];
$time['m'] = $date['time'][1];
$time['s'] = $date['time'][2];
$timestamp = mktime($time['h'], $time['m'], $time['s'], $date['m'], $date['d'], $date['y']);
$data['general']['date_time'] = strftime(„%a., %d.%m.%Y %H:%M:%S“, $timestamp);
// Aktuellen Bericht aufbereiten
$data['weather']['current']['condition'] = (string) $xml->weather->current_conditions->condition->attributes()->data;
$wind = (string) $xml->weather->current_conditions->wind_condition->attributes()->data;
$wind = explode(„: “, $wind);
$data['weather']['current']['wind_condition'] = $wind[1];
$data['weather']['current']['temperature'] = (string) $xml->weather->current_conditions->temp_c->attributes()->data;
$humidity = (string) $xml->weather->current_conditions->humidity->attributes()->data;
$humidity = explode(„: “, $humidity);
$data['weather']['current']['humidity'] = $humidity[1];
$icon = $xml->weather->current_conditions->icon->attributes()->data;
$icon = explode(„/“, $icon);
$data['weather']['current']['icon'] = end($icon);
// Vorhersage für heute aufbereiten
for($i = 0; $i weather->forecast_conditions[$i]->condition->attributes()->data;
$data['weather']['forecast']['today+'.$i]['temperature']['min'] = (string) $xml->weather->forecast_conditions[$i]->low->attributes()->data;
$data['weather']['forecast']['today+'.$i]['temperature']['max'] = (string) $xml->weather->forecast_conditions[$i]->high->attributes()->data;
$icon = $xml->weather->forecast_conditions[$i]->icon->attributes()->data;
$icon = explode(„/“, $icon);
$data['weather']['forecast']['today+'.$i]['icon'] = end($icon);
$day++;
}
}
return $data;
}
die function wird einfach folgendermaßen aufgerufen:
$weather = google_weather('Frankfurt');
$weather enthält jetzt ein multidimensionales Array mit allen Wetterdaten.
Ich hoffe das hilft euch ein bißchen weiter…
Ich finde das Projekt nämlich sehr schön und interessant.
Gruß Stefan
Sind die Sonnenauf und -untergang Daten in der 3-tages Ansicht auch mit aus dem Google Wetter Api?
@walter: Nein, die kann man direkt in PHP abfragen, wenn man vorher die Geokoordinaten (lat/lng) des Ortes mittels Google Maps ermittelt hat:
$sonne = date_sun_info(time(), $lat, $lng); $sonnenaufgang = $sonne["sunrise"]; $sonnenuntergang = $sonne["sunset"];
coole website!
wie wärs denn mit nem wetter-add-in für websites?
ich bastle grad an der website für nen baggersee und blicke bei dem ganzen api-zeug nicht durch :-(
die ganzen dienste die man sonst im internet krigt, ohne sie selbst programmieren zu können, sehen alle scheiße aus.
Kommentar schreiben:
FAQ (Häufig gestellte Fragen)
Kommentare:
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Henning zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Mesrop zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Hopper 1.0b7 (Update: 1.0b9)
Schlagwörter
