diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm
index 31d6c2fc1..2e1621505 100644
--- a/fhem/contrib/DS_Starter/76_SolarForecast.pm
+++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm
@@ -120,6 +120,7 @@ BEGIN {
# Versions History intern
my %vNotesIntern = (
+ "0.56.2" => "14.09.2021 some fixes, new calculation of hourscsmeXX, new key minutescsmXX ",
"0.56.1" => "12.09.2021 some fixes ",
"0.56.0" => "11.09.2021 new Attr flowGraphicShowConsumer, extend calc consumer power consumption ",
"0.55.3" => "08.09.2021 add powerthreshold to etotal key ",
@@ -2659,7 +2660,7 @@ sub _manageConsumerData {
if(!$paread){
my $timespan = $t - ConsumerVal ($hash, $c, "old_etottime", $t);
my $delta = $etot - ConsumerVal ($hash, $c, "old_etotal", $etot);
- $pcurr = sprintf("%.6f", $delta / (3600 * $timespan)) if($delta > 0); # Einheitenformel beachten !!: W = Wh / (3600 * s)
+ $pcurr = sprintf("%.6f", $delta / (3600 * $timespan)) if($delta); # Einheitenformel beachten !!: W = Wh / (3600 * s)
$data{$type}{$name}{consumers}{$c}{old_etotal} = $etot;
$data{$type}{$name}{consumers}{$c}{old_etottime} = $t;
@@ -2667,7 +2668,7 @@ sub _manageConsumerData {
push @$daref, "consumer${c}_currentPower<>". $pcurr." W";
}
else {
- deleteReadingspec ($hash, "consumer${c}_currentPower");
+ deleteReadingspec ($hash, "consumer${c}_currentPower") if(!$enread);
}
if(defined $ehist && $etot >= $ehist && ($etot - $ehist) >= $pthreshold) {
@@ -2745,6 +2746,12 @@ sub _manageConsumerData {
setPVhistory ($paref);
delete $paref->{histname};
+ $paref->{val} = ceil ConsumerVal ($hash, $c, "minutesOn", 0); # Verbrauchsminuten akt. Stunde des Consumers
+ $paref->{nhour} = sprintf("%02d",$nhour);
+ $paref->{histname} = "minutescsm${c}";
+ setPVhistory ($paref);
+ delete $paref->{histname};
+
## Durchschnittsverbrauch / Betriebszeit ermitteln + speichern
################################################################
my $consumerco = 0;
@@ -3645,7 +3652,7 @@ sub _calcSummaries {
my $surplus = int ($pvgen - $consumption); # aktueller Überschuß
my $selfconsumptionrate = 0;
my $autarkyrate = 0;
- $selfconsumptionrate = sprintf("%.0f", $selfconsumption / $pvgen * 100) if($pvgen);
+ $selfconsumptionrate = sprintf("%.0f", $selfconsumption / $pvgen * 100) if($pvgen * 1 > 0);
$autarkyrate = sprintf("%.0f", $selfconsumption / ($selfconsumption + $gcon) * 100) if($selfconsumption);
$data{$type}{$name}{current}{consumption} = $consumption;
@@ -5324,7 +5331,7 @@ END3
$ret .= qq{