Ad
Varmvattenberedare från Indol
Bäst online casino i Sverige
Energibutiken.se smarta varor på nätet, leverans till dörren
Annonsera i Värmepumpsforum, klicka här för att ställa e-postfråga och få mer info.
140x140vpforum-11.gif
kontakta oss för pris!
 

Författare Ämne: perl mysql digitemp  (läst 2579 gånger)

0 medlemmar och 1 gäst tittar på detta ämne.

Utloggad jontte

  • Expert på värmepump
  • ****
  • Stad/land: Gagnef
  • Antal inlägg: 265
  • Karma +0/-0
  • Kön: Man
perl mysql digitemp
« skrivet: 17 december 2006, 22:42:19 »
Håller på och pillar med Linux, digitemp perl mysql och jpgraph.
Kan någon ge tips hur jag ska få in datan i databasen.
Har skapat olika kolumnet för varje givare och vill ha in all data samtidigt från alla sensorer.

kör med $digitemp_binary -q -a -o\"%.2C\" -c $digitemp_rcfile

vilket ger

"xx.xx"
"xx.xx"
"xx.xx"
osv.

Dessa vill jag ha in på en rad i databasens olika kolumner med följande rad.
Dock så krävs det något som talar om att rad ett är "tom" och rad två är "kbin" osv.
my $sql="INSERT INTO digitemp SET tom='$tom', kbin='$kbin', osv";

Mycket tacksam för hjälp. Har fastnat i problemet.
Konverterat från direktverkande el.
Nibe 1115 8,5kw, vpa 300/200, volymförstorare/knäpptank ukv 100 och 2x250m ytjordskollektor.
Villa, enplan med källare 102kvm/plan. Har vattenburna radiatorer, en fläktkonvektor och vattenburen golvvärme. Förbrukning 2007 blev 5409kw i värme/vv och 8741kw i hhel.

Pucko73

  • Gäst
Pucko73
SV: perl mysql digitemp
« Svar #1 skrivet: 17 december 2006, 23:27:56 »
Håller på och pillar med Linux, digitemp perl mysql och jpgraph.
Kan någon ge tips hur jag ska få in datan i databasen.
Har skapat olika kolumnet för varje givare och vill ha in all data samtidigt från alla sensorer.

kör med $digitemp_binary -q -a -o\"%.2C\" -c $digitemp_rcfile

vilket ger

"xx.xx"
"xx.xx"
"xx.xx"
osv.

Dessa vill jag ha in på en rad i databasens olika kolumner med följande rad.
Dock så krävs det något som talar om att rad ett är "tom" och rad två är "kbin" osv.
my $sql="INSERT INTO digitemp SET tom='$tom', kbin='$kbin', osv";

Mycket tacksam för hjälp. Har fastnat i problemet.


Är inte riktigt med på hur du menar.

Vill du bara parsa ut varje rad och trycka ner i tabellen?
Kan du beskriva tabellstruktur och hur du vill ha det?

Utloggad jontte

  • Expert på värmepump
  • ****
  • Stad/land: Gagnef
  • Antal inlägg: 265
  • Karma +0/-0
  • Kön: Man
SV: perl mysql digitemp
« Svar #2 skrivet: 23 december 2006, 12:49:09 »
Det har löst sig.

Bifogar för dom som är intresserade.
Konverterat från direktverkande el.
Nibe 1115 8,5kw, vpa 300/200, volymförstorare/knäpptank ukv 100 och 2x250m ytjordskollektor.
Villa, enplan med källare 102kvm/plan. Har vattenburna radiatorer, en fläktkonvektor och vattenburen golvvärme. Förbrukning 2007 blev 5409kw i värme/vv och 8741kw i hhel.

Utloggad jontte

  • Expert på värmepump
  • ****
  • Stad/land: Gagnef
  • Antal inlägg: 265
  • Karma +0/-0
  • Kön: Man
SV: perl mysql digitemp
« Svar #3 skrivet: 23 december 2006, 14:18:43 »
Nu är problemet att få fram grafer.
Får fram grafen för ett dygn men klockslagen stämmer inte. Allt loggas i en mysqldatabas med 5 minuters mellanrum.
koden enligt följande ger denna graf. http://www.sadelmakaren.nu/~jonasweb/jp_graph.php

