Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira X1 Logik sendet ununterbrochen

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

    Gira X1 Logik sendet ununterbrochen

    Hallo zusammen,

    ich bin recht neu beim KNX, verzeiht mir bitte, falls ich manches nicht regelkonform gemacht habe, bin für alle Verbesserungen offen
    Ich habe mir ein paar Logiken zusammengebaut, analog zu hymans bedarfsgeführter Heizungssteuerung

    https://knx-user-forum.de/forum/%C3%...ng-mit-gira-x1

    Nun scheint eine der Logiken nach einiger Zeit (aktuell sofort nach Neustart / neuer Inbetriebnahme in der GPA) den Bus mit ununterbrochenen Telegrammen zuzumüllen
    Das war bis vor einigen Tagen erst nach ein paar Stunden / einem halben Tag, ich habe seitdem unter anderem die Statistik für Vorlauf FBH Soll in der zweiten Logik so gesetzt, dass sofort Werte ausgespuckt werden, statt erst nach 16 Stunden

    Die Telegramme sind alle ohne Änderung, also zB "Heizung an" etwa vier Mal pro Sekunde

    Ich lese in der GPA die Datenpunkte zum Start alle vom Bus

    Ich versuche mal alles so zu posten, dass man die Logiken verstehen kann, sonst fragt einfach nach

    Hier die Heizkurve, recht analog zu hyman

    Heizkurve.png

    Aussentemperatur kommt zyklisch alle 10 min

    Heizperiode kommt aus der zweiten Logik

    Var Heizung Bedarf auch aus der zweiten Logik, das ist die größte Stellgröße der RTR zweier Räume, die beiden Stellgrößen kommen zyklisch alle 15 min vom Bus

    Var Heizung Komfortverlust ist aus der zweiten Logik und gibt an, ob einer der beiden Räume Heizbedarf hat

    Unten gibts dann noch eine Sicherheitsabschaltung, damit die FBH nicht die volle Temperatur der Ölheizung abbekommt

    Die Heizperiode steuert dort, ob die Ölheizung und die Umwälzpumpe der FBH angeschaltet werden, oder ob Warmwasser mit dem Elektroheizstab im Boiler erzeugt wird.

    Vorlauftemperatur FBH SOLL geht in den Bus zu einem Temperaturregler MDT SCN-RT6AP.01

    Der empfängt den Sollwert, ich habe dafür den entsprechenden Kanal in der ETS auf K L S gesetzt
    Der regelt mit einem PI Regler P=20K (mehr geht nicht) Nachstellzeit 15 min (weniger geht nicht) einen Drei-Wege-Mischer über einen Jalousieaktor
    Das funktioniert vorerst zufriedenstellend, so dass nicht ständig geregelt wird

    Die Formeln für die Heizkurve sind:

    Hlk.HeatingCurve({Tavg:N}, 18, -5, {Trmax:N}, 38, 1.4)
    unter 18 Grad nicht heizen; bei -5 Grad maximale Vorlauf-Temp; maximale Vorlauf-Temp 38 Grad; Steilheit 1,4
    Tavg ist die mittlere Aussentemperatur; Trmax ist 23 Grad für die maximale Raumtemperatur

    ({Bedarf:N} / 100) * (_out1_ - {Trmax}) + {Trmax}

    ({Komfortverlust:N} * _out1_) + ((1.0 - {Komfortverlust}) * _out2_)

    /* Tvsmin = */ {Trmax} + 1.0

    ({Heizperiode:B} && ({Bedarf} >= 5.0) && (_out3_ >= _out4_)) ? (Math.Round(_out3_ * 4.0) / 4.0) : 0.0

    (Math.Abs(_out5_ - _previousOut6_) > 0.49) ? _out5_ : _previousOut6_

    Die Formeln sind von der oben erwähnten Heizungssteuerung von hyman 1:1 übernommen
    Die letzte Formel sorgt eigentlich dafür, dass nur ab einer Änderung von 0,5 K und mehr eine Ausgabe erfolgt, sollte daher auch nicht permanent Ausgabewerte erzeugen.

    Vorlauftemperatur IST kommt bei einer Änderung von mehr als 1,5 K

    Logik 2 errechnet einen Komfortverlust und entscheidet letztendlich, ob geheizt wird

    Komfortverlust.png

    hier die Formeln, 1 und 2 hab ich abgewandelt und die Prüfung, ob geheizt oder gekühlt wird gespart, hat in der Simulation auch so funktioniert, wie erwartet
    Alle anderen Formeln analog zu hyman

    Math.Max( ({WZSoll:N} - 0.5 - {WZIst:N}) / 2.5, 0.0 )

    Math.Max( ({BadSoll:N} - 0.5 - {BadIst:N}) / 2.5, 0.0 )

    /* Max. Komfortverlust */ Math.Min( 1.0, Math.Max(_out1_, _out2_) )

    _out3_ > (1.0 - (20.0 - {Tamax:N}) / 12.0)

    ( (_previousOut6_ && {Tvsmax:N} < 27.0) ) || ({Tamax:N} > 20.0)

    (_out4_ && !_out5_) ? (bool?)true : ( (_out5_ && !_out4_) ? (bool?)false : null )

    Die Statistik habe ich ohne Verzögerung gemacht, damit sofort Werte zur Verfügung stehen und die Heizung bei jetzt 10°C auch gleich anschaltet
    Diese Statistik habe ich so ein wenig in Verdacht, nachdem (seit dieser Änderung?) sofort der Bus zugemüllt wird, und es als ich noch 16 Std Werteaufzeichnung hatte, erst nach ein poaar Stunden der Fall war (waren aber selten 16 Stunden, bis es zu dem Fehler kam)

    Logik 3 ermittelt den höchsten zu erwartenden Temperaturwert der nächsten 18 Stunden aus OpenWeather

    Open Weather.png

    Das ist die Web Abfrage:
    Die Koordinaten und AppID hab ich mal anonymisiert
    http://api.openweathermap.org/data/2.5/forecast?lat=XYZ&lon=XYZ&cnt=6&units=metric&mode=x ml&appid=XYZ

    der Parser ist auf XML und hat folgende Paramter
    /weatherdata/forecast/time/temperature/@max
    Der gibt das Maximum aller Treffer als Zahl aus

    Nachdem das alle Stunde abgefragt wird, halte ich das für unwahrscheinlich, dass es der Urspung ist

    Logik 4 ermittelt den Raum mit der größeren RTR Stellgröße

    Heizkurve.png

    Die beiden Stellwerte kommen zyklisch alle 15 min vom Bus, denke nicht, dass das der Urspung ist

    Ich hoffe, ich habe alles an Angaben gemacht, damit man draus schlau wird und ich bin diesem dämlichen Fehler bald los
    Ich habe gelesen, dass man keine Werte vom X1 auf den Bus schreiben soll, die dort nicht abgeholt werden, das schien ein Fehler zu sein, den ich bei einer Variablen gemacht habe, den hab aich aber mittlerweile nicht mehr auf dem Bus
    Ich arbeite mit der GPA 5.0.1 und der X1 hat die Firmware 2.8.858
    Angehängte Dateien
    Zuletzt geändert von floriang; 15.10.2023, 13:14.

    #2
    KNX ist Ereignis gesteuert, weil nur ein Telegramm gesendet wird, wenn sich der Zustand ändert.

    Im X1 arbeitet die Logik davon abweichend: Wenn an einem LBS sich einer von vielen Eingängen ändert, sendet der Ausgang. Das kann sich lawinenartig fortsetzen. Wenn es nicht gewünscht wird: Ein LBS send-by-change einfügen oder direkt am Ausgang des vorangehenden LBS als Eigenschaft einstellen.

    Kommentar


      #3
      Schau mal ob Du irgeneine Schleife in Deiner Logik hast, also ein Ausgangswert wird auf einen Eingang gegeben, der wiederum auf den gleichen Ausgang wirkt. Manchmal braucht man so was, muss dann aber jedenfalls send-by-change verwenden, um Dauersenden zu vermeiden.

      In Deinem Fall hab' ich "Heizperiode Ja/Nein" im Verdacht ...

      Kommentar


        #4
        Danke euch für die schnellen Rückmeldungen, ich hab an einigen Punkten SBC eingebaut, das hat geholfen.
        Ich habe leider keine Möglichkeit gefunden, das als Eigenschaft bei den Ausgängen der Logikbausteine einzubauen, aber solange es so auch funktioniert, ist mir geholfen.
        Sonst finde ich die Vorangehensweise von Dir hyman, wirklich super, da auch die Wettervorhersage einzubeziehen und abzufragen, ob die Beheizung denn überhaupt gebraucht wird.
        Danke, dass Du das so ausfürhlich beschrieben hast, dass das sogar ein Anfänger wie ich wenigstens in Ansätzen so hinbekommen hat.

        Kommentar


          #5
          Rechte Maustaste am Ausgang der Logikbausteine
          Gruß Bernhard

          Kommentar


            #6
            Oh großartig, Danke
            Man sieht ich fange wirklich grade erst an...

            Kommentar


              #7
              Das ist normal, ich habe einige Monate gebraucht um die Funktion mit Hilfe dieses Forums zu entdecken.
              Gruß Bernhard

              Kommentar

              Lädt...
              X