Hamburger Hamburger

Heating and Ventilation Control

/HV_showLog

Keine Erläuterungen gefunden.

<?php 
/* published under GPL www.gnu.org/licenses/gpl.html */
  /*
  $file="2013-08-24T00-00-01.log";
  $mode="solar";
  HV_showLog($file,$mode);
  */

function checkDataStructure($file){
  $delimiter = "\t";
  $date = substr($file,strpos($file,"_")+1);
  $path =substr($date,0,7)."/";
  $date = substr($date,0,10);
  $file = $path.$file;
  $cmd = "head -1 ".$file;
  exec($cmd,$output);
  $varNames = explode($delimiter,$output[0]);

  for($k=0;$k<count($varNames);$k++){
    $ColNo[$varNames[$k]]=$k+1;
  } #k
  
  $cmd = "tail -1 ".$file;
  exec($cmd,$output);
  $values = explode($delimiter,$output[1]);
  $time = $values[0];

  /*
  echo "<p>".$time." ".$path."</p>";
  print_r($ColNo);
  */
  return array($date,$time,$ColNo,$path);
}


function HV_showLog($timeStamp){
    $delimiter="\t";
    if(isset($_GET['mode'])){
        $mode=$_GET['mode'];
        $file=$_GET['file'];
    }else{
        $mode="default";
    }
    switch($mode){
    case "solar":
        list($date,$time,$ColNo,$path) = checkDataStructure($file);
        $fileS = $path.$file;
        $fileA = str_replace("sensors","actuators",$fileS);
        $fileW = $path."weather_".$date.".log";
        $plot = "set grid\n";
        $plot.= "set datafile missing \"-999.0\"\n";
        $plot.= "set term svg size 1200,400 \n";
        $plot.= "set output 'log.svg'\n";
        $plot.= "set key outside top right Left reverse\n";
        $plot.= "set xlabel 'time'\n";
        $plot.= "set ylabel 'Temperature [C]'\n";
        $plot.= "set yrange [0:110]\n";
        $plot.= "set y2label 'Power [kW]'\n";
        $plot.= "set y2range [0:7]\n";
        $plot.= "set xdata time\n";
        #$plot.= "set timefmt '%Y-%m-%dT%H:%M'\n";
        $plot.= "set timefmt '%H:%M'\n";
        $plot.= "set format x '%H:%M'\n";
        $plot.= "set y2tics\n";
        $plot.= "plot '".$fileW."' u 1:4              w lp lc rgb 'black' title 'T_{aussen}', \\\n";
        #    $plot.= "plot '".$fileW."' u 1:(2.5*$".$ColNo['sun']."*69.7/1000*($".$ColNo['flow']."-$".$ColNo['ret'].")) axis x1y2 w l lc rgb '#c0c0c0' title 'P_solar',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['flow']." w l lc rgb '#008000' title 'T_{Vorlauf}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['ret']."  w l lc rgb '#00ff00' title 'T_{Ruecklauf}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['TLow']." w l lc rgb 'orange' lw 3 title 'T_{Speicher unten}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['THot']." w l lc rgb 'red' lw 3 title 'T_{Seicher oben}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['coll']." w l lc rgb '#800080' lw 3 title 'T_{Kollektor}',\\\n";
        $plot.= " '".$fileA."' u 1:(100*$2)           w p lc rgb 'blue' ps 0.5 title 'A_{solar}'\n";
        #$plot.= "pause -1";
        $fd = fopen("log.gp","w");
        fputs($fd,$plot);
        fclose($fd);
        exec("gnuplot log.gp");
        #sleep(1);
        $result ="<p align='center'><img src='log.svg' alt='logfile'></p>";
        $result.="<p align='center'><a href='?what2do=showLog'>show Logfile</a></p>\n";
        return $result;
        break;
    case "heating":
        list($date,$time,$ColNo,$path) = checkDataStructure($file);
        $fileS = $path.$file;
        $fileA = str_replace("sensors","actuators",$fileS);
        $fileW = $path."weather_".$date.".log";
        $plot = "set grid\n";
        $plot.= "set datafile missing \"-999.0\"\n";
        $plot.= "set term svg size 1200,400 \n";
        $plot.= "set output 'log.svg'\n";
        $plot.= "set key outside top right Left reverse\n";
        $plot.= "set xlabel 'time'\n";
        $plot.= "set ylabel 'Temperature [C]'\n";
        $plot.= "set yrange [0:70]\n";
        $plot.= "set y2label 'Sonnenschein'\n";
        # $plot.= "set y2label 'Power [kW]'\n";
        $plot.= "set y2range [0:1]\n";
        $plot.= "set y2tics 0,0.5,1\n";
        $plot.= "set xdata time\n";
        $plot.= "set timefmt '%H:%M'\n";
        $plot.= "set format x '%H:%M'\n";
        # $plot.= "set y2tics\n";
        $plot.= "set style fill transparent solid 0.15 noborder\n";
        $plot.= "plot '".$fileW."' u 1:10  axis x1y2 w filledcurve fillcolor rgb '#ffee00' notitle, \\\n";
        $plot.= " '".$fileW."' u 1:10  axis x1y2 w l lc rgb 'yellow' title 'Sonnenschein', \\\n";
        $plot.= " '".$fileW."' u 1:4 w lp lc rgb 'black' title 'T_{aussen}', \\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['TLow']." w l lc rgb 'orange' lw 3 title 'T_{Speicher unten}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['THot']." w l lc rgb 'red' lw 3 title 'T_{Seicher oben}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['fire']." w l lc rgb '#008000' lw 3 title 'T_{Ofen}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['haus1']." w l lc rgb '#ff00ff' lw 3 title 'T_{Haus,WZ}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['haus2']." w l lc rgb '#ff00ff' lw 3 title 'T_{Haus,Maren}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['haus3']." w l lc rgb '#990099' lw 3 title 'T_{Haus,Arne}',\\\n";
        $plot.= " '".$fileA."' u 1:($4*10) w p lc rgb '#008080' pt 1 title 'A_{pump}',\\\n";
        $plot.= " '".$fileA."' u 1:($3*15) w p lc rgb 'blue' title 'A_{oven}'\n";
        #$plot.= "pause -1";
        $fd = fopen("log.gp","w");
        fputs($fd,$plot);
        fclose($fd);
        exec("gnuplot log.gp");
        #sleep(1);
        $result ="<p align='center'><img src='log.svg' alt='logfile'></p>";
        $result.="<p align='center'><a href='?what2do=showLog'>show Logfile</a></p>\n";
        return $result;
        break;
    case "ventilation":
        list($date,$time,$ColNo,$path) = checkDataStructure($file);
        $fileS = $path.$file;
        $fileA = str_replace("sensors","actuators",$fileS);
        $fileW = $path."weather_".$date.".log";
        $plot = "set grid\n";
        $plot.= "set datafile missing \"-999.0\"\n";
        $plot.= "set term svg size 1200,400 \n";
        $plot.= "set output 'log.svg'\n";
        $plot.= "set key outside top right Left reverse\n";
        $plot.= "set xlabel 'time'\n";
        $plot.= "set ylabel 'Temperature [C]'\n";
        # $plot.= "set y2label 'ventilation level'\n";
        $plot.= "set y2range [0:4]\n";
        #$plot.= "set key top left Left reverse\n";
        #   $plot.= "set boxwidth 1.0\n";
        $plot.= "set datafile missing '-999.0'\n";
        $plot.= "set y2tics ('off' 0, 'min' 0.27, 'normal' 0.6, 'max' 1) textcolor rgb '#008080'\n";
        $plot.= "set xdata time\n";
        $plot.= "set timefmt '%H:%M'\n";
        $plot.= "set format x '%H:%M'\n";
        $plot.= "plot '".$fileA."' u 1:($5) axis x1y2  w steps lw 2 lc rgb '#008080' title 'ventilation',\\\n";
        $plot.=" '".$fileW."' u 1:4 w lp lc rgb 'black' lw 3 title 'T_{aussen}', \\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['erde']." w l lc rgb '#0000ff' lw 3 title 'T_{Erde}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['zulu']."  w l lc rgb '#00ff00' lw 3 title 'T_{Zuluft}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['ablu']." w l lc rgb 'red' lw 3 title 'T_{Abluft}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['folu']." w l lc rgb 'cyan' lw 3 title 'T_{Fortluft}',\\\n";
        $plot.= " '".$fileS."' u 1:".$ColNo['walu']." w l lc rgb '#FBBF16' lw 3 title 'T_{Warmluft}',\\\n";
        $plot.= " '".$fileS."' u 1:($".$ColNo['posBp'].">1200?1:0) axis x1y2 w l lc rgb '#800000' lw 3 title 'Bypass'\n";
        $fd = fopen("log.gp","w");
        fputs($fd,$plot);
        fclose($fd);
        exec("gnuplot log.gp");
        #sleep(1);
        $result ="<p align='center'><img src='log.svg' alt='logfile'></p>";
        $result.="<p align='center'><a href='?what2do=showLog'>show Logfile</a></p>\n";
        return $result;
        break;
  case "H2O":
    include_once("HV_composeH2Oplot.php");
    $file = $_GET['file'];
    $month = substr($file,strpos($file,"_")+6,2);
    $msg = HV_composeH2Oplot($month);
    HV_H2Oplot($month);
    $result ="<p align='center'><img src='H2O.svg' alt='H2O level'></p>";
    $result.="<p align='center'><a href='?what2do=showLog'>show Logfile</a></p>\n";
    return $result;
    break;
  default:
    include_once("readFilenames.php");
  $year  = date('Y');
  $month = date('m');
  if(isset($_GET['month'])){$month=$_GET['month'];}
  $path = "./".$year."-".$month."/";
    $files = readFilenames($path,".txt");
    sort($files);
    $list ="<ul>\n";
    for($f=0;$f<count($files);$f++){
    if(strpos($files[$f],"ensor")>0)
      $list.="<li>".$files[$f]." <a href='?what2do=showLog&mode=solar&file=".$files[$f]."'>solar</a>   
                            <a href='?what2do=showLog&mode=heating&file=".$files[$f]."'>heating</a>  
                            <a href='?what2do=showLog&mode=ventilation&file=".$files[$f]."'>ventilation</a>
                            <a href='?what2do=showLog&mode=H2O&file=".$files[$f]."'>H2O</a></li>\n";
    } #f
    $list.="</ul>\n";
    return $list;
  } #switch

}
?>

