2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-17 23:46:03 +00:00

76_Solarforcast: contrib 0.1.0

git-svn-id: https://svn.fhem.de/fhem/trunk@23371 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-12-17 13:35:52 +00:00
parent ab1ea04423
commit 7e35a1ef86

View File

@ -153,7 +153,7 @@ my @chours = (5..21); # St
my $defpvme = 16.52; # default Wirkungsgrad Solarmodule
my $definve = 98.3; # default Wirkungsgrad Wechselrichter
my $kJtokWh = 0.00027778; # Umrechnungsfaktor kJ in kWh
my $maxvariance = 0.6; # max. Varianz pro Durchlauf Berechnung Autokorrekturfaktor
my $maxvariance = 0.3; # max. Varianz pro Durchlauf Berechnung Autokorrekturfaktor
my $definterval = 70; # Standard Abfrageintervall
################################################################
@ -1828,6 +1828,7 @@ sub calcVariance {
my $paref = shift;
my $myHash = $paref->{myHash};
my $myName = $paref->{myName};
my $chour = $paref->{chour};
my $dcauto = ReadingsVal ($myName, "pvCorrectionFactor_Auto", "off"); # nur bei "on" automatische Varianzkalkulation
if($dcauto =~ /^off/x) {
@ -1852,13 +1853,14 @@ sub calcVariance {
my @da;
for my $h (1..23) {
next if(!$chour || $h >= $chour);
my $fcval = $myHash->{HELPER}{"fc0_".sprintf("%02d",$h)."_PVforecast"} // 0;
my $fcnum = int ((split " ", $fcval)[0]);
next if(!$fcnum);
my $pvval = ReadingsNum ($myName, "Today_Hour".sprintf("%02d",$h)."_PVreal", 0);
next if(!$pvval);
my $oldfac = ReadingsNum ($myName, "pvCorrectionFactor_".sprintf("%02d",$h), 1); # bisher definierter Korrekturfaktor
$oldfac = 1 if(1*$oldfac == 0);
@ -1870,7 +1872,7 @@ sub calcVariance {
Log3($myName, 4, "$myName - Use new limited Variance factor: $factor for hour: $h");
}
else {
Log3($myName, 4, "$myName - new Variance factor: $factor for hour: $h calculated");
Log3($myName, 4, "$myName - new Variance factor: $factor for hour: $h calculated") if($factor != $oldfac);
}
push @da, "pvCorrectionFactor_".sprintf("%02d",$h).":".$factor." (automatic)";