Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 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. ioBroker Allgemein
  4. string zerlegen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    664

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    508

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.0k

string zerlegen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
regexparser
5 Beiträge 2 Kommentatoren 1.7k Aufrufe 1 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.
  • P Offline
    P Offline
    peppino
    schrieb am zuletzt editiert von
    #1

    Re: Iobroker und Signal Messenger

    Hallo,
    Ich bin schon mal ein Stück weiter und habe das ganze mit signal-cli und einem node-red exec Aufruf hinbekommen das ich beim Empfangen schon mal einen string im msg.payload habe der dann so aussieht:

    "Envelope from: +12345678 (device: 1);Timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Sender: +12345678 (device: 1);Message timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Body:Das ist eine Testmeldung;"
    

    Eventuell kann mir jemand beim Zerlegen des string's helfen. Benötigen würde ich folgende Werte:

    • Von Envelope from: +12345678

    • Von Timestamp 2020-03-30T11:42:33

    • und alles rechts von Body: Das ist eine Testmeldung

    Mit einer Funktion in Node-Red müsste das doch lösbar sein.

    paul53P 1 Antwort Letzte Antwort
    0
    • P peppino

      Re: Iobroker und Signal Messenger

      Hallo,
      Ich bin schon mal ein Stück weiter und habe das ganze mit signal-cli und einem node-red exec Aufruf hinbekommen das ich beim Empfangen schon mal einen string im msg.payload habe der dann so aussieht:

      "Envelope from: +12345678 (device: 1);Timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Sender: +12345678 (device: 1);Message timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Body:Das ist eine Testmeldung;"
      

      Eventuell kann mir jemand beim Zerlegen des string's helfen. Benötigen würde ich folgende Werte:

      • Von Envelope from: +12345678

      • Von Timestamp 2020-03-30T11:42:33

      • und alles rechts von Body: Das ist eine Testmeldung

      Mit einer Funktion in Node-Red müsste das doch lösbar sein.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @peppino sagte:

      Mit einer Funktion in Node-Red müsste das doch lösbar sein.

      Von Node-Red habe ich keine Ahnung, aber mit Javascript sollte es so funktionieren:

      let str = "Envelope from: +12345678 (device: 1);Timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Sender: +12345678 (device: 1);Message timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Body:Das ist eine Testmeldung";
      let arr = str.split(';'); // zerlegt String in ein Array mit Kriterium ";" als Trennzeichen im String
      let obj = {}; // leeres Objekt
      for(let i = 0; i < arr.length; i++) { // über alle Array-Elemente
          let pos = arr[i].indexOf(':'); // Im Array-Element erstes Auftreten von ":" ermtteln
          let ele = arr[i].substring(0, pos).replace(' ', '_'); // Bezeichener für Objekt separieren und Leerzeichen durch "_" ersetzen
          let attr = arr[i].substring(pos + 1); // Objekt-Attribut separieren (Rest hinter 1. Doppelpunkt)
          if(ele == 'Timestamp') attr = formatDate(parseInt(attr), 'DD.MM.JJ hh:mm:ss'); // wandelt ms in lesbare Zeit
          obj[ele] = attr; // Objekt um neues Attribut ergänzen
      }
      
      log(obj.Envelope_from);
      log(obj.Timestamp);
      log(obj.Body);
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      P 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @peppino sagte:

        Mit einer Funktion in Node-Red müsste das doch lösbar sein.

        Von Node-Red habe ich keine Ahnung, aber mit Javascript sollte es so funktionieren:

        let str = "Envelope from: +12345678 (device: 1);Timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Sender: +12345678 (device: 1);Message timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Body:Das ist eine Testmeldung";
        let arr = str.split(';'); // zerlegt String in ein Array mit Kriterium ";" als Trennzeichen im String
        let obj = {}; // leeres Objekt
        for(let i = 0; i < arr.length; i++) { // über alle Array-Elemente
            let pos = arr[i].indexOf(':'); // Im Array-Element erstes Auftreten von ":" ermtteln
            let ele = arr[i].substring(0, pos).replace(' ', '_'); // Bezeichener für Objekt separieren und Leerzeichen durch "_" ersetzen
            let attr = arr[i].substring(pos + 1); // Objekt-Attribut separieren (Rest hinter 1. Doppelpunkt)
            if(ele == 'Timestamp') attr = formatDate(parseInt(attr), 'DD.MM.JJ hh:mm:ss'); // wandelt ms in lesbare Zeit
            obj[ele] = attr; // Objekt um neues Attribut ergänzen
        }
        
        log(obj.Envelope_from);
        log(obj.Timestamp);
        log(obj.Body);
        
        P Offline
        P Offline
        peppino
        schrieb am zuletzt editiert von
        #3

        @paul53 said in string zerlegen:

        @peppino sagte:

        Mit einer Funktion in Node-Red müsste das doch lösbar sein.

        Von Node-Red habe ich keine Ahnung, aber mit Javascript sollte es so funktionieren:

        let str = "Envelope from: +12345678 (device: 1);Timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Sender: +12345678 (device: 1);Message timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Body:Das ist eine Testmeldung";
        let arr = str.split(';');
        let obj = {};
        for(let i = 0; i < arr.length; i++) {
            let pos = arr[i].indexOf(':');
            let ele = arr[i].substring(0, pos).replace(' ', '_');
            let attr = arr[i].substring(pos + 1);
            if(ele == 'Timestamp') attr = formatDate(parseInt(attr), 'DD.MM.JJ hh:mm:ss');
            obj[ele] = attr;
        }
        
        log(obj.Envelope_from);
        log(obj.Timestamp);
        log(obj.Body);
        

        Danke Paul!

        In Javascript funktioniert es einwandfrei.
        Im Node-Red kennt er formatDate nicht.

        ReferenceError: formatDate is not defined (line 15, col 28)
        

        Willst du mir eventuell die Code Zeilen etwas kommentieren was in den jeweiligen Zeilen passiert, ich lerne gerne mit ;-)

        Bg

        Joe

        paul53P 1 Antwort Letzte Antwort
        0
        • P peppino

          @paul53 said in string zerlegen:

          @peppino sagte:

          Mit einer Funktion in Node-Red müsste das doch lösbar sein.

          Von Node-Red habe ich keine Ahnung, aber mit Javascript sollte es so funktionieren:

          let str = "Envelope from: +12345678 (device: 1);Timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Sender: +12345678 (device: 1);Message timestamp: 1585568553483 (2020-03-30T11:42:33.483Z);Body:Das ist eine Testmeldung";
          let arr = str.split(';');
          let obj = {};
          for(let i = 0; i < arr.length; i++) {
              let pos = arr[i].indexOf(':');
              let ele = arr[i].substring(0, pos).replace(' ', '_');
              let attr = arr[i].substring(pos + 1);
              if(ele == 'Timestamp') attr = formatDate(parseInt(attr), 'DD.MM.JJ hh:mm:ss');
              obj[ele] = attr;
          }
          
          log(obj.Envelope_from);
          log(obj.Timestamp);
          log(obj.Body);
          

          Danke Paul!

          In Javascript funktioniert es einwandfrei.
          Im Node-Red kennt er formatDate nicht.

          ReferenceError: formatDate is not defined (line 15, col 28)
          

          Willst du mir eventuell die Code Zeilen etwas kommentieren was in den jeweiligen Zeilen passiert, ich lerne gerne mit ;-)

          Bg

          Joe

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @peppino sagte:

          Code Zeilen etwas kommentieren was in den jeweiligen Zeilen passiert

          Erledigt (siehe oben).

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          P 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @peppino sagte:

            Code Zeilen etwas kommentieren was in den jeweiligen Zeilen passiert

            Erledigt (siehe oben).

            P Offline
            P Offline
            peppino
            schrieb am zuletzt editiert von
            #5

            @paul53 said in string zerlegen:

            @peppino sagte:

            Code Zeilen etwas kommentieren was in den jeweiligen Zeilen passiert

            Erledigt (siehe oben).

            Danke Dir!

            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
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            483

            Online

            32.8k

            Benutzer

            82.9k

            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