diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index a018f711f..02795a0c6 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -3694,7 +3694,7 @@ sub centralTask { } my $uac = ReadingsVal ($name, 'pvCorrectionFactor_Auto', 'off'); - if ($uac eq 'on') { + if ($uac eq 'on' && $hash->{MODEL}) { if ($hash->{MODEL} eq 'DWD') { readingsSingleUpdate ($hash, 'pvCorrectionFactor_Auto', 'on_complex', 0); } @@ -5799,7 +5799,7 @@ sub __setConsRcmdState { my $rescons = isConsumerPhysOn($hash, $c) ? 0 : $nompower; # resultierender Verbauch nach Einschaltung Consumer if (!$nompower || $surplus - $rescons > 0) { - $data{$type}{$name}{consumers}{$c}{isConsumptionRecommended} = 1; # Einschalten des Consumers günstig + $data{$type}{$name}{consumers}{$c}{isConsumptionRecommended} = 1; # Einschalten des Consumers günstig bzw. Freigabe für "on" von Überschußseite erteilt } else { $data{$type}{$name}{consumers}{$c}{isConsumptionRecommended} = 0; @@ -5863,8 +5863,8 @@ sub ___switchConsumerOn { if ($debug =~ /consumerSwitching/x) { # nur für Debugging my $cons = CurrentVal ($hash, 'consumption', 0); - my $nompow = ConsumerVal ($hash, $c, 'power', '-'); - my $sp = CurrentVal ($hash, 'surplus', 0); + my $nompow = ConsumerVal ($hash, $c, 'power', '-'); + my $sp = CurrentVal ($hash, 'surplus', 0); Log3 ($name, 1, qq{$name DEBUG> consumer "$c" - general switching parameters => }. qq{auto mode: $auto, current Consumption: $cons W, nompower: $nompow, surplus: $sp W, }. @@ -5890,7 +5890,7 @@ sub ___switchConsumerOn { delete $paref->{ps}; } - elsif ($mode eq "must" || isConsRcmd($hash, $c)) { # "Muss"-Planung oder Überschuß > Leistungsaufnahme + elsif ($mode eq "must" || isConsRcmd($hash, $c)) { # "Muss"-Planung oder Überschuß > Leistungsaufnahme (can) CommandSet(undef,"$cname $oncom"); #my $stopdiff = ceil(ConsumerVal ($hash, $c, "mintime", $defmintime) / 60) * 3600; @@ -5907,7 +5907,7 @@ sub ___switchConsumerOn { Log3 ($name, 2, "$name - $state (Automatic = $auto)"); } } - elsif (((isInterruptable($hash, $c) == 1 && isConsRcmd ($hash, $c)) || # unterbrochenen Consumer fortsetzen + elsif (((isInterruptable($hash, $c) == 1 && isConsRcmd ($hash, $c)) || # unterbrochenen Consumer fortsetzen (isInterruptable($hash, $c) == 3 && isConsRcmd ($hash, $c))) && isInTimeframe ($hash, $c) && simplifyCstate ($pstate) =~ /interrupted|interrupting/xs && @@ -12802,26 +12802,28 @@ die ordnungsgemäße Anlagenkonfiguration geprüft werden.

Der Schlüssel power gibt die nominale Leistungsaufnahme des Verbrauchers gemäß seines Datenblattes an. - Dieser Wert wird verwendet um das Schalten des Verbrauchers in Abhängigkeit des aktuellen PV-Überschusses zu - steuern. Ist power=0 gesetzt, wird der Verbraucher unabhängig von einem ausreichenden PV-Überschuß geschaltet. + Dieser Wert wird verwendet um die Schaltzeiten des Verbrauchers zu planen und das Schalten in Abhängigkeit + des tatsächlichen PV-Überschusses zum Einplanungszeitpunkt zu steuern. + Ist power=0 gesetzt, wird der Verbraucher unabhängig von einem ausreichend vorhandenem PV-Überschuß + wie eingeplant geschaltet.