mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-21 07:56:03 +00:00
76_SolarForecast: contrib 1.49.0
git-svn-id: https://svn.fhem.de/fhem/trunk@29776 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
41db0cd783
commit
d50896e4b8
@ -166,7 +166,7 @@ my %vNotesIntern = (
|
|||||||
"__calcPVestimates: pv power summary of all strings connected to inverter limited to inverter capacity summary ".
|
"__calcPVestimates: pv power summary of all strings connected to inverter limited to inverter capacity summary ".
|
||||||
"_batChargeRecmd: fix calc if more than one batteries are installed, set aiDecTree: new option rawDataGHIreplace ".
|
"_batChargeRecmd: fix calc if more than one batteries are installed, set aiDecTree: new option rawDataGHIreplace ".
|
||||||
"new Attr plantControl with keys feedinPowerLimit, batteryPreferredCharge, consForecastInPlanning ".
|
"new Attr plantControl with keys feedinPowerLimit, batteryPreferredCharge, consForecastInPlanning ".
|
||||||
"Attr affectBatteryPreferredCharge, affectConsForecastInPlanning are obsolete ",
|
"Attr affectBatteryPreferredCharge, affectConsForecastInPlanning, ctrlShowLink are obsolete ",
|
||||||
"1.48.0" => "14.03.2025 edit commandref, add graphicBeam layer 5 and 6, attr ctrlAIdataStorageDuration, ctrlAIshiftTrainStart removed ",
|
"1.48.0" => "14.03.2025 edit commandref, add graphicBeam layer 5 and 6, attr ctrlAIdataStorageDuration, ctrlAIshiftTrainStart removed ",
|
||||||
"1.47.3" => "11.03.2025 adjust weather_ids and management of significant weather, _calcDataEveryFullHour: change attrInvChangedTs Management ".
|
"1.47.3" => "11.03.2025 adjust weather_ids and management of significant weather, _calcDataEveryFullHour: change attrInvChangedTs Management ".
|
||||||
"split __batteryOnBeam into _beamFillupBatValues and itself, expand bat key 'show' by top, bottom ".
|
"split __batteryOnBeam into _beamFillupBatValues and itself, expand bat key 'show' by top, bottom ".
|
||||||
@ -575,7 +575,7 @@ my @aconfigs = qw( affectConsForecastIdentWeekdays
|
|||||||
ctrlBackupFilesKeep
|
ctrlBackupFilesKeep
|
||||||
ctrlConsRecommendReadings ctrlGenPVdeviation ctrlInterval
|
ctrlConsRecommendReadings ctrlGenPVdeviation ctrlInterval
|
||||||
ctrlLanguage ctrlNextDayForecastReadings ctrlNextHoursSoCForecastReadings
|
ctrlLanguage ctrlNextDayForecastReadings ctrlNextHoursSoCForecastReadings
|
||||||
ctrlShowLink ctrlSolCastAPImaxReq
|
ctrlSolCastAPImaxReq
|
||||||
ctrlSolCastAPIoptimizeReq ctrlSpecialReadings ctrlUserExitFn
|
ctrlSolCastAPIoptimizeReq ctrlSpecialReadings ctrlUserExitFn
|
||||||
disable
|
disable
|
||||||
flowGraphicControl graphicBeamWidth
|
flowGraphicControl graphicBeamWidth
|
||||||
@ -1543,7 +1543,6 @@ sub Initialize {
|
|||||||
"ctrlLanguage:DE,EN ".
|
"ctrlLanguage:DE,EN ".
|
||||||
"ctrlNextDayForecastReadings:multiple-strict,$hod ".
|
"ctrlNextDayForecastReadings:multiple-strict,$hod ".
|
||||||
"ctrlNextHoursSoCForecastReadings ".
|
"ctrlNextHoursSoCForecastReadings ".
|
||||||
"ctrlShowLink:1,0 ".
|
|
||||||
"ctrlSolCastAPImaxReq:selectnumbers,5,5,60,0,lin ".
|
"ctrlSolCastAPImaxReq:selectnumbers,5,5,60,0,lin ".
|
||||||
"ctrlSolCastAPIoptimizeReq:1,0 ".
|
"ctrlSolCastAPIoptimizeReq:1,0 ".
|
||||||
"ctrlSpecialReadings:multiple-strict,$srd ".
|
"ctrlSpecialReadings:multiple-strict,$srd ".
|
||||||
@ -1594,7 +1593,7 @@ sub Initialize {
|
|||||||
### nicht mehr benötigte Daten verarbeiten - Bereich kann später wieder raus !!
|
### nicht mehr benötigte Daten verarbeiten - Bereich kann später wieder raus !!
|
||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
my $av = 'obsolete#-#use#attr#plantControl#instead';
|
my $av = 'obsolete#-#use#attr#plantControl#instead';
|
||||||
$hash->{AttrList} .= " affectBatteryPreferredCharge:$av affectConsForecastInPlanning:$av"; # 22.03.2025
|
$hash->{AttrList} .= " affectBatteryPreferredCharge:$av affectConsForecastInPlanning:$av ctrlShowLink:$av"; # 22.03.2025
|
||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
|
|
||||||
$hash->{FW_hideDisplayName} = 1; # Forum 88667
|
$hash->{FW_hideDisplayName} = 1; # Forum 88667
|
||||||
@ -5874,7 +5873,7 @@ sub Attr {
|
|||||||
|
|
||||||
### nicht mehr benötigte Daten verarbeiten - Bereich kann später wieder raus !!
|
### nicht mehr benötigte Daten verarbeiten - Bereich kann später wieder raus !!
|
||||||
######################################################################################################################
|
######################################################################################################################
|
||||||
if ($cmd eq 'set' && $aName =~ /^affectBatteryPreferredCharge|affectConsForecastInPlanning$/) { # 22.03.2025
|
if ($cmd eq 'set' && $aName =~ /^affectBatteryPreferredCharge|affectConsForecastInPlanning|ctrlShowLink$/) { # 22.03.2025
|
||||||
#my $msg = "The attribute $aName is obsolete and will be deleted soon. Please press 'save config' when restart is finished.";
|
#my $msg = "The attribute $aName is obsolete and will be deleted soon. Please press 'save config' when restart is finished.";
|
||||||
my $msg = "The attribute $aName is replaced by 'plantControl'.";
|
my $msg = "The attribute $aName is replaced by 'plantControl'.";
|
||||||
if (!$init_done) {
|
if (!$init_done) {
|
||||||
@ -6352,6 +6351,7 @@ sub _attrplantControl { ## no critic "not used"
|
|||||||
for my $av ( qw( batteryPreferredCharge
|
for my $av ( qw( batteryPreferredCharge
|
||||||
consForecastInPlanning
|
consForecastInPlanning
|
||||||
feedinPowerLimit
|
feedinPowerLimit
|
||||||
|
showLink
|
||||||
) ) {
|
) ) {
|
||||||
|
|
||||||
delete $data{$name}{current}{$av};
|
delete $data{$name}{current}{$av};
|
||||||
@ -6362,6 +6362,7 @@ sub _attrplantControl { ## no critic "not used"
|
|||||||
batteryPreferredCharge => '([0-9]|[1-9][0-9]|100)',
|
batteryPreferredCharge => '([0-9]|[1-9][0-9]|100)',
|
||||||
consForecastInPlanning => '0|1',
|
consForecastInPlanning => '0|1',
|
||||||
feedinPowerLimit => '\d+',
|
feedinPowerLimit => '\d+',
|
||||||
|
showLink => '0|1',
|
||||||
};
|
};
|
||||||
|
|
||||||
my ($a, $h) = parseParams ($aVal);
|
my ($a, $h) = parseParams ($aVal);
|
||||||
@ -7996,12 +7997,22 @@ sub centralTask {
|
|||||||
my $pc1 = AttrVal ($name, 'plantControl', '');
|
my $pc1 = AttrVal ($name, 'plantControl', '');
|
||||||
|
|
||||||
if (defined $afp) {
|
if (defined $afp) {
|
||||||
my $newval = $apc." consForecastInPlanning=$afp";
|
my $newval = $pc1." consForecastInPlanning=$afp";
|
||||||
CommandAttr (undef, "$name plantControl $newval");
|
CommandAttr (undef, "$name plantControl $newval");
|
||||||
::CommandDeleteAttr (undef, "$name affectConsForecastInPlanning");
|
::CommandDeleteAttr (undef, "$name affectConsForecastInPlanning");
|
||||||
}
|
}
|
||||||
######
|
######
|
||||||
|
|
||||||
|
my $csl = AttrVal ($name, 'ctrlShowLink', undef); # 22.03.2025
|
||||||
|
my $pc2 = AttrVal ($name, 'plantControl', '');
|
||||||
|
|
||||||
|
if (defined $csl) {
|
||||||
|
my $newval = $pc2." showLink=$csl";
|
||||||
|
CommandAttr (undef, "$name plantControl $newval");
|
||||||
|
::CommandDeleteAttr (undef, "$name ctrlShowLink");
|
||||||
|
}
|
||||||
|
######
|
||||||
|
|
||||||
my $n = 0; # 01.02.25 -> Datenmigration pvrlsum, pvfcsum, dnumsum in pvrl_*, pvfc_*
|
my $n = 0; # 01.02.25 -> Datenmigration pvrlsum, pvfcsum, dnumsum in pvrl_*, pvfc_*
|
||||||
for my $hh (1..24) {
|
for my $hh (1..24) {
|
||||||
$hh = sprintf "%02d", $hh;
|
$hh = sprintf "%02d", $hh;
|
||||||
@ -13711,7 +13722,7 @@ sub entryGraphic {
|
|||||||
my $colspan = $maxhours + 2;
|
my $colspan = $maxhours + 2;
|
||||||
my $ret = q{};
|
my $ret = q{};
|
||||||
|
|
||||||
$ret .= "<span>$dlink </span><br>" if(AttrVal($name, 'ctrlShowLink', 0));
|
$ret .= "<span>$dlink </span><br>" if(CurrentVal ($name, 'showLink', 0));
|
||||||
|
|
||||||
#$ret .= "<style>TD.solarfc {text-align: center; padding-left:1px; padding-right:1px; margin:0px;}</style>";
|
#$ret .= "<style>TD.solarfc {text-align: center; padding-left:1px; padding-right:1px; margin:0px;}</style>";
|
||||||
$ret .= "<style>TD.solarfc {text-align: center; padding-left:5px; padding-right:5px; margin:0px;}</style>";
|
$ret .= "<style>TD.solarfc {text-align: center; padding-left:5px; padding-right:5px; margin:0px;}</style>";
|
||||||
@ -23999,12 +24010,6 @@ to ensure that the system configuration is correct.
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<a id="SolarForecast-attr-alias"></a>
|
|
||||||
<li><b>alias </b> <br>
|
|
||||||
In connection with "ctrlShowLink" any display name.
|
|
||||||
</li>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<a id="SolarForecast-attr-consumerAdviceIcon"></a>
|
<a id="SolarForecast-attr-consumerAdviceIcon"></a>
|
||||||
<li><b>consumerAdviceIcon </b><br>
|
<li><b>consumerAdviceIcon </b><br>
|
||||||
Defines the type of information about the planned switching times of a consumer in the consumer legend.
|
Defines the type of information about the planned switching times of a consumer in the consumer legend.
|
||||||
@ -24404,13 +24409,6 @@ to ensure that the system configuration is correct.
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<a id="SolarForecast-attr-ctrlShowLink"></a>
|
|
||||||
<li><b>ctrlShowLink </b><br>
|
|
||||||
Display of the link to the detailed view of the device above the graphic area. <br>
|
|
||||||
(default: 1)
|
|
||||||
</li>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<a id="SolarForecast-attr-ctrlSolCastAPImaxReq"></a>
|
<a id="SolarForecast-attr-ctrlSolCastAPImaxReq"></a>
|
||||||
<li><b>ctrlSolCastAPImaxReq </b><br>
|
<li><b>ctrlSolCastAPImaxReq </b><br>
|
||||||
(only when using Model SolCastAPI) <br><br>
|
(only when using Model SolCastAPI) <br><br>
|
||||||
@ -24918,12 +24916,15 @@ to ensure that the system configuration is correct.
|
|||||||
<tr><td> </td><td><b>0</b> - the consumers are scheduled on the basis of the PV forecast (default) </td></tr>
|
<tr><td> </td><td><b>0</b> - the consumers are scheduled on the basis of the PV forecast (default) </td></tr>
|
||||||
<tr><td> </td><td><b>1</b> - consumers are scheduled on the basis of the PV forecast and the consumption forecast </td></tr>
|
<tr><td> </td><td><b>1</b> - consumers are scheduled on the basis of the PV forecast and the consumption forecast </td></tr>
|
||||||
<tr><td> </td><td> </td></tr>
|
<tr><td> </td><td> </td></tr>
|
||||||
|
<tr><td> <b>showLink</b> </td><td>Display of a link to the detailed view of the device above the graphics area </td></tr>
|
||||||
|
<tr><td> </td><td><b>0</b> - Display off, <b>1</b> - Display on, default: 0 </td></tr>
|
||||||
|
<tr><td> </td><td> </td></tr>
|
||||||
</table>
|
</table>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<b>Beispiel: </b> <br>
|
<b>Beispiel: </b> <br>
|
||||||
attr <name> plantControl feedinPowerLimit=4800 consForecastInPlanning=1
|
attr <name> plantControl feedinPowerLimit=4800 consForecastInPlanning=1 showLink=1
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
@ -26521,12 +26522,6 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<a id="SolarForecast-attr-alias"></a>
|
|
||||||
<li><b>alias </b> <br>
|
|
||||||
In Verbindung mit "ctrlShowLink" ein beliebiger Anzeigename.
|
|
||||||
</li>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<a id="SolarForecast-attr-consumerAdviceIcon"></a>
|
<a id="SolarForecast-attr-consumerAdviceIcon"></a>
|
||||||
<li><b>consumerAdviceIcon </b><br>
|
<li><b>consumerAdviceIcon </b><br>
|
||||||
Definiert die Art der Information über die geplanten Schaltzeiten eines Verbrauchers in der Verbraucherlegende.
|
Definiert die Art der Information über die geplanten Schaltzeiten eines Verbrauchers in der Verbraucherlegende.
|
||||||
@ -26926,13 +26921,6 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<a id="SolarForecast-attr-ctrlShowLink"></a>
|
|
||||||
<li><b>ctrlShowLink </b><br>
|
|
||||||
Anzeige des Links zur Detailansicht des Device über dem Grafikbereich <br>
|
|
||||||
(default: 1)
|
|
||||||
</li>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<a id="SolarForecast-attr-ctrlSolCastAPImaxReq"></a>
|
<a id="SolarForecast-attr-ctrlSolCastAPImaxReq"></a>
|
||||||
<li><b>ctrlSolCastAPImaxReq </b><br>
|
<li><b>ctrlSolCastAPImaxReq </b><br>
|
||||||
(nur bei Verwendung Model SolCastAPI) <br><br>
|
(nur bei Verwendung Model SolCastAPI) <br><br>
|
||||||
@ -27437,12 +27425,15 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
|
|||||||
<tr><td> </td><td><b>0</b> - die Einplanung der Verbraucher erfolgt auf Grundlage der PV Prognose (default) </td></tr>
|
<tr><td> </td><td><b>0</b> - die Einplanung der Verbraucher erfolgt auf Grundlage der PV Prognose (default) </td></tr>
|
||||||
<tr><td> </td><td><b>1</b> - die Einplanung der Verbraucher erfolgt auf Grundlage der PV Prognose und der Prognose des Verbrauchs </td></tr>
|
<tr><td> </td><td><b>1</b> - die Einplanung der Verbraucher erfolgt auf Grundlage der PV Prognose und der Prognose des Verbrauchs </td></tr>
|
||||||
<tr><td> </td><td> </td></tr>
|
<tr><td> </td><td> </td></tr>
|
||||||
|
<tr><td> <b>showLink</b> </td><td>Anzeige eines Links zur Detailansicht des Device über dem Grafikbereich </td></tr>
|
||||||
|
<tr><td> </td><td><b>0</b> - Anzeige aus, <b>1</b> - Anzeige an, default: 0 </td></tr>
|
||||||
|
<tr><td> </td><td> </td></tr>
|
||||||
</table>
|
</table>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<b>Beispiel: </b> <br>
|
<b>Beispiel: </b> <br>
|
||||||
attr <name> plantControl feedinPowerLimit=4800 consForecastInPlanning=1
|
attr <name> plantControl feedinPowerLimit=4800 consForecastInPlanning=1 showLink=1
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user