python

1/HvcLightControl.py
2/HvcHCSR04ultrasonic.py
3/HvcPV.py
4/HvcMotorDriver.py
5/HvcRollerShutter.py
6/manGenMqttMap.py
7/HvcReadSPI.py
8/HvcMqtt.py
9/HvcTables.py
10/HvcMain.py
11/HvcSetGPIO.py
12/HvcWifiRelay.py
13/HvcOperationMode.py
14/HvcControl.py
15/HvcRaw2phys.py
16/HvcWeather.py
17/HvcOneWire.py
18/makeDoc.py
19/HvcFronius.py
20/EnergyManager.py
21/HvcSendI2C.py

php

1/HV_colorMap.php
2/HV_Admin_Login.php
3/HV_readOperationState.php
4/HV_setParameters.php
5/HV_config.php
6/EM_handleJSON.php
7/index.php
8/readFilenames.php
9/HV_restart.php
10/HV_moveGate.php
11/HV_showLog.php
12/HV_RollerShutter.php
13/EM_editParameter.php
14/HV_serviceLog.php
15/HV_H2Olevel.php
16/HV_TempCal.php
17/HV_Fronius.php
18/EM_plot.php
19/readNamedData.php
20/HV_composeH2Oplot.php
21/HVdoc.php
22/HV_showWeatherForecast.php
23/HV_showHouse.php

Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.