Har kört ett perlscript nu ett tag som jag fick här ifrån vill jag minnas men tycker att jag får fladdriga grafer så
idag gick jag in och körde ut min databas till xml och kollade lite hur den såg ut och tycker att jag har lite märkliga värden
Har följande script com jag kör var femte minut via cron.
Kod: Markera allt
#!/usr/bin/perl
#
# copyright Martin Pot 2006
# http://martybugs.net/electronics/tempsensor/
#
# thanks to Petr for suggestions relating to better handling of failed data reads
#
# rrd_tempsensor.pl
use lib qw(/usr/lib/perl5);
use RRDs;
# define location of rrdtool databases
my $rrd = '/var/temperature/rrd';
# define location of images
#my $img = '/home/hardinth/public_html/temps/';
my $img = '/var/www/simon/temp';
# process data for each devices (add/delete as required)
&ProcessSensor("sovrum_temp", "Temperatur sovrum");
&ProcessSensor("ute_temp", "Temperatur ute");
&ProcessSensor("vardagsrum_temp", "Temperatur vardagsrum");
#&ProcessSensor("your device id here", "temp sensor 2");
sub ProcessSensor
{
# process sensor
# inputs: $_[0]: sensor number (ie, 0/1/2/etc)
# $_[1]: sensor description
# get temperature from sensor
my $temp = `grep . /media/1-wire/$_[0]/temperature | sed -e s/" "//g`;
# remove eol chars
chomp($temp);
print "sensor $_[0]: $temp degrees C\n";
# if rrdtool database doesn't exist, create it
# OBS Skapa katalogen RRD_DB manuellt!
if (! -e "$rrd/owfs-$_[0].rrd")
{
print "creating rrd database for temp sensor $_[0]...\n";
RRDs::create "$rrd/owfs-$_[0].rrd",
"-s 300",
"DS:temp:GAUGE:600:U:U",
"RRA:AVERAGE:0.5:1:2016",
"RRA:AVERAGE:0.5:6:1344",
"RRA:AVERAGE:0.5:24:2190",
"RRA:AVERAGE:0.5:144:3650",
"RRA:AVERAGE:0.3:1440:1825";
}
if ($ERROR = RRDs::error) { print "$0: failed to create $_[0] database file: $ERROR\n"; }
# check for error code from temp sensor
if (int $temp ge 85)
{
print "failed to read value from sensor $_[0]\n";
}
else
{
# insert values into rrd
RRDs::update "$rrd/owfs-$_[0].rrd",
"-t", "temp",
"N:$temp";
if ($ERROR = RRDs::error) { print "$0: failed to insert $_[0] data into rrd: $ERROR\n"; }
}
# create graphs for current sensor
&CreateGraph($_[0], "day", $_[1]);
&CreateGraph($_[0], "week", $_[1]);
&CreateGraph($_[0], "month", $_[1]);
&CreateGraph($_[0], "year", $_[1]);
&CreateGraph($_[0], "5year", $_[1]);
}
sub CreateGraph
{
# creates graph
# inputs: $_[0]: sensor number (ie, 0/1/2/etc)
# $_[1]: interval (ie, day, week, month, year)
# $_[2]: sensor description
RRDs::graph "$img/temp-$_[0]-$_[1].png",
"-s -1$_[1]",
"-t $_[2]",
"--lazy",
"-A",
"-h", "150", "-w", "475",
"-a", "PNG",
"-v Lägenheten",
"--slope-mode",
"DEF:temp=$rrd/owfs-$_[0].rrd:temp:AVERAGE",
"LINE2:temp#0000FF::",
"GPRINT:temp:MIN: Min\\: %6.1lf",
"GPRINT:temp:MAX: Max\\: %6.1lf",
"GPRINT:temp:AVERAGE: Snitt\\: %6.1lf",
"GPRINT:temp:LAST: Nuvarande\\: %6.1lf grader C\\n";
if ($ERROR = RRDs::error) { print "$0: unable to generate sensor $_[0] $_[1] graph: $ERROR\n"; }
}
Hoppas att någon kan hjälpa mig med vad som kan vara tokigt eller om graferna ska se ut

//Mille