Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira HS/FS Logikbaustein Werte vergleichen und Routen

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

    HS/FS Gira HS/FS Logikbaustein Werte vergleichen und Routen

    Hallo Zusammen,

    das ist mein erster Post.
    Ich hoffe, dass ich nicht gleich gegen irgendetwas verstoße.
    Ich setze einen Homeserver und Node Red ein.
    Beide kommunizieren über MQTT, um den KNX Bus zu entlasten und noch aus anderen Gründen.

    Ich suche für den HS/FS einen Logikbaustein, der einen Eingangs-(Text-)Wert mit mehreren Werten vergleicht und dann auf einem von mehreren Ausgängen ausgibt.
    Es soll dabei der Eingangswert ausgegeben werden und nicht nur ein Boolscher Wert oder die Nummer des passenden Vergleichswerts.
    Kann mir hier jemand weiterhelfen?
    In Node Red wäre das der Switch-Baustein.

    Vielen Dank vorab.

    #2
    Hallo und willkommen im Club der KNX-Verrückten!

    Um einen Text gegen bis zu 8 andere Texte zu vergleichen gibt es den Textvergleicher 8-fach. Der sendet in der Tat an den Ausgängen aber nur einen Boolschen Wert. Man könnte dann aber in die Ausgangsbox einen Befehl setzen, der ein anderes Textobjekt auf den Wert des Eingangsobjektes setzt. Also:

    Eingänge des LBS:
    E1 Dein Eingangstext - nennen wir das KO mal "Eingangstext"
    E2 - E9 die Vergleichstexte, gegen die Du vergleichst
    Ausgänge des LBS bzw. Ausgangsbox jeweils ein Befehl für jeden Ausgang "setze Ausgangstext1 (-8) auf Wert von Eingangstext.

    Damit hättet Du dann den Eingangstext auf verschiedenen KO's verfügbar.

    Ist es das, was Du benötigst?

    Grüße

    Olaf
    Möchte den Komfort meiner Installation nicht mehr missen!

    Kommentar


      #3
      Hallo Olaf,

      vielen Dank.
      Ich fasse das mal in eigenen Worten zusammen.
      Der erste Ausgang des MQTT Baustein übermittelt das Topic, die Bezeichnung meines Lichtobjekts.
      Das schicke ich auf den Textvergleicher.
      Der schickt nur auf dem Ausgangskanal ein Telegramm, das dem entsprechenden Vergleichswert entspricht.
      Der numerische Wert, 0-255, der die Helligkeit eines Farbkanals angibt, schreibe ich auf das interne KO "Helligkeit".
      In den Ausgangsbausteinen ersetze ich den Wert 1 vom Textvergleicher durch den Wert des internen KO "Helligkeit".
      Prozessiert der HS die LBS von links nach rechts so, dass sichergestellt ist, dass das interne KO beschrieben ist, bevor eine der Ausgangsboxen nach dem Textvergleicher das interne KO abfragt?

      Vielen Dank nochmal Olaf.

      Screenshot 2021-03-14 225258.png

      Kommentar


        #4
        Man kann also im Prinzip sagen, dass die internen KO die Funktion einer Variablen übernehmen.
        Die in der HS Welt aber immer global ist.
        Verstehe ich das richtig?

        Kommentar


          #5
          Mhh, irgendwie verstehe ich noch nicht ganz, was Du da tust - kannst Du nochmal Screenshots anhängen von den Befehlen in den Ausgangsboxen? Also einmal von der 2052 und einmal von einer 2034?

          Aber Deine Vermutung, dass der HS das von links nach rechts abarbeitet, also erst den Wert auf das Objekt in Ausgangsbox 2052 schreibt und dann die Ausgangsboxen am Textvergleicher abarbeitet, würde ich nicht unterschreiben. Das müsste man mal ausprobieren, also allen iKO des HS eine Gruppenadresse geben (unter Kommunikationsobjekte -> Extras -> Gruppenadressen vergeben) und dann im EIB-Monitor (http://[IPdesHS]/hslist und dann als Listenschlüssel "eibmon" eingeben) schauen, in welcher Reihenfolge die Abarbeitung stattfindet.

          Es geht bei der Logik doch nur um eine Statusrückmeldung, oder? Ist also nicht zeitkritisch? Dann würde ich vor die Ausgangsboxen 2034 überall einen Telegrammverzögerer mit 1 Sek. setzen. Dann ist auf jeden Fall sichergestellt, dass erst der Befehl in der 2052 ausgeführt wird.

          Möchte den Komfort meiner Installation nicht mehr missen!

          Kommentar


            #6
            Hallo Olaf,

            ich habe zwei Screenshots angehängt.
            Ich schreibe den Helligkeitswert, den ich bekomme, in der einen Ausgangsbox (2052) auf ein internes KO, das "Helligkeit heißt".
            Dann habe ich verschiedene Ausgangs-Boxen, die hinter dem Textvergleicher hängen.
            wenn eine angesprochen wird, schreibt sie den Wert des internen KO "Helligkeit" auf ein internes Rückmelde-KO und zusätzlich auf ein externes KO / KNX Gruppenadresse.
            Den Screenshot habe ich auch angehängt.
            Ich hoffe, dass es das ist, was Du meintest, scheint zumindest zu funktionieren und räumt mir das Logikblatt schon gewaltig auf.

            Viele Grüße
            Angehängte Dateien

            Kommentar


              #7
              Hi!

              Ja, ich verstehe jetzt, was Du machen willst.... das sollte mit der oben beschriebenen Lösung mit dem Telegrammverzögerer funktionieren.

              Was ich nicht verstehe, ist die Ausgangsbox im ersten Screenshot - wenn Du Helligkeit nacheinander auf den Wert von 2 verschiedenen Objekten setzt, wird Helligkeit immer den Wert von dem KO aus dem zweiten Befehl setzen. Wofür soll der erste Befehl dann gut sein? Abstrahiert gesprochen machst Du folgendes: Setze Objekt A auf Wert von Objekt B und danach Setze Objekt A auf Wert von Objekt C - Du wirst am Ende also immer den Wert von C auf A haben!

              Was ich auch nicht verstehe: "...und zusätzlich..." - warum verwendest Du hier nicht das gleiche KO? dem Homeserver ist es doch egal, ob das KO intern oder extern ist, wenn Du es woanders weiterverwendest.

              Habe einen ähnlichen Fall:
              • An-aus-Status der Musik in Raum A hab ich nirgendwo auf einem Taster, nur in der Visu - Musik.Raum.A.Status ist bei mir also ein internes KO, das ich nur für die Visu und weitere Logiken benötige
              • An-aus-Status der Musik in Raum B hab ich auf einem Taster und in der Visu - Musik.Raum.B.Status ist ein externes KO (also eine GA). Dieses verwende ich für den Taster, die Visu und weitere Logiken. Ich habe hier also keine 2 getrennten KOs!
              Grüße

              Olaf

              P.S.: Ich weiß ja nicht, ob Du nur eine Lampe hast, für die Du den Helligkeitswert als KO hast, aber wenn nicht, solltest Du die KOs deutlich sprechender benennen, wenn Du da langfristig durchblicken willst - also sowas wie UG.Hobbyraum.Licht.Helligkeit.Status. Und Du solltest Dir Gedanken über eine immer einheitliche Struktur machen, sonst blickst Du (und im Worst Case ein anderer) da später nicht mehr durch! Gibt hier ein paar Threads zum Thema Struktur der Gruppenadressen.....
              Möchte den Komfort meiner Installation nicht mehr missen!

              Kommentar


                #8
                Hi Olaf,

                danke, den Verzögerer baue ich noch ein.
                Das KO "Helligkeit" wird nur einmal beschrieben.
                Die Konfiguration hat sich zwischenzeitlich weiterentwickelt, daher kommt das etwas irritierend rüber.
                Bei den Benamungen muss ich noch deutlich nachbessern.
                Aktuell ist es noch Testphase.
                Gibt es hier "goldene Regeln", dass man sich nicht die Finger wund schreibt, es lesbar bleibt, aber halbwegs konsistent bleibt?
                Aktuell denke ich internen KOs wie meiner "Helligkeit" ein Präfix "VAR_" zu geben, damit ich weiß, dass das nur kurzzeitig lokal benötigt wird und keine Verbindung zu einem Raum oder einem externen KO besteht.

                Viele Grüße

                Kommentar

                Lädt...
                X