Niklas skrev:Utan att använda CMD, med stöd för RRDTOOL direkt i php:
Kod: Markera allt
<?
$opts = array(
'--start=end-1m',
'DEF:energi=/home/niklas/rrd/energi.rrd:energi:AVERAGE',
'CDEF:W=energi,3600,*',
'CDEF:W_real=energi,1000,/',
'VDEF:value_sum=W_real,TOTAL',
'PRINT:value_sum:%0.2lf'
);
$result = rrd_graph('/dev/null', $opts, count($opts));
if ($result === false) {
echo 'There was an error: ';
echo rrd_error();
}
else {
print_r($result);
}
?>
Ger mig:
Kod: Markera allt
Array ( [xsize] => 0 [ysize] => 0 [calcpr] => Array ( [0] => 2309.40 ) )
Dvs 2309.40kwh den senaste månaden.

Hm, jag får ut:
Kod: Markera allt
Array ( [xsize] => 697 [ysize] => 301 [calcpr] => Array ( ) ) Array ( [xsize] => 697 [ysize] => 301 [calcpr] => Array ( ) )
Någonstans måste jag ju gjort fel, eller eftersom array verkar tom?
Kod (Lånad från någonstans, nu med lustiga tecken från SSH-klienten..):
Kod: Markera allt
<?php
$rrd = "/home/patrik/rrddata/outside_temp.rrd"; // S�kv�gen till rrd-databasen.
$max_month = date('m'); // Max antal m�nader att r�kna upp. Nuvarande m�nad anges som max.
$year = date('Y'); // Vilket �r. Nuvarande �r anges. Om 2010 anges s� �ndras max_month till 12 f�r att f� hela �ret.
$width = "600";
$height = "200";
$now = date('Y-m-d');
for ($i = 1; $i <= $max_month; $i++) { //k�r loopen tills nuvarande m�nad har r�knats upp.
$month = $i; // Vilken m�nad. (Skapas av loopen)
$starttime1 = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year)); // datum i lite mer l�sbart format
$endtime1 = date('Y-m-t', mktime(0, 0, 0, $month, 1, $year)); // datum i lite mer l�sbart format
$starttime = strtotime(date('Y-m-d', mktime(0, 0, 0, $month, 1, $year))); // Startdatum i Unixtid
$endtime = strtotime(date('Y-m-t', mktime(0, 0, 0, $month, 1, $year))); // Slutdatum i Unixtid
$filename = "temp_" . $starttime1 . "_" . $endtime1 . ".png";
$opts = array(
"--imgformat", "PNG",
"--start", "$starttime",
"--end", "$endtime",
"--width", "$width",
"--height", "$height",
"--slope-mode",
"--title",
"Temp $starttime1 till $endtime1",
"--vertical-label", "°C",
"--lower", "0",
"DEF:temp=$rrd:outsidetemp:AVERAGE",
"LINE1:temp#000000:Ute",
"GPRINT:temp:LAST:Temperatur %0.2lf\\n",
"GPRINT:temp:MIN:Min\: %0.2lf%s",
"GPRINT:temp:AVERAGE:Medel\: %0.2lf%s",
"GPRINT:temp:MAX:Max\: %0.2lf%s\\n",
"COMMENT:Tid\: $now"
);
$ret = rrd_graph($filename, $opts, count($opts));
if ($ret === false) {
$err = rrd_error();
echo "rrd_graph() FEL: $err\n";
}
else {
print_r($ret);
}
}
?>