From 5d2ded44c941010d398f4345184494fee1aafbd7 Mon Sep 17 00:00:00 2001 From: DS_Starter Date: Sat, 17 Sep 2022 17:19:38 +0000 Subject: [PATCH] 76_SolarForecast.pm: contrib 0.68.1 git-svn-id: https://svn.fhem.de/fhem/trunk@26412 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SolarForecast.pm | 25 ++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index 81e3b2469..ab5c9dbf0 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -1881,6 +1881,12 @@ sub __solCast_ApiResponse { while ($jdata->{'forecasts'}[$k]) { # vorhandene Startzeiten Schlüssel im SolCast API Hash löschen my $petstr = $jdata->{'forecasts'}[$k]{'period_end'}; + + if(!$k && $petstr =~ /T\d{2}:00/xs) { # ersten Datanesatz überspringen wenn period_end auf volle Stunde fällt (es fehlt dann der erste Teil der Stunde) + $k += 1; + next; + } + ($err, $starttmstr) = ___convPendToPstart ($name, $petstr); next if ($err); @@ -1894,6 +1900,12 @@ sub __solCast_ApiResponse { while ($jdata->{'forecasts'}[$k]) { my $petstr = $jdata->{'forecasts'}[$k]{'period_end'}; + + if(!$k && $petstr =~ /T\d{2}:00/xs) { # ersten Datanesatz überspringen wenn period_end auf volle Stunde fällt (es fehlt dann der erste Teil der Stunde) + $k += 1; + next; + } + my $pvest = $jdata->{'forecasts'}[$k]{'pv_estimate'}; my $pvest10 = $jdata->{'forecasts'}[$k]{'pv_estimate10'}; my $pvest90 = $jdata->{'forecasts'}[$k]{'pv_estimate90'}; @@ -2591,14 +2603,11 @@ sub centralTask { readingsSingleUpdate($hash, "state", "running", 1); - #if (!keys %{$data{$type}{$name}{strings}}) { - my $ret = createStringConfig ($hash); # die String Konfiguration erstellen - - if ($ret) { - readingsSingleUpdate($hash, "state", $ret, 1); - return; - } - #} + my $ret = createStringConfig ($hash); # die String Konfiguration erstellen + if ($ret) { + readingsSingleUpdate($hash, "state", $ret, 1); + return; + } my @da; my $t = time; # aktuelle Unix-Zeit