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

91_eventTypes.pm: add ignoreList

git-svn-id: https://svn.fhem.de/fhem/trunk@8356 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-04-03 08:27:29 +00:00
parent 1d0a70c4f4
commit e38a247d2c

View File

@ -19,7 +19,7 @@ eventTypes_Initialize($)
$hash->{GetFn} = "eventTypes_Get";
$hash->{SetFn} = "eventTypes_Set";
$hash->{AttrFn} = "eventTypes_Attr";
$hash->{AttrList} = "disable:0,1";
$hash->{AttrList} = "disable:0,1 ignoreList";
}
@ -75,8 +75,9 @@ eventTypes_Define($$)
my $f = ResolveDateWildcards($a[2], @t);
my ($err, @content) = FileRead($f);
my %h = ();
$modules{eventTypes}{ldata} = \%h;
my (%h1, %h2);
$hash->{ignoreList} = \%h2;
$modules{eventTypes}{ldata} = \%h1;
foreach my $l (@content) {
next if(!defined($l));
my @l = split(" ", $l, 3);
@ -84,7 +85,7 @@ eventTypes_Define($$)
Log3 undef, 2, "eventTypes: $f: bogus line $l";
next;
}
$cnt += et_addEvt(\%h, $l[1], $l[2], $l[0]);
$cnt += et_addEvt(\%h1, $l[1], $l[2], $l[0]);
}
Log3 undef, 2, "eventTypes: loaded $cnt events from $f";
@ -107,6 +108,7 @@ eventTypes_Notify($$)
my $t = $eventSrc->{TYPE};
my $n = $eventSrc->{NAME};
return if(!defined($n) || !defined($t) || $n eq "global");
return if($me->{ignoreList}{$n});
my $ret = "";
my $h = $modules{eventTypes}{ldata};
@ -123,6 +125,16 @@ eventTypes_Attr(@)
my @a = @_;
my $do = 0;
if($a[0] eq "set" && $a[2] eq "ignoreList") {
my %h;
my $ldata = $modules{eventTypes}{ldata};
foreach my $i (split(", ", $a[3])) {
$h{$i} = 1;
delete $ldata->{$i};
}
$defs{$a[1]}{ignoreList} = \%h;
}
if($a[0] eq "set" && $a[2] eq "disable") {
$do = (!defined($a[3]) || $a[3]) ? 1 : 2;
}
@ -198,7 +210,8 @@ eventTypes_Get($@)
<ul>
<code>define &lt;name&gt; eventTypes &lt;filename&gt;</code>
<br><br>
Collect event types for all devices. This service is used by frontends.
Collect event types for all devices. This service is used by frontends,
e.g. notify and FileLog, to assist you in selecting the correct events.
The filename is used to store the collected events before shutdown.<br>
More than one instance of eventTypes should not be necessary.
Examples:
@ -236,6 +249,11 @@ eventTypes_Get($@)
<b>Attributes</b>
<ul>
<li><a href="#disable">disable</a></li>
<a name="ignoreList"></a>
<li>ignoreList<br>
Comma separated device names to ignore whe collecting the events.
E.g. ECMD-Devices are used to post RAW data as events.
</li>
</ul>
<br>