Geloggte Sensorwerte darstellen
Das Auslesen und Darstellen der Sensorwerte besort die Datei show.php, die ins Verzeichniss /var/www/html gehöhrt.
Die Benutzen Sensoren müssen in der Datei angegeben werden.
/var/www/html/show.php
!-- in Zeile 1 entfernen, -- in Zeile 32 und alle " in " müssen ' sein... die Darstellung der PHP-Dateien ist leider fehlerhaft. Demnächste gibt es alle PHP Dateien und die dazugehörigen Grafiken zusätzlich als ZIP-Datei zum runterladen.
Letzter Zustand";
echo"
";
foreach ($sensoren as $id => $sensorname) {
$res=mysqli_query($db,"select datum,zeit,wert from log where sensor='$id' order by id desc limit 0,1");
$row=mysqli_fetch_array($res);
echo" ".$row['datum']." - ".$row['zeit']." - ".$sensorname.": ".$row['wert'];
}
echo" | ";
foreach ($gpios as $relais => $port)
echo 1-trim(shell_exec("/usr/bin/gpio -g read ".$port[0]))." - Relais ".$relais." - GPIO-Port".$port[0]." - ".$port[1]." "; // mit wiringPi zustand auslesen
echo" |
";
$res=mysqli_query($db,"select datum from log order by datum desc");
while ($row = $res->fetch_array())
$datum[$row['datum']]++;
echo"
";
if (!$_GET['datum']) $_GET['datum']=date("Y-m-d");
if ($_GET['datum']) {
echo"";
$res=mysqli_query($db,"select zeit from log where datum='".$_GET['datum']."' order by zeit desc limit 0,1");
$row = $res->fetch_array();
$bis_zeit=zeit2min($row[0]);
foreach($sensoren as $id => $name) {
unset($wert);
echo "
".$name;
$res=mysqli_query($db,"select * from log where datum='".$_GET['datum']."' and sensor='".$id."' order by id");
while ($row = $res->fetch_array()) {
$wert[zeit2min($row['zeit'])]=$row['wert'];
//echo "
".$row['zeit']." - ".zeit2min($row['zeit'])." - ".$row['wert'];
}
@$max=max($wert);
@$min=min($wert);
echo " von: $min bis: $max";
@$darstellungsfaktor=$darstellungshoehe/($max-$min);
$pixelfarbe="blau";
if (strstr($name,"Temp")) $pixelfarbe="rot";
if (strstr($name,"Luft")) $pixelfarbe="hellblau";
if (strstr($name,"Boden")) $pixelfarbe="hellbraun";
if (strstr($name,"Licht")) $pixelfarbe="gelb";
echo"
$max | ";
$x=$wert[0];
for($i=0; $i<=$bis_zeit; $i++) {
if ($wert[$i]) $x=$wert[$i];
echo"";
}
echo" |
$min |
";
}
}
mysqli_close($db);
?>
Zur grafischen Darstellung sind noch ein paar Bilder im Verzeichnis /var/www/html/img nötig:
tab-hintergrund.png blau.gif gelb.gif hellbau.gif hellbraun.gif rot.gif
Die show.php kann lokal auf dem Raspi oder im Netzwerk aufgerufen werden.