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. ioBroker Allgemein
  4. string zerlegen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

string zerlegen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
regexparser
5 Beiträge 2 Kommentatoren 1.6k Aufrufe 1 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.
  • 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
            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

            775

            Online

            32.5k

            Benutzer

            81.7k

            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