Temperatur vom 1wire (lokale 1wire-Schnittstelle mit owfs)

Wenn man 1wire einsetzt kann man mit diesem Script die Werte direkt von einem 1wire Sensor lesen und in eine RRD Datenbank füllen:

Hier hat der 1wire Sensor die ID 28.AB8BCB040000, diese muss angepasst werden!!

Dieses Script funktioniert so wenn es unter /var/www/rrd/1wire_temp_aussen gespeichert (und ausführbar) ist.

#!/bin/bash
#

cd /var/www/rrd

# create database if not exists
[ -f 1wire_temp_aussen.rrd ] || {
/usr/bin/rrdtool create 1wire_temp_aussen.rrd --step 300 \
DS:temp:GAUGE:1200:U:U \
RRA:AVERAGE:0.5:1:3200 \
RRA:AVERAGE:0.5:6:3200 \
RRA:AVERAGE:0.5:36:3200 \
RRA:AVERAGE:0.5:144:3200 \
RRA:AVERAGE:0.5:1008:3200 \
RRA:AVERAGE:0.5:4320:3200 \
RRA:AVERAGE:0.5:52560:3200 \
RRA:AVERAGE:0.5:525600:3200
}

# read the temperature (degrees celsius)
TEMPERATURE=`owget /uncached/28.AB8BCB040000/temperature`

# remove leading character
TEMPERATURE=`echo $TEMPERATURE | cut -c 1-`

/usr/bin/rrdtool update 1wire_temp_aussen.rrd N:$TEMPERATURE

Im /etc/crontab muss folgende Zeile hinzugefügt werden, um das Script alle 5 Minuten aufzurufen:

*/5 *   * * *   root    /var/www/rrd/1wire_temp_aussen