Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Plugin startet nicht

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

    [wiregate] - √ - Plugin startet nicht

    Hallo,

    mit dem WireGate hab die ersten Gehversuche gut hinter mich gebracht, stehe allerdings jetzt vor einem Problem.

    Aus dem SVN hab ich das Szenen-Plugin von Daviid geladen, um einer Wippe eines Gira Tastsensor 3 mehrere Schaltbefehle gleichzeitig zuzuordnen.

    Code:
    # Beta-Version
    #
    #
    # Plugin f?r Szenen
    # ga1 = GA
    # wert = Wert der auf die GA gesendet werden soll (DPT ist durch import der GAs aus der ETS festzulegen
    # Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss!
    
    
    my $trigger_ga = '8/2/0';  # triggert die Szene mit einer 1 (DPT 1)
    $plugin_subscribe{$trigger_ga}{$plugname} = 1;
    
    my @GAs;
    push @GAs, { name => "Wohnzimmer TV", ga1 => "1/1/35", wert => 1 };
    push @GAs, { name => "Wohnzimmer Kamin", ga1 => "1/1/11", wert => 0 };
    push @GAs, { name => "Wohnzimmer T?r", ga1 => "1/1/2", wert => 0 };
    push @GAs, { name => "Wohnzimmer Mitte", ga1 => "1/1/38", wert => 0 };
    push @GAs, { name => "Wohnzimmer Fenster", ga1 => "1/1/34" , wert => 0 };
    
    #push @GAs, { name => "Wohnzimmer TV dimmen", ga1 => "1/1/37" , wert => 50};
    
    
    if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "1" ) {
    
        foreach my $element (@GAs) {
            knx_write($element->{ga1}, $element->{wert}, 1.001);    
        }
    }
    Die Gruppenadressen habe ich entsprechend angepasst. Wenn ich nun den Taster betätige, wird das Telegramm vom Busmonitor erkannt, jedoch taucht im Plugin Monitor kein Hinweis auf, dass das Plugin ausgeführt wurde.

    Ansonsten läuft noch das Plugin "Rolladen-Automatik" alle 5 Minuten ohne Probleme und die Temperatur sowie Luftfeuchte eines AMS werden vom WireGate versendet, ebenfalls ohne Schwierigkeiten.

    Für die Verbindung zum Bus verwende ich die TP-UART - Schnittstelle. Als Verbindungsart ist KNXnet/IP Tunneling Server aktiviert.

    Ein weiteres Verständnisproblem habe ich mit der Anmeldung an Gruppenadressen. Wenn die Wippe links eine 1 auf die Gruppenadresse sendet, dann sollte das Plugin ja starten. Was muss ich tun, um bei einer 0 über die Wippe rechts auf die gleiche Gruppenadresse eine andere Aktion zu starten? Genügt es, den gleichen Code noch mal hinter den ursprünglichen anzufügen, ledigleich mit
    Code:
    $plugin_subscribe{$trigger_ga}{$plugname} = 0;
    und das Ganze läuft?

    Vielen Dank schon mal für Eure Hilfe.

    #2
    In schwarz:

    Hier wir der "Wert" des Telegramms gefiltert ... soll auf eine "0" regaiert werden dann die 0 eintragen.

    In rot:

    Damit hast Du eine Ausgabe im Log.

    Für jede Szene benötigst Du aber ein separates Plugin.

    Code:
    if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == [B]"[B]1[/B]"[/B] ) {
    
        foreach my $element (@GAs) {
            knx_write($element->{ga1}, $element->{wert}, 1.001);
            [B][COLOR="Red"]return "Szene aufgerufen";[/COLOR][/B]
        }
    }
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      Danke für die schnelle Anwort.

      Nur zum besseren Verständnis: Wofür steht dann die 1 in dieser Zeile?

      Code:
      $plugin_subscribe{$trigger_ga}{$plugname} = 1;

      Kommentar


        #4
        Code:
        $plugin_subscribe{$trigger_ga}{$plugname} = 1;
        Damit "abonnierst" Du die GA. D.h. jedes mal wenn etwas auf die GA gesendet wird läuft das Plugin durch.

        Code:
        if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "1" )
        Hier wird der Inhalt des Telegramms gecheckt/verglichen.

        Zur Sicherheit aber noch die GAs aus der ETS importieren oder einfach im Webmin -> EIB eintragen
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          Danke, hab ich verstanden. Wenn jetzt noch jemand nen Tipp hat, warum das Plugin überhaupt nicht gestartet wird, dann könnte ich das mal testen.

          Kommentar


            #6
            Das Plugin wird sicherlich schon aufgerufen aber es erfolgt Defaultmässig kein Logeintrag; schreib da ganz unten mal ein "return "zyklischer Aufruf"; rein..

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

            Kommentar


              #7
              Das Plugin erscheint jetzt im Plugin-Monitor, also es scheint gestartet zu werden. Allerdings bleibt nach wie vor jede Reaktion aus. Die Szene heißt Schlafen und es sollen zwei Lichter ausgeschaltet, ein Präsenzmelder geperrt und zwei Rolladen in die untere Endlage gefahren werden. Aber nichts von alledem passiert. Ich hatte jetzt schon den Datentyp der Rolladen-KOs im Verdacht und die entsprechenden Zeilen auskommentiert, auch ohne Erfolg. Die entsprechenden GAs erscheinen auch nicht im KNX-Log. Per CometVisu kann ich all die Lichter schalten und die Rolladen fahren.

              Kommentar


                #8
                Nach einigem Herumprobieren habe ich ne Lösung gefunden:

                Folgende Zeile
                Code:
                if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "1" )
                habe ich gegen diese ersetzt:

                Code:
                if (knx_read($trigger_ga, 0, 1) == 1)
                Jetzt funktioniert es wunderbar.

                Kommentar


                  #9
                  Zu dem Thema hab ich noch nen kleinen Nachtrag.

                  Mit dem zuvor geposteten Code

                  Code:
                  if (knx_read($trigger_ga, 0, 1) == 1)
                  funktioniert das Plugin zwar, jedoch wird es zyklisch ausgeführt. Wenn man nun den Rolladen in der Szene "Schlafen" herunter gefahren hat, später aber von einem Taster den Rolladen wieder hoch fährt, ohne die Szene zu beenden, dann fährt der Rolladen kurze Zeit später wieder von alleine runter, eben weil das Plugin zyklisch läuft. Das ist natürlich nicht smart.

                  Ich hab noch ne Weile probiert und bin schließlich zum Schluss gekommen, dass ich die GAs nicht importiert hatte und es daher ein Problem mit den DPTs gab.

                  Da hätte man durch etwas sorgfältigeres Lesen auch früher drauf kommen können. Vielleicht hilft's ja dem einen oder anderen.

                  Gruß

                  Thomas

                  Kommentar

                  Lädt...
                  X