76_SolarForecast: contrib V 1.54.1
git-svn-id: https://svn.fhem.de/fhem/trunk@30113 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -160,8 +160,9 @@ BEGIN {
|
||||
|
||||
# Versions History intern
|
||||
my %vNotesIntern = (
|
||||
"1.54.1" => "06.07.2025 change utf8 to UTF-8, userExit: new coding, __createReduceIcon: fix Wide character in syswrite - https://forum.fhem.de/index.php?msg=1344368 ".
|
||||
"_setattrKeyVal: optimize function between execute from FHEMWEB and Commandline ",
|
||||
"1.54.1" => "07.07.2025 change utf8 to UTF-8, userExit: new coding, __createReduceIcon: fix Wide character in syswrite - https://forum.fhem.de/index.php?msg=1344368 ".
|
||||
"_setattrKeyVal: optimize function between execute from FHEMWEB and Commandline ".
|
||||
"_beamGraphicFirstHour, _beamGraphicRemainingHours: decimal places according to the setting of the energy unit",
|
||||
"1.54.0" => "05.07.2025 edit commandref, ___areaFactorTrack: important bugfix in calc of direct area factor for DWD use ",
|
||||
"1.53.3" => "04.07.2025 Change of the correction factor calculation to the ratio of real production and the API raw forecast ",
|
||||
"1.53.2" => "03.07.2025 graphicControl->showDiff can be set separately for each level ".
|
||||
@@ -1132,7 +1133,7 @@ my %htitles = (
|
||||
DE => qq{API Abfrage erfolgreich aber die Strahlungswerte sind veraltet.\nPrüfen sie die Anlage mit 'set <NAME> plantConfiguration check'.} },
|
||||
aswfc2o => { EN => qq{The weather data is outdated.\nCheck the plant with 'set <NAME> plantConfiguration check'.},
|
||||
DE => qq{Die Wetterdaten sind veraltet.\nPrüfen sie die Anlage mit 'set <NAME> plantConfiguration check'.} },
|
||||
rdcstat => { EN => qq{no reduction status available\nPlease set the key ‘reductionState’ with 'attr <NAME> plantControl'},
|
||||
rdcstat => { EN => qq{no reduction status available\nPlease set the key 'reductionState' with 'attr <NAME> plantControl'},
|
||||
DE => qq{kein Abregelungsstatus verfügbar\nSetzen sie bitte den Schlüssel 'reductionState' mit 'attr <NAME> plantControl'} },
|
||||
);
|
||||
|
||||
@@ -1465,6 +1466,7 @@ my %hfspvh = (
|
||||
feedprice => { fn => \&_storeVal, storname => 'feedprice', validkey => undef, fpar => undef }, # Einspeisevergütung pro kWh der Stunde
|
||||
socwhsum => { fn => \&_storeVal, storname => 'socwhsum', validkey => undef, fpar => undef }, # real eerichter SoC (Wh) zusammengefasst über alle Batterien
|
||||
socprogwhsum => { fn => \&_storeVal, storname => 'socprogwhsum', validkey => undef, fpar => undef }, # prognostizierter SoC (Wh) zusammengefasst über alle Batterien
|
||||
pvapifcraw => { fn => \&_storeVal, storname => 'pvapifcraw', validkey => undef, fpar => undef }, # prognostizierter Energieertrag Raw
|
||||
pvfc => { fn => \&_storeVal, storname => 'pvfc', validkey => undef, fpar => 'comp99' }, # prognostizierter Energieertrag
|
||||
confc => { fn => \&_storeVal, storname => 'confc', validkey => undef, fpar => 'comp99' }, # prognostizierter Hausverbrauch
|
||||
gcons => { fn => \&_storeVal, storname => 'gcons', validkey => undef, fpar => 'comp99' }, # bezogene Energie
|
||||
@@ -8822,6 +8824,8 @@ sub centralTask {
|
||||
# delete $data{$name}{circular}{$hodc};
|
||||
#}
|
||||
|
||||
delete $data{$name}{circular}{'00'};
|
||||
|
||||
#my $gbw = AttrVal ($name, 'graphicBeamWidth', undef); # 27.04.
|
||||
#my $gco = AttrVal ($name, 'graphicControl', '');
|
||||
|
||||
@@ -8879,7 +8883,7 @@ sub centralTask {
|
||||
}
|
||||
|
||||
if (CurrentVal ($hash, 'ctrunning', 0)) {
|
||||
Log3 ($name, 3, "$name - INFO - central task was called when it was already running ... end this call");
|
||||
Log3 ($name, 4, "$name - INFO - central task was called when it was already running ... end this call");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9293,7 +9297,7 @@ sub _collectAllRegConsumers {
|
||||
|
||||
$data{$name}{current}{consumerCollected} = 1;
|
||||
|
||||
Log3 ($name, 3, "$name - all registered consumers collected");
|
||||
Log3 ($name, 4, "$name - INFO - all registered consumers collected");
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -10384,8 +10388,9 @@ sub _transferAPIRadiationValues {
|
||||
}
|
||||
|
||||
if ($fd == 0 && $fh1) {
|
||||
writeToHistory ( { paref => $paref, key => 'pvfc', val => $pvfc, hour => $fh1 } );
|
||||
writeToHistory ( { paref => $paref, key => 'radiation', val => $rad1h, hour => $fh1 } );
|
||||
writeToHistory ( { paref => $paref, key => 'pvapifcraw', val => $pvapifcraw, hour => $fh1 } );
|
||||
writeToHistory ( { paref => $paref, key => 'pvfc', val => $pvfc, hour => $fh1 } );
|
||||
writeToHistory ( { paref => $paref, key => 'radiation', val => $rad1h, hour => $fh1 } );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16034,7 +16039,7 @@ sub __createReduceIcon {
|
||||
my $img;
|
||||
|
||||
if (!defined $rps) {
|
||||
$title = encode ('UTF-8', $htitles{rdcstat}{$lang});
|
||||
$title = encode ('UTF-8', $htitles{rdcstat}{$lang});
|
||||
$title =~ s/<NAME>/$name/xs;
|
||||
$img = '-';
|
||||
}
|
||||
@@ -16814,7 +16819,7 @@ sub _beamGraphicFirstHour {
|
||||
$hfcg->{0}{beam1} //= 0;
|
||||
$hfcg->{0}{beam2} //= 0;
|
||||
$hfcg->{0}{diff} = sprintf "%.1f", ($hfcg->{0}{beam1} - $hfcg->{0}{beam2});
|
||||
$hfcg->{0}{diff} = sprintf "%.0f", $hfcg->{0}{diff} if(($hfcg->{0}{beam1} - $hfcg->{0}{beam2}) * 1 == 0);
|
||||
$hfcg->{0}{diff} = sprintf "%.0f", $hfcg->{0}{diff} if($kw eq 'Wh' && ($beam1cont eq 'pvForecast' || $beam1cont eq 'pvReal'));
|
||||
|
||||
my $epc = CurrentVal ($hash, 'ePurchasePriceCcy', 0);
|
||||
my $efc = CurrentVal ($hash, 'eFeedInTariffCcy', 0);
|
||||
@@ -16865,6 +16870,7 @@ sub _beamGraphicRemainingHours {
|
||||
my $hourstyle = $paref->{hourstyle};
|
||||
my $beam1cont = $paref->{beam1cont};
|
||||
my $beam2cont = $paref->{beam2cont};
|
||||
my $kw = $paref->{kw};
|
||||
|
||||
my ($val1, $val2, $val3, $val4, $val5, $val6, $val7, $val8, $val9, $val10);
|
||||
my $hbsocs;
|
||||
@@ -17024,7 +17030,7 @@ sub _beamGraphicRemainingHours {
|
||||
$hfcg->{$i}{beam1} //= 0;
|
||||
$hfcg->{$i}{beam2} //= 0;
|
||||
$hfcg->{$i}{diff} = sprintf "%.1f", ($hfcg->{$i}{beam1} - $hfcg->{$i}{beam2});
|
||||
$hfcg->{$i}{diff} = sprintf "%.0f", $hfcg->{$i}{diff} if(($hfcg->{$i}{beam1} - $hfcg->{$i}{beam2}) * 1 == 0);
|
||||
$hfcg->{$i}{diff} = sprintf "%.0f", $hfcg->{$i}{diff} if($kw eq 'Wh' && ($beam1cont eq 'pvForecast' || $beam1cont eq 'pvReal'));
|
||||
|
||||
$maxVal = $hfcg->{$i}{beam1} if($hfcg->{$i}{beam1} > $maxVal);
|
||||
$maxVal = $hfcg->{$i}{beam2} if($hfcg->{$i}{beam2} > $maxVal);
|
||||
@@ -20346,6 +20352,7 @@ sub _listDataPoolPvHist {
|
||||
my $pvrl = HistoryVal ($name, $day, $key, 'pvrl', '-');
|
||||
my $pvrlvd = HistoryVal ($name, $day, $key, 'pvrlvd', '-');
|
||||
my $pvfc = HistoryVal ($name, $day, $key, 'pvfc', '-');
|
||||
my $pvapifcraw = HistoryVal ($name, $day, $key, 'pvapifcraw', '-');
|
||||
my $gcons = HistoryVal ($name, $day, $key, 'gcons', '-');
|
||||
my $con = HistoryVal ($name, $day, $key, 'con', '-');
|
||||
my $confc = HistoryVal ($name, $day, $key, 'confc', '-');
|
||||
@@ -20370,6 +20377,7 @@ sub _listDataPoolPvHist {
|
||||
$hexp->{$day}{$key}{PVreal} = $pvrl;
|
||||
$hexp->{$day}{$key}{PVrealValid} = $pvrlvd;
|
||||
$hexp->{$day}{$key}{PVforecast} = $pvfc;
|
||||
$hexp->{$day}{$key}{PVapiForecastRaw} = $pvapifcraw;
|
||||
$hexp->{$day}{$key}{GridConsumption} = $gcons;
|
||||
$hexp->{$day}{$key}{Consumption} = $con;
|
||||
$hexp->{$day}{$key}{confc} = $confc;
|
||||
@@ -20473,7 +20481,7 @@ sub _listDataPoolPvHist {
|
||||
|
||||
$ret .= "\n " if($ret);
|
||||
$ret .= $key." => ";
|
||||
$ret .= "pvfc: $pvfc, pvrl: $pvrl, pvrlvd: $pvrlvd, plantderated: $pd, rad1h: $rad1h";
|
||||
$ret .= "pvapifcraw: $pvapifcraw, pvfc: $pvfc, pvrl: $pvrl, pvrlvd: $pvrlvd, plantderated: $pd, rad1h: $rad1h";
|
||||
$ret .= "\n ";
|
||||
$ret .= $inve if($inve && $key ne '99');
|
||||
$ret .= "\n " if($inve && $key ne '99');
|
||||
@@ -21831,7 +21839,7 @@ sub checkPlantConfig {
|
||||
if (!$fipl && isBatteryUsed ($name)) {
|
||||
$result->{'Plant Control'}{state} = $info;
|
||||
$result->{'Plant Control'}{result} .= qq{It may be useful setting 'plantControl->feedinPowerLimit' if Batteries are installed. <br>};
|
||||
$result->{'Plant Control'}{note} .= qq{The 'feedinPowerLimit' parameter is helpful in conjunction with the ‘ctrlBatSocManagementXX’ attribute to prevent a possible curtailment of the PV system and to make optimum use of the yield if battery(ies) are used. <br>};
|
||||
$result->{'Plant Control'}{note} .= qq{The 'feedinPowerLimit' parameter is helpful in conjunction with the 'ctrlBatSocManagementXX' attribute to prevent a possible curtailment of the PV system and to make optimum use of the yield if battery(ies) are used. <br>};
|
||||
$result->{'Plant Control'}{note} .= qq{(see this <a href='https://wiki.fhem.de/wiki/SolarForecast_-_Solare_Prognose_(PV_Erzeugung)_und_Verbrauchersteuerung#PV-Prognose_und_Verbrauch_optimierte_Beladungssteuerung_unter_Ber%C3%BCcksichtigung_einer_Wirkleistungsbegrenzung' target='_blank'>section</a> in the german Wiki) <br>};
|
||||
$result->{'Plant Control'}{info} = 1;
|
||||
}
|
||||
@@ -25151,7 +25159,7 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> <b>addRawData</b> </td><td>Relevant PV, radiation and environmental data are extracted and stored for later use. </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td><b>rawDataGHIreplace</b> </td><td>Historical GHI (Global Horizontal Irradiance) values are retrieved from the Open-Meteo service and the values in aiRawData </td></tr>
|
||||
<tr><td> </td><td>(see <a href="#SolarForecast-get-valDecTree">get ... valDecTree aiRawData</a>) replaces existing values ‘rad1h’
|
||||
<tr><td> </td><td>(see <a href="#SolarForecast-get-valDecTree">get ... valDecTree aiRawData</a>) replaces existing values 'rad1h'
|
||||
or adds them if they are not available. </td></tr>
|
||||
</table>
|
||||
</ul>
|
||||
@@ -25224,8 +25232,8 @@ to ensure that the system configuration is correct.
|
||||
<li><b>cycleInterval <Integer> </b> <br><br>
|
||||
|
||||
Repetition interval of the data collection in seconds. <br>
|
||||
The command is suitable for dynamically changing the ‘cycleInterval’ key in the ‘plantControl’ attribute.
|
||||
The conditions of the ‘plantControl’ attribute apply to the entry.
|
||||
The command is suitable for dynamically changing the 'cycleInterval' key in the 'plantControl' attribute.
|
||||
The conditions of the 'plantControl' attribute apply to the entry.
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
@@ -25774,6 +25782,7 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> <b>minutescsmXX</b> </td><td>total active minutes in the hour of ConsumerXX </td></tr>
|
||||
<tr><td> <b>plantderated</b> </td><td>Timestamp of the first curtailment event of the system in this hour, otherwise '0' </td></tr>
|
||||
<tr><td> <b>pprlXX</b> </td><td>Energy generation of producer XX (see attribute setupOtherProducerXX) in the hour (Wh) </td></tr>
|
||||
<tr><td> <b>pvapifcraw</b> </td><td>expected PV generation (Wh) of the API used (raw) </td></tr>
|
||||
<tr><td> <b>pvfc</b> </td><td>the predicted PV yield (Wh) </td></tr>
|
||||
<tr><td> <b>pvrlXX</b> </td><td>real PV generation (Wh) of inverter XX </td></tr>
|
||||
<tr><td> <b>pvrl</b> </td><td>Sum real PV generation (Wh) of all inverters </td></tr>
|
||||
@@ -26116,7 +26125,7 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>dummyIcon</b> </td><td>Icon and, if applicable, its color for displaying the dummy consumer in the flow chart (optional). </td></tr>
|
||||
<tr><td> </td><td>Syntax: <b>[<Icon>][@<Color>]</b> </td></tr>
|
||||
<tr><td> </td><td>If only the color of the standard dummy icon is to be changed, only ‘@<color>’ can be specified. </td></tr>
|
||||
<tr><td> </td><td>If only the color of the standard dummy icon is to be changed, only '@<color>' can be specified. </td></tr>
|
||||
<tr><td> </td><td>The color can be specified as a hex value (e.g. #cc3300) or designation (e.g. red, blue). </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>showLegend</b> </td><td>Defines the position or display method of the consumer legend if consumers are registered. </td></tr>
|
||||
@@ -26774,8 +26783,8 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> </td><td><b><Level>:lin</b> - linear scaling (default) </td></tr>
|
||||
<tr><td> </td><td><b><Level>:log</b> - logarithmic scaling </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>showDiff</b> </td><td>Additional numerical display of the difference ‘<primary bar content> - <secondary bar content>’. </td></tr>
|
||||
<tr><td> </td><td>The specification for each level consists of the level number (1..X), a ‘:’ followed by the position ‘top’ or ‘bottom’. </td></tr>
|
||||
<tr><td> <b>showDiff</b> </td><td>Additional numerical display of the difference '<primary bar content> - <secondary bar content>'. </td></tr>
|
||||
<tr><td> </td><td>The specification for each level consists of the level number (1..X), a ':' followed by the position 'top' or 'bottom'. </td></tr>
|
||||
<tr><td> </td><td>The strings for each level are separated by commas (see example). </td></tr>
|
||||
<tr><td> </td><td><b><Level>:top</b> - display above the bars </td></tr>
|
||||
<tr><td> </td><td><b><Level>:bottom</b> - display below the bars </td></tr>
|
||||
@@ -26952,7 +26961,7 @@ to ensure that the system configuration is correct.
|
||||
<colgroup> <col width="5%"> <col width="95%"> </colgroup>
|
||||
<tr><td> <b>0</b> </td><td>no display of night hours if no value is to be displayed (default) </td></tr>
|
||||
<tr><td> </td><td>If the selected content contains a value, these bars are still displayed. </td></tr>
|
||||
<tr><td> <b>01</b> </td><td>Like ‘0’, but time synchronisation takes place between the level 1 </td></tr>
|
||||
<tr><td> <b>01</b> </td><td>Like '0', but time synchronisation takes place between the level 1 </td></tr>
|
||||
<tr><td> </td><td>and the subsequent bar chart level. </td></tr>
|
||||
<tr><td> <b>1</b> </td><td>the night hours are always displayed </td></tr>
|
||||
</table>
|
||||
@@ -27010,16 +27019,16 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> <b>consForecastLastDays</b> </td><td>The specified number of historical days is included in the calculation of the consumption forecast. </td></tr>
|
||||
<tr><td> </td><td>For example, with the attribute value “1” only the previous day is taken into account, with the value “14” the previous 14 days. </td></tr>
|
||||
<tr><td> </td><td>The days taken into account may be fewer if there are not enough values in the internal memory. </td></tr>
|
||||
<tr><td> </td><td>If the key ‘consForecastIdentWeekdays’ is also set, the specified number of past weekdays </td></tr>
|
||||
<tr><td> </td><td>If the key 'consForecastIdentWeekdays' is also set, the specified number of past weekdays </td></tr>
|
||||
<tr><td> </td><td>of the <b>same</b> day (Mon .. Sun) is taken into account. </td></tr>
|
||||
<tr><td> </td><td>For example, if the value is set to ‘8’, the same weekdays of the past 8 weeks are taken into account. </td></tr>
|
||||
<tr><td> </td><td>For example, if the value is set to '8', the same weekdays of the past 8 weeks are taken into account. </td></tr>
|
||||
<tr><td> </td><td>Value: <b>Integer 0..180</b>, default: 60 </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>cycleInterval</b> </td><td>Repetition interval of the data collection in seconds. </td></tr>
|
||||
<tr><td> </td><td>If cycleInterval is explicitly set to ‘0’, there is no regular data collection and must be started externally </td></tr>
|
||||
<tr><td> </td><td>with ‘get <name> data’. </td></tr>
|
||||
<tr><td> </td><td>If cycleInterval is explicitly set to '0', there is no regular data collection and must be started externally </td></tr>
|
||||
<tr><td> </td><td>with 'get <name> data'. </td></tr>
|
||||
<tr><td> </td><td>Value: <b>Integer</b>, default: 70 </td></tr>
|
||||
<tr><td> </td><td><b>Note:</b> Regardless of the interval set (even with ‘0’), data is collected automatically a few seconds before the end </td></tr>
|
||||
<tr><td> </td><td><b>Note:</b> Regardless of the interval set (even with '0'), data is collected automatically a few seconds before the end </td></tr>
|
||||
<tr><td> </td><td>and after the start of a full hour. Data is also collected automatically when an event from a device defined </td></tr>
|
||||
<tr><td> </td><td>as “asynchronous” (consumer, meter, etc.) is received and processed. </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
@@ -27033,7 +27042,7 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> </td><td><b>daily</b> - Calculation and creation of Today_PVdeviation takes place after sunset (default) </td></tr>
|
||||
<tr><td> </td><td><b>continuously</b> - Calculation and creation of Today_PVdeviation is continuous </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>genPVforecastsToEvent</b> </td><td>The module generates daily ‘AllPVforecastsToEvent’ events to visualize the PV forecast. </td></tr>
|
||||
<tr><td> <b>genPVforecastsToEvent</b> </td><td>The module generates daily 'AllPVforecastsToEvent' events to visualize the PV forecast. </td></tr>
|
||||
<tr><td> </td><td>Further explanations can be found in the <a href='https://wiki.fhem.de/wiki/SolarForecast_-_Solare_Prognose_(PV_Erzeugung)_und_Verbrauchersteuerung#Visualisierung_solare_Vorhersage_und_reale_Erzeugung' target='_blank'>german Wiki</a>. </td></tr>
|
||||
<tr><td> </td><td><b>Note:</b> When using the attribute, the attribute <b>event-on-update-reading=AllPVforecastsToEvent</b> must also be set. </td></tr>
|
||||
<tr><td> </td><td>Event generation can be optimized for specific uses: </td></tr>
|
||||
@@ -27045,7 +27054,7 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> </td><td><b>Reading</b> - Reading that provides the reduction status </td></tr>
|
||||
<tr><td> </td><td>The check of the supplied value can be formulated as a regular expression or as Perl code enclosed in {..}: </td></tr>
|
||||
<tr><td> </td><td><b>Regex</b> - Regular expression that must be fulfilled for a reduction status (true) </td></tr>
|
||||
<tr><td> </td><td><b>{Perl-Code}</b> - the Perl code enclosed in {..} must return ‘true’ for a reduction status. It must not contain spaces. </td></tr>
|
||||
<tr><td> </td><td><b>{Perl-Code}</b> - the Perl code enclosed in {..} must return 'true' for a reduction status. It must not contain spaces. </td></tr>
|
||||
<tr><td> </td><td>The value of Device:Reading is transferred to the code with the variable $VALUE. </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>
|
||||
@@ -27086,11 +27095,11 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>intotal</b> </td><td>Reading which provides the total battery charge as a continuous counter (optional) </td></tr>
|
||||
<tr><td> </td><td>If the reading violates the specification of a continuously rising counter, SolarForecast handles </td></tr>
|
||||
<tr><td> </td><td>this error and reports the situation that has occurred with a log entry with verbose 2. </td></tr>
|
||||
<tr><td> </td><td>this error and reports the situation that has occurred with a log entry with verbose 3. </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>outtotal</b> </td><td>Reading which provides the total battery discharge as a continuous counter (optional) </td></tr>
|
||||
<tr><td> </td><td>If the reading violates the specification of a continuously rising counter, SolarForecast handles </td></tr>
|
||||
<tr><td> </td><td>this error and reports the situation that has occurred with a log entry with verbose 2. </td></tr>
|
||||
<tr><td> </td><td>this error and reports the situation that has occurred with a log entry with verbose 3. </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>cap</b> </td><td>installed battery capacity. Option can be: </td></tr>
|
||||
<tr><td> </td><td><b>Integer</b> - direct specification of the battery capacity in Wh without specifying the unit! </td></tr>
|
||||
@@ -27101,8 +27110,8 @@ to ensure that the system configuration is correct.
|
||||
<tr><td> <b>Unit</b> </td><td>the respective unit (W,Wh,kW,kWh) </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>icon</b> </td><td>Icon and/or (only) color of the battery in the bar graph according to the status (optional). </td></tr>
|
||||
<tr><td> </td><td>The identifier (e.g. blue), HEX value (e.g. #d9d9d9) or ‘dyn’ can be specified as the color. </td></tr>
|
||||
<tr><td> </td><td>If ‘dyn’ is used, the icon is colored depending on the SoC value. </td></tr>
|
||||
<tr><td> </td><td>The identifier (e.g. blue), HEX value (e.g. #d9d9d9) or 'dyn' can be specified as the color. </td></tr>
|
||||
<tr><td> </td><td>If 'dyn' is used, the icon is colored depending on the SoC value. </td></tr>
|
||||
<tr><td> </td><td><b><recomm></b> - Icon if charging is recommended but inactive (no charging / discharging) </td></tr>
|
||||
<tr><td> </td><td><b><charge></b> - Icon is used when the battery is currently being charged </td></tr>
|
||||
<tr><td> </td><td><b><discharge></b> - Icon is used when the battery is currently being discharged </td></tr>
|
||||
@@ -28431,6 +28440,7 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
|
||||
<tr><td> <b>minutescsmXX</b> </td><td>Summe Aktivminuten in der Stunde von ConsumerXX </td></tr>
|
||||
<tr><td> <b>plantderated</b> </td><td>Zeitstempel des ersten Abregelungsvorfalls der Anlage in dieser Stunde, sonst '0' </td></tr>
|
||||
<tr><td> <b>pprlXX</b> </td><td>Energieerzeugung des Produzenten XX (siehe Attribut setupOtherProducerXX) in der Stunde (Wh) </td></tr>
|
||||
<tr><td> <b>pvapifcraw</b> </td><td>erwartete PV Erzeugung (Wh) der verwendeten API (raw) </td></tr>
|
||||
<tr><td> <b>pvfc</b> </td><td>der prognostizierte PV Ertrag (Wh) </td></tr>
|
||||
<tr><td> <b>pvrlXX</b> </td><td>reale PV Erzeugung (Wh) von Inverter XX </td></tr>
|
||||
<tr><td> <b>pvrl</b> </td><td>Summe reale PV Erzeugung (Wh) aller Inverter </td></tr>
|
||||
@@ -29742,11 +29752,11 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>intotal</b> </td><td>Reading welches die totale Batterieladung als fortlaufenden Zähler liefert (optional) </td></tr>
|
||||
<tr><td> </td><td>Sollte des Reading die Vorgabe eines stetig aufsteigenden Zählers verletzen, behandelt </td></tr>
|
||||
<tr><td> </td><td>SolarForecast diesen Fehler und meldet die aufgetretene Situation durch einen Logeintrag mit verbose 2. </td></tr>
|
||||
<tr><td> </td><td>SolarForecast diesen Fehler und meldet die aufgetretene Situation durch einen Logeintrag mit verbose 3. </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>outtotal</b> </td><td>Reading welches die totale Batterieentladung als fortlaufenden Zähler liefert (optional) </td></tr>
|
||||
<tr><td> </td><td>Sollte des Reading die Vorgabe eines stetig aufsteigenden Zählers verletzen, behandelt </td></tr>
|
||||
<tr><td> </td><td>SolarForecast diesen Fehler und meldet die aufgetretene Situation durch einen Logeintrag mit verbose 2. </td></tr>
|
||||
<tr><td> </td><td>SolarForecast diesen Fehler und meldet die aufgetretene Situation durch einen Logeintrag mit verbose 3. </td></tr>
|
||||
<tr><td> </td><td> </td></tr>
|
||||
<tr><td> <b>cap</b> </td><td>installierte Batteriekapazität. Option kann sein: </td></tr>
|
||||
<tr><td> </td><td><b>Ganzzahl</b> - direkte Angabe der Batteriekapazität in Wh ohne die Einheit anzugeben! </td></tr>
|
||||
|
||||
Reference in New Issue
Block a user