NEWS
Zwei Strings zusammenführen
-
@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", "");@peterfido vielen Dank, probiere es gleich morgen früh aus! Melde mich. :)
-
@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", "");@peterfido Es funktioniert! Vielen lieben Dank für deine Hilfe und deine Gedult!! <3
-
@peterfido Es funktioniert! Vielen lieben Dank für deine Hilfe und deine Gedult!! <3
@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.
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