From 1a7d8736ee7e3f3634c5383ec8b09c991d13ad0f Mon Sep 17 00:00:00 2001 From: DS_Starter Date: Fri, 31 Dec 2021 07:44:54 +0000 Subject: [PATCH] 93_DbLog: standard unit assignment for readings beginning with 'temperature' or 'humidity' removed, forum:#125087 git-svn-id: https://svn.fhem.de/fhem/trunk@25393 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 2 ++ fhem/FHEM/93_DbLog.pm | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index e38637d7c..966017b28 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,7 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - change: 93_DbLog: standard unit assignment for readings beginning with + 'temperature' or 'humidity' removed, forum:#125087 - feature: 36_ShellyMonitor: support for readings of Shelly TRV - feature: 82_LGTV_WebOS: add weibu and change part's of code - bugfix: 93_DbLog: logging negative temperature of Type FBDECT diff --git a/fhem/FHEM/93_DbLog.pm b/fhem/FHEM/93_DbLog.pm index 6873fb66f..9dca07d9f 100644 --- a/fhem/FHEM/93_DbLog.pm +++ b/fhem/FHEM/93_DbLog.pm @@ -30,6 +30,7 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch'; # Version History intern by DS_Starter: my %DbLog_vNotesIntern = ( + "4.12.5" => "31.12.2001 standard unit assignment for readings beginning with 'temperature' and 'humidity' removed, forum:#125087 ", "4.12.4" => "27.12.2021 change ParseEvent for FBDECT, warning messages for deprecated commands added ", "4.12.3" => "20.04.2021 change sub DbLog_ConnectNewDBH for SQLITE, change error Logging in DbLog_writeFileIfCacheOverflow ", "4.12.2" => "08.04.2021 change standard splitting ", @@ -1116,11 +1117,11 @@ sub DbLog_ParseEvent { } } - #globales Abfangen von + #globales Abfangen von # removed in Version 4.12.5 # - temperature # - humidity - if ($reading =~ m(^temperature)) { $unit = "°C"; } # wenn reading mit temperature beginnt - elsif($reading =~ m(^humidity)) { $unit = "%"; } # wenn reading mit humidity beginnt + #if ($reading =~ m(^temperature)) { $unit = "°C"; } # wenn reading mit temperature beginnt + #elsif($reading =~ m(^humidity)) { $unit = "%"; } # wenn reading mit humidity beginnt # the interpretation of the argument depends on the device type # EMEM, M232Counter, M232Voltage return plain numbers @@ -2620,8 +2621,9 @@ sub DbLog_PushAsync { # ohne PK $sqlins = "INSERT INTO $history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES "; } - no warnings 'uninitialized'; - foreach my $row (@row_array) { + no warnings 'uninitialized'; + + for my $row (@row_array) { my @a = split("\\|",$row); s/_ESC_/\|/gxs for @a; # escaped Pipe return to "|" Log3 $hash->{NAME}, 5, "DbLog $name -> processing event Timestamp: $a[0], Device: $a[1], Type: $a[2], Event: $a[3], Reading: $a[4], Value: $a[5], Unit: $a[6]"; @@ -2632,7 +2634,8 @@ sub DbLog_PushAsync { $a[5] =~ s/\\/\\\\/g; # escape \ with \\ $a[6] =~ s/\\/\\\\/g; # escape \ with \\ $sqlins .= "('$a[0]','$a[1]','$a[2]','$a[3]','$a[4]','$a[5]','$a[6]'),"; - } + } + use warnings; chop($sqlins); @@ -2645,9 +2648,9 @@ sub DbLog_PushAsync { if ($@) { Log3($name, 2, "DbLog $name -> Error start transaction for $history - $@"); } + eval { $sth_ih = $dbh->prepare($sqlins); - if($tl) { - # Tracelevel setzen + if($tl) { # Tracelevel setzen $sth_ih->{TraceLevel} = "$tl|$tf"; } my $ins_hist = $sth_ih->execute();