DigiTemp 3.7.2 (binary only)

Was ist digitemp?

DigiTemp screenshot

Digitemp ist eine Software zum Auslesen von 1-Wire Temperatursensoren als auch anderen von Dallas zur Verfügung gestellten 1-Wire Komponenten, z.B. DS1820.

Wichtiger Hinweis

Tipp bei Verwendung mehrerer USB-RS232-Adapter an einer Fritzbox

Wer mehrere USB-RS232-Adapter an seiner Fritzbox verwendet und das Problem hat, dass diese mal /dev/ttyUSB0, mal /dev/ttyUSB1 usw. heißen, kann mit folgendem Eintrag in rc.custom einen Adapter mit pl2303-Chip fest auf ein Device legen (mittels Softlink - danke an kuppe für diesen Tipp in diesem bzw. diesem Thread!):

	# digitemp-Link erstellen (pl2303)
	USBNR=$(grep 2303 /proc/tty/driver/usbserial | cut -d ":" -f1)
	ln -s /dev/ttyUSB$USBNR /dev/digitemp

Die Device ID findet man mit lsusb-freetz heraus (Package selection → Debug helpers → usbutils). Ein Blick nach /proc/tty/driver/usbserial hilft auch weiter, z.B. könnte das Resultat so aussehen (bei 2 Adaptern mit je einem pl2303- bzw. einem ftdi-Chipsatz):

	root@fb1 /var/mod/root $ cat /proc/tty/driver/usbserial
	usbserinfo:1.0 driver:v2.0
	0: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:1 path:usb-ahci_hcd-1.1
	1: module:pl2303 name:"PL-2303" vendor:067b product:2303 num_ports:1 port:1 path:usb-ahci_hcd-1.2

Falls man also statt eines pl2303-Chip Adapters einen mit FTDI-Chip fest verdrahten will, müsste obiger Code so aussehen:

	# digitemp-Link erstellen (ftdi)
	USBNR=$(grep ftdi /proc/tty/driver/usbserial | cut -d ":" -f1)
	ln -s /dev/ttyUSB$USBNR /dev/digitemp

Bei RRDstats → Einstellungen ist unter “Serieller Port:” dann natürlich entsprechend /dev/digitemp zu wählen (statt /dev/ttyUSB0 o.ä.).

Datenbank

Bis zu r11010 konnte mit einem Intervall von 60 Sekunden 146 Tage aufgezeichnet werden, mit 150 Sekunden 1 Jahr. Ab dieser Revision werden die Datenbanken von DigiTemp und RRDstats-Kabelsegment mit 2 Jahren bei 60 Sekunden erstellt. Damit wachsen die einzelnen Dateien von ~85kB auf ~150kB. Existierende rrd-Datenbanken kann man so neue RRAs hinzufügen (für experimentierfreudige):

	## box
	rc.rrdstats stop
	rc.rrdstats backup
	for x in *.rrd; do rrdtool dump $x > ${x%rrd}xml; done
	#rm -rf *.rrd

	## pc
	rm -rf rrdtoolx.py 2>/dev/null
	wget 'http://minkirri.apana.org.au/~abo/projects/rrdcollect/rrdtoolx.py'
	chmod +x rrdtoolx.py
	# fix for parsing '<min> 0.0000000000e+00 </min>' => '(0, 0.0)' -> 0
	sed "s/+ cmd/&.replace('(0, 0.0)','0')/g" -i rrdtoolx.py
	# fix for parsing '<min> -6.7000000000e+01 </min>' => '(-6, 70000000000.0)' -> -67
	sed "s/+ cmd/&.replace('(-6, 70000000000.0)','-67')/g" -i rrdtoolx.py
	# fix for parsing '<min> 2.5700000000e+02 </min>' => '(2, 570000000000.0)' -> 257
	sed "s/+ cmd/&.replace('(2, 570000000000.0)','257')/g" -i rrdtoolx.py

	# xml > rrd
	for x in *.xml; do rrdtool restore $x ${x%xml}rrd; done
	rm -rf *.xml
	# rrd > out
	for x in *.rrd; do ./rrdtoolx.py addrra $x ${x%rrd}out RRA:MIN:0.5:360:2920 RRA:AVERAGE:0.5:360:2920 RRA:MAX:0.5:360:2920; done
	rm -rf *.rrd
	# out > xml
	for x in *.out; do rrdtool dump $x > ${x%out}xml; done
	rm -rf *.out
	# fix newer dump format
	sed '1,2d' -i *.xml

	## box
	for x in *.xml; do rrdtool restore $x ${x%xml}rrd; done
	rm -rf *.xml
	rc.rrdstats restore
	rc.rrdstats start