From 249045d191907a70dfbde62bcfcf43e298428b37 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Sat, 11 Sep 2021 18:29:27 +0000 Subject: [PATCH] 76_SolarForecast.pm: contrib 0.56.0 git-svn-id: https://svn.fhem.de/fhem/trunk@24957 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SolarForecast.pm | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index 4627f2039..35b459617 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -1918,6 +1918,10 @@ sub centralTask { # delete $data{$type}{$name}{pvhist}{$i} if(!$i); # evtl. vorhandene leere Schlüssel entfernen #} + for my $c (keys %{$data{$type}{$name}{consumers}}) { + delete $data{$type}{$name}{consumers}{$c}{OnOff}; + } + #deleteReadingspec ($hash, "Today_Hour.*_Consumption"); #deleteReadingspec ($hash, "ThisHour_.*"); #deleteReadingspec ($hash, "Today_PV"); @@ -2705,17 +2709,19 @@ sub _manageConsumerData { $data{$type}{$name}{consumers}{$c}{startTime} = $t; $data{$type}{$name}{consumers}{$c}{onoff} = "on"; my $stimes = ConsumerVal ($hash, $c, "numberDayStarts", 0); # Anzahl der On-Schaltungen am Tag - $data{$type}{$name}{consumers}{$c}{numberDayStarts} = $stimes+1; + $data{$type}{$name}{consumers}{$c}{numberDayStarts} = $stimes+1; + $data{$type}{$name}{consumers}{$c}{lastMinutesOn} = ConsumerVal ($hash, $c, "minutesOn", 0); } - my $starthour = strftime "%H", localtime(ConsumerVal ($hash, $c, "startTime", $t)); - - if($chour eq $starthour) { - $data{$type}{$name}{consumers}{$c}{minutesOn} = ($t - ConsumerVal ($hash, $c, "startTime", $t)) / 60; # in Minuten ! (gettimeofday sind ms !) + my $starthour = strftime "%H", localtime(ConsumerVal ($hash, $c, "startTime", $t)); + + if($chour eq $starthour) { + my $runtime = (($t - ConsumerVal ($hash, $c, "startTime", $t)) / 60); # in Minuten ! (gettimeofday sind ms !) + $data{$type}{$name}{consumers}{$c}{minutesOn} = ConsumerVal ($hash, $c, "lastMinutesOn", 0) + $runtime; } - else { # neue Stunde hat begonnen - $data{$type}{$name}{consumers}{$c}{startTime} = timestringToTimestamp ($date." ".sprintf("%02d",$chour).":00:00"); - $data{$type}{$name}{consumers}{$c}{minutesOn} = ($t - ConsumerVal ($hash, $c, "startTime", $t)) / 60; # in Minuten ! (gettimeofday sind ms !) + else { # neue Stunde hat begonnen + $data{$type}{$name}{consumers}{$c}{startTime} = timestringToTimestamp ($date." ".sprintf("%02d",$chour).":00:00"); + $data{$type}{$name}{consumers}{$c}{lastMinutesOn} = ($t - ConsumerVal ($hash, $c, "startTime", $t)) / 60; # in Minuten ! (gettimeofday sind ms !) } } else {