='$date' AND created<=DATE_ADD('$date', INTERVAL 2 DAY) AND PBattery is not null"; $res=mysql_query($sql,$db); while ($row=mysql_fetch_array($res)) { #print "X".$row[created]."#".$row['PBattery']."#".$row['BatteryPercent']."#".$row['E_Tot_BatDischarge']."
"; if ($row['PBattery']<=0) { # Entladen $EndPercent=$row['BatteryPercent']; $EndC=$row['E_Tot_BatCharge']; $EndD=$row['E_Tot_BatDischarge']; $EndT=substr($row['created'],11); } else if ($row['E_Tot_BatCharge']-$EndC >=1) { if ($row['created']>$date."X") { break; } # ist schon folgetag if ($StartD<$EndD) { $CurrDisEnergy=($row['E_Tot_BatDischarge']-$StartD) - ($EndC-$StartC); # ($EndD-$EndC)-($StartD-$StartC) if ($CurrDisEnergy>$MaxDisEnergy) { $MaxDisEnergy=$CurrDisEnergy; $MaxDisPercent=$StartPercent-$EndPercent; $MaxDisTime=$StartT."-".$EndT; } } $StartPercent=$row['BatteryPercent']; $StartC=$row['E_Tot_BatCharge']; $StartD=$row['E_Tot_BatDischarge']; $StartT=substr($row['created'],11); /* */ } } if ($StartD<$EndD) { $CurrDisEnergy=($EndD-$StartD) - ($EndC-$StartC); # ($EndD-$EndC)-($StartD-$StartC) if ($CurrDisEnergy>$MaxDisEnergy) { $MaxDisEnergy=$CurrDisEnergy; $MaxDisPercent=$StartPercent-$EndPercent; $MaxDisTime=$StartT."-".$EndT; } } // SQL $isHeute=($date=="" || $date == $dHeute); $labToday=($isHeute)?"Heute":FormatDate($date); #print "!! $date !! $dHeute !! $isHeute"; $lastGroup =""; $groupdata=array(); $current = null; //DVF First DVL Last, H oder D $sql="SELECT S.devGroup, S.devName, S.Period_Type,S.TimeStart,S.TimeEnd,Secs, S.E_Start,S.E_End,S.Plast,S.Pave,S.Pmin,S.Pmax, S.PGridInMax, ". "DVP.E_Tot_House SHouse, DVL.E_Tot_House EHouse, ". "DVP.E_Tot_PV SPV, DVL.E_Tot_PV EPV, DVP.devName SdevName, DVL.devName EdevName, ". "DVP.E_TOT_GridIn SGridIn, DVL.E_Tot_GridIn EGridIn, DVP.E_TOT_GridOut SGridOut, DVL.E_Tot_GridOut EGridOut, ". "DVP.E_Tot_BatDischarge SBatOut, DVL.E_Tot_BatDischarge EBatOut, DVP.E_Tot_BatCharge SBatIn, DVL.E_Tot_BatCharge EBatIn, ". "DVL.Phouse,DVL.Pgrid,DVL.Pbattery,DVL.BatteryPercent, S.Id SId, DVP.Id FId, DVL.Id LId, idPrevious, idFirst, idLast, Period ". "FROM Solarstatistik.Summary S LEFT JOIN Solarstatistik.DeviceValues DVP ON (DVP.Id=idPrevious) LEFT JOIN Solarstatistik.DeviceValues DVL ON (DVL.Id=idLast) ". "WHERE ( (Period_Type='H' OR Period_Type='D') AND Period>='$date' AND Period<='$date 23:59:59' ) OR (Period_Type='M' AND Period='$PeriodMonth') OR (Period_Type='Y' AND Period='$PeriodYear')". "ORDER BY devGroup desc, E_End asc, TimeStart asc"; # devName asc, $res=mysql_query($sql,$db); $isSenec=0; $hasBat=0; $ertrag=array(); while ($row=mysql_fetch_array($res)) { //print $row['devGroup'].$row['Period_Type'].$row['Period']."
"; if ($row['devGroup'] != $lastGroup) { if ($current != null) { finishGroup($current); } $lastGroup = $row['devGroup']; $current=array("group" => $row['devGroup'],"tabrows"=>array(), "tab" => "","ertrag" =>0, "isSenec" => ($lastGroup=="1"),"kWp"=>Dev2KWp($lastGroup)); } if ($row['Period_Type']=="D") { $current["sumrowD"] = $row; } else if ($row['Period_Type']=="M") { //print "--".$row['Period_Type'].$row['Period']." ".$row['SId'].".".$row['idPrevious'].".".$row['FId'].".".$row['devGroup'].".".$row['SdevName']."
"; //."--".$rowS['idLast'].".".$rowE['devGroup'].".".$rowE['EdevName'].$row."
"; $current["sumrowM"] = $row; } else if ($row['Period_Type']=="Y") { if (!isset($row['SBatOut'])) { $row['SBatOut']=0; } $current["sumrowY"] = $row; } else { # Stundenwert $hour=substr($row['TimeStart'],11,2); $row['DATETIME']=$hour; $current["tabrows"][$hour]=$row; $T_Range=substr($row['TimeStart'],11,5)." - ".substr($row['TimeEnd'],11,5); $d=strtotime($row['TimeEnd'])-strtotime($row['TimeStart']); // Sekunden $Prow=$row['E_End']-$row['E_Start']; // } } finishGroup($current); mysql_close($db); $sued=$groupdata["2"]; if ($groupdata["1"] != null) { $total=$groupdata["1"]; $total["group"]="TOTAL"; # Initial $total["sumrowD"]["Phouse"]=$groupdata["1"]["sumrowD"]["Plast"] - $groupdata["1"]["sumrowD"]["Pbattery"] + $groupdata["1"]["sumrowD"]["Pgrid"]; # PV HInzu und Batterie wegrechnen #print $total["sumrowD"]["Phouse"].":".$groupdata["1"]["sumrowD"]["Plast"]."-".$groupdata["1"]["sumrowD"]["Pbattery"]."+".$groupdata["1"]["sumrowD"]["Pgrid"]."+".$groupdata["2"]["sumrowD"]["Plast"]."+".$groupdata["3"]["sumrowD"]["Plast"]."
"; if ($groupdata["2"] != null) { AddDevD($total,$groupdata["2"]); } if ($groupdata["3"] != null) { AddDevD($total,$groupdata["3"]); } //finishGroup($total); finishGroupCalcWp($total); PrintSummary($total); PrintDevice($groupdata["1"]); } if ($groupdata["2"] != null) { PrintDevice($groupdata["2"]); } if ($groupdata["3"] != null) { PrintDevice($groupdata["3"]); } //sumrowM/sumrowJ ertrag,ertragkWp, WBATIN,WBATOUT ,WGRIDIN,WGRIDout,WHOUSE function AddDevD(&$dest,$src) { $dest["kWp"]+=$src["kWp"]; AddRow($dest["sumrowD"],$src["sumrowD"]); AddRow($dest["sumrowM"],$src["sumrowM"]); AddRow($dest["sumrowY"],$src["sumrowY"]); #-- Aktuell $dest["sumrowD"]["Plast"]+=$src["sumrowD"]["Plast"]; # Aktuelle Erzeugung #print "<".$dest["sumrowD"]["Phouse"]."+=,".$src["sumrowD"]["Plast"].",".$src["sumrowD"]["Pbattery"]."->" ; $dest["sumrowD"]["Phouse"]+=$src["sumrowD"]["Plast"] - $src["sumrowD"]["Pbattery"]; # PV HInzu und Batterie wegrechnen #print $dest["sumrowD"]["Phouse"]."--->
"; $dest["sumrowD"]["Pbattery"]+=$src["sumrowD"]["Pbattery"]; # Aktuelle Erzeugung foreach ($src['tabrows'] as $row) { $hour=$row['DATETIME']; if (isset($dest['tabrows'][$hour])) { AddRow($dest['tabrows'][$hour],$row); //AddRow($dest['tabrows'][$hour]["rowM"],$row["rowM"]); } else { $dest['tabrows'][$hour]=array( "DATETIME" => $hour ); } } } function PrintSummary($total) { global $isHeute,$date, $labToday, $Laenge,$Breite,$groupdata,$isCurrentDay; $sumrow =$total["sumrowD"]; $t=strtotime($sumrow['TimeStart']); $Auf = Sonnenaufgang($Laenge,$Breite,$t); $Unter = Sonnenuntergang($Laenge,$Breite,$t); $Dauer = ($Unter-$Auf)/3600; $Zeitraum = date("H:i",$Auf)." - ".date("H:i",$Unter) ; $EinspeisenProzent=$sumrow['WGRIDIN']/$sumrow["ertrag"]*100; $SuedJekWpAkt=$groupdata["2"]["sumrowD"]["aktuellkWp"]; $SuedJekWpErtrag=$groupdata["2"]["sumrowD"]["ertragPVkWp"]; ?> 0) { $vglSuedPV=($sued["sumrowD"]['ertragkWp'])?(NumToString( ($row["ertragPVkWp"]/$sued["sumrowD"]['ertragkWp'])*100)):"--"; } ?>

