DBlog added

git-svn-id: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem@579 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinhaas
2010-03-12 13:02:16 +00:00
parent 309436c259
commit c3c8455492
10 changed files with 346 additions and 101 deletions

View File

@@ -6,7 +6,7 @@
################
function drawgnuplot($gnudraw,$gnutyp,$gnuplot,$pictype,$logpath,$FHTyrange,$FHTy2range)
function drawgnuplot($gnudraw,$gnutyp,$gnuplot,$pictype,$logpath,$FHTyrange,$FHTy2range,$DBUse)
{
if ($gnutyp=="userdef")
@@ -33,6 +33,19 @@ function drawgnuplot($gnudraw,$gnutyp,$gnuplot,$pictype,$logpath,$FHTyrange,$FHT
$IN="$gnudraw ($gnutyp)";
}
### DBUse for
if ($DBUse == '1' and ( $gnutyp=='FHT' or $gnutyp=='HMS100T' or $gnutyp=='HMS100TF' or $gnutyp=='CUL_WS' or $gnutyp=='KS300_t1' or $gnutyp=='KS300_t2' or $gnutyp=='WS300_t1' or $gnutyp=='WS300_t2'))
{
include "config.php";
$logfile="tmp/".$gnudraw.".log";
$f1=fopen($logfile,"w+");
};
$gnudraw1=$gnudraw.'1';
$OUT1="set output 'tmp/$gnudraw.$pictype'";
$OUT2="set output 'tmp/$gnudraw1.$pictype'";
@@ -47,17 +60,26 @@ $gplothdr="
set title '$IN'
set grid
";
$datumtomorrow= mktime (0,0,0,date("m") ,date("d")+1,date("Y"));
$xrange1= date ("Y-m-d",$datumtomorrow);
$datumyesterday= mktime (0,0,0,date("m") ,date("d")-1,date("Y"));
$datumweek= mktime (0,0,0,date("m") ,date("d")-6,date("Y"));
$xrange2= date ("Y-m-d",$datumyesterday);
$xrange="set xrange ['$xrange2':'$xrange1']
";
$xrange3= date ("Y-m-d",$datumweek);
$xrange="set xrange ['$xrange2':'$xrange1'] ";
$xrangeweek="set xrange ['$xrange3':'$xrange1'] ";
switch ($gnutyp):
Case FS20: ############################################
$gplotmain=<<<EOD
set size 1,0.5
set noytics
set noy2tics
@@ -65,10 +87,24 @@ set yrange [-0.2:1.2]
set ylabel "On/Off"
plot "< awk '{print $1, $3==\"on\"? 1 : $3==\"dimup\"? 1 : $3==\"dimdown\"? 0 : $3==\"off\"? 0 : 0.5;}' $logfile" using 1:2 title '' with steps
EOD;
#plot "< awk '{print $1, $3==\"on\"? 1 : $3==\"dimup\"? 0.8 : $3==\"dimdown\"? 0.2 : $3==\"off\"? 0 : 0.5;}' $logfile" using 1:2 title '' with steps
break;
Case WS300_t1: ############################################
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' and reading='data' order by timestamp desc limit ".$logrotateKS300lines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->value\n");
}
fclose($f1);
}
$gplotmain="
set ylabel 'Temperature (Celsius)'
set y2label 'Humidity (%)'
@@ -77,7 +113,21 @@ break;
";
break;
Case WS300_t2: ############################################
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' and reading='data' order by timestamp desc limit ".$logrotateKS300lines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->value\n");
}
fclose($f1);
}
$gplotmain=<<<EOD
set ylabel "Air Pressure (hPa)"
set y2label "Willi"
@@ -86,7 +136,21 @@ plot "< grep -v avg $logfile" using 1:8 axes x1y1 title 'Air Pressure' with line
EOD;
break;
Case KS300_t1: ############################################
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' and reading='data' order by timestamp desc limit ".$logrotateKS300lines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->value\n");
}
fclose($f1);
}
$gplotmain="
set ylabel 'Temperature (Celsius)'
set y2label 'Humidity (%)'
@@ -95,16 +159,44 @@ EOD;
";
break;
Case KS300_t2: ############################################
$gplotmain=<<<EOD
set ylabel "Wind (Km/h)"
set y2label "Rain (l/m2)"
plot "< grep -v avg $logfile" using 1:8 axes x1y1 title 'Wind' with lines, \
"< grep -v avg $logfile" using 1:10 axes x1y2 title 'Rain' with lines
EOD;
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' and reading='data' order by timestamp desc limit ".$logrotateKS300lines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->value\n");
}
fclose($f1);
}
$gplotmain="
set ylabel 'Wind (Km/h)'
set y2label 'Rain (l/m2)'
plot '$logfile' using 1:8 axes x1y1 title 'Wind' with lines, \
'$logfile' using 1:10 axes x1y2 title 'Rain' with lines
";
break;
Case FHT: ############################################
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' order by timestamp desc limit ".$logrotateFHTlines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->reading $row->value\n");
}
fclose($f1);
}
$gplotmain="
set ylabel 'Temperature (Celsius)'
set yrange [$FHTyrange]
@@ -136,6 +228,15 @@ EOD;
break;
Case HMS100T: ############################################
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' and reading='data' and type='HMS' order by timestamp desc limit ".$logrotateHMSlines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->value\n");
}
fclose($f1);
}
$gplotmain="
set ylabel 'Temperature (Celsius)'
plot '$logfile' using 1:4 axes x1y1 title 'Temperature' with lines lw 2
@@ -166,6 +267,16 @@ EOD;
Case HMS100TF: ############################################
Case CUL_WS: ############################################
if ($DBUse==1)
{
$sqlarray=mysql_query("select timestamp,reading,value from history where device='".$gnudraw."' and reading='data' and (type='HMS' or type='CUL_WS') order by timestamp desc limit ".$logrotateHMSlines."") or die (mysql_error());
while ($row = mysql_fetch_object($sqlarray)) {
$date=str_replace(" ","_",$row->timestamp);
fputs($f1,"$date $gnudraw $row->value\n");
}
fclose($f1);
}
$gplotmain="
set ylabel 'Temperature (Celsius)'
set y2label 'Humidity (%)'
@@ -176,10 +287,13 @@ EOD;
default:
endswitch;
$message=$OUT1.$gplothdr.$gplotmain;
$f1=fopen("tmp/gnu1","w+");
fputs($f1,$message);
fclose($f1);
$message=$OUT1.$gplothdr.$xrangeweek.$gplotmain;
$f3=fopen("tmp/gnu1","w+");
fputs($f3,$message);
fclose($f3);
exec("$gnuplot tmp/gnu1",$output);
$message=$OUT2.$gplothdr.$xrange.$gplotmain;