From a7b60779b5978d1fd949060b2fd5a41e45cad13f Mon Sep 17 00:00:00 2001 From: Sailor <> Date: Thu, 29 Apr 2021 10:44:07 +0000 Subject: [PATCH] 73_GasCalculator: Feature - Improved Log entries git-svn-id: https://svn.fhem.de/fhem/trunk@24357 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/73_GasCalculator.pm | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/fhem/FHEM/73_GasCalculator.pm b/fhem/FHEM/73_GasCalculator.pm index c8a518e56..20f01f08d 100644 --- a/fhem/FHEM/73_GasCalculator.pm +++ b/fhem/FHEM/73_GasCalculator.pm @@ -455,28 +455,40 @@ sub GasCalculator_MidnightTimer($) my ($GasCountName, $GasCountReadingRegEx) = split(":", $RegEx, 2); my $GasCountDev = $defs{$GasCountName}; $GasCountReadingRegEx =~ s/[\.\*]+$//; + $GasCountReadingRegEx =~ s/[:]+$//; my $GasCountReadingRegExNeg = $GasCountReadingRegEx . "_"; my @GasCountReadingNameListComplete = keys(%{$GasCountDev->{READINGS}}); my @GasCountReadingNameListFiltered; ### Create Log entries for debugging purpose - Log3 $GasCalcName, 2, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegEx : " . $GasCountReadingRegEx; - Log3 $GasCalcName, 2, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegExNeg : " . $GasCountReadingRegExNeg; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer GasCountName : " . $GasCountName; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer RegEx : " . $RegEx; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegEx : " . $GasCountReadingRegEx; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegExNeg : " . $GasCountReadingRegExNeg; ### If no RegEx is available, leave routine if (($GasCountReadingRegEx eq "") || ($GasCountReadingRegExNeg eq "")) { - Log3 $GasCalcName, 2, $GasCalcName. " : GasCalculator_MidnightTimer : ERROR! No RegEx has been previously stored! Beaking midnight routine."; - Log3 $GasCalcName, 2, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegEx : " . $GasCountReadingRegEx; - Log3 $GasCalcName, 2, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegExNeg : " . $GasCountReadingRegExNeg; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer : ERROR! No RegEx has been previously stored! Beaking midnight routine."; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegEx : " . $GasCountReadingRegEx; + Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer ReadingRegExNeg : " . $GasCountReadingRegExNeg; return; } - foreach my $GasCountReadingName (@GasCountReadingNameListComplete) { - if (($GasCountReadingName =~ m[$GasCountReadingRegEx]) && ($GasCountReadingName !~ m[$GasCountReadingRegExNeg])) { - push(@GasCountReadingNameListFiltered, $GasCountReadingName); + ### Check whether system failure threat is given or log error message + eval { + ### For each valid RegEx entry given in the list of existing devices + foreach my $GasCountReadingName (@GasCountReadingNameListComplete) { + if (($GasCountReadingName =~ m[$GasCountReadingRegEx]) && ($GasCountReadingName !~ m[$GasCountReadingRegExNeg])) { + push(@GasCountReadingNameListFiltered, $GasCountReadingName); + } } - } + 1; + } or do { + my $ErrorMessage = $@; + Log3 $GasCalcName, 2, $GasCalcName. " : Something went wrong with the RegEx : " . $ErrorMessage; + return; + }; ### Create Log entries for debugging purpose Log3 $GasCalcName, 5, $GasCalcName. " : GasCalculator_MidnightTimer__________________________________________________________";