Ankündigung

Einklappen
Keine Ankündigung bisher.

X1 Logik Lüftungssteuerung CO2 geführt

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

    X1 X1 Logik Lüftungssteuerung CO2 geführt

    Hallo zusammen,

    ich stehe bei dem Implementierung meiner Lüftungssteuerung mittels X1 leider etwas auf dem Schlauch...

    Voraussetzungen:
    2x Jung CO2 Sensor (Küche und Badezimmer)
    X1
    Zehnder KNX Schnittstelle

    Wie ich der Zehnder Schnittstelle die konkreten Lüftungsstufen vorgebe ist mir klar.
    Ebenso wie ich die CO2 Werte zum X1 bekomme.

    Mein Problem:
    1) Maximum der CO2 Werte
    hab grad keinen Plan, welchen Logikbaustein des X1 ich nutzen kann um das Maximum zweier Eingänge zu bilden.

    2) Logik mit 2 Grenzwerten und Hysterese
    Die hätte ich mir aus mehrern Vergleichern zusammengebastelt.
    Evtl. gibt es hier aber auch noch eine bessere Lösung? (siehe Bild)

    3) Sperre der Logik
    Manuell würde ich die Logik gerne sperren können.
    Wie bekomme ich das am elegantesten Verknüpft?

    Schonmal vielen Lieben Dank für eure Hilfe!

    Anfrag Lüftungslogik X1.jpg
    Angehängte Dateien

    #2
    1) Bei Standard-LBS nutze den Eingangswahlschalter; sonst den Formelberechner

    3) Online-Hilfe des GPA: 5. Logik-Bausteine > 5.25. Sperre

    Kommentar


      #3
      Ich liebe den Formelbaustein des X1. Da kannst Du geile Dinge damit umsetzen. Lade dir den mal hier im Forum runter.

      Dann machst Du aus diesen einen Maximalwert Baustein mit folgenden Code:
      Code:
      MoreMath.Max({E1:N},{E2:N})
      und legst die beide Co2 Werte drauf. Den Ausgang dann auf Deine Stufen Logik. Fertig.

      Kommentar


        #4
        Pingelmodus: Wenn man nur ein Maximum braucht, geht auch der Baustein "Statistikfunktionen". Und wenn es nur zwei Werte sind, tut es in der Formelberechnung auch
        Code:
        Math.Max({E1:N},{E2:N})

        Wenn man aber auch noch die Sperre will, ist vermutlich am einfachsten doch wieder die Formelberechnung:
        Code:
        {Sperre:B} ? 0 : Math.Max({E1:N},{E2:N})
        Dann wird bei aktiver Sperre einfach 0 als maximale CO2-Konzentration ausgegeben und die Lüftung kann von der nachfolgenden Logik ausgeschaltet werden. Oder was genau soll die Sperre bewirken? Stufe 1? Dann passt das direkt mit der nachfolgenden Logik wie sie ist.

        Und wenn man die Formelberechnung schon hat, kann man natürlich die ganze nachfolgende Logik auch gleich da drin machen mit weiteren Formeln
        Formel 2:
        Code:
        /* Stufe 3 */ (_out1_ > 1000)
        ​Formel 3:
        Code:
        /* Stufe 1 */ (_out1_ < 500)

        ​Formel 4:
        Code:
        /* Stufe 2 */ (_out1_ > 600) && (_out1_ < 800)
        ​​

        Dabei fällt mir auf: Was soll denn zwischen 500 und 600 passieren? Und was zwischen 800 und 1000? Da wäre mit Diner aktuellen Logik gar keine Lüftungsstufe aktiv ... das kann doch so nicht gewollt sein. Vielleicht also besser:
        ​Formel 4:
        Code:
        /* Stufe 2 */ (!_out2_ && !_out1_)
        ​​

        Ausgang 1 als NUMBER, die weiteren Ausgänge als BOOL parametrieren.

        Alles natürlich ungetestet ...
        Zuletzt geändert von hyman; 29.01.2023, 10:54.

        Kommentar


          #5
          Zitat von hyman Beitrag anzeigen
          Was soll denn zwischen 500 und 600 passieren?
          Da würde ich kein Hin- und Her-Schalten erwarten, sondern ein Beibehalten des alten Wertes im Sinn einer Hysterese.

          Kommentar


            #6
            Das klingt sinnvoll. Nur macht es die obige Logik nicht -- die schaltet einfach alle Lüfterstufen aus. Ich weiß natürlich nicht mit letzter Sicherheit, was diese GAs dann am Lüftungsgerät wirklich bewirken ...

            Kommentar


              #7
              Hey,

              erstmal viel Dank an alle!

              Hab mir gleich mal die Erweiterungen von hyman geladen, das ist ja echt ziemlich genial!
              Nachdem ich nicht wirklich fit in C bin auch vielen Dank für die ausführlichen Codes!

              Ziel ist es, dass
              Stufe 3 bei x > 1.000 ppm
              Dann runterschalten in Stufe 2, wenn x unter 800 ppm fällt.
              Noch weiter runterschalten in Stufe 1, wenn x unter 500 ppm fällt.

              In der Anderen Richtung beim raufschalten
              von Stufe 1 auf Stufe 2 wenn x > 600 ppm
              und von Stufe 2 auf Stufe 3 wenn x > 1000

              Zwischen 500 und 600, sowie zwischen 800 und 1000 soll eine Hysterese vorgesehen werden, damit nicht ständig zwischen den Stufen gesprungen wird.

              Dass dann in den Hysteresezeiten die Lüftung aus ist.....daran hab ich nicht gedacht.
              Aber das Glück der Dummen hat mich gerettet^^ Die Lüftung nimmt nur die 1 als Schaltbefehl für die jeweilige Stufe auf welche die 1 gesendet wird.
              d.h. die 0, welche in der Hysterese gesendet wird ist egal.


              Jetzt hätte ich aber noch eine Anschlussfrage:

              Logik hab ich noch ergäzt, dass ich die Grenzen über GAs ändern kann.
              Die GAs befülle ich dann über jeweils einen Dezimalwert geber in der Visu des X1.
              Wenn ich den Wert hier ändere, wird mir die Änderung jedoch nicht dargestellt.
              Wenn ich über die App einen neuen Wert sende, dann wird das auch auf den Bus geschickt, aber nicht in der Visu dargestellt.
              Wenn ich "Wert Lesen" per ETS ausführe, kommt nix zurück.
              Kann der X1, wenn die GA auf keine andere Hardware gesendet wird, den Wert evtl. nicht speichern?
              Screenshot 2023-01-29 154512.jpg
              Screenshot 2023-01-29 154445.jpg

              Kommentar


                #8
                Wie oben schon gesagt: Du kannst Deine gesamte Logik in eine Formelberechnung mit mehreren Formeln packen.

                Zitat von Gal1l3o Beitrag anzeigen
                Logik hab ich noch ergäzt, dass ich die Grenzen über GAs ändern kann.
                Die GAs befülle ich dann über jeweils einen Dezimalwert geber in der Visu des X1.
                ...
                Kann der X1, wenn die GA auf keine andere Hardware gesendet wird, den Wert evtl. nicht speichern?
                So ist es. Wenn der X1 auf eine Gruppenadresse sendet, die auf dem Bus niemand empfängt, dann gibt es keine Bestätigung und es passieren seltsame Dinge. Stell' das um auf Variablen-Datenpunkte, dann sollte es funktionieren.

                Kommentar


                  #9
                  hyman Ganz herzlichen Dank!
                  Jetzt funktioniert es

                  In die X1 Thematik muss ich mich erst noch richtig einarbeiten, muss zu meiner Schande gestehen, dass ich von Variablen Datenpunkten bisher noch garnix aufm Schirm hatte.
                  Soweit läuft zwar alles, und ein paar Szenen sind hinterlegt, aber die Logikblätter, da muss ich noch mal richtig ran.
                  Gibt es da zum tieferen Einstieg in die Logiken was vergleichbares wie den ETS Schnellkurs?

                  Kommentar


                    #10
                    Zitat von Gal1l3o Beitrag anzeigen
                    Gibt es da zum tieferen Einstieg in die [X1-]Logiken was vergleichbares wie den ETS Schnellkurs?
                    Ich fürchte nein. Da hilft nur ausprobieren, das Forum durchsuchen und fragen ... das hilft erfahrungsgemäß aber recht gut.

                    Kommentar


                      #11
                      Video von Matthias Kleine
                      https://youtu.be/vJtGuIAcgxM

                      Video von Kai Burkard
                      https://youtu.be/urJ1ZbIc86g

                      Gira Akademie
                      https://akademie.gira.de/de/Training...chulungsvideos

                      und die sehr gute Online Hilfe der X1 Logikbausteine, insbesondere auch der Bausteine von hyman. Aus den Beispielen kann man einiges lernen, wenn man Sie nachvollzieht.
                      Zuletzt geändert von willisurf; 29.01.2023, 23:13.
                      Gruß Bernhard

                      Kommentar


                        #12
                        Zitat von Gal1l3o Beitrag anzeigen
                        Hey,

                        erstmal viel Dank an alle!

                        Hab mir gleich mal die Erweiterungen von hyman geladen, das ist ja echt ziemlich genial!
                        Nachdem ich nicht wirklich fit in C bin auch vielen Dank für die ausführlichen Codes!

                        Ziel ist es, dass
                        Stufe 3 bei x > 1.000 ppm
                        Dann runterschalten in Stufe 2, wenn x unter 800 ppm fällt.
                        Noch weiter runterschalten in Stufe 1, wenn x unter 500 ppm fällt.

                        In der Anderen Richtung beim raufschalten
                        von Stufe 1 auf Stufe 2 wenn x > 600 ppm
                        und von Stufe 2 auf Stufe 3 wenn x > 1000

                        Zwischen 500 und 600, sowie zwischen 800 und 1000 soll eine Hysterese vorgesehen werden, damit nicht ständig zwischen den Stufen gesprungen wird.

                        Dass dann in den Hysteresezeiten die Lüftung aus ist.....daran hab ich nicht gedacht.
                        Aber das Glück der Dummen hat mich gerettet^^ Die Lüftung nimmt nur die 1 als Schaltbefehl für die jeweilige Stufe auf welche die 1 gesendet wird.
                        d.h. die 0, welche in der Hysterese gesendet wird ist egal.


                        Jetzt hätte ich aber noch eine Anschlussfrage:

                        Logik hab ich noch ergäzt, dass ich die Grenzen über GAs ändern kann.
                        Die GAs befülle ich dann über jeweils einen Dezimalwert geber in der Visu des X1.
                        Wenn ich den Wert hier ändere, wird mir die Änderung jedoch nicht dargestellt.
                        Wenn ich über die App einen neuen Wert sende, dann wird das auch auf den Bus geschickt, aber nicht in der Visu dargestellt.
                        Wenn ich "Wert Lesen" per ETS ausführe, kommt nix zurück.
                        Kann der X1, wenn die GA auf keine andere Hardware gesendet wird, den Wert evtl. nicht speichern?
                        Screenshot 2023-01-29 154512.jpg
                        Screenshot 2023-01-29 154445.jpg
                        Hey,

                        ich habe mir auch einen X1 angeschafft und möchte per Analogeingang meine Zehnder Comfoair 550 auf CO2-Basis steuern. Hast du das mittlerweile gelöst und kannst hier vielleicht mal deine Formel posten? Wie sind deine Erfahrungen? Das würde mir sehr helfen, da ich vom X1 bis dato noch gar keine Erfahrungen habe.

                        Lg
                        Flom

                        Kommentar


                          #13
                          Zitat von willisurf Beitrag anzeigen
                          Online Hilfe der X1 Logikbausteine
                          die verfügbaren Dokumente von hyman sind wirklich sehr gut und hilfreich, die GIRA-eigenen Dokumente meist ausreichend aber es gibt dann doch einige Bausteine, in denen gar keine Dokumentation vorhanden ist - dann einfach hier fragen.

                          Kommentar


                            #14
                            Dann werfe ich mal hier mein Beispiel für eine Vallox350MV ein. Das basiert hier auf den Ideen. Es ist eine KWL ohne Raumregelung.
                            Ich möchte aus verschiedenen Gründen, die ich hier nicht diskutieren will, die Lüftung immer mit dem höchsten CO2 Wert triggern.

                            1. Es gibt einen Schalter, der die automatische Lüftung an/abschaltet - ist ein variabler Datenpunkt im X1.
                            Wenn die Stoßlüftung aktiv ist, dann soll die Regelung nicht laufen.
                            Dazu werden die beiden Eingänge kombiniert und über eine Formel wird eine Sperre gesetzt oder nicht. Dabei ist das so gelöst, dass es auf keinen Fall laufen soll, wenn die Stoßlüftung an ist, ansonsten wird der Wert vom Schalter Automatische Regelung an/aus gesendet.
                            2. Das ist die Formel:
                            Code:
                            {Sperre2:B} ?  true: {SperreLueft:B}
                            3. Hier werden alle Co2 Eingänge gesammelt.
                            4.und immer der größte Wert (Statistikbaustein von Hyman) ausgegeben. Einfach den Baustein nutzen und dort Maximum einstellen.
                            5. Über die Sperre wird geregelt, dass der Wert nur ausgegeben wird, wenn es gewünscht ist - siehe 1.
                            6. Where the magic happen: Hier wird der Textformatierer (hyman) eingesetzt, der macht dann je nach Wert die Lüfterstufe in Prozent:
                            Code:
                            {Lueftungsstufe:F|..<800=35|800..<850=40|850..<900=45|900..<950=55|950..<1100=55|1100..<1200=60|1200..<1400=65|1400..=70}
                            7. Das soll nur gesendet werden wenn die Werte sich auch ändern.
                            8. Das ganze muss noch durch einen TypKonverter, damit die beiden Ausgänge das auch bekommen.

                            Ich kann bei meiner Vallox nicht direkt die Drehzahl steuern. Ich kann aber die Prozente für die Grundbelüftung einstellen und die manipuliere ich damit.

                            Bei Fragen einfach fragen.
                            vallox_gpa_steuerung.png

                            Kommentar


                              #15
                              Zitat von araeubig Beitrag anzeigen

                              die verfügbaren Dokumente von hyman sind wirklich sehr gut und hilfreich, die GIRA-eigenen Dokumente meist ausreichend aber es gibt dann doch einige Bausteine, in denen gar keine Dokumentation vorhanden ist - dann einfach hier fragen.
                              Wo finde ich denn diese Dokumente? Kannst du mal bitte einen Link senden?


                              vielen Dank auch an ToMinPanik Sieht sehr gut aus. Schaue ich mir bald mal in Ruhe an. Jetzt erstmal Urlaub. :-)

                              Kommentar

                              Lädt...
                              X