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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. TCP Node -> Werte ermitteln -> iOBroker für vis übergeben

NEWS

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

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

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

TCP Node -> Werte ermitteln -> iOBroker für vis übergeben

Geplant Angeheftet Gesperrt Verschoben Node-Red
8 Beiträge 4 Kommentatoren 2.6k Aufrufe
  • Ä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.
  • S Offline
    S Offline
    Stefnas
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich hoffe Ihr könnt mir bei meiner Problemstellung helfen. Aktuell habe ich mich die gesamten letzten Tage mit ioBroker auseinandergesetzt aber leider bisher nicht das passende Ergebnis erreicht. Ich habe mit dem Adapter Node-red einen TCP Node auf einen bestimmten Port connected. Das abhören dieses Streams funktioniert auch ohne Probleme. Nun möchte ich die empfangenen Informationen aber gerne aufbereiten und einzeln per ioBroker für vis zur Verfügung stellen. Nur leider bekomme ich dies nicht hin.

    Der empfangene [msg.payload] : string ist wie folgt aufgebaut:

    XXX:1432468601:0:12345678:3:1:0:0

    Nun meine Fragen/Wünsche:

    1. Je nach Wert für XXX möchte ich die darauf folgenden Informationen, welche mit ":" getrennt sind einzeln an ioBroker übermitteln. XXX kann aktuell nur zwei unterschiedliche Werte annehmen die für mich interessant sind. Alle anderen Werte können ignoriert werden. Leider schaffe ich es schon nicht die ersten 3 Zeichen aus dem String auszulesen umd hiermit weiterzuarbeiten bzw. zu unterscheiden ob der String für mich interessant sein könnte. Ich habe hier mit einer Function und Substring versucht zu arbeiten aber ich erhalte immer (undefinied) als msg.

    2. Weiterhin würde ich gerne die Informationen aus den Strings archivieren und diese in VIS grafisch anzeigen lassen. Pro String eine Zeile und pro Information eine Spalte in dieser Zeile, die Informationen sind ja mit ":" getrennt.

    Zeile1: XXX Spalte1: 1432468601 …

    Zeile2: XXX Spalte1: 5684331466 ...

    der aktuellste String sollte immer oben angeordnet sein

    1. Spalte 1 bzw die erste Information nach XXX beinhaltet einen Timestamp. Diesen würde ich natürlich gerne entsprechend ausgegeben werden.

    Ich hoffe Ihr könnt mir Eure Ansätze mitteilen denn ich sehe vor lauter Bäumen aktuell den Wald nicht mehr, und ich denke das ich nur einen Denkfehler habe. Ich hoffe Ihr könnt mir helfen. Euch noch einen schönen Sonntag.

    Gruß

    Steffen

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      @Stefnas:

      Hallo zusammen,

      ich hoffe Ihr könnt mir bei meiner Problemstellung helfen. Aktuell habe ich mich die gesamten letzten Tage mit ioBroker auseinandergesetzt aber leider bisher nicht das passende Ergebnis erreicht. Ich habe mit dem Adapter Node-red einen TCP Node auf einen bestimmten Port connected. Das abhören dieses Streams funktioniert auch ohne Probleme. Nun möchte ich die empfangenen Informationen aber gerne aufbereiten und einzeln per ioBroker für vis zur Verfügung stellen. Nur leider bekomme ich dies nicht hin.

      Der empfangene [msg.payload] : string ist wie folgt aufgebaut:

      XXX:1432468601:0:12345678:3:1:0:0

      Nun meine Fragen/Wünsche:

      1. Je nach Wert für XXX möchte ich die darauf folgenden Informationen, welche mit ":" getrennt sind einzeln an ioBroker übermitteln. XXX kann aktuell nur zwei unterschiedliche Werte annehmen die für mich interessant sind. Alle anderen Werte können ignoriert werden. Leider schaffe ich es schon nicht die ersten 3 Zeichen aus dem String auszulesen umd hiermit weiterzuarbeiten bzw. zu unterscheiden ob der String für mich interessant sein könnte. Ich habe hier mit einer Function und Substring versucht zu arbeiten aber ich erhalte immer (undefinied) als msg.

      2. Weiterhin würde ich gerne die Informationen aus den Strings archivieren und diese in VIS grafisch anzeigen lassen. Pro String eine Zeile und pro Information eine Spalte in dieser Zeile, die Informationen sind ja mit ":" getrennt.

      Zeile1: XXX Spalte1: 1432468601 …

      Zeile2: XXX Spalte1: 5684331466 ...

      der aktuellste String sollte immer oben angeordnet sein

      1. Spalte 1 bzw die erste Information nach XXX beinhaltet einen Timestamp. Diesen würde ich natürlich gerne entsprechend ausgegeben werden.

      Ich hoffe Ihr könnt mir Eure Ansätze mitteilen denn ich sehe vor lauter Bäumen aktuell den Wald nicht mehr, und ich denke das ich nur einen Denkfehler habe. Ich hoffe Ihr könnt mir helfen. Euch noch einen schönen Sonntag.

      Gruß

      Steffen `
      Was du machen willst, habe ich nicht ganz verstanden, aber versuche trotzdem zu helfen.

      "XXX:1432468601:0:12345678:3:1:0:0" aufteilen ist sehr einfach:

      Function node:

      var str = msg.payload || "XXX:1432468601:0:12345678:3:1:0:0";
      var parts = str.split(':');
      if (str[0] == "XXX") {
           // Analyse it.
      }
      
      

      > Spalte 1 bzw die erste Information nach XXX beinhaltet einen Timestamp
      In welchem Format: sekunden nach 1970, millisekunden nach 1970?
      ` > var ts = 1432468601;

      var time = (new Date(ts * 1000)).toString(); `
      Wie man die Tabellen aufbaut, kannst du bei fritzbox Flows abschauen.
      721_alexa.jpg

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Stefnas
        schrieb am zuletzt editiert von
        #3

        Hallo Bluefox,

        vielen lieben Dank für Deine Anwort. Wie bekomme ich den nun den Code so erweitert das ich für jeden Part eine einzelne Ausgabe hinbekomme?

        var str = msg.payload || "XXX:1432468601:0:12345678:3:1:0:0";
        var parts = str.split(':');
        if (str[0] == "XXX") {
             // Analyse it.
        }
        
        

        Beim Timestamp muss ich schauen ob vor oder nach 1970 aber denke danach. Prüf ich aber mal. Danke Dir schon mal. Bastel gerade schon fleissig weiter.

        Gruß

        Stefnas

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #4

          str[0] Part 1

          str[1] Part 2

          usw.

          einzeln, per Schleife, …

          Gesendet von iPhone mit Tapatalk

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Stefnas
            schrieb am zuletzt editiert von
            #5

            wie ich die einzelnen Parts bekomme ist mir klar aber wie ist der befehl zum ausgeben…ach irgendwie check ich das nicht...glaub ich muss mal nen paar Tage Pause machen und mich dann nochmals daran versuchen...hier mal mein Code (bitte nicht lachen ;-))

            var outputMsgs = [];
            var str = msg.payload || "300:1234567890:0:12345:0:756E6B6C617265204175736C6F6573756E67";
            var parts = str.split(':');
            if (str[0] == "300") {
                 // Analyse it.
            }
            for (var p in parts) {
                outputMsgs.({payload:str[p]});
            }
            return [ outputMsgs ];
            

            464_unbenannt.png

            Quasi soll pro Output ein Part ausgegeben werden…Danke für Eure Geduld ;-)

            LG

            Stefnas

            1 Antwort Letzte Antwort
            0
            • HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              Sieh mal da,

              http://forum.iobroker.org/viewtopic.php?p=4294#p4294

              Da ist im function node drin, wie man etwas auf mehrere outputs verteilt

              Gruß

              Rainer

              Gesendet von meinem LIFETAB_S785X mit Tapatalk

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Stefnas
                schrieb am zuletzt editiert von
                #7

                ah cool danke :-) wird gerade probiert…

                Gesendet von iPad mit Tapatalk

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Stefnas
                  schrieb am zuletzt editiert von
                  #8

                  Hallo zusammen,

                  nach einem Tag Abstand und den vielen netten Beiträgen habe ich es hinbekommen, und zwar genau so wie es soll. Ich danke Euch.

                  Gruß

                  Stefnas

                  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

                  765

                  Online

                  32.4k

                  Benutzer

                  81.6k

                  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