mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-25 16:05:19 +00:00
76_SolarForecast.pm: contrib 0.68.6
git-svn-id: https://svn.fhem.de/fhem/trunk@26486 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c41fd07eef
commit
a582072c07
@ -126,6 +126,7 @@ BEGIN {
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
my %vNotesIntern = (
|
my %vNotesIntern = (
|
||||||
|
"0.68.6 "=> "05.10.2022 new attribute solCastPercentile ",
|
||||||
"0.68.5 "=> "03.10.2022 extent plant configuration check ",
|
"0.68.5 "=> "03.10.2022 extent plant configuration check ",
|
||||||
"0.68.4 "=> "03.10.2022 do ___setLastAPIcallKeyData if response_status, generate events of Today_MaxPVforecast.* in every cycle ".
|
"0.68.4 "=> "03.10.2022 do ___setLastAPIcallKeyData if response_status, generate events of Today_MaxPVforecast.* in every cycle ".
|
||||||
"add SolCast section in _graphicHeader, change default colors and settings, new reading Today_PVreal ".
|
"add SolCast section in _graphicHeader, change default colors and settings, new reading Today_PVreal ".
|
||||||
@ -739,6 +740,7 @@ sub Initialize {
|
|||||||
"showLink:1,0 ".
|
"showLink:1,0 ".
|
||||||
"showNight:1,0 ".
|
"showNight:1,0 ".
|
||||||
"showWeather:1,0 ".
|
"showWeather:1,0 ".
|
||||||
|
"solCastPercentile:slider,10,10,90 ".
|
||||||
"spaceSize ".
|
"spaceSize ".
|
||||||
"Wh_kWh:Wh,kWh ".
|
"Wh_kWh:Wh,kWh ".
|
||||||
"weatherColor:colorpicker,RGB ".
|
"weatherColor:colorpicker,RGB ".
|
||||||
@ -1980,6 +1982,19 @@ sub __solCast_ApiResponse {
|
|||||||
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate10} += sprintf "%.0f", ($pvest10 * ($period/60) * 1000);
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate10} += sprintf "%.0f", ($pvest10 * ($period/60) * 1000);
|
||||||
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate90} += sprintf "%.0f", ($pvest90 * ($period/60) * 1000);
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate90} += sprintf "%.0f", ($pvest90 * ($period/60) * 1000);
|
||||||
|
|
||||||
|
## erstellen Zusatzpercentile
|
||||||
|
###############################
|
||||||
|
my $lowdm = ($data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} - $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate10}) / 4;
|
||||||
|
my $highdm = ($data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate90} - $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate}) / 4;
|
||||||
|
|
||||||
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate20} = $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} - ($lowdm * 3);
|
||||||
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate30} = $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} - ($lowdm * 2);
|
||||||
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate40} = $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} - ($lowdm * 1);
|
||||||
|
|
||||||
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate60} = $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} + ($highdm * 1);
|
||||||
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate70} = $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} + ($highdm * 2);
|
||||||
|
$data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate80} = $data{$type}{$name}{solcastapi}{$string}{$starttmstr}{pv_estimate} + ($highdm * 3);
|
||||||
|
|
||||||
$k += 1;
|
$k += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2675,12 +2690,12 @@ sub centralTask {
|
|||||||
|
|
||||||
#deleteReadingspec ($hash, "CurrentHourPVforecast");
|
#deleteReadingspec ($hash, "CurrentHourPVforecast");
|
||||||
#deleteReadingspec ($hash, "NextHours_Sum00_PVforecast");
|
#deleteReadingspec ($hash, "NextHours_Sum00_PVforecast");
|
||||||
deleteReadingspec ($hash, "nextPolltime");
|
#deleteReadingspec ($hash, "nextPolltime");
|
||||||
delete $data{$type}{$name}{solcastapi}{'All'};
|
#delete $data{$type}{$name}{solcastapi}{'All'};
|
||||||
delete $data{$type}{$name}{solcastapi}{'#All'};
|
#delete $data{$type}{$name}{solcastapi}{'#All'};
|
||||||
delete $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{todaySolCastAPIcalls};
|
#delete $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{todaySolCastAPIcalls};
|
||||||
delete $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{currentAPIInterval};
|
#delete $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{currentAPIInterval};
|
||||||
delete $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{todayDoneAPIcalls};
|
#delete $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{todayDoneAPIcalls};
|
||||||
|
|
||||||
###############################################################
|
###############################################################
|
||||||
|
|
||||||
@ -2744,10 +2759,10 @@ sub centralTask {
|
|||||||
|
|
||||||
if (isSolCastUsed ($hash)) {
|
if (isSolCastUsed ($hash)) {
|
||||||
_getRoofTopData ($centpars); # SolCast API Strahlungswerte abrufen
|
_getRoofTopData ($centpars); # SolCast API Strahlungswerte abrufen
|
||||||
_transferSolCastRadiationValues ($centpars); # SolCast API Strahlungswerte übertragen
|
_transferSolCastRadiationValues ($centpars); # SolCast API Strahlungswerte übertragen und Forecast erstellen
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_transferDWDRadiationValues ($centpars); # DWD Strahlungswerte übertragen
|
_transferDWDRadiationValues ($centpars); # DWD Strahlungswerte übertragen und Forecast erstellen
|
||||||
}
|
}
|
||||||
|
|
||||||
_calcMaxEstimateToday ($centpars); # heutigen Max PV Estimate & dessen Tageszeit ermitteln
|
_calcMaxEstimateToday ($centpars); # heutigen Max PV Estimate & dessen Tageszeit ermitteln
|
||||||
@ -3470,7 +3485,11 @@ sub __calcSolCastEstimates {
|
|||||||
|
|
||||||
$peak *= 1000;
|
$peak *= 1000;
|
||||||
|
|
||||||
my $est = SolCastAPIVal ($hash, $string, $wantdt, 'pv_estimate', 0);
|
my $perc = AttrVal ($name, 'solCastPercentile', 50); # Percentile Auswahl
|
||||||
|
$perc = q{} if($perc == 50);
|
||||||
|
|
||||||
|
my $est = SolCastAPIVal ($hash, $string, $wantdt, 'pv_estimate', 0); # Estimate mittleres Percentile
|
||||||
|
$est = SolCastAPIVal ($hash, $string, $wantdt, 'pv_estimate'.$perc, $est);
|
||||||
my $pv = sprintf "%.1f", ($est * $ccf * $rcf);
|
my $pv = sprintf "%.1f", ($est * $ccf * $rcf);
|
||||||
|
|
||||||
$lh = { # Log-Hash zur Ausgabe
|
$lh = { # Log-Hash zur Ausgabe
|
||||||
@ -10306,7 +10325,7 @@ Ein/Ausschaltzeiten sowie deren Ausführung vom SolarForecast Modul übernehmen
|
|||||||
|
|
||||||
<a id="SolarForecast-attr-cloudFactorDamping"></a>
|
<a id="SolarForecast-attr-cloudFactorDamping"></a>
|
||||||
<li><b>cloudFactorDamping </b><br>
|
<li><b>cloudFactorDamping </b><br>
|
||||||
Prozentuale Mehrgewichtung der Berücksichtigung des Bewölkungsfaktors bei der solaren Vorhersage. <br>
|
Prozentuale Mehrgewichtung des Bewölkungsfaktors bei der solaren Vorhersage. <br>
|
||||||
Größere Werte vermindern, kleinere Werte erhöhen tendenziell den prognostizierten PV Ertrag (Dämpfung der PV
|
Größere Werte vermindern, kleinere Werte erhöhen tendenziell den prognostizierten PV Ertrag (Dämpfung der PV
|
||||||
Prognose durch den Bewölkungsfaktor).<br>
|
Prognose durch den Bewölkungsfaktor).<br>
|
||||||
(default: 35)
|
(default: 35)
|
||||||
@ -10726,7 +10745,7 @@ Ein/Ausschaltzeiten sowie deren Ausführung vom SolarForecast Modul übernehmen
|
|||||||
|
|
||||||
<a id="SolarForecast-attr-rainFactorDamping"></a>
|
<a id="SolarForecast-attr-rainFactorDamping"></a>
|
||||||
<li><b>rainFactorDamping </b><br>
|
<li><b>rainFactorDamping </b><br>
|
||||||
Prozentuale Mehrgewichtung der Berücksichtigung des Regenprognosefaktors bei der solaren Vorhersage. <br>
|
Prozentuale Mehrgewichtung des Regenprognosefaktors bei der solaren Vorhersage. <br>
|
||||||
Größere Werte vermindern, kleinere Werte erhöhen tendenziell den prognostizierten PV Ertrag (Dämpfung der PV
|
Größere Werte vermindern, kleinere Werte erhöhen tendenziell den prognostizierten PV Ertrag (Dämpfung der PV
|
||||||
Prognose durch den Regenfaktor).<br>
|
Prognose durch den Regenfaktor).<br>
|
||||||
(default: 10)
|
(default: 10)
|
||||||
@ -10775,7 +10794,25 @@ Ein/Ausschaltzeiten sowie deren Ausführung vom SolarForecast Modul übernehmen
|
|||||||
Wettericons anzeigen. <br>
|
Wettericons anzeigen. <br>
|
||||||
(default: 1)
|
(default: 1)
|
||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<a id="SolarForecast-attr-solCastPercentile"></a>
|
||||||
|
<li><b>solCastPercentile </b><br>
|
||||||
|
(nur bei Verwendung der SolCast API) <br><br>
|
||||||
|
|
||||||
|
Auswahl des Vorhersageszenarios. <br>
|
||||||
|
SolCast liefert neben der deterministischen Vorhersage (die nur einen einzigen Wert ergibt)
|
||||||
|
ebenfalls probabilistische Vorhersagedaten in Form von Konfidenzintervallen, die eine
|
||||||
|
10 %- und 90 %-Wahrscheinlichkeitsgrenze um einen mittleren Prognosewert darstellen. <br>
|
||||||
|
Die '10'-Szenarien stellen die untere Grenze dessen dar, was in der Vorhersage erwartet wird.
|
||||||
|
Die '90'-Szenarien stellen die Obergrenze dessen dar, was in den Prognosedaten erwartet wird. <br>
|
||||||
|
Weitere Informationen zur SolCast Vorhersageerstellung findet man auf dieser
|
||||||
|
<a href="https://articles.solcast.com.au/en/articles/2963469-solcast-probabilistic-forecasting-fields-what-are-they-how-do-we-create-them">SolCast-Seite</a>.
|
||||||
|
<br>
|
||||||
|
|
||||||
|
(default: 50 = mittlerer Prognosewert)
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
|
||||||
<a id="SolarForecast-attr-spaceSize"></a>
|
<a id="SolarForecast-attr-spaceSize"></a>
|
||||||
<li><b>spaceSize <value> </b><br>
|
<li><b>spaceSize <value> </b><br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user