Bastelwastel

Operation gelungen :)

Nachdem die Festplatte meines alten Panasonic Toughbook die Hufe hochgerissen hatte, habe ich umgehend Ersatz bestellt. Dieser traf auch zügig ein und wurde inzwischen “transplantiert”.
Ich war erstaunt, dass das relativ einfach und zügig ging. Hatte es mir wirklich komplizierter vorgestellt.
Schrauben vom Gehäuseboden entfernt, kurz geschaut und über das Innenleben gestaunt – die Festplatte hat eine eigene Heizung… – alte Platte raus, neue Platte rein, zugeschraubt, fertig.
Anschließend kam natürlich wieder der Ubuntu-Server auf die Platte. Inzwischen läuft fast alles wieder prima, nur ein paar Shell-/ Perlskripte, von denen ich (natürlich ;-) ) kein Backup hatte, muß ich nochmal “neu erfinden” ;-) .
Bei der momentanen Wetterlage ist das natürlich ein hübscher Zeitvertreib ;-) . Cachen im Tiefschnee muss ja wirklich nicht sein…

Crashbumm!

Gestern musste ich mit Erstaunen feststellen, dass im Blog keine Wetterdaten mehr angezeigt wurden. Eine genauere Untersuchung zeigte, dass sich der auf einem alten Panasonic Toughbook basierende Server verabschiedet hatte.
Eine schnell vorgenommene Neuinstallation lief nur wenige Stunden – die Festplatte hatte ihre Reise ins Elektronik-Nirvana angetreten :-( .
Zum Glück lief die Wetterdatenerfassung parallel auf der NSLU weiter. Aber die Datenbank dort ist für eine intensive Nutzung einfach zu langsam. Deshalb gibt es vorläufig wieder nur die “Schmalspurvariante” der Datenanzeige im Blog.
Eine neue Festplatte ist geordert. Mal sehen, ob ich den Rechner so wieder zum Leben erwecken kann. Wär schade drum…

Das Wetter. Wieder mal.

Grafik: Temperaturverlauf letzte 7 Tage

In den letzten Tagen habe ich mich mal wieder mit meiner Wetterstation beschäftigt. Die Datenbank ist jetzt auf einen anderen Rechner mit etwas mehr Rechenpower umgezogen. Die NSLU tut zwar nach wie vor ihren Dienst, aber für größere Abfragen brauchte sie mit zunehmender Größe der Datenbank mehr Zeit. Das führte dazu, dass der Server das abfragende PHP-Script aus Zeitgründen abschoss.
Dieses Problem ist nun erstmal Geschichte.

Dafür gab es seit gestern Empfangsprobleme. Ich vermute, dass die Batterien des Sensors nach 1½ Jahren ins Schwächeln gekommen sind. Die Temperaturdiagramme und Regenmengendaten sind dadurch leider etwas durcheinander geraten, aber das wird sich in den nächsten Tagen richten ;-) .

Weil der Server nun etwas kräftiger auf der Brust ist, kann ich mich auch mal daran machen, die Auswertung noch etwas umfangreicher zu gestalten.
Einzig der Regenmelder macht mir Sorgen. Der ist etwa so zuverlässig eine Wünschelrute. Eine totale Fehlkonstruktion. Da kann es den ganzen Tag regnen, das Ding meldet “trocken” :-( . Hier müsste ich mal nachbessern mit einer Eigenkonstruktion…

Neues aus der Teichsiedlung

In einem wahnsinnigen Anfall von Arbeitswut haben wir am vergangenen Wochenende unser ewiges Bauprojekt, den Teich 2.0 endlich fertig gestellt. Naja, zumindest fast fertig ;-) . Ein paar kleinere Nacharbeiten sind noch nötig, ein paar Pflänzchen ringsrum müssen noch sein und eine etwas stärkere Bachlaufpumpe fehlt noch.

Foto: Gartenteiche mit Bachlauf

Unten Teich 1.0, im Hintergrund etwas höher Teich 2.0, dazwischen Bachlauf 1.5 ;-)

Momentan tut eine schon vorhandene kleine Springbrunnenpumpe Dienst als Bachlaufpumpe. Dies ist aber nur eine Notlösung, weil die Förderleistung der Pumpe nicht so toll ist und der “Schwammfilter” der Pumpe zu schnell verstopft. Im Moment läuft die Suche nach einer stärkeren Pumpe und wenn es das Hobbybudget zulässt, wird die jetzige Pumpe wieder ihrem eigentlichen Verwendungszweck zugeführt…

