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. Zwei Strings zusammenführen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    893

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Zwei Strings zusammenführen

Geplant Angeheftet Gesperrt Verschoben Node-Red
23 Beiträge 2 Kommentatoren 1.5k 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.
  • P peterfido

    @ju_ probiere mal:

    [
        {
            "id": "5b74298a9d871858",
            "type": "function",
            "z": "e85adb77025ff03d",
            "name": "function 3",
            "func": "if(msg.topic==\"Datum\"){\n    flow.set(\"GelbDatum\", msg.payload.slice(0,8));\n}\nif(msg.topic==\"Tage\"){\n    var s = msg.payload;\n    for(var i=1;i<s.length;i++){\n        var x = s.slice(i,i+1);\n        if(isNaN(x)){\n            flow.set(\"GelbTage\", s.slice(0,i-1));\n            break;\n        }\n    }\n}\nnode.status({ text: flow.get(\"GelbDatum\") + flow.get(\"GelbTage\") + \" \" + x });\n\nif(flow.get(\"GelbDatum\").length > 0  && flow.get(\"GelbTage\").length > 0) {\n    msg.payload = flow.get(\"GelbDatum\").slice(0,8) + \" (\" + flow.get(\"GelbTage\") + \"d)\";\n    node.status({text: msg.payload});\n    return msg;\n}",
            "outputs": 1,
            "timeout": 0,
            "noerr": 0,
            "initialize": "// Der Code hier wird ausgeführt,\n// wenn der Node gestartet wird\nflow.set(\"GelbDatum\",\"\");\nflow.set(\"GelbTage\", \"\");\n",
            "finalize": "",
            "libs": [],
            "x": 620,
            "y": 200,
            "wires": [
                [
                    "cccfb4eb94a27733"
                ]
            ]
        }
    ]
    

    Ich habe die Strings jetzt nach der erwarteten Länge abgeschnitten.

    Im Prinzip nur die Function Node:

    if(msg.topic=="Datum"){
        flow.set("GelbDatum", msg.payload.slice(0,8));
    }
    if(msg.topic=="Tage"){
        var s = msg.payload;
        for(var i=1;i<s.length;i++){
            var x = s.slice(i,i+1);
            if(isNaN(x)){
                flow.set("GelbTage", s.slice(0,i-1));
                break;
            }
        }
    }
    node.status({ text: flow.get("GelbDatum") + flow.get("GelbTage") + " " + x });
    
    if(flow.get("GelbDatum").length > 0  && flow.get("GelbTage").length > 0) {
        msg.payload = flow.get("GelbDatum").slice(0,8) + " (" + flow.get("GelbTage") + "d)";
        node.status({text: msg.payload});
        return msg;
    }
    

    Ich habe es nochmal editiert.

    Im Start-Bereich der Function die Variablen zurücksetzen. Sonst bleiben die alten Werte.

    flow.set("GelbDatum","");
    flow.set("GelbTage", "");
    
    J Offline
    J Offline
    JU_
    schrieb am zuletzt editiert von
    #21

    @peterfido vielen Dank, probiere es gleich morgen früh aus! Melde mich. :)

    1 Antwort Letzte Antwort
    0
    • P peterfido

      @ju_ probiere mal:

      [
          {
              "id": "5b74298a9d871858",
              "type": "function",
              "z": "e85adb77025ff03d",
              "name": "function 3",
              "func": "if(msg.topic==\"Datum\"){\n    flow.set(\"GelbDatum\", msg.payload.slice(0,8));\n}\nif(msg.topic==\"Tage\"){\n    var s = msg.payload;\n    for(var i=1;i<s.length;i++){\n        var x = s.slice(i,i+1);\n        if(isNaN(x)){\n            flow.set(\"GelbTage\", s.slice(0,i-1));\n            break;\n        }\n    }\n}\nnode.status({ text: flow.get(\"GelbDatum\") + flow.get(\"GelbTage\") + \" \" + x });\n\nif(flow.get(\"GelbDatum\").length > 0  && flow.get(\"GelbTage\").length > 0) {\n    msg.payload = flow.get(\"GelbDatum\").slice(0,8) + \" (\" + flow.get(\"GelbTage\") + \"d)\";\n    node.status({text: msg.payload});\n    return msg;\n}",
              "outputs": 1,
              "timeout": 0,
              "noerr": 0,
              "initialize": "// Der Code hier wird ausgeführt,\n// wenn der Node gestartet wird\nflow.set(\"GelbDatum\",\"\");\nflow.set(\"GelbTage\", \"\");\n",
              "finalize": "",
              "libs": [],
              "x": 620,
              "y": 200,
              "wires": [
                  [
                      "cccfb4eb94a27733"
                  ]
              ]
          }
      ]
      

      Ich habe die Strings jetzt nach der erwarteten Länge abgeschnitten.

      Im Prinzip nur die Function Node:

      if(msg.topic=="Datum"){
          flow.set("GelbDatum", msg.payload.slice(0,8));
      }
      if(msg.topic=="Tage"){
          var s = msg.payload;
          for(var i=1;i<s.length;i++){
              var x = s.slice(i,i+1);
              if(isNaN(x)){
                  flow.set("GelbTage", s.slice(0,i-1));
                  break;
              }
          }
      }
      node.status({ text: flow.get("GelbDatum") + flow.get("GelbTage") + " " + x });
      
      if(flow.get("GelbDatum").length > 0  && flow.get("GelbTage").length > 0) {
          msg.payload = flow.get("GelbDatum").slice(0,8) + " (" + flow.get("GelbTage") + "d)";
          node.status({text: msg.payload});
          return msg;
      }
      

      Ich habe es nochmal editiert.

      Im Start-Bereich der Function die Variablen zurücksetzen. Sonst bleiben die alten Werte.

      flow.set("GelbDatum","");
      flow.set("GelbTage", "");
      
      J Offline
      J Offline
      JU_
      schrieb am zuletzt editiert von
      #22

      @peterfido Es funktioniert! Vielen lieben Dank für deine Hilfe und deine Gedult!! <3

      P 1 Antwort Letzte Antwort
      0
      • J JU_

        @peterfido Es funktioniert! Vielen lieben Dank für deine Hilfe und deine Gedult!! <3

        P Offline
        P Offline
        peterfido
        schrieb am zuletzt editiert von peterfido
        #23

        @ju_ Prima. Danke für die Rückmeldung.

        Edit: In den beiden Change-Nodes kann die Regel, wo die Werte nach flow.Datum und flow.Tage geschrieben werden, raus. Da brauchts nur das Topic. Den Rest macht die Function.

        Die nimmt vom Datum die ersten 8 Stellen und vom Tage sucht die sich nur die Ziffern am Anfang raus. Wenn beides gefunden wurde, wird es weitergeleitet.

        Gruß

        Peterfido


        Proxmox auf Intel NUC12WSHi5
        ioBroker: Debian (VM)
        CCU: Debmatic (VM)
        Influx: Debian (VM)
        Grafana: Debian (VM)
        eBus: Debian (VM)
        Zigbee: Debian (VM) mit zigbee2mqtt

        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

        535

        Online

        32.6k

        Benutzer

        82.1k

        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