mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-25 16:05:19 +00:00
98_DOIF.pm:
Fixed duplicate events in event_Readings, plots optimized in card git-svn-id: https://svn.fhem.de/fhem/trunk@28543 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
fa5715a4e9
commit
a5885bb239
@ -1636,6 +1636,10 @@ sub DOIF_setValue_collect
|
|||||||
} else {
|
} else {
|
||||||
my @rv=splice (@{$va},0,$diff_slots);
|
my @rv=splice (@{$va},0,$diff_slots);
|
||||||
my @rt=splice (@{$ta},0,$diff_slots);
|
my @rt=splice (@{$ta},0,$diff_slots);
|
||||||
|
if ($diff_slots > 1 and !defined ${$va}[$dim-$diff_slots] and defined ${$collect}{last} and ${$va}[$dim-$diff_slots-1] != ${$collect}{last}) {
|
||||||
|
${$va}[$dim-$diff_slots]=${$collect}{last};
|
||||||
|
${$ta}[$dim-$diff_slots]=(int(${$ta}[$dim-$diff_slots-1]/$seconds_per_slot)+1)*$seconds_per_slot;
|
||||||
|
}
|
||||||
for (my $i=@rv-1;$i>=0;$i--) {
|
for (my $i=@rv-1;$i>=0;$i--) {
|
||||||
if (defined ($rv[$i])) {
|
if (defined ($rv[$i])) {
|
||||||
${$collect}{last_value}=$rv[$i];
|
${$collect}{last_value}=$rv[$i];
|
||||||
@ -1643,6 +1647,7 @@ sub DOIF_setValue_collect
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
${$collect}{last}=undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined ${$va}[$dim-1] or !defined ${$collect}{last_v} or (abs($r-${$collect}{last_v}) > abs(${$va}[$dim-1]-${$collect}{last_v}))) {
|
if (!defined ${$va}[$dim-1] or !defined ${$collect}{last_v} or (abs($r-${$collect}{last_v}) > abs(${$va}[$dim-1]-${$collect}{last_v}))) {
|
||||||
@ -1657,9 +1662,10 @@ sub DOIF_setValue_collect
|
|||||||
}
|
}
|
||||||
${$ta}[$dim-1]=$seconds;
|
${$ta}[$dim-1]=$seconds;
|
||||||
${$collect}{last_slot}=$slot_nr;
|
${$collect}{last_slot}=$slot_nr;
|
||||||
|
} elsif ($r ne "N/A" and ${$va}[$dim-1] != $r) {
|
||||||
|
${$collect}{last}=$r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (defined $statistic or defined $change) {
|
if (defined $statistic or defined $change) {
|
||||||
DOIF_statistic_col ($collect)
|
DOIF_statistic_col ($collect)
|
||||||
}
|
}
|
||||||
@ -3491,18 +3497,18 @@ DOIF_Notify($$)
|
|||||||
return "" if (ReadingsVal($pn,"mode","") eq "disabled");
|
return "" if (ReadingsVal($pn,"mode","") eq "disabled");
|
||||||
|
|
||||||
$ret=0;
|
$ret=0;
|
||||||
if (defined $hash->{Regex}{"event_Readings"}) {
|
# if (defined $hash->{Regex}{"event_Readings"}) {
|
||||||
foreach $device ("$dev->{NAME}","") {
|
# foreach $device ("$dev->{NAME}","") {
|
||||||
if (defined $hash->{Regex}{"event_Readings"}{$device}) {
|
# if (defined $hash->{Regex}{"event_Readings"}{$device}) {
|
||||||
#readingsBeginUpdate($hash);
|
# foreach my $reading (keys %{$hash->{Regex}{"event_Readings"}{$device}}) {
|
||||||
foreach my $reading (keys %{$hash->{Regex}{"event_Readings"}{$device}}) {
|
# my $readingregex=CheckRegexpDoIf($hash,"event_Readings",$dev->{NAME},$reading,$eventa,$eventas);
|
||||||
my $readingregex=CheckRegexpDoIf($hash,"event_Readings",$dev->{NAME},$reading,$eventa,$eventas);
|
# if (defined($readingregex)) {
|
||||||
setDOIF_Reading($hash,$reading,$readingregex,"event_Readings",$eventa, $eventas,$dev->{NAME}) if (defined($readingregex));
|
# setDOIF_Reading($hash,$reading,$readingregex,"event_Readings",$eventa, $eventas,$dev->{NAME});
|
||||||
}
|
# }
|
||||||
#readingsEndUpdate($hash,1);
|
# }
|
||||||
}
|
# }
|
||||||
}
|
# }
|
||||||
}
|
# }
|
||||||
|
|
||||||
if (defined $hash->{Regex}{"accu"}{"$dev->{NAME}"}) {
|
if (defined $hash->{Regex}{"accu"}{"$dev->{NAME}"}) {
|
||||||
my $device=$dev->{NAME};
|
my $device=$dev->{NAME};
|
||||||
@ -3622,21 +3628,22 @@ DOIF_Notify($$)
|
|||||||
if (defined $hash->{Regex}{"event_Readings"}) {
|
if (defined $hash->{Regex}{"event_Readings"}) {
|
||||||
foreach $device ("$dev->{NAME}","") {
|
foreach $device ("$dev->{NAME}","") {
|
||||||
if (defined $hash->{Regex}{"event_Readings"}{$device}) {
|
if (defined $hash->{Regex}{"event_Readings"}{$device}) {
|
||||||
#readingsBeginUpdate($hash);
|
|
||||||
foreach my $reading (keys %{$hash->{Regex}{"event_Readings"}{$device}}) {
|
foreach my $reading (keys %{$hash->{Regex}{"event_Readings"}{$device}}) {
|
||||||
my $readingregex=CheckRegexpDoIf($hash,"event_Readings",$dev->{NAME},$reading,$eventa,$eventas);
|
my $readingregex=CheckRegexpDoIf($hash,"event_Readings",$dev->{NAME},$reading,$eventa,$eventas);
|
||||||
setDOIF_Reading($hash,$reading,$readingregex,"event_Readings",$eventa, $eventas,$dev->{NAME}) if (defined($readingregex));
|
setDOIF_Reading($hash,$reading,$readingregex,"event_Readings",$eventa, $eventas,$dev->{NAME}) if (defined($readingregex));
|
||||||
}
|
}
|
||||||
#readingsEndUpdate($hash,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (defined ($hash->{helper}{DOIF_eventas})) { #$SELF events
|
|
||||||
foreach my $reading (keys %{$hash->{Regex}{"event_Readings"}{$hash->{NAME}}}) {
|
|
||||||
my $readingregex=CheckRegexpDoIf($hash,"event_Readings",$hash->{NAME},$reading,$hash->{helper}{DOIF_eventa},$hash->{helper}{DOIF_eventas});
|
|
||||||
setDOIF_Reading($hash,$reading,$readingregex,"event_Readings",$eventa, $eventas,$dev->{NAME}) if (defined($readingregex));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# if (defined ($hash->{helper}{DOIF_eventas})) { #$SELF events
|
||||||
|
# foreach my $reading (keys %{$hash->{Regex}{"event_Readings"}{$hash->{NAME}}}) {
|
||||||
|
# my $readingregex=CheckRegexpDoIf($hash,"event_Readings",$hash->{NAME},$reading,$hash->{helper}{DOIF_eventa},$hash->{helper}{DOIF_eventas});
|
||||||
|
# if (defined($readingregex)){
|
||||||
|
# setDOIF_Reading($hash,$reading,$readingregex,"event_Readings",$eventa, $eventas,$dev->{NAME});
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
|
||||||
if (defined $hash->{helper}{DOIF_Readings_events}) {
|
if (defined $hash->{helper}{DOIF_Readings_events}) {
|
||||||
if ($dev->{NAME} ne $hash->{NAME}) {
|
if ($dev->{NAME} ne $hash->{NAME}) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user