då ska vi se om jag lyckas dela med mig av detta, jag har försökt att använda lite kommentarer i koden, men jag burkar vara ganska dålig på det.
Bara att fråga om det är något som verkar oklart.
Själva graf-generiringen sker i scriptet sh_graph.php Här bestämmer man grafens utsenden utefter några angivna parametrar som skrivs in i adressfältet på web-läsaren.
Den enda som scriptet på custom.php gör är att generera dessa parametrar.
Här är scriptet för att generer och visa grafen.
Kod: Markera allt
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset="utf-8" />
<title><?php echo $_GET["r"] ?> </title>
</head>
<body>
<?php
$filnamn = "graph/" . $_GET["rrd"] . time() . ".png"; //filnamnet på bilden får en tidsstämpel för att undvika problem med att webläsaren cachear bilderna.
// variabler: start title width height rrd Color
create_graph($_GET["t"], $_GET["r"], $_GET["w"], $_GET["h"], $_GET["rrd"], $_GET["c"], $filnamn);
echo "<img src='" . $filnamn . "' alt='Generated RRD image'>";
exit;
function create_graph($start, $title, $width, $height, $rrd, $color, $output) {
$path = "/var/rrddata/temp_"; // Sökvägen till rrd-databasen (ligger i mappen /var/rrddata, men samtliga RRD-filnamn börjar på "temp_", t.ex temp_outside.rrd)
$options = array(
"--slope-mode",
"--start", $start,
"--title=$title",
"--width=$width",
"--height=$height",
"--vertical-label=Temperatur",
"DEF:temp=$path$rrd.rrd:temp_value:AVERAGE", // I mina RRD:er ligger mätvärdet lagrat i tabellen temp_value.
"LINE1:temp#$color:$rrd",
"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($output, $options, count($options));
if (! $ret) {
echo "<b>Graph error: </b>".rrd_error()."\n";
}
}
?>
</body>
</html>
Och scriptet som generar samliga parametrar:
Kod: Markera allt
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="sh_graph.php" method="get"> <!--scriptet sh_graph.php bör ligga i samma mapp-->
<br>
start: <input type="text" value="-7d" name="t" /> <!-- Default värdet anges i paametern value, i detta fallet -7d som inebär att det hämtas data från 7 dagar bakåt, här går det även att ange, år (y) månad (m) vecka (w) timme (h) etc-->
<br>
Titel: <input type="text" value="null" name="r" />
<br>
Bredd: <input type="text" value="1024" name="w" />
<br>
höjd: <input type="text" value="600" name="h" />
<br>
databas:
<select name="rrd">
<option value="outside">utomhus</option> <!--här läggs de olika rrd:erna till, value är det som filen heter-->
<option value="vardagsrum">inomhus</option>
<option value="server">server</option>
<option value="wine">vinkällare</option>
<option value="boiler">Varmvatten</option>
<option value="tillopp">tillopp</option>
<option value="retur">retur</option>
<option value="brine_retur">Brine_retur</option>
<option value="brine_tillopp">Brine_tillopp</option>
</select>
<br>
färg: <input type="text" value="009900" name="c" />
<br>
<input type="submit" value="generera" />
</form>
</body>
</html>