Wie schon hier beschrieben ein Patch der die $plugin_subscribe Funktion - das Abonnieren von Gruppenadressen - erweitert.
In den Plugins kann man jetzt diese Möglichkeiten der Abonnierung nutzen:
Hier der Patch:
Grüße
In den Plugins kann man jetzt diese Möglichkeiten der Abonnierung nutzen:
Code:
$plugin_subscribe $plugin_subscribe_read $plugin_subscribe_write
- $plugin_subscribe - abonniert das Plugin auf jede Art von Telegrammen
- $plugin_subscribe_read - abonniert das Plugin nur bei Read-Telegrammen
- $plugin_subscribe_write - abonniert das Plugin nur bei Write-Telegrammen
Hier der Patch:
Code:
--- wiregated.pl.orig 2013-04-15 17:48:44.000000000 +0200 +++ wiregated.pl 2013-04-15 17:50:39.000000000 +0200 @@ -958,6 +958,8 @@ my %plugin_info; my %plugin_subscribe; +my %plugin_subscribe_write; +my %plugin_subscribe_read; my $plugin_initflag=0; my %plugin_socket_subscribe; @@ -1099,6 +1101,24 @@ check_generic_plugins($k,\%msg); } } + # check subscribed plugin for READ + if ($plugin_subscribe_read{$msg{'dst'}} && $msg{'apci'} eq "A_GroupValue_Read") { + #while( my ($k, $v) = each($plugin_subscribe{$msg{'dst'}}) ) { + for my $k ( keys %{$plugin_subscribe_read{ $msg{'dst'} }} ) { + LOGGER('DEBUG',"Running Plugin $k subscribed for READ to $msg{'dst'}"); + $thr_eiblisten_timeout = time(); # set timeout + check_generic_plugins($k,\%msg); + } + } + # check subscribed plugin for WRITE + if ($plugin_subscribe_write{$msg{'dst'}} && $msg{'apci'} eq "A_GroupValue_Write") { + #while( my ($k, $v) = each($plugin_subscribe{$msg{'dst'}}) ) { + for my $k ( keys %{$plugin_subscribe_write{ $msg{'dst'} }} ) { + LOGGER('DEBUG',"Running Plugin $k subscribed for WRITE to $msg{'dst'}"); + $thr_eiblisten_timeout = time(); # set timeout + check_generic_plugins($k,\%msg); + } + } } elsif ($msglen==414) {