include "/home/accor/config/SolarDB.inc";
include "config.inc";
include "solartools.inc";
?>
Tagessicht =FormatDate($date);?> |
|
Aktuell
Heute
Technik
Impressum
|
DayLink(-7)?> DayLink(-1)?> DayLink(0)?> DayLink(+1)?> DayLink(+7)?>
|
MonthLink(-1)?> MonthLink(0)?> MonthLink(+1)?>
|
YearLink(-1)?> YearLink(0)?> YearLink(+1)?>
|
|
#-- Datumswerte
// Variablen aus solartools, $year, $month, $date
// $date=gewünschter Tag
$PeriodMonth=$year."-".$month ."-01 00:00:00";
$PeriodYear=$year."-01-01 00:00:00";
#
#--- Maximal genutzte Kapa (Entladen an einem Stück)
$MaxDisEnergy=0;
$MaxDisPercent=0;
$MaxDisTime="--";
$StartC=0;
$StartD=0;
$StartT="";
$StartPercent=0;
$EndC=0;
$EndD=0;
$EndT="";
$EndPercent=0;
$sql="SELECT created,PBattery,BatteryPercent,E_Tot_BatDischarge,E_Tot_BatCharge FROM DeviceValues WHERE devName='44565141481527298540553813' and created>='$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"];
?>
| Zusammenfassung |
| Sonne | =$Zeitraum;?> | | =NumToString($Dauer);?> | h |
if ($isHeute) { ?>
| Aktuell | PV1 | PV2 | PV3 | |
| PV Aktuell | =formatValueHtml2colBold($sumrow["Plast"],"W").formatValueHtml2col($groupdata["1"]["sumrowD"]["Plast"],"W").formatValueHtml2col($groupdata["2"]["sumrowD"]["Plast"],"W").formatValueHtml2col($groupdata["3"]["sumrowD"]["Plast"],"W");?>
um =substr($sumrow['TimeEnd'],11,5);?> |
| je kWp | =formatValueHtml2col($sumrow["aktuellkWp"],'W').formatValueHtml2col($groupdata["1"]["sumrowD"]["aktuellkWp"],"W").formatValueHtml2col($groupdata["2"]["sumrowD"]["aktuellkWp"],"W").formatValueHtml2col($groupdata["3"]["sumrowD"]["aktuellkWp"],'W'); ?>
| % Südausricht. | =formatValueHtml2colProz($sumrow["aktuellkWp"],$SuedJekWpAkt).formatValueHtml2colProz($groupdata["1"]["sumrowD"]["aktuellkWp"],$SuedJekWpAkt).formatValueHtml2colProz($groupdata["2"]["sumrowD"]["aktuellkWp"],$SuedJekWpAkt).formatValueHtml2colProz($groupdata["3"]["sumrowD"]["aktuellkWp"],$SuedJekWpAkt); ?>
| Netz (=($sumrow['Pgrid']>=0)?"Entnahme":"Einspeisen";?>) | =NumToString($sumrow['Pgrid']);?> | W |
|
| Batterie (=($sumrow['Pbattery']>=0)?"Laden":"Entladen";?>) | =formatValueHtml2col($sumrow['Pbattery'],'W').
formatValueHtml2col($groupdata["1"]["sumrowD"]["Pbattery"],'W').formatValueHtml2col($groupdata["2"]["sumrowD"]["Pbattery"],'W').formatValueHtml2col($groupdata["3"]["sumrowD"]["Pbattery"],'W').
formatValueHtml2col((
RecalcBattPercent("1",$groupdata["1"]["sumrowD"]["BatteryPercent"])*BatkWh("1")+
RecalcBattPercent("3",$groupdata["3"]["sumrowD"]["BatteryPercent"])*BatkWh("3"))/BatkWh("ALL") ,'% voll');
?>
| Akt Haus | =formatValueHtml2colBold($sumrow['Phouse'],'W'); ?>
} ?>
| =$labToday;?> | PV1 | PV2 | PV3 | Monat *1 | Jahr *1 |
| PV Gesamtertrag | =formatValueHtml2col($sumrow["ertragPV"],"kWh").formatValueHtml2col($groupdata["1"]["sumrowD"]["ertrag"],"kWh").formatValueHtml2col($groupdata["2"]["sumrowD"]["ertragPV"],"kWh").formatValueHtml2col($groupdata["3"]["sumrowD"]["ertragPV"],"kWh").formatValueHtml2col($total["sumrowM"]["ertragPV"],"kWh").formatValueHtml2col($total["sumrowY"]["ertragPV"],"kWh");?>
| je kWp | =formatValueHtml2col($sumrow["ertragPVkWp"],"kWh").formatValueHtml2col($groupdata["1"]["sumrowD"]["ertragPVkWp"],"kWh").formatValueHtml2col($groupdata["2"]["sumrowD"]["ertragPVkWp"],"kWh").formatValueHtml2col($groupdata["3"]["sumrowD"]["ertragPVkWp"],"kWh").formatValueHtml2col($total["sumrowM"]["ertragPVkWp"],"kWh").formatValueHtml2col($total["sumrowY"]["ertragPVkWp"],"kWh"); ?>
| % Südausricht. | =formatValueHtml2colProz($sumrow["ertragPVkWp"],$SuedJekWpErtrag).formatValueHtml2colProz($groupdata["1"]["sumrowD"]["ertragPVkWp"],$SuedJekWpErtrag).formatValueHtml2colProz($groupdata["2"]["sumrowD"]["ertragPVkWp"],$SuedJekWpErtrag).formatValueHtml2colProz($groupdata["3"]["sumrowD"]["ertragPVkWp"],$SuedJekWpErtrag); ?>
| Stundenmaximum | =formatValueHtml2col($total["ertragMAX"],"kWh").formatValueHtml2col($groupdata["1"]["ertragMAX"],"kWh").formatValueHtml2col($groupdata["2"]["ertragMAX"],"kWh").formatValueHtml2col($groupdata["3"]["ertragMAX"],"kWh"); ?>
| Batterie Entnahme | =formatValueHtml2col($sumrow['WBATOUT'],'kWh').formatValueHtml2col($groupdata["1"]["sumrowD"]['WBATOUT'],'kWh')." | | ".formatValueHtml2col($groupdata["3"]["sumrowD"]['WBATOUT'],'kWh').formatValueHtml2col($total["sumrowM"]['WBATOUT'],'kWh').formatValueHtml2col($total["sumrowY"]['WBATOUT'],'kWh'); ?>
| Batterie Ladung | =formatValueHtml2col($sumrow['WBATIN'],'kWh').formatValueHtml2col($groupdata["1"]["sumrowD"]['WBATIN'],'kWh')." | | ".formatValueHtml2col($groupdata["3"]["sumrowD"]['WBATIN'],'kWh').formatValueHtml2col($total["sumrowM"]['WBATIN'],'kWh').formatValueHtml2col($total["sumrowY"]['WBATIN'],'kWh'); ?>
| Einspeisung | =formatValueHtml2col($sumrow['WGRIDIN'],'kWh'); ?> =formatValueHtml2col($EinspeisenProzent,'%'); ?> | | | | =formatValueHtml2col($total["sumrowM"]['WGRIDIN'],'kWh').formatValueHtml2col($total["sumrowY"]['WGRIDIN'],'kWh'); ?>
| Netzbezug | =formatValueHtml2col($sumrow['WGRIDOUT'],'kWh'); ?> | | | | | | =formatValueHtml2col($total["sumrowM"]['WGRIDOUT'],'kWh').formatValueHtml2col($total["sumrowY"]['WGRIDOUT'],'kWh'); ?>
| Ges. Haus | =formatValueHtml2col($sumrow['WHOUSE2'],'kWh'); ?> | | | | | | =formatValueHtml2col($total["sumrowM"]['WHOUSE2'],'kWh').formatValueHtml2col($total["sumrowY"]['WHOUSE2'],'kWh'); ?>
| P Max einsp. | =NumToString($sumrow['PGridInMax']/1000);?> | kW |
//Gesamt
// =formatValueHtml2col($sumrow['EGridIn'],'kWh');
// =formatValueHtml2col($sumrow['EGridOut'],'kWh');
// =formatValueHtml2col($sumrow['EHouse'],'kWh');
?>
*1 bis =($isCurrentDay)?"jetzt":"Ende des Tages"; ?>
|
| Zeitraum | W Photov. | je kWp |
W Haus | W Bezug | W Einsp | W Bat | Laden |
$tab ="";
foreach ($total['tabrows'] as $sumrow) {
$T_Range=substr($sumrow['TimeStart'],11,5)." - ".substr($sumrow['TimeEnd'],11,5);
$tab=$tab."| $T_Range | "
.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";
?>
} ?>
=$tab;?>
|
|
|
}
function PrintDevice($current)
{
global $labToday, $date, $MaxDisEnergy, $MaxDisPercent, $MaxDisTime, $sued, $isHeute;
$row =$current["sumrowD"];
$tabrows =$current["tabrows"];
$group=$current['group'];
$isSenec=$current['isSenec'];
$vglSued=($sued["sumrowD"]['ertragkWp'])?(NumToString( ($row["ertragkWp"]/$sued["sumrowD"]['ertragkWp'])*100)):"--";
if ($group==3 && $row['EPV']>0) {
$vglSuedPV=($sued["sumrowD"]['ertragkWp'])?(NumToString( ($row["ertragPVkWp"]/$sued["sumrowD"]['ertragkWp'])*100)):"--";
}
?>
|
| =DevName2Bez($group);?> |
| Mess-Zeitraum | =substr($row['TimeStart'],11,5)." - ".substr($row['TimeEnd'],11,5);?> |
if ($isHeute) { ?>
| P Aktuell | =formatValueHtml2col($row['Plast'],'W');?>
| je kWp | =formatValueHtml2col($row['Plast']/$current['kWp'],'W');?>
} ?>
| =$labToday;?> | Monat | Jahr | Gesamt bis Tagesende |
| Photovoltaik Ertrag | =formatValueHtml2col($row['ertragPV'],'kWh').formatValueHtml2col($current["sumrowM"]["ertragPV"],"kWh").formatValueHtml2col($current["sumrowY"]["ertragPV"],"kWh").formatValueHtml2col($row['EPV'],'kWh'); ?>
if ($group==3 && $row['EPV']>0) { ?>
| je kWp | =formatValueHtml2col($row['ertragPVkWp'],'kWh'.(($group!=2)?(" (".$vglSuedPV."% v. Süd)"):"!")); ?>
| System Abgabe | =formatValueHtml2col($row['ertrag'],'kWh').formatValueHtml2col($current["sumrowM"]["ertrag"],"kWh").formatValueHtml2col($current["sumrowY"]["ertrag"],"kWh").formatValueHtml2col($row['E_End'],'kWh'); ?>
} else { ?>
| je kWp | =formatValueHtml2col($row['ertragkWp'],'kWh'.(($group!=2)?(" (".$vglSued."% v. Süd)"):"!")); ?>
} ?>
| Stundenmaximum | =formatValueHtml2col($current["ertragMAX"],"kWh"); ?>
if ($group==1 || $group==3) { ?>
if ($isHeute) { ?>
| Batterie (=($row['Pbattery']>=0)?"Laden":"Entladen";?>) | =formatValueHtml2col($row['Pbattery'],'W').formatValueHtml2col(RecalcBattPercent($group,$row['BatteryPercent']), '% voll'); ?>
} ?>
| Batterie Entnahme | =formatValueHtml2col($row['WBATOUT'],'kWh').formatValueHtml2col($current["sumrowM"]["WBATOUT"],"kWh").formatValueHtml2col($current["sumrowY"]["WBATOUT"],"kWh").formatValueHtml2col($row['EBatOut'],'kWh'); ?>
| Batterie Ladung | =formatValueHtml2col($row['WBATIN'],'kWh').formatValueHtml2col($current["sumrowM"]["WBATIN"],"kWh").formatValueHtml2col($current["sumrowY"]["WBATIN"],"kWh").formatValueHtml2col($row['EBatIn'],'kWh'); ?>
if ($isSenec) { ?>
| Genutzte Kapazität | =formatValueHtml2col($MaxDisEnergy,'kWh').formatValueHtml2col($MaxDisPercent,'%')."".$MaxDisTime." | "; ?>
} ?>
} ?>
| P Max | =formatValueHtml2col($row['Pmax'],'W');?>
if ($isSenec) { ?>
LIVE
MPP-Grafik
Ost/West-Grafik
} else if ($group==2) { ?>
LIVE
} else if ($group==3) { ?>
LIVE
} ?>
| Zeitraum | W Photov. | je kWp | P min | P max |
if ($group==1 || $group==3) { ?>W Bat | W Lad. | Bat% | } ?>
if ($group!=2) { ?> vgl. Süd | } ?>
$tab ="";
foreach ($tabrows as $row) {
$RowDate=$row["DATETIME"];
$T_Range=substr($row['TimeStart'],11,5)." - ".substr($row['TimeEnd'],11,5);
//$d=strtotime($row['TimeEnd'])-strtotime($row['TimeStart']); // Sekunden
$vglSued=(isset($sued['tabrows'][$RowDate]) && $sued['tabrows'][$RowDate]['ertragkWp'])?(NumToString( ($row["ertragkWp"]/$sued['tabrows'][$RowDate]['ertragkWp'])*100)):"--";
$tab=$tab."| $T_Range | "
.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)?"".$vglSued." | ":"")
." \n";
}
?>
=$tab;?>
|
if ($group == "1") { ?>
} ?>
|
|
}
?>