From 8012d00d3eadcf0a77fd2f01f3cc15eb989ad24e Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Mon, 23 Dec 2024 07:51:19 +0000 Subject: [PATCH] 76_SolarForecast: contrib 1.40.0 git-svn-id: https://svn.fhem.de/fhem/trunk@29447 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SolarForecast.pm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index 15e09e176..28233e294 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -9577,8 +9577,8 @@ sub _batChargeRecmd { for my $in (1..$maxinverter) { $in = sprintf "%02d", $in; - my $feed = InverterVal ($hash, $in, 'ifeed', ''); - next if(!$feed || $feed eq 'grid'); # Inverter 'Grid' ausschließen + my $feed = InverterVal ($hash, $in, 'ifeed', 'default'); + next if($feed eq 'grid'); # Inverter 'Grid' ausschließen my $iname = InverterVal ($hash, $in, 'iname', ''); my $icap = InverterVal ($hash, $in, 'invertercap', 0); @@ -10836,7 +10836,10 @@ sub __setConsRcmdState { my ($spignore, $info, $err) = isSurplusIgnoCond ($hash, $c, $debug); # PV Überschuß ignorieren? Log3 ($name, 1, "$name - $err") if($err); - if (!$nompower || $surplus - $rescons > 0 || $spignore) { + if (!defined $surplus) { # $surplus kann undef sein! -> dann bisherigen isConsumptionRecommended verwenden + $data{$name}{consumers}{$c}{isConsumptionRecommended} = ReadingsVal ($name, "consumer${c}_ConsumptionRecommended", 0); + } + elsif (!$nompower || $surplus - $rescons > 0 || $spignore) { $data{$name}{consumers}{$c}{isConsumptionRecommended} = 1; # Einschalten des Consumers günstig bzw. Freigabe für "on" von Überschußseite erteilt } else { @@ -17715,7 +17718,7 @@ sub determSurplus { } } - if (!defined $surplus || $fallback) { # Fehlerkorrektur + if ($fallback) { # Fall Back $surplus = CurrentVal ($hash, 'surplus', 0); $method = $method." but fallback to 'default'"; } @@ -21434,7 +21437,7 @@ to ensure that the system configuration is correct. default - the PV surplus is read directly from the 'Current_Surplus' reading. (default) median - the median of the last PV surplus measurements (max. 20) is used. 2 .. 20 - the PV surplus used is calculated from the average of the specified number of measured values. - Device:Reading - Device/Reading combination that provides a numerical PV surplus value determined or calculated by the user. + Device:Reading - Device/Reading combination that provides a numerical PV surplus value in Watt determined or calculated by the user. spignorecond Condition to ignore a missing PV surplus (optional). If the condition is fulfilled, the load is switched on according to the planning even if there is no PV surplus at the time. @@ -23862,7 +23865,7 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden. default - der PV-Überschuß wird aus dem Reading 'Current_Surplus' direkt ausgelesen. (default) median - es wird der Median der letzten PV-Überschuß Messungen (max. 20) verwendet. 2 .. 20 - der verwendete PV-Überschuß wird als Durchschnitt der angegebenen Anzahl Meßwerte gebildet. - Device:Reading - Device/Reading-Kombination die einen vom Nutzer bestimmten bzw. berechneten numerischen PV-Überschuß Wert liefert. + Device:Reading - Device/Reading-Kombination die einen vom Nutzer bestimmten bzw. berechneten numerischen PV-Überschuß in Watt liefert. spignorecond Bedingung um einen fehlenden PV Überschuß zu ignorieren (optional). Bei erfüllter Bedingung wird der Verbraucher entsprechend der Planung eingeschaltet auch wenn zu dem Zeitpunkt kein PV Überschuß vorliegt.