Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin startet, obwohl subskribierte GA auskommentiert

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

    [wiregate] Plugin startet, obwohl subskribierte GA auskommentiert

    Hallo,

    jetzt mal was ganz Kurioses, für mich aber Fürchterliches:

    ich habe ein paar Zeilen eines neuen Plugin geschrieben:

    # 3-fach Nische im Dach-Bad helligkeitsabhängig einschalten
    # Eigenen Aufrufzyklus auf 0 (nicht zyklisch)Sekunden setzen
    $plugin_info{$plugname.'_cycle'} = 0;
    my $gruppenadresse;

    #$plugin_subscribe{'10/0/9'}{$plugname} = 1; # vom PM
    $gruppenadresse = $msg{'dst'};

    #if ($msg{'apci'} eq "A_GroupValue_Write" and $gruppenadresse eq '10/0/9')
    # {
    # knx_write('',1,1);
    knx_write('10/0/101',0,1); # / Trafo Stripes; /6 3fach Nische
    # }

    return $gruppenadresse;

    Weil ich mich dann einem anderen Projekt zuwenden musste, habe ich die Zeile mit dem subscribe-Befehl auskommentiert. Allerdings wurde der knx_write-Befehl auch in der Folge noch stur umgesetzt: immer wenn eine '10/0/9' auf den Bus kommt, startet das Plugin und setzt einen knx_write auf die GA 10/0/101 ab. Ich habe in diesem Plugin auch schon den subscribe-Befehl wieder aktiviert und eine völlig andere GA eingetragen: sinnlos. Das Plugin wird bei einer 10/0/9 angeworfen!

    Ich kann das auch durch einen Schreib-Befehl im Bus-Monitor provozieren und dokumentieren, hier die Wiregate-Log:

    23:14:29.959,A_GroupValue_Write,1.1.254,10/0/9,33,,,,0,low,5,T_DATA_XXX_REQ,0
    23:14:30.009,A_GroupValue_Write,1.1.254,10/0/101,00,,,,0,low,7,T_DATA_XXX_REQ,0

    Die GA 10/0/101 ist eigentlich nicht existent (zur Fehlersuche geschaffen, vorher reelle GA mit Chaos-Folgen!) und kommt deshalb so nur in diesem einen Plugin vor, das Problem lässt sich auf dieses Plugin lokalisieren.

    Was läuft da schief? Hat das was mit dem Cache zu tun? Allerdings bastle ich da schon seit vielen Stunden rum. ich habe übrigens keine GA's importiert. $gruppenadresse liefert keinen Wert zurück.

    Danke für die Hilfe!

    Harald

    #2
    Der plugin_subscribe gilt bis zum restart (des wiregated) sofern man ihn nicht explizit löscht (delete). Das halte ich auch ausnahmsweise für keinen Bug, wie soll man es sonst machen, ein "aus-agen" wäre auch nix..

    Hinweis: im Plugin immer explizit prüfen ob es sich um einen A_GroupValue_Write, Read oder Response handelt, das fängt schonmal 2/3 ab, ansonsten: explizit wiregated restarten, wenn man Plugins entfernt hat. Evtl. nicht perfekt, ist aber aktuell so..

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

    Kommentar


      #3
      Danke! Wenn man es weiß, ist diese Vorgehensweise schon ok.

      Kann ich eigentlich zu einem späteren Zeitpunkt weitere plugin_subscribe-Befehle im gleichen Plugin problemlos ergänzen oder ist dafür auch ein Neustart notwendig wie bei einer Korrektur?

      Harald

      Kommentar


        #4
        Nachträglich hinzufügen ist kein Problem, das ist ein ganz banaler Hash (ähnlich array nur benamst) wo das "reingeschoben" wird. Das wird jew. "zeilenweise" abgearbeitet.
        Nachträglich löschen ist auch ohne restart kein Problem, man muss es aber eben explizit tun. Oder restart..

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

        Kommentar


          #5
          Kann ich mehrere Plugins schreiben, die auf die selbe GA reagieren (subskribiert sind), aber thematisch und funktionell verschieden sind? Z.B. Reaktion auf GA, die ein Präsenzmelder sendet. Gibt es da Probleme, wenn gleich mehrere Plugins (ich vermute unmittelbar hintereinander) losrennen?

          Harald

          Kommentar


            #6
            Das ist selbstverständlich kein Problem. (technisch: die subscribten Plugins werden dann einfach alphabetisch nacheinander aufgerufen; hier und jetzt ist das sicher sequentiell, zuküftig sollte man sich aber nicht darauf verlassen, vielleicht lernen die Plugins doch noch mal Multithreading Aber auch dann: egal welches sich an welche GA subscribed)

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

            Kommentar

            Lädt...
            X