2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-28 11:01:59 +00:00

93_DbRep: contrib 8.50.0

git-svn-id: https://svn.fhem.de/fhem/trunk@26324 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2022-08-15 20:47:35 +00:00
parent ce2a377257
commit f4d10d8961

View File

@ -9562,17 +9562,21 @@ sub _DbRep_rl_updateDay {
my %updateHash; my %updateHash;
for my $row (@$updateDayref) { for my $row (@$updateDayref) {
push @{$updateHash{$row->[3].$row->[4]}->{tedr}}, [$row->[0], $row->[1], $row->[3], $row->[4]]; # tedr -> time, event, device, reading
$updateHash{$row->[3].$row->[4]}->{sum} += $row->[2]; # Summe aller Werte
$updateHash{$row->[3].$row->[4]}->{date} = $row->[5]; $updateHash{$row->[3].$row->[4]}->{date} = $row->[5];
push @{$updateHash{$row->[3].$row->[4]}->{tedr}}, [$row->[0], $row->[1], $row->[3], $row->[4]]; # tedr -> time, event, device, reading
if (!defined $updateHash{$row->[3].$row->[4]}->{max}) { # Maximalwert if ($mstr eq 'average') { # Day Average
$updateHash{$row->[3].$row->[4]}->{sum} += $row->[2]; # Summe aller Werte
}
elsif ($mstr eq 'max') { # Day Max
if (!defined $updateHash{$row->[3].$row->[4]}->{max}) {
$updateHash{$row->[3].$row->[4]}->{max} = $row->[2]; $updateHash{$row->[3].$row->[4]}->{max} = $row->[2];
} }
else { else {
$updateHash{$row->[3].$row->[4]}->{max} = $row->[2] if ($row->[2] > $updateHash{$row->[3].$row->[4]}->{max}); $updateHash{$row->[3].$row->[4]}->{max} = $row->[2] if ($row->[2] > $updateHash{$row->[3].$row->[4]}->{max});
} }
} }
}
my $c = 0; my $c = 0;
@ -9588,7 +9592,7 @@ sub _DbRep_rl_updateDay {
${$deletedCountref} += $c; ${$deletedCountref} += $c;
${$updateCountref} += keys %updateHash; ${$updateCountref} += keys %updateHash;
my $params; my ($params, $value);
my ($id,$iu) = (0,0); my ($id,$iu) = (0,0);
my ($kd,$ku) = (1,1); my ($kd,$ku) = (1,1);
my $thd = _DbRep_rl_logThreshold ($c); my $thd = _DbRep_rl_logThreshold ($c);
@ -9612,59 +9616,15 @@ sub _DbRep_rl_updateDay {
return $err if ($err); return $err if ($err);
} }
if ($mstr eq 'average') { # Day Average
for my $uhk (keys %updateHash) { for my $uhk (keys %updateHash) {
my $value = sprintf "%.${ndp}f", $updateHash{$uhk}->{sum} / scalar @{$updateHash{$uhk}->{tedr}};
my $lastUpdH = pop @{$updateHash{$uhk}->{tedr}};
for my $tedr (@{$updateHash{$uhk}->{tedr}}) { if ($mstr eq 'average') { # Day Average
$id++; $value = sprintf "%.${ndp}f", $updateHash{$uhk}->{sum} / scalar @{$updateHash{$uhk}->{tedr}};
$paref->{logtxt} = "(daily-$mstr) deleting";
$paref->{iref} = \$id;
$paref->{kref} = \$kd;
$paref->{th} = $thd;
$paref->{timestamp} = $tedr->[0];
$paref->{device} = $tedr->[2];
$paref->{reading} = $tedr->[3];
$err = __DbRep_rl_deleteDayDatabase ($paref);
if ($err) {
Log3 ($name, 3, "DbRep $name - ERROR - reduceLog $mstr=day failed for day $processingDay: $err");
$err = encode_base64($err, "");
DbRep_rollbackOnly ($name, $dbh);
return $err;
}
}
$iu++;
$paref->{logtxt} = "(daily-$mstr) updating";
$paref->{iref} = \$iu;
$paref->{kref} = \$ku;
$paref->{th} = $thu;
$paref->{date} = $updateHash{$uhk}->{date};
$paref->{timestamp} = $lastUpdH->[0];
$paref->{device} = $lastUpdH->[2];
$paref->{reading} = $lastUpdH->[3];
$paref->{value} = $value;
$err = __DbRep_rl_updateDayDatabase ($paref);
if ($err) {
Log3 ($name, 3, "DbRep $name - ERROR - reduceLog $mstr=day failed for day $processingDay: $err");
$err = encode_base64($err, "");
DbRep_rollbackOnly ($name, $dbh);
return $err;
}
}
} }
elsif ($mstr eq 'max') { # Day Max elsif ($mstr eq 'max') { # Day Max
for my $uhk (keys %updateHash) { $value = sprintf "%.${ndp}f", $updateHash{$uhk}->{max};
my $value = sprintf "%.${ndp}f", $updateHash{$uhk}->{max}; }
my $lastUpdH = pop @{$updateHash{$uhk}->{tedr}}; my $lastUpdH = pop @{$updateHash{$uhk}->{tedr}};
for my $tedr (@{$updateHash{$uhk}->{tedr}}) { for my $tedr (@{$updateHash{$uhk}->{tedr}}) {
@ -9711,7 +9671,6 @@ sub _DbRep_rl_updateDay {
return $err; return $err;
} }
} }
}
if(keys %updateHash) { if(keys %updateHash) {
$err = DbRep_commitOnly ($name, $dbh); $err = DbRep_commitOnly ($name, $dbh);