Koden där säkert några känner igen sig på något ställe.  :)

Någon som kan ge tips ?

<?php
include ("/usr/share/jpgraph/jpgraph.php");
include ("/usr/share/jpgraph/jpgraph_line.php");


mysql_connect("localhost", "anvid", "lösen") or die("Kan ej ansluta: " . mysql_error());
mysql_select_db("digitemp") or die("Kan ej öppna databas digitemp");

if (isset($_GET['From'])) {
   $fran = $_GET['From'];
   $till = $_GET['To'];
} elseif (isset($_GET['Day'])) {
   $fran = Date("Y-m-d H:i",strtotime($_GET['Day']));
   $till = Date("Y-m-d H:i",strtotime($fran) +(1 * 24 * 60 * 60));
}
else {
$till = Date("Y-m-d H:i", time());
$fran = Date("Y-m-d H:i",strtotime($till) - (1 * 24 * 60 * 60));
}

$query = "SELECT `kbin`, `kbut`, `gvuf`, `gvur`, `rf`, `rr`, `vv`, `ute` FROM digitemp WHERE time >= '$fran' and time < '$till'";
$result = mysql_query($query) or die("SQL fråga felaktig: " . mysql_error());

for ($i=strtotime($fran); $myrow=mysql_fetch_row($result); $i = $i + 60)  {
         $ydataa[] = $myrow[5];
         $ydatab[] = $myrow[4];
         $ydatac[] = $myrow[3];
         $ydatad[] = $myrow[2];
         $ydatae[] = $myrow[1];
         $ydataf[] = $myrow[0];
         $ydatag[] = $myrow[6];
         $ydatah[] = $myrow[7];
      
      
      $xdata[] = Date("H:i", $i);
}

// Create the graph. These two calls are always required
$graph = new Graph(1024,600,"auto");   
$graph->SetScale("textlin",-20,55);

$graph->title->Set("Värmepumpdata:  ".Date("Y-m-d H:i",strtotime($fran))." -> ".Date("Y-m-d H:i",strtotime($till)));

$graph ->img->SetMargin(40,20,30,70);
$graph ->xaxis->SetTextTickInterval(60);
$graph ->xaxis->SetTextLabelInterval(1);

$graph ->xaxis->SetTickLabels($xdata);
$graph->yaxis->SetColor("red");
$graph->yaxis->SetWeight(2);

$graph ->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph ->yaxis->title->Set("Grader");
$graph ->yaxis->title->SetFont(FF_FONT1,FS_BOLD);

$graph ->SetShadow();
$graph ->legend->SetLayout(LEGEND_HOR);
$graph ->legend->Pos(.5,.94,"center","center");

$graph ->ygrid->Show(true,true);
$graph->xgrid->Show(true,false);
 

// Create the linear plot
$lineplot2=new LinePlot($ydataa);
$lineplot2->SetColor("blue");
$lineplot2 ->SetLegend("Radiator-retur");
$lineplot2->SetWeight(2);


// Create the linear plot
$lineplot1=new LinePlot($ydatab);
$lineplot1->SetColor("violetred4");
$lineplot1 ->SetLegend("Radiator-fram");
$lineplot1->SetWeight(2);

// Create the linear plot
$lineplot3=new LinePlot($ydatac);
$lineplot3->SetColor("springgreen");
$lineplot3 ->SetLegend("Golvvärmeuppe-retur");
$lineplot3->SetWeight(2);

// Create the linear plot
$lineplot4=new LinePlot($ydatad);
$lineplot4->SetColor("red");
$lineplot4 ->SetLegend("Golvvärmeuppe-fram");
$lineplot4->SetWeight(2);

// Create the linear plot
$lineplot5=new LinePlot($ydatae);
$lineplot5->SetColor("black");
$lineplot5 ->SetLegend("KB-in");
$lineplot5->SetWeight(2);

