Zurück   KNX-User-Forum > Supportforen > WireGate
knx-user-forum - International KNX Award Winner 2010



Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.04.2012, 23:59
Fry Fry ist offline
Erfahrener Benutzer
 
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 1.199
Standard Utility: Gruppenadressen in Logdateien decodieren

Hallo zusammen,
wer wie ich auch keine nackten Gruppenadressen in Logdateien mag, für den hätte ich hier einen Ansatz.

1. Die Datei /etc/wiregate/eibga.conf sollte mit allen GAs und deren Namen gepflegt sein. Jeder GA-Name sollte mit einem eindeutigen Kürzel beginnen (etwa ""

2. Optional: eine Datei /etc/wiregate/eibpa.conf mit einer Tabelle der physikalischen Adressen erzeugen. (eine Zeile pro Gerät, einfach den Klarnamen des Gerätes und dahinter die phys. Adresse).

Das folgende Script als "eibdecode" in den Pfad (zB /root/bin) ablegen und ausführbar (chmod a+x /root/bin/eibdecode) machen.

Code:
#!/usr/bin/perl -W

#############
# eibdecode #
#############
# Wiregate-Utility
# (c) 2012 Fry under the GPL v2 or later

use strict;

# Physical addresses:
# Read /etc/wiregate/eibpa.conf if existent
# simple format, e.g.: 
#
# MDT DaliControl 1.1.23
# LJ Netzteilaktor 1.1.1
# MDT Taster 12 1.1.12
# .....
#
my %eibpa=();

open CONF, "</etc/wiregate/eibpa.conf" || return "Could not open eibpa.conf for reading";
$/="\n";
while(<CONF>)
{
    next unless /^(.*)\s+([0-9]+\.[0-9]+\.[0-9]+)\s*$/;
    
    $eibpa{$2}=$1;
    $eibpa{$1}=$2;
}
close CONF; 

# Group addresses:
# Read /etc/wiregate/eibshort.pl if existent and newer than /etc/wiregate/eibga.conf
# otherwise generate that file
# eibshort is a hash containing the first word of each GA name 
# (used as "short description" in my GA scheme)

my %eibshort;

if(-f '/etc/wiregate/eibga.conf' && -f '/etc/wiregate/eibshort.pl' && -M '/etc/wiregate/eibga.conf' > -M '/etc/wiregate/eibshort.pl')
{
    $/=undef; open PL, "</etc/wiregate/eibshort.pl"; eval <PL>; close PL;
}
else
{
    # parse eibga.conf
    open CONF, "</etc/wiregate/eibga.conf" || return "Could not open eibga.conf for reading";
    $/="\n";
    
    my $hash={};
    
    while(<CONF>)
    {
        if(/^\[([0-9]+\/[0-9]+\/[0-9]+)\]\s*$/)
        {
            my $newhash = { ga => $1 };
            
            if(exists $hash->{name} && exists $hash->{ga})
            {
                $hash->{name}=~/^\s*(\S+)/;
                my $short=$1;
                $short='ZV_'.$1 if $hash->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand
                $eibshort{$short}=$hash;
                $eibshort{$hash->{ga}}=$short;
            }
            
            # start new record
            $hash=$newhash;
        }
        elsif(/^\s*(.*?)\s*\=\s*(.*)\s*$/)
        {       
            $hash->{$1} = $2;
        }
    }
    close CONF; 
    
    if(exists $hash->{name} && exists $hash->{ga})
    {
        $hash->{name}=~/^(\S+)\s/;
        my $short=$1;
        $eibshort{$short}=$hash;
        $eibshort{$hash->{ga}}=$short;
    }
    
    # Now write eibshort.pl
    open PL, ">/etc/wiregate/eibshort.pl" || return "Could not open eibga.conf for reading";
    
    my $count=0;
    
    print PL "%eibshort = (\n";
    
    for my $s (keys %eibshort)
    {
        if(ref $eibshort{$s})
        {
            print PL "\t'$s' => {\n";
            for my $t (keys %{$eibshort{$s}})
            {
                print PL "\t\t'$t' => '$eibshort{$s}{$t}',\n";
            }
            print PL "\t},\n";
            $count++;
        }
        else
        {
            print PL "\t'$s' => '$eibshort{$s}',\n"
        }
    }
    
    print PL ");\n";
    
    close PL;
}

# Eliminate back-translation from hashes
for my $k (keys %eibshort)
{
    delete $eibshort{$k} unless $k=~/^[0-9]+\/[0-9]+\/[0-9]+$/;
}

for my $k (keys %eibpa)
{
    delete $eibpa{$k} unless $k=~/^[0-9]+\.[0-9]+\.[0-9]+$/
}

# Sort patterns by decreasing length
my @eibshortpt=sort { length($b) cmp length($a) } keys %eibshort;
my @eibpapt=sort { length($b) cmp length($a) } keys %eibpa;

# act as a decoder filter for stdin
$/="\n";

while(<>)
{
    for my $k (@eibshortpt)
    {
        my $p=quotemeta $k;
        s/$p/$eibshort{$k}/ge;
    }
    for my $k (@eibpapt)
    {
        my $p=quotemeta $k;
        s/$p/$eibpa{$k}/ge;
    }
    print;
}
Nun sieht ein Log entweder so aus:

Code:
tail /var/log/eib.log

2012-04-24 13:46:57.706,A_GroupValue_Write,0.0.0,6/2/186,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:47:11.542,A_GroupValue_Write,1.1.18,6/4/191,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:47:37.939,A_GroupValue_Write,1.1.18,6/4/191,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:48:37.136,A_GroupValue_Write,0.0.0,14/2/138,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:48:38.704,A_GroupValue_Write,1.1.18,6/4/191,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:48:43.120,A_GroupValue_Write,1.1.18,6/4/191,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:49:13.331,A_GroupValue_Write,0.0.0,14/2/138,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:49:45.708,A_GroupValue_Write,0.0.0,14/0/138,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:49:56.532,A_GroupValue_Write,1.1.18,6/4/191,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.269,A_GroupValue_Write,0.0.0,15/3/10,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.515,A_GroupValue_Write,0.0.0,15/3/13,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.794,A_GroupValue_Write,0.0.0,15/3/11,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.997,A_GroupValue_Write,0.0.0,15/3/15,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:32.082,A_GroupValue_Write,0.0.0,15/3/14,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:32.148,A_GroupValue_Write,0.0.0,15/3/12,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:32.214,A_GroupValue_Write,0.0.0,15/3/16,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:52:24.094,A_GroupValue_Write,0.0.0,6/2/186,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.479,A_GroupValue_Read,0.0.0,15/3/17,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.789,A_GroupValue_Read,0.0.0,15/3/18,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.853,A_GroupValue_Read,0.0.0,15/3/19,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.919,A_GroupValue_Write,0.0.0,15/0/20,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:56:31.304,A_GroupValue_Write,0.0.0,15/3/10,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
oder so:

Code:
tail /var/log/eib.log | eibdecode

2012-04-24 13:46:57.706,A_GroupValue_Write,0.0.0,TA_A2,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:47:11.542,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:47:37.939,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:48:37.136,A_GroupValue_Write,0.0.0,WD_Temperatur,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:48:38.704,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:48:43.120,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:49:13.331,A_GroupValue_Write,0.0.0,WD_Temperatur,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:49:45.708,A_GroupValue_Write,0.0.0,WA_Temperatur,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:49:56.532,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.269,A_GroupValue_Write,0.0.0,SB_gelb1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.515,A_GroupValue_Write,0.0.0,SB_blau1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.794,A_GroupValue_Write,0.0.0,SB_rot1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:31.997,A_GroupValue_Write,0.0.0,SB_khaki1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:32.082,A_GroupValue_Write,0.0.0,SB_schwarz1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:32.148,A_GroupValue_Write,0.0.0,SB_gruen1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:51:32.214,A_GroupValue_Write,0.0.0,SB_gelb2,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:52:24.094,A_GroupValue_Write,0.0.0,TA_A2,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.479,A_GroupValue_Read,0.0.0,SB_rot2,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.789,A_GroupValue_Read,0.0.0,SB_gruen2,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.853,A_GroupValue_Read,0.0.0,SB_blau2,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:55:42.919,A_GroupValue_Write,0.0.0,SA_Alarmanlage_aktiv,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0
2012-04-24 13:56:31.304,A_GroupValue_Write,0.0.0,SB_gelb1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
Have fun!
Fry
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #2  
Alt 26.04.2012, 06:52
Fry Fry ist offline
Erfahrener Benutzer
 
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 1.199
Standard

...wer lieber die vollen GA-Namen und keine Kürzel hat:

Code:
  $hash->{name}=~/^\s*(\S+)/;  
  my $short=$1;  
  $short='ZV_'.$1 if $hash->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand"
ersetzen durch

Code:
my $short=$hash->{name}
VG, Fry
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #3  
Alt 26.04.2012, 07:54
Erfahrener Benutzer
 
Registriert seit: 07.05.2010
Ort: Weyhe
Beiträge: 3.574
Standard

Danke!
Werde ich bestimmt in Zukunft nutzen!
__________________
Aus Bremen und Umgebung?
Komm zum Stammtisch!
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #4  
Alt 26.04.2012, 10:00
Erfahrener Benutzer
 
Registriert seit: 12.11.2009
Ort: Hohenbrunn
Beiträge: 4.347
Standard

Sehr schön!
__________________

Stefan Werner, Geschäftsführer Elaborated Networks GmbH. Link zum Shop.
Bitte keine PNs. Allg. Fragen ins Forum. Eilige od. wichtige an support ät wiregate.de
Alle Informationen und Aussagen nach bestem Wissen und Gewissen. IMPRESSUM
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #5  
Alt 27.04.2012, 02:11
Benutzerbild von makki
Erfahrener Benutzer
 
Registriert seit: 07.07.2007
Ort: München
Beiträge: 12.012
Standard

Gut das zu posten, weil so nen sehr kreativen Spass muss man in .next auch berücksichtigen; das geht zwar noch, kratzt aber schon hart an der Grenze (die Erde ist (k)eine Scheibe )

Makki
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's! - Meine eMail ist Vorname@Nachname.de
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #6  
Alt 27.04.2012, 07:43
Fry Fry ist offline
Erfahrener Benutzer
 
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 1.199
Standard

Zitat von makki Beitrag anzeigen
Gut das zu posten, weil so nen sehr kreativen Spass muss man in .next auch berücksichtigen; das geht zwar noch, kratzt aber schon hart an der Grenze (die Erde ist (k)eine Scheibe )
Makki
Ich weiß, du magst Zahlen lieber als Wörter. Bei mir ist es umgedreht. Deshalb ist dieses Tool für mich sehr nützlich aber wohl kaum was für dich.

Kreativer Spaß ist Perl immer, zumal fast alles mit wenigen Zeilen geht (selbst der wiregated.pl hat nur 2300 Zeilen, ich schätze mal unter C++/perlembed wären das ruckzuck 10k).

Aber was meinst du mit Erde keine Scheibe... also da bist du einen Tick zu kryptisch, wenn ich noch verstehen soll, was du meinst...

Fry
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #7  
Alt 27.04.2012, 08:43
Erfahrener Benutzer
 
Registriert seit: 12.11.2009
Ort: Hohenbrunn
Beiträge: 4.347
Standard

Guten Morgen Fry,

Makki will Dir damit sagen, dass es gut ist, wenn er deine kreativen Perl-Entwürfe kennt, weil wir an einer Neuimplementierung des Plugin-Systems arbeiten (das ist mit .next gemeint).

Das gilt für alle. Je mehr Plugins wir kennen, desto eher können wir diese darauf untersuchen, ob es Auswirkungen geben könnte, bei der Neuentwicklung der "Plugin-Engine".

Da die Frage ohnehin kommt: Die Zielrichtung der Neuentwicklung wäre deutlich bessere Skalierbarkeit und Parallelisierbarkeit. Insbesondere aber auch Abtrennung von anderen vitalen Bestandteilen, damit ein "totes" Plugin nichts anderes ausbremsen kann.

Nein, es gibt dazu KEINEN Termin.

lg

Stefan
__________________

Stefan Werner, Geschäftsführer Elaborated Networks GmbH. Link zum Shop.
Bitte keine PNs. Allg. Fragen ins Forum. Eilige od. wichtige an support ät wiregate.de
Alle Informationen und Aussagen nach bestem Wissen und Gewissen. IMPRESSUM
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #8  
Alt 27.04.2012, 08:51
Benutzerbild von Bodo
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Ort: Zürich
Beiträge: 4.958
Daumen hoch Top Firma

Zitat von StefanW Beitrag anzeigen
Nein, es gibt dazu KEINEN Termin.
Hoi

Ich finde es toll wie Ihr unter dem ganzen Druck (soviele Beiträge zum WG wie zur Zeit hab' ich ja noch nie gesehen) noch entwickeln könnt.
Und das auch noch hard- und softwareseitig, Respekt.

Da hätte es mir schon öfter "den Nucki usse g'haue" wie man hier so schön sagt. (etwa soviel wie da wäre mir schon längst "die Hutschnur gerissen")

Man merkt den Stress bei Euch schon, ist auch normal.
__________________
Grüsse Bodo Nach bst. Wissen, ohne Gewähr; Fragen gehören ins Forum, und nicht in mein Postfach; EibPC-Fan; Wiregate-Fan; Alix1d mit eibd, linknx, knxweb, 30x 1-Wire, mjpg_streamer, e-mail, sms, growl-notif., CUL; Dreambox8000HD stream VLC's, TV-Browser start-record; Fritzbox 7270, voip; HP ProCurve 1810G 24 GE; Zotac ZBOX HD-ND22 mit SU2300 und Ubuntu 11.10 FullHD; MusicPal; SqueezeboxBoom; NEU Russound C5; iPhone 5 IOS6.1 JB PHP Lighty
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #9  
Alt 27.04.2012, 09:09
Erfahrener Benutzer
 
Registriert seit: 12.11.2009
Ort: Hohenbrunn
Beiträge: 4.347
Standard

Hoi Bodo, danke sehr .

So ein wenig Balsam tut derzeit ganz gut.

Nunja, um ehrlich zu sein, geht die ganze Schreiberei hier im Forum schon ein wenig zu Lasten des Fortschritts.

Gestern früh war eigentlich eingeplant, für die Herstellung eines Produktes, die CAM-Daten produktionsreif zu machen um es an den Platinenhersteller zu senden. Stattdessen musste ich eine völlig überflüssige GPL-Diskussion wegen eines eigentlich unbegründeten Verdachtes führen....

Unsere Neigung, fast alles zu beantworten zieht vermutlich weitere Fragen und Diskussionen an, daher sind wir derzeit auch am Überlegen, unsere diesbezügliche Haltung zu überdenken.

Ach, ab und an platzt uns auch die Hutschnur. Insbesondere wenn einer das Haar in der Suppe sucht. Bei Makki spürt man das Platzen nur eher als bei mir...

Umso mehr freuen uns Lob, freundliche Kommentare und einmal haben wir sogar ein tolles Paket voller Schokolade für das Wiregate Team nebst handgeschriebenen Brief dazu von einem lieben Kunden bekommen. Und wer hats erfunden?

glg

Stefan
__________________

Stefan Werner, Geschäftsführer Elaborated Networks GmbH. Link zum Shop.
Bitte keine PNs. Allg. Fragen ins Forum. Eilige od. wichtige an support ät wiregate.de
Alle Informationen und Aussagen nach bestem Wissen und Gewissen. IMPRESSUM
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #10  
Alt 27.04.2012, 15:36
Fry Fry ist offline
Erfahrener Benutzer
 
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 1.199
Standard

Lieber Stefan,
beim positiven Feedback schließe ich mich (wieder einmal) an.

Zum Thema Plugin-Engine: ich finde die existierende Plugin-Engine bereits sehr gut, aber falls das für euch hilfreich ist, liefere ich hier ein paar Anregungen, die aus meiner Sicht gerade dem Anfänger die Plugin-Schreiberei erleichtern würden:

* Einfache Unterscheidung des Aufrufgrundes durch eine entsprechend vorbesetzte Variable $event (siehe Plugin-Skeleton für einen Vorschlag)

* %plugin_subscribe: separat für Telegrammtypen (write/read/response) ermöglichen -> reduziert Aufrufe mit sofortigem return, vermeidet mögliche Anfängerfehler

* %eibgaconf auch invers indizieren (also $eibgaconf{$ga}{name} sollte genauso funktionieren wie $eibgaconf{$name}{ga}) -> das ist sehr leicht zu realisieren, vermutlich eine einzige Zeile oder foreach-Schleife im wiregated.pl. Ein "Schmankerl" für mein GA-Schema wäre dabei die Verwendung nur des ersten Wortes im GA-Namen (bei meinem GA-Namensschema ist das erste Wort ein eindeutiges Kürzel, zB TA_TE3 = Außentemperatur Terrasse Obergeschoss).

* "Wecker"-Funktion: man sollte den Zeitpunkt des nächsten zyklischen Aufrufs absolut festlegen können -> vermeidet Zeitrechnerei

Jetzt wird's noch ein wenig esoterisch:

* Möglichkeit, aus einem Plugin ein anderes Plugin mit definiertem Zeitversatz aufzurufen.

* Sub-Arrays und -Hashes in %plugin_info erlauben (aktuell arbeite ich mit einer Krücke, siehe zB im Heizungsregler) -> erleichtert dem Anfänger die Persistence.

* %plugin_info verschiedener Plugins so trennen, dass _versehentliches_ Beschreiben "fremder" (zu anderen Plugins gehörender) Variablen vermieden wird (public/private/friend-Feature). -> vermeidet Fehler durch schlechte Kapselung

* Zeitbeschränkung auf 10s aufheben, stattdessen in einem parallelisierten System aber verbieten, dass ein noch laufendes Plugin nicht ein zweites Mal aufgerufen wird (no reentry).

* Möglichkeit, die EIB-Telegrammqueue einzusehen. Beispiel: Wackelkontakt am Schlüsselbrett führt heute zu "Auf Wiedersehen XY - Willkommen XY"-Meldungen - das muss umständlich mittels Analyse von $plugin_info{$plugname.'_last'} entprellt werden - hilfreich wäre eine Möglichkeit, im Plugin nachzusehen ob schon weitere Telegramme auf den abonnierten GAs anliegen und diese ggf. schon zu verarbeiten)

NICHT SO WICHTIG: Ausführungsgeschwindigkeit. Die ist bereits gut.

Das fällt mir einfach auf die Schnelle ein.

Grüße,
Fry
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Stichworte
decodieren, gruppenadressen, namen, utility

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Firmware] Import von Gruppenadressen makki WireGate 42 31.12.2013 17:50
[KNX/EIB] Gruppenadressen - Struktur der Untergruppen (Funktionszuordnung) hightower KNX EIB Forum 4 21.10.2011 22:13
[KNX/EIB] Grundlagenforschung Gruppenadressen chris723 KNX EIB Forum 8 22.08.2011 00:07
[KNX/EIB] - √ - KNX ETS: Gruppenadressen programmieren systemservice KNX EIB Forum 25 28.09.2010 18:32
[Featurewunsch] Gruppenadressen EibPC Baubär eibPC 25 12.12.2009 23:14


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:07 Uhr.