2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

93_DbRep: contrib 8.50.5

git-svn-id: https://svn.fhem.de/fhem/trunk@26788 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2022-12-05 16:51:04 +00:00
parent 40e41b5def
commit 12fc429059

View File

@ -57,6 +57,7 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch';
# Version History intern # Version History intern
my %DbRep_vNotesIntern = ( my %DbRep_vNotesIntern = (
"8.50.5" => "05.12.2022 fix diffValue problem (DbRep_diffval) for newer MariaDB versions: https://forum.fhem.de/index.php/topic,130697.0.html ",
"8.50.4" => "04.11.2022 fix daylight saving bug in aggregation eq 'month' (_DbRep_collaggstr) ", "8.50.4" => "04.11.2022 fix daylight saving bug in aggregation eq 'month' (_DbRep_collaggstr) ",
"8.50.3" => "19.09.2022 reduce memory allocation of function DbRep_reduceLog ", "8.50.3" => "19.09.2022 reduce memory allocation of function DbRep_reduceLog ",
"8.50.2" => "17.09.2022 release setter 'index' for device model 'Agent' ", "8.50.2" => "17.09.2022 release setter 'index' for device model 'Agent' ",
@ -4228,6 +4229,7 @@ return;
#################################################################################################### ####################################################################################################
sub DbRep_diffval { sub DbRep_diffval {
my $paref = shift; my $paref = shift;
my $hash = $paref->{hash}; my $hash = $paref->{hash};
my $name = $paref->{name}; my $name = $paref->{name};
my $table = $paref->{table}; my $table = $paref->{table};
@ -4251,7 +4253,7 @@ sub DbRep_diffval {
my @ts = split("\\|", $ts); # Timestampstring to Array my @ts = split("\\|", $ts); # Timestampstring to Array
Log3 ($name, 5, "DbRep $name - Timestamp-Array: \n@ts"); Log3 ($name, 5, "DbRep $name - Timestamp-Array: \n@ts");
if($dbmodel eq "MYSQL2") { if($dbmodel eq "OLDMYSQLVER") { # Forum: https://forum.fhem.de/index.php/topic,130697.0.html
$selspec = "TIMESTAMP,VALUE, if(VALUE-\@V < 0 OR \@RB = 1 , \@diff:= 0, \@diff:= VALUE-\@V ) as DIFF, \@V:= VALUE as VALUEBEFORE, \@RB:= '0' as RBIT "; $selspec = "TIMESTAMP,VALUE, if(VALUE-\@V < 0 OR \@RB = 1 , \@diff:= 0, \@diff:= VALUE-\@V ) as DIFF, \@V:= VALUE as VALUEBEFORE, \@RB:= '0' as RBIT ";
} }
else { else {
@ -4270,7 +4272,7 @@ sub DbRep_diffval {
my $runtime_string_next = $a[2]; my $runtime_string_next = $a[2];
$runtime_string = encode_base64($runtime_string,""); $runtime_string = encode_base64($runtime_string,"");
if($dbmodel eq "MYSQL2") { if($dbmodel eq "OLDMYSQLVER") { # Forum: https://forum.fhem.de/index.php/topic,130697.0.html
$err = DbRep_dbhDo ($name, $dbh, "set \@V:= 0, \@diff:= 0, \@diffTotal:= 0, \@RB:= 1;"); # @\RB = Resetbit wenn neues Selektionsintervall beginnt $err = DbRep_dbhDo ($name, $dbh, "set \@V:= 0, \@diff:= 0, \@diffTotal:= 0, \@RB:= 1;"); # @\RB = Resetbit wenn neues Selektionsintervall beginnt
return "$name|$err" if ($err); return "$name|$err" if ($err);
} }
@ -4285,7 +4287,7 @@ sub DbRep_diffval {
($err, $sth) = DbRep_prepareExecuteQuery ($name, $dbh, $sql); ($err, $sth) = DbRep_prepareExecuteQuery ($name, $dbh, $sql);
return "$name|$err" if ($err); return "$name|$err" if ($err);
if($dbmodel eq "MYSQL2") { if($dbmodel eq "OLDMYSQLVER") { # Forum: https://forum.fhem.de/index.php/topic,130697.0.html
@array = map { $runtime_string." ".$_ -> [0]." ".$_ -> [1]." ".$_ -> [2]."\n" } @{ $sth->fetchall_arrayref() }; @array = map { $runtime_string." ".$_ -> [0]." ".$_ -> [1]." ".$_ -> [2]."\n" } @{ $sth->fetchall_arrayref() };
} }
else { else {