diff --git a/fhem/contrib/DS_Starter/93_DbRep.pm b/fhem/contrib/DS_Starter/93_DbRep.pm index 1adedeb03..5a2702349 100644 --- a/fhem/contrib/DS_Starter/93_DbRep.pm +++ b/fhem/contrib/DS_Starter/93_DbRep.pm @@ -57,7 +57,7 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch'; # Versions History intern our %DbRep_vNotesIntern = ( - "8.13.0" => "10.02.2019 executeBeforeProc / executeAfterProc for sumValue, maxValue, minValue, diffValue ", + "8.13.0" => "10.02.2019 executeBeforeProc / executeAfterProc for sumValue, maxValue, minValue, diffValue, averageValue ", "8.12.0" => "10.02.2019 executeBeforeProc / executeAfterProc for sqlCmd ", "8.11.2" => "03.02.2019 fix no running tableCurrentFillup if database is closed ", "8.11.1" => "25.01.2019 fix sort of versionNotes ", @@ -2585,6 +2585,10 @@ sub averval_ParseDone($) { my $err = $a[5]?decode_base64($a[5]):undef; my $irowdone = $a[6]; my $reading_runtime_string; + my $erread; + + # Befehl nach Procedure ausführen + $erread = DbRep_afterproc($hash, "$hash->{LASTCMD}"); if ($err) { ReadingsSingleUpdateValue ($hash, "errortext", $err, 1); @@ -2606,6 +2610,7 @@ sub averval_ParseDone($) { } # Readingaufbereitung + my $state = $erread?$erread:"done"; readingsBeginUpdate($hash); my @arr = split("\\|", $arrstr); @@ -2630,7 +2635,7 @@ sub averval_ParseDone($) { } ReadingsBulkUpdateValue ($hash, "db_lines_processed", $irowdone) if($hash->{LASTCMD} =~ /writeToDB/); - ReadingsBulkUpdateTimeState($hash,$brt,$rt,"done"); + ReadingsBulkUpdateTimeState($hash,$brt,$rt,$state); readingsEndUpdate($hash, 1); delete($hash->{HELPER}{RUNNING_PID}); @@ -3035,7 +3040,7 @@ sub maxval_ParseDone($) { } ReadingsBulkUpdateValue ($hash, "db_lines_processed", $irowdone) if($hash->{LASTCMD} =~ /writeToDB/); - ReadingsBulkUpdateTimeState($hash,$brt,$rt,"done"); + ReadingsBulkUpdateTimeState($hash,$brt,$rt,$state); readingsEndUpdate($hash, 1); delete($hash->{HELPER}{RUNNING_PID}); @@ -3269,7 +3274,7 @@ sub minval_ParseDone($) { } ReadingsBulkUpdateValue ($hash, "db_lines_processed", $irowdone) if($hash->{LASTCMD} =~ /writeToDB/); - ReadingsBulkUpdateTimeState($hash,$brt,$rt,"done"); + ReadingsBulkUpdateTimeState($hash,$brt,$rt,$state); readingsEndUpdate($hash, 1); delete($hash->{HELPER}{RUNNING_PID}); @@ -3628,7 +3633,7 @@ sub diffval_ParseDone($) { ReadingsBulkUpdateValue ($hash, "db_lines_processed", $irowdone) if($hash->{LASTCMD} =~ /writeToDB/); ReadingsBulkUpdateValue ($hash, "diff_overrun_limit_".$difflimit, $rowsrej) if($rowsrej); ReadingsBulkUpdateValue ($hash, "less_data_in_period", $ncpstr) if($ncpstr); - ReadingsBulkUpdateTimeState($hash,$brt,$rt,($ncpstr||$rowsrej)?"Warning":"done"); + ReadingsBulkUpdateTimeState($hash,$brt,$rt,($ncpstr||$rowsrej)?"Warning":$state); readingsEndUpdate($hash, 1); @@ -3810,7 +3815,7 @@ sub sumval_ParseDone($) { } ReadingsBulkUpdateValue ($hash, "db_lines_processed", $irowdone) if($hash->{LASTCMD} =~ /writeToDB/); - ReadingsBulkUpdateTimeState($hash,$brt,$rt,"done"); + ReadingsBulkUpdateTimeState($hash,$brt,$rt,$state); readingsEndUpdate($hash, 1); delete($hash->{HELPER}{RUNNING_PID}); @@ -10455,6 +10460,8 @@ return;