2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-15 16:19:11 +00:00

fhem.pl: avoid TimeNow calls in DoTrigger

98_structure.pm: do not generate events for 2 LastDevice readings
91_notify.pm: fix the Wizard in the detail view
92_FileLog.pm: delete unused variable


git-svn-id: https://svn.fhem.de/fhem/trunk@7854 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-02-03 19:23:22 +00:00
parent 04ce019252
commit a156828e5b
4 changed files with 13 additions and 22 deletions

View File

@ -201,25 +201,16 @@ notify_fhemwebFn($$$$)
$dh{$a[0]}{".*"} = 1;
$dh{$a[0]}{$a[1].".*"} = 1;
}
my $list = ""; my @al;
my $list = "";
foreach my $dev (sort keys %dh) {
$list .= " $dev:" . join(",", sort keys %{$dh{$dev}});
push @al, $dev;
}
$ret .= "<tr class=\"".(($row++&1)?"odd":"even")."\">";
$ret .= "<td colspan=\"2\"><form autocomplete=\"off\">";
$ret .= FW_hidden("detail", $d);
$ret .= FW_hidden("dev.$d", "$d addRegexpPart");
$ret .= FW_submit("cmd.$d", "set", "set");
$ret .= "<div class=\"set downText\">&nbsp;$d addRegexpPart&nbsp;</div>";
$list =~ s/(['"])/./g;
$ret .= FW_select("","arg.$d",\@al, undef, "set",
"FW_selChange(this.options[selectedIndex].text,'$list','val.$d')");
$ret .= FW_textfield("val.$d", 30, "set");
my $al0 = (@al ? $al[0] : "");
$ret .= "<script type=\"text/javascript\">" .
"FW_selChange('$al0','$list','val.$d')</script>";
$ret .= "</form></td></tr>";
$ret .= "<tr class=\"".(($row++&1)?"odd":"even")."\">";
$ret .= '<td colspan="2">';
$ret .= FW_detailSelect($d, "set", $list, "addRegexpPart");
$ret .= "</td></tr>";
}
$ret .= "</table>";

View File

@ -361,10 +361,9 @@ FileLog_fhemwebFn($$$$)
$dh{$a[0]}{".*"} = 1;
$dh{$a[0]}{$a[1].".*"} = 1;
}
my $list = ""; my @al;
my $list = "";
foreach my $dev (sort keys %dh) {
$list .= " $dev:" . join(",", sort keys %{$dh{$dev}});
push @al, $dev;
}
$list =~ s/(['"])/./g;

View File

@ -277,9 +277,9 @@ sub structure_Notify($$)
Log3 $me, 5, "Update structure '$me' to $newState" .
" because device $dev->{NAME} has changed";
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "LastDevice", $dev->{NAME});
readingsBulkUpdate($hash, "LastDevice", $dev->{NAME}, 0);
readingsBulkUpdate($hash, "LastDevice_Abs",
structure_getChangedDevice($dev->{NAME}));
structure_getChangedDevice($dev->{NAME}), 0);
readingsBulkUpdate($hash, "state", $newState);
readingsEndUpdate($hash, 1);

View File

@ -2871,6 +2871,7 @@ DoTrigger($$@)
my $max = int(@{$hash->{CHANGED}});
Log 5, "Triggering $dev ($max changes)";
return "" if(defined($attr{$dev}) && defined($attr{$dev}{do_not_notify}));
my $now = TimeNow();
################
# Log/notify modules
@ -2880,7 +2881,7 @@ DoTrigger($$@)
$hash->{INTRIGGER}=1;
Log 5, "Notify loop for $dev $hash->{CHANGED}->[0]";
createNtfyHash() if(!%ntfyHash);
$hash->{NTFY_TRIGGERTIME} = TimeNow(); # Optimize FileLog
$hash->{NTFY_TRIGGERTIME} = $now; # Optimize FileLog
my $ntfyLst = (defined($ntfyHash{$dev}) ? $ntfyHash{$dev} : $ntfyHash{"*"});
foreach my $n (@{$ntfyLst}) {
next if(!defined($defs{$n})); # Was deleted in a previous notify
@ -2900,7 +2901,7 @@ DoTrigger($$@)
next;
}
next if($inform{$c}{type} eq "raw");
my $tn = TimeNow();
my $tn = $now;
if($attr{global}{mseclog}) {
my ($seconds, $microseconds) = gettimeofday();
$tn .= sprintf(".%03d", $microseconds/1000);
@ -2922,7 +2923,7 @@ DoTrigger($$@)
####################
# Used by triggered perl programs to check the old value
# Not suited for multi-valued devices (KS300, etc)
$oldvalue{$dev}{TIME} = TimeNow();
$oldvalue{$dev}{TIME} = $now;
$oldvalue{$dev}{VAL} = $hash->{STATE};
if(!defined($hash->{INTRIGGER})) {