FreeSol-Bild.php

Aus FreeSol-Wiki

Version vom 6. Dezember 2012, 08:57 Uhr von Freesol (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

<?php // content="text/plain; charset=utf-8"

// Version vom 6.12.2012

require_once ('jpgraph/src/jpgraph.php');
require_once ('jpgraph/src/jpgraph_line.php');

$datum=$_GET["datum"];
$graphzahl=$_GET["graphzahl"];
$praefix=$_GET["praefix"];
$host=$_GET["url"];

$temp2=$datum.'minutesv.js';
$files= array($temp2);
$daten = file_get_contents($host.$files[0]);

$teile = preg_split('/\r\n/', $daten );
$datumsteile =preg_split('/\./', $teile[0] );
$solar = array();
$temp='leer';

for ($i = 1; $i <= 48; $i++)  {
    $solar[] ='0';
}

if (count ($datumsteile ) ==3) {
for ($i = 1; $i <= 18; $i++) {
   $zeilenteile =preg_split('/:/', $teile[$i] );
   $minutenzeilenwerte =preg_split('/  /', $zeilenteile[1] );
   unset($minutenzeilenwerte[12]);
   foreach ($minutenzeilenwerte as $minutenwert) {
      $solar[] = $minutenwert;
   }
}
}

for ($i = 1; $i <= 24; $i++)  {
    $solar[] ='0';
}


$temp2=$datum.$praefix.'_bv.js';
$files= array($temp2);
$daten = file_get_contents($host.$files[0]);

$teile = preg_split('/\r\n/', $daten );
$datumsteile =preg_split('/\./', $teile[0] );
$bezug = array();
$temp='leer';

if (count ($datumsteile ) ==3) {
for ($i = 1; $i <= 24; $i++) {   // alt: 18, geändert 6.12.12
   $zeilenteile =preg_split('/:/', $teile[$i] );
   $minutenzeilenwerte =preg_split('/  /', $zeilenteile[1] );
   unset($minutenzeilenwerte[12]);
   foreach ($minutenzeilenwerte as $minutenwert) {
      $bezug[] = $minutenwert;
   }
}
}

$temp2=$datum.$praefix.'_ev.js';
$files= array($temp2);
$daten = file_get_contents($host.$files[0]);

$teile = preg_split('/\r\n/', $daten );
$datumsteile =preg_split('/\./', $teile[0] );
$einspeis = array();
$temp='leer';

if (count ($datumsteile ) ==3) {
for ($i = 1; $i <= 24; $i++) {  // alt: 18, geändert 6.12.12
   $zeilenteile =preg_split('/:/', $teile[$i] );
   $minutenzeilenwerte =preg_split('/  /', $zeilenteile[1] );
   unset($minutenzeilenwerte[12]);
   foreach ($minutenzeilenwerte as $minutenwert) {
      $einspeis [] = $minutenwert;
   }
}
}

// Setup the graph

$graph = new Graph(400,300);
$graph->SetScale("textlin");

$graph->title->Set('Solarerzeugung '.$datum);
$graph->SetBox(false);

$graph->xgrid->Show(False);
//$graph->xgrid->SetLineStyle("solid");
//$graph->xgrid->SetColor('black'); //das ist der Hintergrund


// Erg㭺ungen
$graph->yaxis->SetColor("black");
$graph->yaxis->SetWeight(1);
$graph->ygrid->Show(true);                         //Gitterlinien (Hauptlinien, Nebenlinien)
$graph->ygrid->setcolor("black@0.8", "black@0.9");
$graph->ygrid->SetWeight(1,1);
$graph->yaxis->scale->ticks->Set(10,5);                  //Werte an Y-Achse

$graph->xgrid->Show(true);                         //Gitterlinien (Hauptlinien, Nebenlinien)
$graph->xgrid->setcolor("black@0.8", "black@0.9");
$graph->xgrid->SetWeight(1,1);


$tickPositions = array();
$tickLabels = array();
$tickPositions = array(35,71,107,143,179,215,251);
$tickLabels = array('03:00','06:00','09:00','12:00','15:00','18:00','21:00');
$graph->xaxis->SetMajTickPositions($tickPositions,$tickLabels);


// Create the first line
$p1 = new LinePlot($solar,$time4);
$graph->Add($p1);
$p1->SetColor("yellow");
$p1->SetLegend('Solar');

if ($graphzahl >1) {
// Create the second line
$p2 = new LinePlot($bezug,$time4);
$graph->Add($p2);
$p2->SetColor("blue");
$p2->SetLegend('Bezug');

// Create the third line
$p3 = new LinePlot($einspeis,$time4);
$graph->Add($p3);
$p3->SetColor("lime");
$p3->SetLegend('Einspeisung');
}

$graph->xaxis->title->Set("Uhrzeit");
$graph->yaxis->title->Set("Leistung in W");
$graph->xaxis->SetTitlemargin(30);
$graph->yaxis->SetTitlemargin(30);

$graph->legend->SetFrameWeight(1);

// Output line
$graph->Stroke();


?>