From 3701d34b6f307f502cb621f234711633b42503a2 Mon Sep 17 00:00:00 2001 From: Sailor <> Date: Thu, 29 Apr 2021 10:44:06 +0000 Subject: [PATCH] 73_WaterCalculator: Feature - Improved Log entries git-svn-id: https://svn.fhem.de/fhem/trunk@24356 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/73_WaterCalculator.pm | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/fhem/FHEM/73_WaterCalculator.pm b/fhem/FHEM/73_WaterCalculator.pm index 90056a163..0323c1060 100644 --- a/fhem/FHEM/73_WaterCalculator.pm +++ b/fhem/FHEM/73_WaterCalculator.pm @@ -455,29 +455,41 @@ sub WaterCalculator_MidnightTimer($) my ($WaterCountName, $WaterCountReadingRegEx) = split(":", $RegEx, 2); my $WaterCountDev = $defs{$WaterCountName}; $WaterCountReadingRegEx =~ s/[\.\*]+$//; + $WaterCountReadingRegEx =~ s/[:]+$//; my $WaterCountReadingRegExNeg = $WaterCountReadingRegEx . "_"; my @WaterCountReadingNameListComplete = keys(%{$WaterCountDev->{READINGS}}); my @WaterCountReadingNameListFiltered; ### Create Log entries for debugging purpose - Log3 $WaterCalcName, 2, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegEx : " . $WaterCountReadingRegEx; - Log3 $WaterCalcName, 2, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegExNeg : " . $WaterCountReadingRegExNeg; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer WaterCountName : " . $WaterCountName; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer RegEx : " . $RegEx; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegEx : " . $WaterCountReadingRegEx; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegExNeg : " . $WaterCountReadingRegExNeg; ### If no RegEx is available, leave routine if (($WaterCountReadingRegEx eq "") || ($WaterCountReadingRegExNeg eq "")) { - Log3 $WaterCalcName, 2, $WaterCalcName. " : WaterCalculator_MidnightTimer : ERROR! No RegEx has been previously stored! Beaking midnight routine."; - Log3 $WaterCalcName, 2, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegEx : " . $WaterCountReadingRegEx; - Log3 $WaterCalcName, 2, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegExNeg : " . $WaterCountReadingRegExNeg; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer : ERROR! No RegEx has been previously stored! Beaking midnight routine."; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegEx : " . $WaterCountReadingRegEx; + Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer ReadingRegExNeg : " . $WaterCountReadingRegExNeg; return; } - foreach my $WaterCountReadingName (@WaterCountReadingNameListComplete) { - if (($WaterCountReadingName =~ m[$WaterCountReadingRegEx]) && ($WaterCountReadingName !~ m[$WaterCountReadingRegExNeg])) { - push(@WaterCountReadingNameListFiltered, $WaterCountReadingName); + ### 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 $WaterCountReadingName (@WaterCountReadingNameListComplete) { + if (($WaterCountReadingName =~ m[$WaterCountReadingRegEx]) && ($WaterCountReadingName !~ m[$WaterCountReadingRegExNeg])) { + push(@WaterCountReadingNameListFiltered, $WaterCountReadingName); + } } - } - + 1; + } or do { + my $ErrorMessage = $@; + Log3 $WaterCalcName, 2, $WaterCalcName. " : Something went wrong with the RegEx : " . $ErrorMessage; + return; + }; + ### Create Log entries for debugging purpose Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer__________________________________________________________"; Log3 $WaterCalcName, 5, $WaterCalcName. " : WaterCalculator_MidnightTimer : MidnightTimer initiated";