Mai, 2013

X Forwarded wollte nicht mehr

Mittwoch, Mai 22nd, 2013

Heute wollte auf einem der Server trotz, ssh -X oder -Y, kein X Forwarded mehr. Nach Kurzer suche war der Fehler ganz einfach.
# xterm
xterm Xt error: Can't open display: %s
xterm: DISPLAY is not set

Es Fehlte einfach nur das Paket xauth, danach ging alles wieder.
apt-get install xauth

Pool Temperatursennsor Teil 2

Mittwoch, Mai 15th, 2013

Da die Hardware nun Funktionierte wollte ich natürlich auch schöne RRD Graphen erstellen. Alles was man dafür braucht das Debian Weezey Image für den PI und Installiertes RRD:
apt-get install rrdtool

Dazu müssen die folgenden Module geladen sein:
modprobe wire
modprobe w1_gpio
modprobe w1_therm

Dieses Script such nun automatisch alle 1-Wire Sensoren ab und erstelle für sie ein RRD Graph.

#!/bin/bash

rrddata=/usr/local/rrd
rrdimg=/var/www/img

if [ ! -d "/sys/bus/w1/devices/w1_bus_master1/" ]; then
	echo "dir not exist: /sys/bus/w1/devices/w1_bus_master1/ kernel module laden?"
	echo "  modprobe wire; modprobe w1_gpio; modprobe w1_therm"
	exit 1
fi
if [ ! -e "/usr/bin/rrdtool" ]; then
	echo "rrdtool not installd"
	exit 1
fi

for dev in $(ls /sys/bus/w1/devices/w1_bus_master1/ | grep ^10 ); do 
	echo $dev
	if [ ! -e "$rrddata/$dev.rrd" ]; then
		echo "create: $rrddata/$dev.rrd"
		if [ ! -d "$rrddata" ]; then
			mkdir -pv "$rrddata"
		fi
		rrdtool create "$rrddata/$dev.rrd" --step 60 \
                        DS:celsius:GAUGE:600:U:U \
                        RRA:AVERAGE:0.5:1:2880 \
                        RRA:AVERAGE:0.5:60:700 \
			RRA:AVERAGE:0.5:240:720 \
			RRA:AVERAGE:0.5:1440:730 || exit 1
	fi

	temperatur=$(grep 't=' /sys/bus/w1/devices/w1_bus_master1/$dev/w1_slave | awk -F '=' '{print $2}')
	echo "$temperatur"
	/usr/bin/rrdupdate "$rrddata/$dev.rrd" N:$temperatur

	if [ ! -d $rrdimg ]; then
		mkdir -p "$rrdimg"
	fi
	/usr/bin/rrdtool graph $rrdimg/$dev.png -a PNG -w 1000 -h 300 -M -s -129600 -v "Grad Celsius" \
                "DEF:c=$rrddata/$dev.rrd:celsius:AVERAGE" \
                "CDEF:gc=c,1024,/" \
                "AREA:gc#00FF00:Grad Celsius" \
                "GPRINT:gc:LAST:Last \:    %3.2lf °C" \
                "GPRINT:gc:AVERAGE:Average \: %3.2lf °C" \
                "GPRINT:gc:MIN:Min \: %3.2lf °C" \
                "GPRINT:gc:MAX:Max \: %3.2lf °C"
done

exit 0

Das Script habe ich dann in crontab -e eingetragen, so das es Jede Minute ausgeführt wird. Damit meine CF Karte dabei nicht kaputt geschrieben wird habe ich für das erstelle Image eine tmpfs angelegt. Für mein Beispiel habe ich in der /etc/fstab
tmpfs /var/www/img tmpfs defaults,size=2M 0

10-0008028994f4

[Update]
mit einem Kernel Update waren plötzlich alle Sensoren verschwunden. Hierfür musste man die in der /boot/config.txt folgenden Option hinzufügen.

dtoverlay=w1-gpio

Pool Temperatursennsor Teil 1

Mittwoch, Mai 15th, 2013

Mit dem raspberry pi ist es ganz einfach/kostengünstig einen Temperatursensor zubauen. Dafür Reicht auch schon die günstiger A Variante des Pi. Dazu habe ich noch zwei DS 18S20 one-wire Sensors und einen 4,7k Ohm Wiedersand bestellt. Als Kable hebe ich ein altes COM Kabel aus dem Schrank gezogen, das Passt da man nur die ersten 9 Pins Benötigt. Außerdem habe ich noch ein WLAN Modul gekauft, da dort wo der pi verbaut werden soll, lediglich Strom liegt und kein Netzwerk Anschluss.

Aufbau:
paspberry_DS18S20

Anschlüsse:

PI		DS 18S20
1      3,3V	3
6      GND	1
7      GPIO4	2

Zum Testen bevor ich die Sensoren in eine Wasserfeste hülle in epoxidharz gieße, wollte ich die Komponenten erst mal Dauer testen. Dafür habe ich jetzt einige Tage die Komponenten auf meinen Balkon gestellt.

rpy01

Kosten:

1x raspberry pi v.A 27,85 €
2x DS 18S20          2,20 €
1x EDIMAX EW-7811UN  8,95 €
   Summe:           41,20 €