Weiter zum Inhalt
  • Home
  • Aktuell
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. ich brauche etwas Nachhilfe mit Node Red und RS232

NEWS

  • Monatsrückblick Juli / August 2026 ist online!
    BluefoxB
    Bluefox
    10
    1
    1.0k

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.4k

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    11
    1
    3.9k

ich brauche etwas Nachhilfe mit Node Red und RS232

Geplant Angeheftet Gesperrt Verschoben Node-Red
77 Beiträge 6 Kommentatoren 1.2k Aufrufe 4 Beobachtet
  • Ä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.
  • A andibr

    Genau das habe ich auch gerade entdeckt.
    Jetzt müsste man eigentlich doch im ersten Function Node in Zeile 7 ein Filter einbauen der im String die Anwesenheit vom "Command....." überwacht?
    Nur da bin ich jetzt überfordert.

    Wie geschrieben habe ich das Gefühl, das geschieht nicht wilkürlich, sondern das BMS bricht den Stream ab, weil etwas anderes wichtigeres gemacht werden muss. Denn der Datenverlust ist an verschiedenen Stellen im ganzen String zu finden.

    Nachtrag
    Mit hilfe von irgend einer KI habe ich nun ein Filter gebastelt:

    // Prüft, ob der Suchbegriff in der msg.payload existiert
    if (msg.payload.includes("completed")) {
        msg.found = true;
        msg.payload = "Text wurde gefunden!";
    } else {
        msg.found = false;
        return null;
    }
    

    Nur zweifle ich stark, das der funktioniert, denn eigentlich dürfte jetzt doch keine Zelldaten mehr rauskommen, der derpyload sollte doch jetzt "Text wurde gefunden sein"?
    Es kommen aber nach wievor die einzelnen Zelldaten hinten raus.

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb zuletzt editiert von OliverIO
    #68

    @andibr

    In der Nachfolge node "Nachrichten erzeugen"

    solltest du noch

    if (msg.messageType !== "data") {
        return null;
    } 
    

    am Anfang einfügen.
    f6ade35b-d8c7-43da-b197-f61115dbb10e-image.jpeg

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    A 1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @andibr

      In der Nachfolge node "Nachrichten erzeugen"

      solltest du noch

      if (msg.messageType !== "data") {
          return null;
      } 
      

      am Anfang einfügen.
      f6ade35b-d8c7-43da-b197-f61115dbb10e-image.jpeg

      A Offline
      A Offline
      andibr
      schrieb zuletzt editiert von
      #69

      @OliverIO
      Huch, jetzt muss ganz viel auch noch kapieren, danke ich versuche das der Reihe nach zu verstehen:

      Als Versuch habe ich in Zeile 7 einfach mal das eingefügt:

      if (msg.payload.includes("completed")){
          msg.found = true;
          return msg;
      }   else {
          msg.found = false;
          node.error("String nicht komplett erhalten",msg);
          return null;
      }
      
      

      Ob das nun richtig ist weiss ich nicht so ganz.

      OliverIOO 1 Antwort Letzte Antwort
      0
      • A andibr

        @OliverIO
        Huch, jetzt muss ganz viel auch noch kapieren, danke ich versuche das der Reihe nach zu verstehen:

        Als Versuch habe ich in Zeile 7 einfach mal das eingefügt:

        if (msg.payload.includes("completed")){
            msg.found = true;
            return msg;
        }   else {
            msg.found = false;
            node.error("String nicht komplett erhalten",msg);
            return null;
        }
        
        

        Ob das nun richtig ist weiss ich nicht so ganz.

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb zuletzt editiert von
        #70

        @andibr

        probiere den code oben aus.
        Einmal neuer code mit viel diagnostik, warnungen und fehlermeldungen um zukünftige probleme besser analysieren zu können.

        leider steht bei der serial node nicht soviel beschreibung dabei.

        evtl mal was zur theorie.
        eine rs232 schnittstelle knn theoretisch kontinuierlich etwas senden.
        muss sie aber nicht. das rs232 protokoll prüft grob auf datenfehler, falls mal auf der leitung ein knacken war, könnte ein bit acuh falsch verstanden werden. das ist aber extrem simple.
        dann gehe ich davon aus, das die serial node einen puffer hat, den sie kontinuierlich vollschreibt. die node weiß ja nichts von irgendwelchen Endebedingungen insbesondere dann, wenn die verbindung nicht bei jeder nachricht von einem gerät geschlossen und wieder geöffnet wird.

        also irgendwann ist der puffer voll, oder man kann in der node was einstellen.
        leider konnte ich die node über die oberfläche nicht installieren um selbst nachzuschauen. auf betriebssystemebene zu installieren war mir jetzt aber zu aufwändig.

        also puffer wird beschrieben, irgendwann ist der voll, dann erzeugt diese eine msg.
        daher kann in einer msg nur ein teil einer nachricht drin stecken und der rest kommt dann beim nächsten mal.

        daher hat die KI den code der function umgeschrieben und baut selbst einen puffer auf. sobald sie eine vollständige nachricht erkennt (...completed...) erzeugt sie die msgs die dann durch die nachfolge nodes verarbeitet werden können.
        Ausserdem erzeugt sie weitere nachrichten um warnungen und fehlermeldungen ebenfalls als nachricht auszugeben. zusätzlich gibt sie dies aber auch über dein iobroker log aus.

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        A 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @andibr

          probiere den code oben aus.
          Einmal neuer code mit viel diagnostik, warnungen und fehlermeldungen um zukünftige probleme besser analysieren zu können.

          leider steht bei der serial node nicht soviel beschreibung dabei.

          evtl mal was zur theorie.
          eine rs232 schnittstelle knn theoretisch kontinuierlich etwas senden.
          muss sie aber nicht. das rs232 protokoll prüft grob auf datenfehler, falls mal auf der leitung ein knacken war, könnte ein bit acuh falsch verstanden werden. das ist aber extrem simple.
          dann gehe ich davon aus, das die serial node einen puffer hat, den sie kontinuierlich vollschreibt. die node weiß ja nichts von irgendwelchen Endebedingungen insbesondere dann, wenn die verbindung nicht bei jeder nachricht von einem gerät geschlossen und wieder geöffnet wird.

          also irgendwann ist der puffer voll, oder man kann in der node was einstellen.
          leider konnte ich die node über die oberfläche nicht installieren um selbst nachzuschauen. auf betriebssystemebene zu installieren war mir jetzt aber zu aufwändig.

          also puffer wird beschrieben, irgendwann ist der voll, dann erzeugt diese eine msg.
          daher kann in einer msg nur ein teil einer nachricht drin stecken und der rest kommt dann beim nächsten mal.

          daher hat die KI den code der function umgeschrieben und baut selbst einen puffer auf. sobald sie eine vollständige nachricht erkennt (...completed...) erzeugt sie die msgs die dann durch die nachfolge nodes verarbeitet werden können.
          Ausserdem erzeugt sie weitere nachrichten um warnungen und fehlermeldungen ebenfalls als nachricht auszugeben. zusätzlich gibt sie dies aber auch über dein iobroker log aus.

          A Offline
          A Offline
          andibr
          schrieb zuletzt editiert von
          #71

          @OliverIO
          Also du meinst den Block mit dem R232 Parser?

          Ich habe noch folgendes ausprobiert:

          if (msg.payload.includes("completed")){
              msg.found = true;
          //    return msg;
          }   else {
              msg.found = false;
              node.error("String nicht komplett erhalten",msg);
              return null;
          }
          
          const text = msg.payload;
          

          So kommen zumindest die Zellendaten wieder durch, das mit dem "return msg" hat irgendwie nicht funktioniert, da konnte er den "const text...." scheinbar gar nicht mehr ausführen, den der wurde gar im Code.

          OliverIOO 1 Antwort Letzte Antwort
          0
          • A andibr

            @OliverIO
            Also du meinst den Block mit dem R232 Parser?

            Ich habe noch folgendes ausprobiert:

            if (msg.payload.includes("completed")){
                msg.found = true;
            //    return msg;
            }   else {
                msg.found = false;
                node.error("String nicht komplett erhalten",msg);
                return null;
            }
            
            const text = msg.payload;
            

            So kommen zumindest die Zellendaten wieder durch, das mit dem "return msg" hat irgendwie nicht funktioniert, da konnte er den "const text...." scheinbar gar nicht mehr ausführen, den der wurde gar im Code.

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb zuletzt editiert von
            #72

            @andibr

            ok ich sehe du willst es alleine probieren

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              andibr
              schrieb zuletzt editiert von andibr
              #73

              nee, ich habe einfach probiert Schlussendlich möchte ich auch noch was lernen dabei.

              Bildschirmfoto vom 2026-09-05 16-15-21.png

              Aktuell kommt beim debug 1 etwas raus, aber beim debug 4 gar nichts mehr

              OliverIOO 1 Antwort Letzte Antwort
              0
              • A andibr

                nee, ich habe einfach probiert Schlussendlich möchte ich auch noch was lernen dabei.

                Bildschirmfoto vom 2026-09-05 16-15-21.png

                Aktuell kommt beim debug 1 etwas raus, aber beim debug 4 gar nichts mehr

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb zuletzt editiert von OliverIO
                #74

                @andibr

                ich habe dir oben geschrieben warum das nicht richtig funktionieren wird.

                verstehe, das ist schon aufwändig jemanden etwas zu erklären.
                wenn man aber an der eigenen Lösung weiter rumdoktern will, alles gut.
                dann wende ich mich anderen dingen zu.

                wenn etwas unklar ist, dann stelle konstruktive fragen

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  andibr
                  schrieb zuletzt editiert von andibr
                  #75

                  ich verstehe jetzt gar nichts mehr?
                  Was habe ich jetzt falsch gemacht?

                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    peterfido
                    schrieb zuletzt editiert von
                    #76

                    Ist wohl wie bei mir. Die Lösungsvorschläge werden nicht angenommen / ignoriert. Da sinkt die Motivation zu helfen. Mein Beispiel lief bei mir und hat sich wieder gefangen, nachdem ich da kurz die Verbindung unterbrochen hatte. Zeiten / Intervalle verlängern sowie die korrekte Schnittstelle eingeben und testen ist das, was ich erwartet hatte. Ohne die Batterien zu haben, können wir nur theoretisch helfen.

                    Gruß

                    Peterfido

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      andibr
                      schrieb zuletzt editiert von andibr
                      #77

                      scheinbar ist es hier nicht gewollt das man was lernen kann, ich weiss im Moment zwar nicht welchen Lösungsvorschlag ich nicht umgesetzt haben sollte (ausser den mit PC bei der Batterie). Woran es ja aber sichtlich nicht wirklich liegen kann.

                      PS: es ist für mich das erste mal, dass ich mit Node-Red da was versuche zu basteln, aber das muss ich scheinbar sehr schnell wieder vergessen, weil ich scheinbar etwas zu unlogisch oder gar zu dumm dazu bin. Na ja, dann ist es halt so.

                      Mit diesem parser function Node kommt einfach mal gar nichts mehr durch, nur noch solche Meldungen:

                      5.9.2026, 16:41:57node: debug 1msg.payload : Object
                      object
                      severity: "warning"
                      code: "BLOCK_DISCARDED"
                      message: "Unvollständiger oder beschädigter Batteriedatensatz wurde verworfen."
                      timestamp: "2026-09-05T14:41:57.110Z"
                      details: object
                      reason: "BLOCK_TIMEOUT"
                      receivedBatteryCount: 10
                      receivedBatteries: array[10]
                      invalidLines: array[0]
                      startedAt: "2026-09-05T14:38:17.544Z"
                      timeoutMs: 30000
                      

                      Ist zwar schön das ich jetzt weiss das der Datensatz nicht komplett ist, aber das weiss ich auch sonst. -> das ganze KI gedöns ist halt wirklich nur gedöns und keine echte Hilfe

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      211

                      Online

                      33.1k

                      Benutzende

                      83.7k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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