// Create the linear plot
$lineplot6=new LinePlot($ydataf);
$lineplot6->SetColor("yellow3");
$lineplot6 ->SetLegend("KB-ut");
$lineplot6->SetWeight(2);

// Create the linear plot
$lineplot7=new LinePlot($ydatag);
$lineplot7->SetColor("violetred1");
$lineplot7 ->SetLegend("Varmvatten");
$lineplot7->SetWeight(2);

// Create the linear plot
$lineplot8=new LinePlot($ydatah);
$lineplot8->SetColor("turquoise2");
$lineplot8 ->SetLegend("Ute");
$lineplot8->SetWeight(2);

// Add the plot to the graph
$graph->Add($lineplot1);
$graph->Add($lineplot2);
$graph->Add($lineplot4);
$graph->Add($lineplot3);
$graph->Add($lineplot5);
$graph->Add($lineplot6);
$graph->Add($lineplot7);
$graph->Add($lineplot8);

// Display the graph
$graph->Stroke();
?>
« Senast ändrad: 27 december 2006, 18:42:22 av jontte »
Konverterat från direktverkande el.
Nibe 1115 8,5kw, vpa 300/200, volymförstorare/knäpptank ukv 100 och 2x250m ytjordskollektor.
Villa, enplan med källare 102kvm/plan. Har vattenburna radiatorer, en fläktkonvektor och vattenburen golvvärme. Förbrukning 2007 blev 5409kw i värme/vv och 8741kw i hhel.

Utloggad Glenn

  • Expert på värmepump
  • ****
  • Stad/land: Skåne
  • Antal inlägg: 238
  • Karma +0/-0
  • Kön: Man
SV: perl mysql digitemp
« Svar #4 skrivet: 28 december 2006, 18:27:45 »
Hur ska frågan se ut för att hämta data från mysql när det är Thermometer som loggar.

För att kunna göra grafer av det??? Thermometer delar ju upp det hela i massor av tabeller.

Sensorid, data_temp, data_time.. mm

Har provat lite olika php script men det blir bara en ända röra... Är ju inte direkt proffs på mysql och php.

Någon som har en sussning...

/Glenn
Hundra år gammalt hus i södra halland, 235 m2 uppvärmd boyta.
Fördelat på ett stort hus och en lägenhet som hyrs ut.
Utedel PUHZ-SHW 112 YAA    Innedel EHST20C-YM9C

Innan värmepump en jävla massa pellets...

Utloggad jontte

  • Expert på värmepump
  • ****
  • Stad/land: Gagnef
  • Antal inlägg: 265
  • Karma +0/-0
  • Kön: Man
SV: perl mysql digitemp
« Svar #5 skrivet: 29 december 2006, 21:27:50 »
Hittade felet med klockan.
for ($i=strtotime($fran); $myrow=mysql_fetch_row($result); $i = $i + 60)  {

ska vara
for ($i=strtotime($fran); $myrow=mysql_fetch_row($result); $i = $i + 5*60)  {
pågrund av att det är var femte minut som data läggs i tabellerna.
Konverterat från direktverkande el.
Nibe 1115 8,5kw, vpa 300/200, volymförstorare/knäpptank ukv 100 och 2x250m ytjordskollektor.
Villa, enplan med källare 102kvm/plan. Har vattenburna radiatorer, en fläktkonvektor och vattenburen golvvärme. Förbrukning 2007 blev 5409kw i värme/vv och 8741kw i hhel.

Vill du annonsera klicka här! Varmvattenberedare från Indol
 


Annonser

Right Block

Vibrationsdämpare
Besök vår webshop, klicka här!
Energioffert.se
Energibutiken.se smarta varor på nätet, leverans till dörren
luftvärmepumpar, tillbehör, installationsmaterial, vi har allt!
Annonspriser

Online just nu!

Ad
Varmvattenberedare från Indol
Bäst online casino i Sverige
Energibutiken.se smarta varor på nätet, leverans till dörren
Annonsera i Värmepumpsforum, klicka här för att ställa e-postfråga och få mer info.
140x140vpforum-11.gif
kontakta oss för pris!