Open Source im professionellen Einsatz

W1retap

Das Wetterstationen-Programm von Jonathan Hudson [15] ist eher auf die Aufzeichnung von Messwerten ausgerichtet, die es als CSV oder XML oder in MySQL-, PostgreSQL- oder ODBC-kompatiblen Datenbanken ablegt. Dabei kann W1retap auch einige Sensoren für Arten von Messwerten ansprechen, die die beiden anderen Lösungen nicht unterstützen.

W1retap läuft im Vordergrund oder als Daemon. Nach dem »configure« übersetzt ein »make« das Programm. Das in- itiale Setup ist verhältnismäßig aufwändig, da der Admin hier die Zuordnung von Sensor-Identifikationsnummern zu sprechenden Bezeichnungen wie »Serverraum vorne« vornehmen muss. Das Skript in Listing 3 zeigt ein automati- sches Beispiel für den ersten Start. Für einen Test bietet sich dann das Kommando »temp DS2490-1« an. DS2490-1 bezieht sich auf den ersten USB-Adapter.

Listing 3: »temp«
für W1retap

#!/bin/sh
# Diesen Pfad anpassen!
BASE=/usr/local/
export PATH=$BASE/bin:$PATH
export LD_LIBRARY_PATH=$BASE/lib/w1retap/:$LD_LIBRARY_PATH
if ! test "`whoami`" = "root"
then
echo "Du musst root sein"
exit 0
fi
for I in 0 1 2 3 4 5 6 7 8 9 10
do
T=`w1find DS2490-$I`
if test "`echo $T | grep ^Error `" = ""
then
DEVICE="DS2490-$I"
break
fi
done
echo "USB-Adapter gefunden: $DEVICE"
if ! test -e ~/.config
then
mkdir ~/.config
fi
if ! test -e ~/.config/w1retap
then
mkdir ~/.config/w1retap
fi
if ! test -e ~/.config/w1retap/rc
then
cat > ~/.config/w1retap/rc <<_EOF_
init = w1file
log = w1csv=/tmp/csvlog.txt
altitude = 120
delay = 10
device = $DEVICE
_EOF_
fi
SENSORFILE=~/.config/w1retap/sensors
if ! test -e $SENSORFILE
then
ALLIDS=""
TX=/tmp/w1.$$
w1find $DEVICE > $TX
while read I
do
if ! test "`echo $I | grep 18S20:`" = ""
then
ID=`echo $I | grep "18S20:" | awk {'print $2'} `
if test "`echo $ALLIDS`" = ""
then
ALLIDS=$ID
else
ALLIDS="$ALLIDS,$ID"
fi
echo "$ID:1820:ST:Sensor $ID:C:::" >>$SENSORFILE
echo "$ID:1820:ST:Sensor $ID:C:::"
fi
if ! test "`echo $I | grep 'Serial ID Button'`" = ""
then
CID=`echo $I | grep "Serial ID Button" | awk {'print $2'} `
fi
done < $TX
echo "$CID:Coupler:MAIN:$ALLIDS::AUX:::" >>$SENSORFILE
echo "$CID:Coupler:MAIN:$ALLIDS::AUX:::" fi
w1retap -v 

Wenn sich der Anwender für eine Software entschieden hat und die Sensorwerte auslesen kann, möchte er meist nicht nur einen Überblick über die aktuellen Messwerte, sondern auch über den zeitlichen Verlauf. Für einfache Ansprüche reichen eine kleine Konvertierung und das Auftragen der Messwerte mit Gnuplot [16]. Für die Darstellung komplexerer Diagramme hat sich Rrdtool von Tobias Oetiker durchgesetzt (siehe Abbildung 3).

Abbildung 3: Die mit Rrdtool erzeugte Grafik zeigt die Temperaturwerte in Abhängigkeit von der Zeit.

Abbildung 3: Die mit Rrdtool erzeugte Grafik zeigt die Temperaturwerte in Abhängigkeit von der Zeit.

Digitemp stellt ein Perl-Skript zur Verfügung, das mit Hilfe der GD-Bibliothek Grafiken erzeugt. Für Owfs gibt es den Temploggerd [17], der Werte aufzeichnet und visualisiert. Und natürlich geht das auch alles direkt mit Perl [18]. Im Contrib-Verzeichnis von W1retap finden sich außerdem einige Ruby-Skripte, die eine kleine Wetterstation-Webseite grafisch ansprechend präsentieren. Aber egal welche Variante der Admin wählt, eine einfache Plug & Play-Lösung existiert bisher noch nicht.

