Archiv für Februar 2011
Wetternews
Bei der momentanen Kälte sitze ich lieber in der warmen Stube und bastle an meinen Wetterscripten weiter.
Inzwischen ist ein erstes Wetterdiagramm online (siehe Seite ‘Wetter’). Dort wird ein stündlich aktualisiertes Diagramm des Verlaufs von Temperatur und relativer Luftfeuchtigkeit angezeigt.
Dazu wird per Cronjob ein kleines Shellscript gestartet, welches wieder um verschiedene Scripte und Programme aufruft, die dann im Endeffekt das kleine Diagramm erstellen.
Beteiligt sind daran Perl, MySQL, Gnuplot und Imagemagick. Das Perlscript fragt die betreffenden Daten aus der MySQL-Datenbank ab, schreibt sie in eine Textdatei und erzeugt eine Steuerdatei für Gnuplot. Gnuplot lädt die Steuerdatei und erzeugt aus den Daten in der Textdatei eine transparente .png-Bilddatei. Imagemagick kopiert das transparente Diagramm anschließend auf den Wolkenhintergrund und gibt die fertige Grafik aus. Zum Schluß verschiebt das Shellscript die Grafik in den Webspace.
Nebenbei habe ich auch noch einen kleinen Fehler bei der Auswertung der Maximal- / Minimaltemperaturen “entschärft”. Leider kommt es immer mal vor, dass der Wetterdatenempfänger Daten einzelner Sensoren nicht erfasst. Dann stehen für die betreffenden Sensoren falsche Werte (in diesem Fall eine Null) in der Datenbank. Nun kann man z.B. für die Temperatur keine Unterscheidung treffen, ob die Temperatur wirklich 0°C beträgt oder der Wetterdatenempfänger keine Werte erfasst hat. Im Zusammenhang mit der gleichzeitig gesendeten relativen Luftfeuchtigkeit ist es dann aber doch möglich. Denn falls der Wert für die Luftfeuchtigkeit auch Null ist, was in unseren Breiten wohl nie vorkommt, kann man die Daten für den betreffenden Sensor verwerfen.
Nun kann es nicht mehr passieren, dass bei der Minimaltemperatur Mitte Juli 0°C angezeigt werden
.
Nachtrag:
Kleine Änderung beim Dateiformat des Diagramms. Die erzeugte .png-Grafik war mit einer Dateigröße von etwa 2MB eindeutig zu groß. Deshalb gibt’s die jetzt im .jpg-Format. Das schont unterwegs die auf 1GB limitierte Datenflatrate fürs Handy
.
Fortschritte…
Mühsam ernährt sich das Eichhörnchen, aber es geht voran. Mittlerweile ist das Script soweit fertig, dass ich schon ziemlich zufrieden bin und ich es eigentlich täglich per Cron-Job starten könnte. Ich werd es aber lieber noch ein paar Tage testen, bevor ich es scharf schalte.
Außerdem brauche ich ja noch eine Webseite, auf der die Ergebnisse dann schön präsentiert werden. Und solange das Wetter noch nicht so ist, dass ich mich im Garten in die Sonne legen kann, hab ich wenigstens was zum Basteln
.
Ganz Schlaue werden sicher bemerken, dass die Achse für die relative Luftfeuchtigkeit bis 110% beschriftet ist und monieren, dass die Luftfeuchtigkeit maximal 100 Prozent betragen kann. Das weiß ich auch
. Aber falls es mal regnet und die Feuchtigkeit wirklich bis auf 100% ansteigt, könnte man sonst die Legende im Diagramm nicht mehr lesen…
Wetter-Statistik
Heute packte mich mal wieder die Programmierwut und ich habe begonnen, ein kleines Perlscript zu schreiben, das mir den Temperaturverlauf eines Tages (…Woche,Monat,Jahr…) grafisch darstellt.
Dazu frage ich zunächst die Wetterdaten für den entsprechenden Zeitraum in der Datenbank ab und schreibe sie in ein Textfile. Gleichzeitig wird eine Steuerdatei für Gnuplot erzeugt, welches anschließend das erzeugte Textfile mit den Wetterdaten einliest und daraus die Grafik im png-Format berechnet.
Es ist schon erstaunlich, wozu man so eine NSLU bewegen kann, wenn man’s kann
.
Als nächstes werde ich das Script so erweitern, dass auch die Temperaturen der anderen Sensoren, bzw. die relative Luftfeuchtigkeit angezeigt wird. Man müsste nur viel mehr Zeit haben…
Es wettert wieder :-)
Manch einer hat sich sicher schon gewundert, dass es hier in letzter Zeit gar kein aktuelles Wetter mehr gab. Mir ist es auch ziemlich peinlich zugeben zu müssen, dass es nach der Ankündigung hier im Blog auf einmal nicht mehr funktionierte.
Inzwischen hatte ich etwas Muße, habe mal nach dem Fehler gesucht und das Script “entlaust”. Wobei im Script nicht mal ein Bug war, eher im Gegenteil. Das Problem lag einfach daran, dass die serielle Schnittstelle nach einem Reboot die Einstellungen “vergessen” hatte und mein Script so ewig auf die Wetterdaten gewartet hätte…
Jetzt habe ich das Script etwas erweitert und die Schnittstelle wird bei jedem Aufruf neu initialisiert. Sicher ist sicher
.
Allerdings passen durch die lange “Auszeit” des Scriptes die Niederschlagsmengen nicht mehr so richtig, an dieser Stelle muß ich mir noch etwas einfallen lassen.
Hauptsache es läuft erstmal wieder
.
Ach so, noch was. Der eine Außensensor liegt zu Testzwecken in meiner Bastelbutze auf dem Schreibtisch. Mir wäre die angezeigte Temperatur als Außentemperatur allerdings lieber…




