mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 10:46:53 +00:00
76_Solarforcast: contrib 0.49.5
git-svn-id: https://svn.fhem.de/fhem/trunk@24558 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5a200f0c36
commit
ce1772c0af
@ -117,6 +117,7 @@ BEGIN {
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
my %vNotesIntern = (
|
my %vNotesIntern = (
|
||||||
|
"0.49.5" => "01.06.2021 change pv correction factor to 1 if no historical factors found (only with automatic correction) ",
|
||||||
"0.49.4" => "01.06.2021 fix wrong display at month change and using historyHour ",
|
"0.49.4" => "01.06.2021 fix wrong display at month change and using historyHour ",
|
||||||
"0.49.3" => "31.05.2021 improve calcPVforecast pvcorrfactor for multistring configuration ",
|
"0.49.3" => "31.05.2021 improve calcPVforecast pvcorrfactor for multistring configuration ",
|
||||||
"0.49.2" => "31.05.2021 fix time calc in sub forecastGraphic ",
|
"0.49.2" => "31.05.2021 fix time calc in sub forecastGraphic ",
|
||||||
@ -2918,7 +2919,7 @@ sub _estConsumptionForecast {
|
|||||||
my $tomavg = int (($totcon/$dnum)-$ddiff);
|
my $tomavg = int (($totcon/$dnum)-$ddiff);
|
||||||
$data{$type}{$name}{current}{tomorrowconsumption} = $tomavg; # Durchschnittsverbrauch aller (gleicher) Wochentage
|
$data{$type}{$name}{current}{tomorrowconsumption} = $tomavg; # Durchschnittsverbrauch aller (gleicher) Wochentage
|
||||||
|
|
||||||
Log3 ($name, 4, "$name - estimated Consumption for tomorrow: $tomavg, days for avg: $dnum, hist. consumption registered consumers: $consumerco");
|
Log3 ($name, 4, "$name - estimated Consumption for tomorrow: $tomavg, days for avg: $dnum, hist. consumption registered consumers: ".sprintf "%.2f", $consumerco);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$data{$type}{$name}{current}{tomorrowconsumption} = "Wait for more days with a consumption figure";
|
$data{$type}{$name}{current}{tomorrowconsumption} = "Wait for more days with a consumption figure";
|
||||||
@ -2985,7 +2986,7 @@ sub _estConsumptionForecast {
|
|||||||
delete $paref->{histname};
|
delete $paref->{histname};
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3 ($name, 4, "$name - estimated Consumption for $nhday -> starttime: $nhtime, con: $conavg, days for avg: $dnum, hist. consumption registered consumers: $consumerco");
|
Log3 ($name, 4, "$name - estimated Consumption for $nhday -> starttime: $nhtime, con: $conavg, days for avg: $dnum, hist. consumption registered consumers: ".sprintf "%.2f", $consumerco);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4705,7 +4706,7 @@ sub calcPVforecast {
|
|||||||
my $chour = strftime "%H", localtime($t+($num*3600)); # aktuelle Stunde
|
my $chour = strftime "%H", localtime($t+($num*3600)); # aktuelle Stunde
|
||||||
my $reld = $fd == 0 ? "today" : $fd == 1 ? "tomorrow" : "unknown";
|
my $reld = $fd == 0 ? "today" : $fd == 1 ? "tomorrow" : "unknown";
|
||||||
|
|
||||||
my $pvcorr = ReadingsNum ($name, "pvCorrectionFactor_".sprintf("%02d",$fh+1), 1); # PV Korrekturfaktor (auto oder manuell)
|
my $pvcorr = ReadingsNum ($name, "pvCorrectionFactor_".sprintf("%02d",$fh+1), 1.00); # PV Korrekturfaktor (auto oder manuell)
|
||||||
my $hc = $pvcorr; # Voreinstellung RAW-Korrekturfaktor
|
my $hc = $pvcorr; # Voreinstellung RAW-Korrekturfaktor
|
||||||
my $hcfound = "use manual correction factor";
|
my $hcfound = "use manual correction factor";
|
||||||
my $hq = "m";
|
my $hq = "m";
|
||||||
@ -4728,8 +4729,8 @@ sub calcPVforecast {
|
|||||||
($hc, $hq) = CircularAutokorrVal ($hash, sprintf("%02d",$fh+1), $range, undef); # Korrekturfaktor/KF-Qualität der Stunde des Tages der entsprechenden Bewölkungsrange
|
($hc, $hq) = CircularAutokorrVal ($hash, sprintf("%02d",$fh+1), $range, undef); # Korrekturfaktor/KF-Qualität der Stunde des Tages der entsprechenden Bewölkungsrange
|
||||||
$hq //= 0;
|
$hq //= 0;
|
||||||
if (!defined $hc) {
|
if (!defined $hc) {
|
||||||
$hcfound = "no - use raw correction factor";
|
$hcfound = "no";
|
||||||
$hc = $pvcorr; # nutze RAW-Korrekturfaktor
|
$hc = 1.00; # keine Korrektur
|
||||||
$hq = 0;
|
$hq = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4765,7 +4766,6 @@ sub calcPVforecast {
|
|||||||
"Area factor" => $af,
|
"Area factor" => $af,
|
||||||
"Cloudcover" => $cloudcover,
|
"Cloudcover" => $cloudcover,
|
||||||
"CloudRange" => $range,
|
"CloudRange" => $range,
|
||||||
"CloudCorrFoundInStore" => $hcfound,
|
|
||||||
"CloudFactorDamping" => $clouddamp." %",
|
"CloudFactorDamping" => $clouddamp." %",
|
||||||
"Cloudfactor" => $ccf,
|
"Cloudfactor" => $ccf,
|
||||||
"Rainprob" => $rainprob,
|
"Rainprob" => $rainprob,
|
||||||
@ -4798,6 +4798,7 @@ sub calcPVforecast {
|
|||||||
($pvsum, $logao) = _70percentRule ($paref);
|
($pvsum, $logao) = _70percentRule ($paref);
|
||||||
|
|
||||||
$lh = { # Log-Hash zur Ausgabe
|
$lh = { # Log-Hash zur Ausgabe
|
||||||
|
"CloudCorrFoundInStore" => $hcfound,
|
||||||
"PV correction factor" => $hc,
|
"PV correction factor" => $hc,
|
||||||
"PV correction quality" => $hq,
|
"PV correction quality" => $hq,
|
||||||
"PV generation forecast" => $pvsum." Wh ".$logao,
|
"PV generation forecast" => $pvsum." Wh ".$logao,
|
||||||
@ -4900,7 +4901,7 @@ sub calcVariance {
|
|||||||
|
|
||||||
$paref->{hour} = $h;
|
$paref->{hour} = $h;
|
||||||
my ($pvavg,$fcavg,$anzavg,$range) = calcAvgFromHistory ($paref); # historische PV / Forecast Vergleichswerte ermitteln
|
my ($pvavg,$fcavg,$anzavg,$range) = calcAvgFromHistory ($paref); # historische PV / Forecast Vergleichswerte ermitteln
|
||||||
$anzavg //= 0; # der aktuelle Wert ist dann der erste AVG im Store
|
$anzavg //= 1; # der aktuelle Wert ist nun der erste AVG im Store
|
||||||
$pvval = $pvavg ? ($pvval + $pvavg) / 2 : $pvval; # Ertrag aktuelle Stunde berücksichtigen
|
$pvval = $pvavg ? ($pvval + $pvavg) / 2 : $pvval; # Ertrag aktuelle Stunde berücksichtigen
|
||||||
$fcval = $fcavg ? ($fcval + $fcavg) / 2 : $fcval; # Vorhersage aktuelle Stunde berücksichtigen
|
$fcval = $fcavg ? ($fcval + $fcavg) / 2 : $fcval; # Vorhersage aktuelle Stunde berücksichtigen
|
||||||
|
|
||||||
@ -5057,7 +5058,7 @@ sub setPVhistory {
|
|||||||
my $wid = $paref->{wid} // -1;
|
my $wid = $paref->{wid} // -1;
|
||||||
my $wcc = $paref->{wcc} // 0; # Wolkenbedeckung
|
my $wcc = $paref->{wcc} // 0; # Wolkenbedeckung
|
||||||
my $wrp = $paref->{wrp} // 0; # Wahrscheinlichkeit von Niederschlag
|
my $wrp = $paref->{wrp} // 0; # Wahrscheinlichkeit von Niederschlag
|
||||||
my $pvcorrf = $paref->{pvcorrf} // "1/0"; # pvCorrectionFactor
|
my $pvcorrf = $paref->{pvcorrf} // "1.00/0"; # pvCorrectionFactor
|
||||||
my $temp = $paref->{temp}; # Außentemperatur
|
my $temp = $paref->{temp}; # Außentemperatur
|
||||||
|
|
||||||
my $type = $hash->{TYPE};
|
my $type = $hash->{TYPE};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user