
bifogar create_rrd.sh, get_temp.sh och graph_temp.pl
Kod: Markera allt
#!/bin/bash
# Script to create rrd-file
# 24h with 2,5 min resolution
# 7d with 5 min resolution
# 1y with 10 min resolution
# 20y with 1h resolution
directory="/home/pi/rrddata/"
RRDDataFileOut="outside_temp.rrd"
RRDDataFileIn="inside_temp.rrd"
# Check i file already exists
if [ ! -f "$directory$filename" ]
then
# File doesn't exist, create new rrd-file
echo "Creating RRDtool DB for outside temp sensor"
rrdtool create $directory$filename \
--step 150 \
DS:outsidetemp:GAUGE:300:-50:60 \
DS:insidetemp:GAUGE:300:-50:60 \
RRA:AVERAGE:0.5:1:576 \
RRA:AVERAGE:0.5:2:2016 \
RRA:AVERAGE:0.5:4:52560 \
RRA:AVERAGE:0.5:24:175200 \
RRA:MAX:0.5:1:5760 \
RRA:MAX:0.5:2:2016 \
RRA:MAX:0.5:4:52560 \
RRA:MAX:0.5:24:175200 \
RRA:MIN:0.5:1:5760 \
RRA:MIN:0.5:2:2016 \
RRA:MIN:0.5:4:52560 \
RRA:MIN:0.5:24:175200
echo "Done!"
else
echo $directory$filename" already exists, delete it first."
fi
Kod: Markera allt
#!/bin/bash
OutsideTempSensor="10.27AD18020800"
InsideTempSensor="10.407D18020800"
RRDDataDirectory="/home/pi/rrddata/"
RRDDataFileOut="outside_temp.rrd"
RRDDataFileIn="inside_temp.rrd"
# Get temps form OWFS
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk $
sleep 2;
IndoorTemp=`cat /mnt/1wire/$InsideTempSensor/temperature|sed -e s/" "//g|awk '{$
#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile N:$OutsideTemp
sleep 5;
rrdtool update $RRDDataDirectory$RRDDataFileIn N:$InsideTemp
echo $OutsideTemp
echo $InsideTemp
Kod: Markera allt
#!/usr/bin/perl
use RRDs;
my $cur_time = time();
my $start_time = $cur_time - 86400; # set end time to 24 hours ago
RRDs::graph "/var/www/graph_temp.png",
"--start= $start_time",
"--end= $cur_time",
"--title= Temp ute",
"--height= 300",
"--width= 500",
"--vertical-label= °C",
"DEF:OutsideTemp=/home/pi/rrddata/outside_temp.rrd:outsidetemp:$
"DEF:InsideTemp=/home/pi/rrddata/inside_temp.rrd:insidetemp:AVE$
"COMMENT:\t\t\t\tNu Medel Max Min\\n",
"HRULE:0#0000FF",
"LINE2:OutsideTemp#0000FF:Ute\t\t\t",
"GPRINT:OutsideTemp:LAST:%6.1lf",
"GPRINT:OutsideTemp:AVERAGE:%6.1lf",
"GPRINT:OutsideTemp:MAX:%6.1lf",
"GPRINT:OutsideTemp:MIN:%6.1lf\\n";
"HRULE:18#FFFF00",
"LINE2:InsideTemp#00FF00:Inne\t\t",
"GPRINT:InsideTemp:LAST:%6.1lf",
"GPRINT:InsideTemp:AVERAGE:%6.1lf",
"GPRINT:InsideTemp:MAX:%6.1lf",
"GPRINT:InsideTemp:MIN:%6.1lf\\n";
my $err=RRDs::error;
if ($err) {print "problem generating the graph: $err\n";}
print "Done!\n"