Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Node Red Serial & Buffer Parser

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Node Red Serial & Buffer Parser

Geplant Angeheftet Gesperrt Verschoben Node-Red
7 Beiträge 2 Kommentatoren 824 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    Bavarian
    schrieb am zuletzt editiert von
    #1

    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?

    mickymM 1 Antwort Letzte Antwort
    0
    • B Bavarian

      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?

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #2

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

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      B 1 Antwort Letzte Antwort
      0
      • mickymM mickym

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

        B Offline
        B Offline
        Bavarian
        schrieb am zuletzt editiert von
        #3

        @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.

        mickymM 1 Antwort Letzte Antwort
        0
        • B Bavarian

          @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.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #4

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

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          B 1 Antwort Letzte Antwort
          0
          • mickymM mickym

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

            B Offline
            B Offline
            Bavarian
            schrieb am zuletzt editiert von
            #5

            @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 Antwort Letzte Antwort
            0
            • B Bavarian

              @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 Offline
              B Offline
              Bavarian
              schrieb am zuletzt editiert von
              #6

              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.

              mickymM 1 Antwort Letzte Antwort
              0
              • B Bavarian

                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.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                @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. ;)

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                726

                Online

                32.4k

                Benutzer

                81.4k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe