Ankündigung

Einklappen
Keine Ankündigung bisher.

Reihenfolge Plugin-Abarbeitung bei GA Event

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

    [wiregate] Reihenfolge Plugin-Abarbeitung bei GA Event

    Hallo,

    ich habe die Suche schon bemüht, aber bin leider nicht fündig geworden bei meiner Frage:

    Wenn mehrere Plugins auf die gleiche GA lauschen, lässt sich die Reihenfolge der Abarbeitung der Plugins beeinflussen?

    Konkret:
    Das Drücken der Türklingel löst eine GA aus und diese GA wird von 4 Plugins verwendet:
    a) Info über Jabber senden
    b) E-Mail wird verschickt
    c) Es erfolgt eine Audioausgabe (also der Klingelton in der Wohnung)
    d) Mein Schnurlostelefon wird über die Fritzbox zum Klingeln angeregt

    Das Problem ist, dass das eigentliche Türklingeln und das Klingeln des Telefons erst nach gefühlten 10 Sekunden beginnt, weil vorher noch die Nachrichten per Mail/Jabber) abgesetzt werden. Daher würde ich gerne Plugin c) und d) zuerst ausführen lassen. Geht das, ohne alles in ein Plugin zu schreiben?

    Lieben Dank schon mal im Voraus

    Alex

    #2
    Ohne Gewähr:
    in kompliziert: eigentlich werden die Plugins beim restart(!) - also dem subscribe alphabetisch abgearbeitet und dann auch in dieser Reihenfolge aufgerufen; also nach einen restart(!) des wiregated wird "01_telefon" vor "02_jabber" aufgerufen, wenn sich beide auf eine GA subscriben.
    Theoretisch, praktisch kommts drauf an, wie genau der plugin_subscribe aussieht.

    Daher, Tipp vom Küken:
    in einfach: mache ein einziges Plugin daraus, dann ist die Reihenfolge klar
    Ich will jetzt garnicht daran denken, wie kompliziert die AW multithreaded wäre..

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

    Kommentar


      #3
      Oh, schneller, als die Polizei ;-)

      Danke für deine Antwort, dann werde ich mich wohl doch mal dran machen, es alles in ein Plugin zusammenzupacken.

      Lieben Gruß

      Alex

      Kommentar


        #4
        Bester Ansatz..
        Bin nur Hilfs-Sheriff aber soweit kenne ich meinen Code auswendig

        Solche Fragen stellt man sich natürlich auch selbst beim entwickeln, aber "die Lösung" die alle zufrieden stellt gibts da glaube ich nicht..
        Naja, das "Design" ist auch gut 8J alt, ob ich da heute manches (nicht vieles!) anders machen würde = ?

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

        Kommentar


          #5
          Ich würde das über mehrere GAs lösen:
          1 Plugin macht den Master => Fritzbox läuten. Dies sendet dann auf eine GA auf das die Audioausgabe subscribed ist, dann eine gemeinsame auf die Jabber und E-Mail subscribed sind.
          lg
          Robert

          Kommentar


            #6
            Robert_Mini Auch ne saubere Lösung!
            Es führen immer mehrere Wege nach Rom..
            Zuletzt geändert von makki; 17.02.2017, 14:51.
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              Oh, ich glaube ich muss mich doch noch mal melden ;-)

              Die Plugins habe ich nun in der richtigen Reihenfolge vereint und sie laufen im Prinzip. Die Zeitverzögerung besteht leider überwiegend weiter.

              Folgendes Phänomen (ist mir vorher gar nicht aufgefallen): Löse ich die GA über die Visu aus, klingelt es sofort, wird die GA aber über den KNX-Bus ausgelöst, dauert es ca. 5-6 Sekunden, bis das Plugin meinen Klingelton abspielt.

              Sagen wir es mal so: Ich kann damit leben, aber es stellt sich mir schon die Frage, ob das "normal" ist. Oder ist bei mir was im Argen?

              Grüße - Alex

              Kommentar


                #8
                Das kommt drauf an: kann durchaus "normal" (wenn auch nicht erwünscht) sein:
                Die Plugins laufen sequentiell: wenn eines davon blocked dauert es eben..

                Das steht ja alles in den Stats! Sachen die ewig blocken/dauern wie vermutlich z.b. jabber muss man halt anders lösen ('shellscript.sh &'), dafür sind WG-Plugins nicht geeignet/gedacht..

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

                Kommentar


                  #9
                  Schönen Dank für Eure Anregungen!

                  Ich habe gestern dann noch mal ein wenig herumexperimentiert und herausgefunden, dass tatsächlich mein Jabber-Plugin meine Türklingel ausbremst. Merkwürdig ist dabei nur, dass es gar nicht mehr auf die GA der Türklingel lauscht (aber natürlich auf andere GAs). Ich werde mich jetzt erst mal mit der E-Mail-Benachrichtigung begnügen und Jabber rausnehmen.

                  Alex

                  Kommentar


                    #10
                    Schau zu Sicherheit im Log. Soweit ich mich erinnere, reicht es nicht das subscribe zu löschen, sondern es braucht einen Schritt um das Plugin aus dem hash der subscribed Plugins zu löschen. Wir genau weiß ich grad auch nicht mehr, lg Robert

                    Kommentar


                      #11
                      Im Timberwolf Server werden wir das mit den Plugins anders handhaben:
                      • Am liebsten gar nicht mehr. D.h. wir empfehlen das nicht aktiv.
                      • Dafür bieten wir dort, wo es die Hardware hergibt, Docker-Container an. Und darin kann man alles laufen lassen! Alles und in jeder Sprache geschrieben!
                      • Wer unbedingt bei Plugins bleiben will. dem werden wir fertige Container für Plugins anbieten. Darin kann man sowohl einen Container pro Plugin laufen lassen als auch mehrere Plugins in einem Container. Da komplett parallelisiert und unabhängig kann sich auch nichts mehr gegenseitig ausbremsen. Wenn also das eine Plugin lange braucht, weil es eine externe langsame Schnittstelle bedient, dann betrifft das nur die Laufzeit des Plugins, aber nicht den Rest und schon gar nicht das Hauptsystem.

                      Das ist in etwa so ein Unterschied wie damals von DOS / Windows 3.1 gegenüber Windows NT, also von kooperativem Multitasking zum preemptiven Multitasking.

                      lg

                      Stefan

                      Kommentar


                        #12
                        So oder so ähnlich.. Letztlich kann ich nur gebetsmühlenartig wiederholen: die Plugins wurden entworfen umd damit z.B. "mal schnell" einen eigenen PI(D) Regler oder sowas ähnliches als dreizeiler zu machen; (Das erste Plugin war ein PI-Regler: GA rein, rechnen, GA raus, fertig)

                        Daraus hat sich dann in einer gewissen Eigendynamik sehr viel mehr entwickelt..
                        Das ist einerseits schön, führt das Design aber eben auch an gewissen Punkten an seine Grenzen.

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

                        Kommentar

                        Lädt...
                        X