2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

76_SolarForecast: contrib 1.43.0

git-svn-id: https://svn.fhem.de/fhem/trunk@29506 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2025-01-10 15:37:15 +00:00
parent 841f0c1265
commit 31b6988a7f

View File

@ -9872,7 +9872,7 @@ sub _batChargeRecmd {
next if($err); next if($err);
my $batinstcap = BatteryVal ($hash, $bn, 'binstcap', 0); # installierte Batteriekapazität Wh my $batinstcap = BatteryVal ($hash, $bn, 'binstcap', 0); # installierte Batteriekapazität Wh
my $soc = BatteryVal ($hash, $bn, 'bcharge', 0); # aktuelle Ladung in % my $csoc = BatteryVal ($hash, $bn, 'bcharge', 0); # aktuelle Ladung in %
my $batoptsoc = ReadingsNum ($name, 'Battery_OptimumTargetSoC_'.$bn, 0); # aktueller optimierter SoC my $batoptsoc = ReadingsNum ($name, 'Battery_OptimumTargetSoC_'.$bn, 0); # aktueller optimierter SoC
if (!$inplim || !$batinstcap) { if (!$inplim || !$batinstcap) {
@ -9889,8 +9889,7 @@ sub _batChargeRecmd {
debugLog ($paref, 'batteryManagement', "Bat $bn Charge Rcmd - Installed Battery capacity: $batinstcap Wh"); debugLog ($paref, 'batteryManagement', "Bat $bn Charge Rcmd - Installed Battery capacity: $batinstcap Wh");
my $whneed = sprintf "%.0f", ($batinstcap - ($batinstcap * $soc / 100)); # benötigte Energie bis 100% Batteriekapazität Wh my $whneed = sprintf "%.0f", ($batinstcap - ($batinstcap * $csoc / 100)); # benötigte Energie bis 100% Batteriekapazität Wh
my $sfmargin = $whneed * 0.25; # Sicherheitszuschlag: X% der benötigten Ladeenergie (Wh)
## Auswertung für jede kommende Stunde ## Auswertung für jede kommende Stunde
######################################## ########################################
@ -9920,7 +9919,8 @@ sub _batChargeRecmd {
## SOC-Prognose und Ladeempfehlung ## SOC-Prognose und Ladeempfehlung
#################################### ####################################
my $progsoc = sprintf "%.0f", (100 / $batinstcap * ($batinstcap - $whneed)); # Prognose SoC my $progsoc = sprintf "%.0f", (100 / $batinstcap * ($batinstcap - $whneed)); # Prognose SoC
$progsoc = $progsoc < $batoptsoc ? $batoptsoc : $progsoc = !$num ? $csoc : # Stunde 00 (aktuelle) -> $progsoc = $csoc
$progsoc < $batoptsoc ? $batoptsoc :
$progsoc < $lowSoc ? $lowSoc : $progsoc < $lowSoc ? $lowSoc :
$progsoc; $progsoc;
@ -9931,6 +9931,8 @@ sub _batChargeRecmd {
} }
); # Readings NextHourXX_Bat_XX_ChargeForecast erstellen ); # Readings NextHourXX_Bat_XX_ChargeForecast erstellen
my $sfmargin = $whneed * 0.25; # Sicherheitszuschlag: X% der benötigten Ladeenergie (Wh)
if ( $whneed + $sfmargin >= $spday ) {$rcmd = 1} # Ladeempfehlung wenn benötigte Ladeenergie >= Restüberschuß des Tages zzgl. Sicherheitsaufschlag if ( $whneed + $sfmargin >= $spday ) {$rcmd = 1} # Ladeempfehlung wenn benötigte Ladeenergie >= Restüberschuß des Tages zzgl. Sicherheitsaufschlag
if ( !$num && $pvCu - $curcon >= $inplim ) {$rcmd = 1} # Ladeempfehlung wenn akt. PV Leistung >= WR-Leistungsbegrenzung if ( !$num && $pvCu - $curcon >= $inplim ) {$rcmd = 1} # Ladeempfehlung wenn akt. PV Leistung >= WR-Leistungsbegrenzung