Tagessicht

Aktuell Heute Technik Impressum                   
Zusammenfassung
Sonne h
AktuellPV1PV2PV3
PV Aktuell um
je kWp
% Südausricht.
Netz (=0)?"Entnahme":"Einspeisen";?>)W
Batterie (=0)?"Laden":"Entladen";?>)
Akt Haus
PV1PV2PV3Monat *1Jahr *1
PV Gesamtertrag
je kWp
% Südausricht.
Stundenmaximum
Batterie Entnahme".formatValueHtml2col($groupdata["3"]["sumrowD"]['WBATOUT'],'kWh').formatValueHtml2col($total["sumrowM"]['WBATOUT'],'kWh').formatValueHtml2col($total["sumrowY"]['WBATOUT'],'kWh'); ?>
Batterie Ladung".formatValueHtml2col($groupdata["3"]["sumrowD"]['WBATIN'],'kWh').formatValueHtml2col($total["sumrowM"]['WBATIN'],'kWh').formatValueHtml2col($total["sumrowY"]['WBATIN'],'kWh'); ?>
Einspeisung
Netzbezug
Ges. Haus
P Max einsp.kW
*1 bis

" .formatValueHtml($sumrow['ertrag'],'kWh') .formatValueHtml($sumrow["ertrag"]/$total['kWp'],'kWh') .formatValueHtml($sumrow['WHOUSE2'] ,'kWh') .formatValueHtml($sumrow['WGRIDOUT'],'kWh') .formatValueHtml($sumrow['WGRIDIN'],'kWh') .formatValueHtml($sumrow['WBATOUT'],'kWh') .formatValueHtml($sumrow['WBATIN'],'kWh') //.formatValueHtml($sumrow['rowM']['ertrag'],'kWh') //.formatValueHtml($sumrow['rowY']['ertrag'],'kWh') ."\n"; ?>
ZeitraumW Photov.je kWp W HausW BezugW EinspW BatLaden
$T_Range
Grafik <?=$date;?>

0) { ?> ".$MaxDisTime.""; ?>
Mess-Zeitraum
P Aktuell
je kWp
MonatJahrGesamt bis Tagesende
Photovoltaik Ertrag
je kWp
System Abgabe
je kWp
Stundenmaximum
Batterie (=0)?"Laden":"Entladen";?>)
Batterie Entnahme
Batterie Ladung
Genutzte Kapazität
P Max

LIVE  MPP-Grafik Ost/West-Grafik LIVE  LIVE 

" .formatValueHtml($row['ertrag'],'kWh') .formatValueHtml($row["ertragkWp"],'kWh') .formatValueHtml($row['Pmin'],'W') .formatValueHtml($row['Pmax'],'W') .(($group==1 || $group==3)?( formatValueHtml($row['WBATOUT'],'kWh') .formatValueHtml($row['WBATIN'],'kWh') .formatValueHtml(RecalcBattPercent($group,$row['BatteryPercent']),'%') ):"") .(($group !=2)?"":"") ."\n"; } ?>
ZeitraumW Photov.je kWpP minP max W BatW Lad.Bat% vgl. Süd
$T_Range".$vglSued."

Grafik <?=$date;?> Grafik <?=$date;?>
Grafik <?=$date;?>