Ankündigung

Einklappen
Keine Ankündigung bisher.

RSS(log) oder Eventanzeige in der CometVisu uvm.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mivola
    antwortet
    OK, danke, das war ein Hinweis in die richtige Richtung. So funktioniert es mit curl:

    Code:
    curl "http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20curl1&t\[\]=tag5,tag6"
    und so mit wget:

    Code:
     wget -O- "http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20wget&t[]=tag6,tag7"
    VG
    Micha

    Einen Kommentar schreiben:


  • ctr
    antwortet
    In der Bash müssen alle Steuerzeichen mit einem Backslash escaped werden, dazu gehört mindestens das "&" eventuell auch ( ) [ ]

    Einen Kommentar schreiben:


  • mivola
    antwortet
    curl / wget und tags attribute

    Hallo,

    ich möchte gern mittels curl oder wget eine URL aufrufen um RSS-Logeinträge zu erstellen. Dazu funktioniert prinzipiell ganz gut:

    Code:
    curl http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20curl
    Im Browser kann ich auch den Parameter t[] benutzen um eine Liste/Array von Tags mitzugeben:

    Code:
    http://localhost/visu-svn/plugins/rsslog/rsslog.php?c=test%20ueber%20browser&t[]=tag1,tag2,tag3
    Wenn ich diese URL über wget oder curl aufrufe bekomme ich jedoch diese Fehlermeldung:

    Code:
    -bash: t[]: bad array subscript
    Kann mir jmd sagen wie ich das Array korrekt angeben muss damit es funktioniert?

    Danke,
    Micha

    Einen Kommentar schreiben:


  • NetFritz
    antwortet
    Hallo
    Habe den IP-Router deaktiviert.
    Jetzt geht es.
    Vielen Dank.
    Gruß NetFritz

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Zitat von NetFritz Beitrag anzeigen
    Das WG hängt an den WAGO IP-Router und die ETS am WG.
    Die N148/21 nutze ich z.Z. nicht.
    Genau

    Einen Kommentar schreiben:


  • ctr
    antwortet
    Das bezog sich wohl eher auf den WAGO Router und nicht die Siemens-Schnittstelle.

    KNX-Routing benutzt Multicast und zwar auf einem definierten Port auf einer definierten MC Adresse. Wenn darauf zwei Geräte in einem IP Netz lauschen, dann spielen auch beide mit. Mit nicht definierbaren Konsequenzen (Loops, Storm, Telegrammunterdrückung) usw... also einfach sein lassen.

    Einen Kommentar schreiben:


  • NetFritz
    antwortet
    Hallo
    Die Siemens N148/21 IP ist doch kein IP-Router sondern nur eine IP-Schnittstelle.
    Gruß NetFritz

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Hoi

    Da steht's doch : ACHTUNG - Nur aktivieren falls kein anderer KNXnet/IP Router im selben Segment!

    Einen Kommentar schreiben:


  • NetFritz
    antwortet
    Hallo

    Die KNX-Anlage besteht aus ca. 45Geräten mit 1 Linie.
    Die Linie ist als KNX-IP aufgebaut.
    Die Kommunikation auf den BUS erfolgt mit einem WAGO IP-Router und einer Siemens IP-Schnittstelle N148/21.
    Das WG hängt an den WAGO IP-Router und die ETS am WG.
    Die N148/21 nutze ich z.Z. nicht.

    Die GA 1/4/10 ist ein Riegelkontakt an der Haustür.
    Der Riegelkontakt hängt an einer ABB Universialschnittstelle.
    Die GA 1/4/10 ist verbunden mit der ABB Universialschnittstelle, der WAGO-TP1 Klemme und dem WG der über das Plugin die GA abfragt.

    Habe mal die ETS an die N148/21 gehängt, dann kommen die GAs auch 2 mal an.

    Der Fehler liegt wohl auf den BUS.
    Die Konfiguration der KNX-WG liegt auch AUTO.
    Die 1.1.254 wurde auch automatisch eingetragen, es ist die Adresse des WG-Dummy in der ETS.

    Gruß NetFritz
    Angehängte Dateien

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Hallo,

    also das Wiederholungsbit ist nicht gesetzt. Das ist gut (weil keine Wiederholung) und schlecht (weil man das hätte abfangen können).

    Was ich nicht verstehe ist, wieso das Telegramm zweimal vom selben Teilnehmer ankommt, mit unterschiedlichen Routing-Zählern (4 und 5). Kannst Du etwas zu Deinem Gesamtaufbau auf KNX-Seite sagen?

    Ich denke die Software macht da alles richtig, das Telegramm kommt halt zweimal beim eibd an.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • NetFritz
    antwortet
    Hallo
    Code:
    2012-04-29 22:49:32.327,A_GroupValue_Write,1.1.12,1/4/10,01,1,DPT_Bool,1.002,0,low,5,T_DATA_XXX_REQ,0
    
    2012-04-29 22:49:32.475,A_GroupValue_Write,1.1.12,1/4/10,01,1,DPT_Bool,1.002,0,low,4,T_DATA_XXX_REQ,0
    
    2012-04-29 22:49:33.519,A_GroupValue_Write,1.1.12,1/4/10,00,0,DPT_Bool,1.002,0,low,5,T_DATA_XXX_REQ,0
    
    2012-04-29 22:49:33.706,A_GroupValue_Write,1.1.12,1/4/10,00,0,DPT_Bool,1.002,0,low,4,T_DATA_XXX_REQ,0

    Gruß NetFritz

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Kannst du mal den Ausschnitt aus dem eib.log posten? Ich denke Du hast Telegramm-Wiederholungen.

    Einen Kommentar schreiben:


  • NetFritz
    antwortet
    Hallo
    @JNK
    Und guck mal, ob ein oder zwei Aufrufe im Plugin-Logfile stehen. Und gleichzeitig bitte im eib.log, ob die GA einmal oder zweimal auftaucht.
    In der Plugin-Logfile stehen die Einträge doppelt.
    In der eib.log stehen die GAs auch zwei mal.
    Nur in der ETS steht es nur einmal drin.
    Gruß NetFritz

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Also, daraus können wir erstmal schliessen:

    1) Das Plugin macht es richtig
    2) Es wird wirklich zweimal in die Datenbank geschrieben.

    Aber warum ist mir nicht ganz klar. Eigentlich sollte das funktionieren, weil mein Plugin genauso aussieht.

    Ersetze bitte mal die Zeile

    return; # "V: " . $dbh->{sqlite_version};

    durch

    return 'Debug'; # "V: " . $dbh->{sqlite_version};

    Und guck mal, ob ein oder zwei Aufrufe im Plugin-Logfile stehen. Und gleichzeitig bitte im eib.log, ob die GA einmal oder zweimal auftaucht.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • NetFritz
    antwortet
    Hallo
    Wenn ich die rsslog.php direkt aufrufe sind die Einträge auch doppelt.
    Die ID ist unterschiedlich.

    Hier mal das rss-Pugin.
    Code:
    ### Plugin zum erstellen von RSS-logs
    # Fuer Verwendung mit rsslog.php / CometVisu
    # man koennte natuerlich ebenso das rsslog.php direkt mit LWP::Useragent oder
    # wget aufrufen, hier soll aber auch die Verwendung von SQLite Datenbanken 
    # demonstriert werden.
    # Wichtig:
    # - benoetigt Paket libdbd-sqlite2-perl
    # - weil in PHP nur sqlite2 verfuegbar
    # 
    # v0.1
    # 2012-01-08
    
    ###################
    ### DEFINITION  ###
    ###################
    
    $plugin_info{$plugname . '_cycle'} = 0; # Aufrufzyklus - never
    
    my @actionGA;
    # Datenpunkttypen MUESSEN in der globalen config angegeben sein!
    # Logeintrag bei bestimmtem Wert
    # push @actionGA, { Test => "Eintrag1 ohne Wert", content => 'Textinhalt1', tags => "tag1,tag3", trigger_ga => "2/1/2", value => 1 };
    # Logeintrag beliebigem Wert: value weglassen 
    # %s wird mit sprintf durch den Wert ersetzt, anderes wie %.2f geht auch in content oder title!
    # man printf ;)
    push @actionGA, { Test => "Eintrag2 mit Wert unabhaengig vom Wert %.2f", content => 'Textinhalt %s', tags => "tag4", trigger_ga => "1/4/10"};
    
    
    ########################
    ### Ende DEFINITION  ###
    ########################
    
    use DBI;
    my $logdb = '/etc/wiregate/rss/rsslog.db';
    
    # check setup, rights, DB
    if (! -d dirname($logdb)) {
        mkdir(dirname($logdb),0777);
    }
    if (! -e $logdb) {
        return "$logdb existiert nicht! Bitte mit rsslog.php anlegen"; # FIXME: create sqlite-db
    }
    
    if ($msg{'apci'} eq "A_GroupValue_Write") { # Telegramm eingetroffen
        foreach my $element (@actionGA) {
            if ($msg{'dst'} eq "$element->{trigger_ga}") {
                if (defined $element->{value}) { # skip if value is defined and not what we like
                    next unless "$msg{'value'}" eq "$element->{value}"; }
    
                my $dbargs = {AutoCommit => 0, PrintError => 1};
                my $dbh = DBI->connect("dbi:SQLite2:dbname=$logdb", "", "", $dbargs);
    
                $dbh->do('INSERT INTO Logs(content, title, tags, t) VALUES( ' .
                       "  '" . sprintf($element->{content},$msg{'value'}) . "'," .
                       "  '" . sprintf($element->{title},$msg{'value'}) . "'," .
                       "  '" . $element->{tags} . "'," .
                       "  datetime('now') );");
    
                if ($dbh->err()) { return "DB-Fehler: $DBI::errstr\n"; }
                $dbh->commit();
                $dbh->disconnect();
                return; # "V: " . $dbh->{sqlite_version};
            }
        }
    } else { # zyklischer Aufruf/initialisierung
        #subscribe GAs
        foreach my $element (@actionGA) {
            $plugin_subscribe{$element->{trigger_ga}}{$plugname} = 1;
        }
    }
    return; # "Noop";
    Gruß NetFritz
    Angehängte Dateien

    Einen Kommentar schreiben:

Lädt...
X