Die Vogelwelt ist zumindest schon mal schwer begeistert vom neuen Bachlauf. Der ist nämlich zur neuen Badeattraktion geworden. Die Pumpe lief noch keine fünf Minuten, als sich die erste Amsel zu einem ausgiebigen Bad einfand. Ich überlege jetzt gerade, wo ich das Kassenhäuschen für die vielen Badegäste aufstelle… ;-) .

Leider sind die Piepmätze doch ziemlich scheu und lassen sich beim Baden ungern beobachten (wer mag schon Paparazzi…). Trotz längerer, geduldiger Wartezeit bekam ich kein Vögelchen beim Baden vor die Kamera. Irgendwann war es einfach zu kalt (12°C) und ich hab mich dann in die warme Stube verzogen. Aber das wird schon noch…

Kleine Ursache – große Wirkung

Bei der Übertragung der Daten per Funk von den Temperatur-/Luftfeuchtigkeitssensoren zum Wetterdatenempfänger kommt es naturgemäß immer mal wieder zu Übertragungsfehlern und es werden fehlerhafte Werte in die Datenbank eingetragen. Das ist natürlich ärgerlich, weil die zum Teil extrem falschen Werte in der Auswertegrafik sehr auffällig sind.
Leider fehlte mir bisher die Zeit, ein Script zu basteln, dass die falschen Daten schon vor dem Eintrag in die Datenbank rausfiltert.  Deshalb habe ich gestern mal alle fehlerhaften Daten manuell per MySQL auf der Konsole gelöscht. Insgesamt waren das knapp 800 Datensätze. Als ich dann heute in aller Frühe einen Blick auf die Wettergrafik warf, haute es mich fast um, denn die Grafik war inzwischen eher zu einem kleinen Kunstwerk geworden…

Bei der Suche nach den Ursachen dieses “Kunstwerks” stieß ich darauf, dass in der Textdatei, in der mein Auswertescript die Daten ablegt, die Reihenfolge der Daten anders war, als sonst. Da war zwischen Daten vom 02.03.11 plötzlich ein Datensatz vom 18.03.11…
Nun war mir klar, dass der Fehler bei der Abfrage der Daten aus der Datenbank passieren musste. Und drei kleine Worte brachten dann die Lösung des Problems. Einfach ein “order by timestamp” an die Datenbankabfrage angehängt und schon war wieder alles im Lot. Warum nicht gleich so :-))?!

Und wenn ich demnächst irgendwann mal viel Zeit habe, werde ich mich wohl doch noch an die Arbeit machen und eine Fehlerkorrektur vor dem Abspeichern der Daten in der Datenbank einbauen…

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…

Temperatur / rel. Luftfeuchtigkeit am 15.02.11

Temperatur / rel. Luftfeuchtigkeit am 15.02.11 - so siehts aus

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

Temperaturverlauf vom 14.2.11

So sieht das Ergebnis aus

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 :D .
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…

SMS mit Uralt-Handy und Linux-PC

Angeregt durch einen Artikel in der aktuellen ELEKTOR, in dem es um die Einrichtung eines “SMS-Automaten” mit einem alten PC unter DSL-Linux und einem Siemens S65-Handy geht, habe ich mich mit diesem Thema auch beschäftigt.
Warum ein noch gut funktionierendes Handy entsorgen, wenn es für solche Zwecke noch bestens geeignet ist.
Zum Testen benutzte ich zwar auch einen älteren ausrangierten Rechenknecht, allerdings läuft auf dem ein aktuelles Ubuntu und kein DSL.

Die Installation der benötigten Software (Gnokii) war mit dem Paketmanager nur eine Sache von wenigen Minuten.
Danach dauerte es allerdings deutlich länger, bis ich die erste SMS versenden konnte.
Gnokii suchte seine Konfigurationsdatei nämlich nicht dort, wo ich das nach dem Elektor-Artikel vermutete (/~/.gnokiirc), sondern in einem ganz anderen Pfad (/~/.config/gnokii/config).
Das nächste Problem bestand darin, die “Default”-Konfigurationsdatei für Gnokii erstmal zu finden. Nachdem dies aber geschafft war, die Datei passend zum Handytyp geändert und ins entsprechende Verzeichnis kopiert war, lief es wie geschmiert.
Alles funktionierte so, wie es im Artikel beschrieben war. Nächster Schritt ist nun ein Test an meinem NSLU-2 Homeserver. Mal sehen, ob es für den die passenden Gnokii-Pakete gibt. Das Problem dort besteht aber darin, dass die NSLU keine normale serielle Schnittstelle besitzt und die Kommunikation zwischen Rechner und Handy über einen Adapter ( USB < -> seriell) laufen muss.
Sollte das aber funktionieren, stehen die Chancen für weitere tolle Anwendungen nicht schlecht :-)