diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index e81016966..e73988285 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -1,5 +1,5 @@ ######################################################################################################################## -# $Id: 76_SolarForecast.pm 21735 2023-07-07 23:53:24Z DS_Starter $ +# $Id: 76_SolarForecast.pm 21735 2023-07-09 23:53:24Z DS_Starter $ ######################################################################################################################### # 76_SolarForecast.pm # @@ -136,6 +136,7 @@ BEGIN { # Versions History intern my %vNotesIntern = ( + "0.80.6" => "09.07.2023 get ... html has some possible arguments now ", "0.80.5" => "07.07.2023 calculate _calcCaQcloudcover, _calcCaQsimple both at every time, change setter pvCorrectionFactor_Auto: on_simple, on_complex, off ", "0.80.4" => "06.07.2023 new transferprocess for DWD data from solcastapi-Hash to estimate calculation, consolidated ". "the autocorrection model ", @@ -2070,7 +2071,7 @@ sub Get { "valConsumerMaster:noArg ". "data:noArg ". "forecastQualities:noArg ". - "html:noArg ". + "html:both,flow,forecast,none ". "nextHours:noArg ". "pvCircular:noArg ". "pvHistory:noArg ". @@ -3003,8 +3004,9 @@ return centralTask ($hash); sub _gethtml { my $paref = shift; my $name = $paref->{name}; + my $arg = $paref->{arg} // 'both'; -return pageAsHtml ($name); +return pageAsHtml ($name, '-', $arg); } ############################################################### @@ -7057,10 +7059,11 @@ return; ################################################################ sub pageAsHtml { my $name = shift; - my $ftui = shift; + my $ftui = shift // ""; + my $gsel = shift // ""; # direkte Auswahl welche Grafik zurück gegeben werden soll (both, flow, forecast) my $ret = ""; - $ret .= entryGraphic ($name, $ftui); + $ret .= entryGraphic ($name, $ftui, $gsel); $ret .= ""; return $ret; @@ -7072,6 +7075,7 @@ return $ret; sub entryGraphic { my $name = shift; my $ftui = shift // ""; + my $gsel = shift // ""; # direkte Auswahl welche Grafik zurück gegeben werden soll (both, flow, forecast) my $hash = $defs{$name}; @@ -7090,14 +7094,16 @@ sub entryGraphic { ################################### my $width = AttrNum ($name, 'graphicBeamWidth', 20); # zu klein ist nicht problematisch my $maxhours = AttrNum ($name, 'graphicHourCount', 24); - my $alias = AttrVal ($name, 'alias', $name); # Linktext als Aliasname oder Devicename setzen - my $gsel = AttrVal ($name, 'graphicSelect', 'both'); # Auswahl der anzuzeigenden Grafiken + my $alias = AttrVal ($name, 'alias', $name); # Linktext als Aliasname oder Devicename setzen my $html_start = AttrVal ($name, 'graphicStartHtml', undef); # beliebige HTML Strings die vor der Grafik ausgegeben werden my $html_start = AttrVal ($name, 'graphicStartHtml', undef); # beliebige HTML Strings die vor der Grafik ausgegeben werden - my $html_end = AttrVal ($name, 'graphicEndHtml', undef); # beliebige HTML Strings die nach der Grafik ausgegeben werden + my $html_end = AttrVal ($name, 'graphicEndHtml', undef); # beliebige HTML Strings die nach der Grafik ausgegeben werden my $w = $width * $maxhours; # gesammte Breite der Ausgabe , WetterIcon braucht ca. 34px my $w = $width * $maxhours; # gesammte Breite der Ausgabe , WetterIcon braucht ca. 34px my $offset = -1 * AttrNum ($name, 'graphicHistoryHour', $histhourdef); - my $dlink = qq{$alias}; + + if (!$gsel) { + $gsel = AttrVal ($name, 'graphicSelect', 'both'); # Auswahl der anzuzeigenden Grafiken + } my $paref = { hash => $hash, @@ -7427,13 +7433,13 @@ sub _graphicHeader { my $cmdupdate = qq{"FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name clientAction - 0 get $name data')"}; # Update Button generieren - if ($ftui eq "ftui") { + if ($ftui eq 'ftui') { $cmdupdate = qq{"ftui.setFhemStatus('set $name clientAction - 0 get $name data')"}; } my $cmdplchk = qq{"FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=get $name plantConfigCheck', function(data){FW_okDialog(data)})"}; # Plant Check Button generieren - if ($ftui eq "ftui") { + if ($ftui eq 'ftui') { $cmdplchk = qq{"ftui.setFhemStatus('get $name plantConfigCheck')"}; } @@ -12135,7 +12141,7 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden. on_simple:
Bei dieser Methode wird die stündlich vorhergesagte mit der real erzeugten Energiemenge verglichen und daraus ein für die Zukunft verwendeter Korrekturfaktor für die jeweilige Stunde erstellt. Die von der gewählten API gelieferten - Prognosedaten werden nicht zusätzlich mit weiteren Bedingungen wie den Bewökungszustand oder Temperaturen in + Prognosedaten werden nicht zusätzlich mit weiteren Bedingungen wie den Bewölkungszustand oder Temperaturen in Beziehung gesetzt.
In diesem Korrekturmodus haben die Attribute affectCloudfactorDamping und @@ -12146,7 +12152,7 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden. on_complex:
Bei dieser Methode wird die stündlich vorhergesagte mit der real erzeugten Energiemenge verglichen und daraus ein für die Zukunft verwendeter Korrekturfaktor für die jeweilige Stunde erstellt. Die von der gewählten API gelieferten - Prognosedaten werden außerdem zusätzlich mit weiteren Bedingungen wie den Bewökungszustand oder Temperaturen + Prognosedaten werden außerdem zusätzlich mit weiteren Bedingungen wie den Bewölkungszustand oder Temperaturen verknüpft.

@@ -12317,15 +12323,28 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
@@ -13159,7 +13178,7 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
  • graphicSelect
    - Wählt die anzuzeigende Grafik des Moduls aus.
    + Wählt die anzuzeigenden Grafiksegmente des Moduls aus.
    Zur Anpassung der Energieflußgrafik steht neben den flowGraphic.*-Attributen auch das Attribut flowGraphicCss zur Verfügung.

    @@ -13169,7 +13188,7 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden. both zeigt Energiefluß- und Balkengrafik an (default) flow zeigt die Energieflußgrafik an forecast zeigt die Balkengrafik an - none es wird keine Grafik angezeigt + none es wird weder Energiefluß- noch Balkengrafik angezeigt