Meldung machen - mit Gnokii auch mobil

Neben der grafischen Darstellung der Werte wünscht man sich auch eine Benachrichtigungsfunktion im Alarmfall, zum Beispiel wenn die Temperatur einen Grenzwert überschreitet. Wer noch ein altes Nokia-Handy mit SIM-Karte und Datenkabel besitzt, kann sich mit der Software Gnokii Kurznachrichten per SMS schicken lassen [19]. Wer es dagegen ganz innovativ wünscht, sendet mit einem Skript die Werte der Temperatursensoren an einen Micro-Blogging-Dienst und verfolgt die Ergebnisse online.

Insgesamt kostet jede dieser Lösungen zur Temperaturüberwachung nur einen Bruchteil vergleichbarer kommerzieller Produkte. Zwar sollte der Anwender wissen, von welcher Seite er einen Lötkolben anfasst, aber dann baut sich die individuelle und preiswerte Überwachungslösung fast von selbst.

Dabei sind Serverräume [20] nur eine von vielen Einsatzmöglichkeiten. Zur Ins- piration bietet das Web faszinierende Be- richte über individuelle Wetterstationen, Aquarienfarmen, Weinkeller (mit einem Sensor in einer gefüllten Flasche, [21]), Heizungs- und Solaranlagen [22] oder auch Gewächshäuser.(mfe)

Infos

[1] 1-Wire in Wikipedia:[http://en.wikipedia.org/wiki/1-Wire]

[2] Programmierung: [http://www.maxim-ic.com/app-notes/index.mvp/id/126]

[3] Richtlinien für ein 1-Wire-Netzwerk:[http://www.maxim-ic.com/app-notes/index.mvp/id/148]

[4] IP-Symcon 1-Wire: [http://www.ip-symcon.de/wiki/index.php/1Wire-Bus-System]

[5] Serieller Adapter: [http://www.maxim-ic.com/quick_view2. cfm/qv_pk/ 2923]

[6] DS2480B, serieller 1-Wire-Line-Driver:[http://www.maxim-ic.com/app-notes/index.mvp/id/192]

[7] Datenblatt DS9490R: [http://pdfserv.maxim-ic.com/en/ds/DS9490-DS9490R.pdf]

[8] 1-Wire-Komponenten:[http://www.maxim-ic.com/products/1-wire/index.cfm?CMP=WP-7]

[9] Schneedicke messen mit 1-Wire:[http://voksenlia.net/met/snow.php]

[10] Gewittermessung: [http://www.carterlake.org/lightningdetector_1-wire.php]

[11] Datenblatt DS18S20: [http://datasheets.maxim-ic.com/en/ds/DS18S20.pdf]

[12] Digitemp: [http://www.digitemp.com]

[13] Owfs, 1-Wire File System: [http://owfs.org]

[14] Owfs-Sensoren: [http://owfs.sourceforge.net/ow_table.html]

[15] W1retap-Entwicklerseite: [http://www.zen35309.zen.co.uk/wx/manual.html]

[16] Digitemp & Gnuplot: [https://systemausfall.org/wikis/howto/DigiTemp]

[17] Temploggerd: [http://sourceforge.net/projects/owfs/files/temploggerd]

[18] Michael Schilli, "Temperatursensoren mitPerl auslesen": Linux-Magazin 03/ 06:[http://www.linux-magazin.de/Heft-Abo/Ausgaben/2006/03/Ist-das-nicht-cool]

[19] Andreas Bohne, "Gnokii: Linux und Nokia": Linux Magazin 05/ 00, S. 47

[20] Bastelei Rackmount:[http://www.hoppie.nl/tempsens]

[21] Sensor im Weinkeller:[http://owfs.sourceforge.net/cellar.html]

[22] Heizungssteuerung: [http://www.rockenberg.net/ow.html],[http://extern.fli4l.de/fli4l_opt-db3/search.pl?pid=552]

Der Autor

Dr. Andreas Bohne-Lang arbeitet an der Medizinischen Fakultät Mannheim der Universität Heidelberg und betreut dort neben diverser Hardware auch das komplette Bibliothekssystem.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook