NEWS
Zwei Strings zusammenführen
-
@ju_ probiere es mal als Code. So lässt es sich nicht importieren. Code-Symbol ist </>
-
@peterfido ```
[{"id":"90489d5f43af09b5","type":"knxUltimate","z":"de15a47dbea6c285","server":"98b73fada3be00aa","topic":"8/1/0","setTopicType":"str","outputtopic":"","dpt":"16.001","initialread":"1","notifyreadrequest":false,"notifyresponse":true,"notifywrite":true,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","name":"Gelbe Tonne Datum","outputtype":"write","outputRBE":"true","inputRBE":"false","formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"no","sendMsgToKNXCode":"","receiveMsgFromKNXCode":"","listenallga":false,"x":130,"y":100,"wires":[["02034f10ed38c317"]]},{"id":"a2dbe9c2f590573a","type":"knxUltimate","z":"de15a47dbea6c285","server":"98b73fada3be00aa","topic":"8/2/0","setTopicType":"str","outputtopic":"","dpt":"16.001","initialread":"1","notifyreadrequest":false,"notifyresponse":true,"notifywrite":true,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","name":"Gelbe Tonne Tage","outputtype":"write","outputRBE":"true","inputRBE":"false","formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"no","sendMsgToKNXCode":"","receiveMsgFromKNXCode":"","listenallga":false,"x":130,"y":160,"wires":[["4ea9b5ca4631e2ce"]]},{"id":"02034f10ed38c317","type":"change","z":"de15a47dbea6c285","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"Datum","tot":"str"},{"t":"set","p":"GelbDatum","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":100,"wires":[["5b74298a9d871858"]]},{"id":"4ea9b5ca4631e2ce","type":"change","z":"de15a47dbea6c285","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"Tage","tot":"str"},{"t":"set","p":"GelbTage","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":160,"wires":[["5b74298a9d871858"]]},{"id":"58a426e6d74f6020","type":"knxUltimate","z":"de15a47dbea6c285","server":"98b73fada3be00aa","topic":"8/3/0","setTopicType":"str","outputtopic":"","dpt":"16.001","initialread":0,"notifyreadrequest":false,"notifyresponse":false,"notifywrite":true,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","name":"Zusammengesetztes Datum Gelb","outputtype":"write","outputRBE":"true","inputRBE":"false","formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"no","sendMsgToKNXCode":"","receiveMsgFromKNXCode":"","listenallga":false,"x":1230,"y":100,"wires":[[]]},{"id":"2861740aaba0f1c9","type":"inject","z":"de15a47dbea6c285","name":"Manuelle Betätigung","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"27.01.25 (10d)","payloadType":"str","x":890,"y":20,"wires":[["58a426e6d74f6020"]]},{"id":"d22d4525c542b4d0","type":"debug","z":"de15a47dbea6c285","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1140,"y":180,"wires":[]},{"id":"cccfb4eb94a27733","type":"change","z":"de15a47dbea6c285","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"8/3/0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":850,"y":100,"wires":[["58a426e6d74f6020","d22d4525c542b4d0"]]},{"id":"5b74298a9d871858","type":"function","z":"de15a47dbea6c285","name":"function 3","func":"msg.payload = flow.get("GelbDatum") + " (" + flow.get("GelbTage") + "d)";\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":100,"wires":[["cccfb4eb94a27733"]]},{"id":"141076626e9e6cf8","type":"inject","z":"de15a47dbea6c285","name":"Manuelle Betätigung","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":350,"y":40,"wires":[["5b74298a9d871858"]]},{"id":"98b73fada3be00aa","type":"knxUltimate-config","host":"10.0.0.2","port":"3671","physAddr":"1.1.64","hostProtocol":"TunnelUDP","suppressACKRequest":false,"csv":"","KNXEthInterface":"Auto","KNXEthInterfaceManuallyInput":"","stopETSImportIfNoDatapoint":"fake","loglevel":"error","name":"KNX Gateway","localEchoInTunneling":true,"delaybetweentelegrams":"50","ignoreTelegramsWithRepeatedFlag":false,"autoReconnect":"yes"}] -
@ju_ Das Symbol anklicken und dann zwischen den '' einfügen.
-
@peterfido habe ich verstanden, ist oben geändert. Sorry
-
@ju_ Fast
Sollte so aussehen:
[ { "id": "076b7140f384fc31", "type": "tab", "label": "Flow 2", "disabled": false, "info": "", "env": [] }, { "id": "4be12d8e923cd33b", "type": "knxUltimate", "z": "076b7140f384fc31", "server": "2e5af07acfd111fe", "topic": "8/3/0", "setTopicType": "str", "outputtopic": "", "dpt": "16.000", "initialread": 0, "notifyreadrequest": false, "notifyresponse": false, "notifywrite": true, "notifyreadrequestalsorespondtobus": false, "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0", "name": "", "outputtype": "write", "outputRBE": "true", "inputRBE": "false", "formatmultiplyvalue": 1, "formatnegativevalue": "leave", "formatdecimalsvalue": 999, "passthrough": "yes", "sendMsgToKNXCode": "", "receiveMsgFromKNXCode": "", "listenallga": false, "x": 360, "y": 100, "wires": [ [ "2d3c593b7f85b176" ] ] }, { "id": "b0b348a7ad1db526", "type": "inject", "z": "076b7140f384fc31", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "30.01.25 (13d)", "payloadType": "str", "x": 170, "y": 100, "wires": [ [ "4be12d8e923cd33b" ] ] }, { "id": "2d3c593b7f85b176", "type": "debug", "z": "076b7140f384fc31", "name": "debug 2", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 560, "y": 100, "wires": [] }, { "id": "2e5af07acfd111fe", "type": "knxUltimate-config", "host": "224.0.23.12", "port": "3671", "physAddr": "15.15.22", "hostProtocol": "Auto", "suppressACKRequest": false, "csv": "", "KNXEthInterface": "Auto", "KNXEthInterfaceManuallyInput": "", "stopETSImportIfNoDatapoint": "fake", "loglevel": "error", "name": "KNX Gateway", "localEchoInTunneling": true, "delaybetweentelegrams": "25", "ignoreTelegramsWithRepeatedFlag": false, "autoReconnect": "yes" } ]
-
@peterfido jetzt
[ { "id": "90489d5f43af09b5", "type": "knxUltimate", "z": "de15a47dbea6c285", "server": "98b73fada3be00aa", "topic": "8/1/0", "setTopicType": "str", "outputtopic": "", "dpt": "16.001", "initialread": "1", "notifyreadrequest": false, "notifyresponse": true, "notifywrite": true, "notifyreadrequestalsorespondtobus": false, "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0", "name": "Gelbe Tonne Datum", "outputtype": "write", "outputRBE": "true", "inputRBE": "false", "formatmultiplyvalue": 1, "formatnegativevalue": "leave", "formatdecimalsvalue": 999, "passthrough": "no", "sendMsgToKNXCode": "", "receiveMsgFromKNXCode": "", "listenallga": false, "x": 130, "y": 100, "wires": [ [ "02034f10ed38c317" ] ] }, { "id": "a2dbe9c2f590573a", "type": "knxUltimate", "z": "de15a47dbea6c285", "server": "98b73fada3be00aa", "topic": "8/2/0", "setTopicType": "str", "outputtopic": "", "dpt": "16.001", "initialread": "1", "notifyreadrequest": false, "notifyresponse": true, "notifywrite": true, "notifyreadrequestalsorespondtobus": false, "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0", "name": "Gelbe Tonne Tage", "outputtype": "write", "outputRBE": "true", "inputRBE": "false", "formatmultiplyvalue": 1, "formatnegativevalue": "leave", "formatdecimalsvalue": 999, "passthrough": "no", "sendMsgToKNXCode": "", "receiveMsgFromKNXCode": "", "listenallga": false, "x": 130, "y": 160, "wires": [ [ "4ea9b5ca4631e2ce" ] ] }, { "id": "02034f10ed38c317", "type": "change", "z": "de15a47dbea6c285", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Datum", "tot": "str" }, { "t": "set", "p": "GelbDatum", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 360, "y": 100, "wires": [ [ "5b74298a9d871858" ] ] }, { "id": "4ea9b5ca4631e2ce", "type": "change", "z": "de15a47dbea6c285", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Tage", "tot": "str" }, { "t": "set", "p": "GelbTage", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 360, "y": 160, "wires": [ [ "5b74298a9d871858" ] ] }, { "id": "58a426e6d74f6020", "type": "knxUltimate", "z": "de15a47dbea6c285", "server": "98b73fada3be00aa", "topic": "8/3/0", "setTopicType": "str", "outputtopic": "", "dpt": "16.001", "initialread": 0, "notifyreadrequest": false, "notifyresponse": false, "notifywrite": true, "notifyreadrequestalsorespondtobus": false, "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0", "name": "Zusammengesetztes Datum Gelb", "outputtype": "write", "outputRBE": "true", "inputRBE": "false", "formatmultiplyvalue": 1, "formatnegativevalue": "leave", "formatdecimalsvalue": 999, "passthrough": "no", "sendMsgToKNXCode": "", "receiveMsgFromKNXCode": "", "listenallga": false, "x": 1230, "y": 100, "wires": [ [] ] }, { "id": "2861740aaba0f1c9", "type": "inject", "z": "de15a47dbea6c285", "name": "Manuelle Betätigung", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "27.01.25 (10d)", "payloadType": "str", "x": 890, "y": 20, "wires": [ [ "58a426e6d74f6020" ] ] }, { "id": "d22d4525c542b4d0", "type": "debug", "z": "de15a47dbea6c285", "name": "debug 1", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1140, "y": 180, "wires": [] }, { "id": "cccfb4eb94a27733", "type": "change", "z": "de15a47dbea6c285", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "8/3/0", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 100, "wires": [ [ "58a426e6d74f6020", "d22d4525c542b4d0" ] ] }, { "id": "5b74298a9d871858", "type": "function", "z": "de15a47dbea6c285", "name": "function 3", "func": "msg.payload = flow.get(\"GelbDatum\") + \" (\" + flow.get(\"GelbTage\") + \"d)\";\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 620, "y": 100, "wires": [ [ "cccfb4eb94a27733" ] ] }, { "id": "141076626e9e6cf8", "type": "inject", "z": "de15a47dbea6c285", "name": "Manuelle Betätigung", "props": [ { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 350, "y": 40, "wires": [ [ "5b74298a9d871858" ] ] }, { "id": "98b73fada3be00aa", "type": "knxUltimate-config", "host": "10.0.0.2", "port": "3671", "physAddr": "1.1.64", "hostProtocol": "TunnelUDP", "suppressACKRequest": false, "csv": "", "KNXEthInterface": "Auto", "KNXEthInterfaceManuallyInput": "", "stopETSImportIfNoDatapoint": "fake", "loglevel": "error", "name": "KNX Gateway", "localEchoInTunneling": true, "delaybetweentelegrams": "50", "ignoreTelegramsWithRepeatedFlag": false, "autoReconnect": "yes" } ]
-
@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.
-
@peterfido Es funktioniert! Vielen lieben Dank für deine Hilfe und deine Gedult!!
-
@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.