2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-23 20:52:13 +00:00

93_DbRep: contrib 8.28.0

git-svn-id: https://svn.fhem.de/fhem/trunk@20283 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2019-09-30 21:07:35 +00:00
parent 36b7898726
commit 4b80760c4a

View File

@ -58,7 +58,7 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch';
# Version History intern # Version History intern
our %DbRep_vNotesIntern = ( our %DbRep_vNotesIntern = (
"8.28.0" => "28.09.2019 seqDoubletsVariance - separate specification of positive and negative variance possible, Forum: https://forum.fhem.de/index.php/topic,53584.msg959963.html#msg959963 ", "8.28.0" => "30.09.2019 seqDoubletsVariance - separate specification of positive and negative variance possible, Forum: https://forum.fhem.de/index.php/topic,53584.msg959963.html#msg959963 ",
"8.27.2" => "27.09.2019 fix export data to file, fix delDoublets if MySQL and VALUE contains \, fix readingRename without leading device ", "8.27.2" => "27.09.2019 fix export data to file, fix delDoublets if MySQL and VALUE contains \, fix readingRename without leading device ",
"8.27.1" => "22.09.2019 comma are shown in sqlCmdHistory, Forum: #103908 ", "8.27.1" => "22.09.2019 comma are shown in sqlCmdHistory, Forum: #103908 ",
"8.27.0" => "15.09.2019 save memory usage by eliminating \$hash -> {dbloghash}, fix warning uninitialized value \$idevice in split ", "8.27.0" => "15.09.2019 save memory usage by eliminating \$hash -> {dbloghash}, fix warning uninitialized value \$idevice in split ",
@ -5171,7 +5171,6 @@ sub delseqdoubl_DoParse($) {
$varneg = DbRep_trim($varneg); $varneg = DbRep_trim($varneg);
} }
Log3 ($name, 4, "DbRep $name - delSeqDoublets params -> positive variance: $varpos, negative variance: $varneg, EDGE: $edge"); Log3 ($name, 4, "DbRep $name - delSeqDoublets params -> positive variance: $varpos, negative variance: $varneg, EDGE: $edge");
$edge = ($edge =~ /balanced/i)?0:1;
# Background-Startzeit # Background-Startzeit
my $bst = [gettimeofday]; my $bst = [gettimeofday];
@ -5250,7 +5249,8 @@ sub delseqdoubl_DoParse($) {
} }
$oor = pop @sel; # das vorletzte Element der Liste $oor = pop @sel; # das vorletzte Element der Liste
$ooval = (split '_ESC_', $oor)[-1]; # Value des vorletzten Elements $ooval = (split '_ESC_', $oor)[-1]; # Value des vorletzten Elements
# Log3 ($name, 1, "DbRep $name - OOVAL: $ooval, OVAL: $oval, VARO: $varo, VARU: $varu");
if ($ndev.$nread ne $odev.$oread) { if ($ndev.$nread ne $odev.$oread) {
$i = 0; # neues Device/Reading in einer Periode -> ooor soll erhalten bleiben $i = 0; # neues Device/Reading in einer Periode -> ooor soll erhalten bleiben
push (@sel,$oor) if($oor); push (@sel,$oor) if($oor);
@ -5258,11 +5258,17 @@ sub delseqdoubl_DoParse($) {
push (@sel,$nr); push (@sel,$nr);
} elsif ($i>=2 && ($ooval eq $oval && $oval eq $nval) || } elsif ($i>=2 && ($ooval eq $oval && $oval eq $nval) ||
($i>=2 && $varo && $varu && !$edge && ($ooval <= $varo) && ($varu <= $ooval) && ($nval <= $varo) && ($varu <= $nval)) || ($i>=2 && $varo && $varu && ($ooval <= $varo) && ($varu <= $ooval) && ($nval <= $varo) && ($varu <= $nval)) ) {
($i>=2 && $varo && $varu && $edge && ($ooval <= $varo) && ($ooval >= $varu) && ($nval >= $oval)) ) { if ($edge =~ /negative/i && ($ooval > $oval)) {
push (@sel,$oor); push (@sel,$oor); # negative Flanke -> der abfallende DS und desssen Vorgänger
push (@sel,$nr); push (@sel,$or); # werden behalten obwohl im Löschkorridor
push (@warp,$or); # Array der zu löschenden Datensätze push (@sel,$nr);
} else {
push (@sel,$oor); # Array der zu behaltenden Datensätze
push (@sel,$nr); # Array der zu behaltenden Datensätze
push (@warp,$or); # Array der zu löschenden Datensätze
}
if ($opt =~ /delete/ && $or) { # delete Datensätze if ($opt =~ /delete/ && $or) { # delete Datensätze
my ($dev,$read,$date,$time,$val) = split("_ESC_", $or); my ($dev,$read,$date,$time,$val) = split("_ESC_", $or);
my $dt = $date." ".$time; my $dt = $date." ".$time;
@ -15581,14 +15587,18 @@ sub bdump {
</li> <br> </li> <br>
<a name="seqDoubletsVariance"></a> <a name="seqDoubletsVariance"></a>
<li><b>seqDoubletsVariance &lt;Abweichung [untere Abweichung]&gt; </b> <li><b>seqDoubletsVariance &lt;positive Abweichung [negative Abweichung] [EDGE=negative]&gt; </b> <br>
- akzeptierte Abweichung für das Kommando "set &lt;name&gt; delSeqDoublets". <br> Akzeptierte Abweichung für das Kommando "set &lt;name&gt; delSeqDoublets". <br>
Der Wert des Attributs beschreibt die Abweichung bis zu der aufeinanderfolgende numerische Der Wert des Attributs beschreibt die Abweichung bis zu der aufeinanderfolgende numerische
Werte (VALUE) von Datensätze als gleich angesehen und gelöscht werden sollen. Werte (VALUE) von Datensätzen als gleich angesehen werden sollen.
Ist in "seqDoubletsVariance" nur Zahlenwert angegeben, wird er sowohl als positive als Ist in "seqDoubletsVariance" nur ein Zahlenwert angegeben, wird er sowohl als positive als
auch negative Abweichung verwendet. Optional kann ein zweiter Zahlenwert für eine auch negative Abweichung verwendet und bilden den "Löschkorridor".
negative Abweichung, getrennt durch Leerzeichen, angegeben werden. Es sind absolute Optional kann ein zweiter Zahlenwert für eine negative Abweichung, getrennt durch
Zahlenwerte anzugeben. Leerzeichen, angegeben werden.
Es sind immer absolute, d.h. positive Zahlenwerte anzugeben. <br>
Ist der Zusatz "EDGE=negative" angegeben, werden Werte an einer negativen Flanke
(z.B. beim Wechel von 4.0 - 1.0) nicht gelöscht auch wenn sie sich im "Löschkorridor"
befinden.
<br><br> <br><br>
<ul> <ul>