Ankündigung

Einklappen
Keine Ankündigung bisher.

Utility: Subscriptions.pl

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Utility: Subscriptions.pl

    Hallo zusammen,

    dieses kleine Plugin hat sich für mich als hilfreich erwiesen: es analysiert regelmäßig zu ALLEN Plugins die Namen der abonnierten GAs und zeigt sie übersichtlich in der Webmin-Oberfläche (unten bei den plugin_info-Variablen) an.

    Dabei werden die Namen der GAs angezeigt, soweit definiert, ansonsten die numerischen GAs (ich persönlich bevorzuge lesbare Namen!)

    Falls sich bei einem Plugin die Liste der abonnierten GAs seit dem letzten Mal geändert hat, gibt subscriptions.pl diese Liste zusätzlich als return-Wert zurück, so dass sie im plugin_log erscheint. Hilft beim Debuggen.

    Grüße, Fry

    Code:
    #################
    # Subscriptions #
    #################
    # Wiregate-Plugin
    # (c) 2012 Fry under the GNU Public License version 2 or later
    
    # $plugin_info{$plugname.'_cycle'}=0; return "Subscriptions deaktiviert.";
    
    my %eibshort;
    
    for my $ga (keys %eibgaconf)
    {
        next unless $eibgaconf{$ga}{name}=~/^(\S+)/;
        my $short=$1;
        $eibshort{$short}=$eibgaconf{$ga};
        $eibshort{$short}{ga}=$ga;
        $eibshort{$ga}=$short;
    }
    
    my %plugins=();
    
    delete $plugin_subscribe{''}; # delete stale subscriptions
    
    for my $ga (keys %plugin_subscribe)
    {
        my $sh=$ga;
        $sh=$eibshort{$ga} if defined $eibshort{$ga};
    
        for my $pl (keys %{$plugin_subscribe{$ga}})
        {
        $plugins{$pl}{$sh}=1 if $plugin_subscribe{$ga}{$pl};
        }
    }
    
    my @changedplugins=();
    
    for my $pl (keys %plugins)
    {
        my $pluglist=join(',', sort grep { $plugins{$pl}{$_} } keys %{$plugins{$pl}});
        
        $pluglist.=" => $pl";
    
        unless($plugin_info{$plugname.'_'.$pl} eq $pluglist)
        {
        $plugin_info{$plugname.'_'.$pl} = $pluglist;
        push @changedplugins, $pl;
        }
    }
    
    my $retval="(".(join ") (", map { $plugin_info{$plugname."_".$_} } @changedplugins).")";
    
    $plugin_info{$plugname.'_cycle'}=10;
    
    return if $retval eq '()';
    
    return $retval;

    #2
    Wer lieber die nackten GA sieht statt der Kürzel (die ich bevorzuge), löscht einfach die Zeile

    Code:
    $sh=$eibshort{$ga} if defined $eibshort{$ga};
    Wer statt der Kürzel die vollen GA-Namen bevorzugt, ersetzt

    Code:
        next unless $eibgaconf{$ga}{name}=~/^(\S+)/;     
        my $short=$1;
    durch

    Code:
       my $short=$eibgaconf{$ga}{name};

    Kommentar


      #3
      Gut !
      Das nehm ich mir doch mal als Notiz mit unters Kopfkissen

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #4
        Super, danke.

        Kommentar


          #5
          Zitat von Shoko Beitrag anzeigen
          Super, danke.
          Gerne! Macht doch Spaß.
          Fry

          Kommentar

          Lädt...
          X