Ankündigung

Einklappen
Keine Ankündigung bisher.

Node-RED Flow für Helios KWL mit Modbus TCP

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

    #16
    Hi Alex,

    wenn es Deine Zeit erlaubt würde ich mich über einen weiteren Hinweis freuen. Generell funktioniert nun alles soweit, wenn ich über einen Inject Knoten ein Register der Helios auslese gelangt dieses auch zur KNX GA - und das auch im korrekten Datenformat. Den MQTT Broker kann ich parallel auch mit den Registerwerten versorgen, also auch das passt. Nun möchte ich aber nicht jedesmal manuell das Lesen eines Registers auslösen, sondern in Intervallen die Daten abfragen. Mein Ansatz war da einfach in den Inject-Knoten ein Interval einzustellen und so die Register entsprechend auszulesen.

    Als Ausgabe bin ich direkt an den Modbus Flex Getter Knoten gegangen, habe Buffer in String gewandelt und über einen Filter mit den entsprechenden Registeradressen jedes Register an den zugehörigen KNX Knoten weitergeleitet. Ob das der beste Weg ist weiß ich nicht, aber er passt zu meinem aktuellen Node Red Verständnis:-)

    Nun das Problem: Solange ich die Inject Knoten manuell auslöse, landet jeder Registerwert in der korrekten KNX GA. Wenn ich aber in allen Inject-Knoten automatisch Werte abfrage, dann wird immer nur eine KNX GA mit einem Wert versorgt, dies dann aber sehr hochfrequent. Ich habe ein Intervall von 5 Sekunden gewählt. gestartet habe ich alle Intervalle mal nach 0,1s, mal auch für jeden Inject Knoten zeitlich um 0,5s versetzt. Es wirkt so, als ob das Auslesen eines Inject Knotens immer dazu führt, dass immer das erste Register ausgelesen wird.
    Von daher die Frage - wie würdest Du der Fragestellung nach kontinuierlichem Auslesen der Register und Weiterleitung der Daten an den jeweiligen KNX Knoten begegnen?

    Vielen Dank und Grüße

    Marko

    Kommentar


      #17
      Zitat von mape71 Beitrag anzeigen
      und noch eine Anschlussfrage- diesesmal aber mehr Helios betreffend. Lässt sich die oben bereits erwähnte Bypassklappe von extern steuern? Den aktuellen Status bekomme ich ausgelesen, wenn ich aber auf das Register schreibe sehe ich keine Reaktion (Status der Klappe ist aktuell "0", geschrieben habe ich eine "1") Allerdings - um den Link zur Frage nach den Datentypen zu schließen - muss ich da evtl. auch etwas "Anderes" schreiben um der Helios klarzumachen, dass die Bypassklappe bewegt werden soll?

      Vielen Dank und Grüße

      Marko
      Das Status-Register der Bypassklappe ist nur lesbar. Aber du kannst die Einschaltbedingungen für den Bypass per Modbus manipulieren. Ich habe es so gelöst, dass ich die einfach die Temperaturschwelle für den Bypass per Modbus so einstelle dass sie entweder klar überschritten oder klar unterschritten wird. So kann ich die Bypassklappe doch direkt steuern.

      Kommentar


        #18
        Zitat von mape71 Beitrag anzeigen
        Nun das Problem: Solange ich die Inject Knoten manuell auslöse, landet jeder Registerwert in der korrekten KNX GA. Wenn ich aber in allen Inject-Knoten automatisch Werte abfrage, dann wird immer nur eine KNX GA mit einem Wert versorgt, dies dann aber sehr hochfrequent. Ich habe ein Intervall von 5 Sekunden gewählt. gestartet habe ich alle Intervalle mal nach 0,1s, mal auch für jeden Inject Knoten zeitlich um 0,5s versetzt. Es wirkt so, als ob das Auslesen eines Inject Knotens immer dazu führt, dass immer das erste Register ausgelesen wird.
        Von daher die Frage - wie würdest Du der Fragestellung nach kontinuierlichem Auslesen der Register und Weiterleitung der Daten an den jeweiligen KNX Knoten begegnen?

        Vielen Dank und Grüße

        Marko
        Ich vermute mal dass du die Inject-Knoten alle gleichzeitig "feuerst"? Das geht bei der Helios-Anlage schief, da du hier zwei Modbus-Kommandos nacheinander benötigst. Du kannst die Abrufe nur nacheinander ausführen. Ich habe mir inzwischen mit dem semaphore-Node beholfen: https://flows.nodered.org/node/node-...trib-semaphore
        Den stelle ich auf Anzahl = 1 und nehme vor dem Modbus-Abruf ein Token und gebe es nach Ende wieder zurück. Ein gleichzeitiger, zweiter Abruf wartet dann solange am semaphore take Node bis der andere fertig ist. Das ganze habe ich in die GET KWL Modbus und SET KWL Modbus Subflows eingebaut:
        node-red-semaphore.png

        Gruß,
        Alex

        Kommentar


          #19
          Hallo ihr beiden,

          vielen Dank für die Rückmeldungen, hilft mir beides sehr viel weiter!

          Grüße

          Marko

          Kommentar

          Lädt...
          X