Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Node Red Serial & Buffer Parser

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node Red Serial & Buffer Parser

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Bavarian last edited by

      Hallo zusammen,
      ich übertrage seriell 52 Byte von einem Arduino zum Raspberry und lese diese mit Mode Red Serial und verarbeite die Daten mit dem Buffer Parser um meine Datenpunkte zu füllen.

      Eigentlich klappt das auch ganz gut.
      Allerdings habe ich manchmal einen Versatz in meinen Daten. Das heißt das Wert1 vom Arduino auf dem Feld 5 nach dem Parser steht. Dieser Versatz ist nicht fix und ändert sich auch immer Mal nach einem Neustart.

      Das betrifft eigentlich nur den Start.
      Läuft es einmal ist es auch stabil!

      Woher das kommt finde ich Grad nicht raus.
      Starte ich die Instanz Node Red mehrmals neu geht's dann auch wieder.
      Sind ca. 20% in den es nicht klappt.

      Das Array welches gesendet wird, sollte nicht das Problem sein da alle Werte auch beim Start ja einen Wert haben. Die Reihenfolge ist auch klar, dann kann sich nichts vertauschen.
      Woher dann Datenmüll vor dem Feld1 kommen sollte ist mir unklar.
      Oder ist es Node Red, dort vielleicht noch was im Puffer was vor Feld1 im Speicher steht und so versetzt?

      Wie kann ich sicherstellen dass die Werte immer auf der richtigen Stelle nach dem Parser stehen?

      Jemand sowas schon gehabt?

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Bavarian last edited by

        @bavarian Du könntest doch eine Startsequenz definieren und dann 52 Byte Pakete in der Serial-Node definieren.

        B 1 Reply Last reply Reply Quote 0
        • B
          Bavarian @mickym last edited by

          @mickym die 52 Byte Länge stehen ja in Node Red in der Config der Schnittstelle.
          Startsequenz fällt mir nur auf der Arduino Seite ein eine Schleife die die ersten Datenpakete nicht schreibt und erst nach X Durchgängen anfängt kontinuierlich zu schreiben.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Bavarian last edited by

            @bavarian Hmm - dann glaube ich - kann ich erst mal nicht helfen bzw. habe keine Idee. 😞

            B 1 Reply Last reply Reply Quote 0
            • B
              Bavarian @mickym last edited by

              @mickym trotzdem Danke!
              Gar nicht so leicht rauszufinden auf welcher Seite es diesen Offset gibt.

              Vielleicht meldet sich noch jemand der das Problem kennt.

              B 1 Reply Last reply Reply Quote 0
              • B
                Bavarian @Bavarian last edited by

                Lösung gefunden!

                Zwischen der Schnittstelle und dem Buffer-Parser habe ich ein Split gesetzt und ein Trennzeichen definiert.
                Dazu die Größe des Array welches Empfangen wird + Tennzeichen als Feste Größe.
                Wichtig, das muss als Stream behandelt werden.

                Vielleicht hilft es jemandem.

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Bavarian last edited by

                  @bavarian Ich hab mich da schon mal blamiert, da ich dachte der split Node hat einen Fehler - aber funktioniert.

                  Hier mal ein geclosed Issue von mir. 😉 mit meinen Versuchen:

                  https://github.com/node-red/node-red/issues/3457

                  Die letzten 3 simulieren einen Stream mit der split Node. 😉

                  mickym2 created this issue in node-red/node-red

                  closed split node does not split a message (stream) injecting a buffer #3457

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  903
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  659
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo