Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. NodeRed function node soll toipc übernehmen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    NodeRed function node soll toipc übernehmen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Frank Traut
      Frank Traut @mickym last edited by

      4.JPG
      Knapp daneben. Jetzt steht der Name mit in dem Wert.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Frank Traut last edited by mickym

        @frank-traut War das eine Frage? Was macht die Function Node noch? Wie sieht es in der Change NOde aus? Was willst Du erreichen - einen JSON String zu schreiben? Du willst die Keys programmatisch erzeugen?

        Frank Traut 1 Reply Last reply Reply Quote 1
        • Frank Traut
          Frank Traut @mickym last edited by

          @mickym 8.JPG
          Links haben ich viele Geräte. Alles geben unterschiedliche Werte aus und haben unterscheidliche Namen.
          Dann gehen die Werte auf die Funtion node und dann in die iot.
          Was die Funtion-note noch macht, weißt ich nicht. Ohne geht es aber nicht.
          Die Werte müssen dann wie beschireben aus der Funktion in das MQTT-In Node laufen. Nur so werden die Werte richtig zugeordnet und können im Thingsboard verwendet werden.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Frank Traut last edited by

            @frank-traut So mein Ansatz wäre ein komplett anderer.

            Mach mal in Deine Inject Nodes unter msg.topic wie das später wirklich reinkommt und ein Beispielwert - dann gibst Du alles in eine JOIN Node und wandelst es vielleicht noch in einen JSON String um.

            Ich zeigs Dir mal anhand von 2 Inject Nodes.

            Frank Traut 1 Reply Last reply Reply Quote 1
            • Frank Traut
              Frank Traut @mickym last edited by

              Das klingt super 🙂
              @mickym aa.JPG
              so kommen die Werte rein.

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Frank Traut last edited by

                @frank-traut Ganz ohne Programmieren - das was halt NodeRed kann. 😉

                c2b823da-7a39-450e-8068-0a46e6b2d7db-image.png

                Hier der Flow zum inportieren:

                [
                    {
                        "id": "31bdef5c.ed36e",
                        "type": "inject",
                        "z": "dce8fa20.2e93c8",
                        "name": "",
                        "props": [
                            {
                                "p": "payload"
                            },
                            {
                                "p": "topic",
                                "vt": "str"
                            }
                        ],
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "topic": "Gerät1",
                        "payload": "Ein Wert von Gerät 1",
                        "payloadType": "str",
                        "x": 1860,
                        "y": 3040,
                        "wires": [
                            [
                                "ba02a6fc.2c0998",
                                "bc331dbc.1c7b9"
                            ]
                        ]
                    },
                    {
                        "id": "1e2a7c04.762824",
                        "type": "inject",
                        "z": "dce8fa20.2e93c8",
                        "name": "",
                        "props": [
                            {
                                "p": "payload"
                            },
                            {
                                "p": "topic",
                                "vt": "str"
                            }
                        ],
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "topic": "Gerät2",
                        "payload": "Ein Wert von Gerät 2",
                        "payloadType": "str",
                        "x": 1860,
                        "y": 3100,
                        "wires": [
                            [
                                "ba02a6fc.2c0998",
                                "d116cd15.ec076"
                            ]
                        ]
                    },
                    {
                        "id": "ba02a6fc.2c0998",
                        "type": "join",
                        "z": "dce8fa20.2e93c8",
                        "name": "",
                        "mode": "custom",
                        "build": "object",
                        "property": "payload",
                        "propertyType": "msg",
                        "key": "topic",
                        "joiner": "\\n",
                        "joinerType": "str",
                        "accumulate": true,
                        "timeout": "",
                        "count": "1",
                        "reduceRight": false,
                        "reduceExp": "",
                        "reduceInit": "",
                        "reduceInitType": "",
                        "reduceFixup": "",
                        "x": 2140,
                        "y": 3060,
                        "wires": [
                            [
                                "66680e32.0877c",
                                "f087dbc4.94a158"
                            ]
                        ]
                    },
                    {
                        "id": "bc331dbc.1c7b9",
                        "type": "debug",
                        "z": "dce8fa20.2e93c8",
                        "name": "Input Gerät1",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "true",
                        "targetType": "full",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 2160,
                        "y": 2980,
                        "wires": []
                    },
                    {
                        "id": "d116cd15.ec076",
                        "type": "debug",
                        "z": "dce8fa20.2e93c8",
                        "name": "Input Gerät2",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "true",
                        "targetType": "full",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 2150,
                        "y": 3140,
                        "wires": []
                    },
                    {
                        "id": "66680e32.0877c",
                        "type": "debug",
                        "z": "dce8fa20.2e93c8",
                        "name": "Aufbau Objekt",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "true",
                        "targetType": "full",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 2400,
                        "y": 3140,
                        "wires": []
                    },
                    {
                        "id": "f087dbc4.94a158",
                        "type": "json",
                        "z": "dce8fa20.2e93c8",
                        "name": "",
                        "property": "payload",
                        "action": "",
                        "pretty": false,
                        "x": 2370,
                        "y": 3060,
                        "wires": [
                            [
                                "fb6c9ca8.21775"
                            ]
                        ]
                    },
                    {
                        "id": "fb6c9ca8.21775",
                        "type": "debug",
                        "z": "dce8fa20.2e93c8",
                        "name": "JSON String - MQTT",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "payload",
                        "targetType": "msg",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 2620,
                        "y": 3060,
                        "wires": []
                    }
                ]
                
                1 Reply Last reply Reply Quote 1
                • mickym
                  mickym Most Active @Frank Traut last edited by

                  @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                  Moin Moin,
                  für MQTT benötige ich ein kleines "function-Node".
                  Ich muss die Topic (gebe ich bei Name1 und Name2 als "msg.topic" mit) in der Ausgabe irgendwie in den unterstrichenen Bereich bekommen. Die Topic wird aber leider immer nur als extra Spalte angegeben. Was mache ich falsch?

                  bg Frank

                  Funktioniert es oder brauchst Du immer noch eine Function Node?

                  Frank Traut 1 Reply Last reply Reply Quote 1
                  • Frank Traut
                    Frank Traut @mickym last edited by

                    @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Frank Traut last edited by mickym

                      @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                      @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

                      Passt scho. 😉 Es freut mich ja selbst, wenn ich helfen konnte. Ich musste ja auch Lernen.

                      Nur ein kleiner Tipp für die Zukunft 😉 :
                      Wenn Du Dir mal Dein Eingangsposting anschaust und was nun dabei rausgekommen ist. Manchmal ist es einfacher das Problem im Großen zu schildern, dann kann man oft besser helfen, als wenn ich Dir nur beschreibe, wie Du eine payload aus unterschiedlichen Strings zusammensetzt und Du ja auch noch soviel anderes hättes unnötigerweise programmieren müssen. Es reicht ja nicht nur, dass Du diese Strings dann zusammengesetzt hättest, sondern Du hättest ja jedes Mal nach dem Key in Deinen Strings suchen müssen, wenn sich der Wert geändert hätte.

                      Da hättest Du Dir Stunden und Tage Programmierarbeit aufgehalst, die die Node-Entwickler der JOIN Node bereits gemacht haben.

                      Also viel Spaß weiterhin mit NodeRed. Ich kann immer nur wieder sagen, ich liebe es inzwischen. 😉

                      Frank Traut 2 Replies Last reply Reply Quote 1
                      • Frank Traut
                        Frank Traut @mickym last edited by

                        @mickym Super! Werde ich mir zu Herzen nehmen!

                        1 Reply Last reply Reply Quote 0
                        • Frank Traut
                          Frank Traut @mickym last edited by

                          @mickym
                          Hi, ich hätte da noch eine Sache.
                          Ich würde gerne bei der Nachrichten einen Timestep nach folgender Vorgabe mitgeben:

                          {"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
                          Quelle: https://thingsboard.io/docs/reference/mqtt-api/ (Telemetry upload API)

                          Ich brauche also den "values"-Teil und den Timestep-Teil.
                          Mit einem Timestep und dem Join-node komme ich leider nicht weiter, weil ja der Timestep immer dann auslösen muss, wenn Nachrichten reinkommen - Ich habe aber leider keinen festen Auslöspunkt.
                          Mein Subflow für die Übertragung sieht jetzt so aus:

                          [{"id":"bf4174a4.dbbe6","type":"subflow","name":"NodeRed->TB","info":"","category":"","in":[{"x":240,"y":220,"wires":[{"id":"5b19eba3.5f6444"}]}],"out":[{"x":840,"y":220,"wires":[{"id":"40eaa341.edd0d4","port":0}]}],"env":[],"color":"#DDAA99"},{"id":"5b19eba3.5f6444","type":"join","z":"bf4174a4.dbbe6","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":390,"y":220,"wires":[["48cab473.26637c","40eaa341.edd0d4"]]},{"id":"48cab473.26637c","type":"debug","z":"bf4174a4.dbbe6","name":"Aufbau Objekt","active":true,"tosidebar":false,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":540,"y":280,"wires":[]},{"id":"40eaa341.edd0d4","type":"json","z":"bf4174a4.dbbe6","name":"","property":"payload","action":"","pretty":false,"x":570,"y":220,"wires":[["c385db35.b5a488"]]},{"id":"c385db35.b5a488","type":"debug","z":"bf4174a4.dbbe6","name":"JSON String - MQTT","active":true,"tosidebar":false,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":560,"y":160,"wires":[]}]
                          

                          Hast du ne Idee? Der Subflow ist quasi genau dein Code.
                          bg

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Frank Traut last edited by mickym

                            @frank-traut Ehrlich gesagt im ersten Moment verstand ich nur Bahnhof. Du hast mir jedenfalls alles andere als "meinen Subflow" gepostet. 😉 😉 Inzwischen hoffe ich aber, einfach Deine Anforderung umgesetzt zu haben. 😉

                            Also hier mein ursprünglicher Flow mit dem Timestamp ergänzt.

                            [
                                {
                                    "id": "cc5a699c.5b95e8",
                                    "type": "inject",
                                    "z": "2821dd31.a0dd62",
                                    "name": "",
                                    "props": [
                                        {
                                            "p": "payload"
                                        },
                                        {
                                            "p": "topic",
                                            "vt": "str"
                                        }
                                    ],
                                    "repeat": "",
                                    "crontab": "",
                                    "once": false,
                                    "onceDelay": 0.1,
                                    "topic": "key1",
                                    "payload": "value1",
                                    "payloadType": "str",
                                    "x": 510,
                                    "y": 1580,
                                    "wires": [
                                        [
                                            "535efea7.5d7d2"
                                        ]
                                    ]
                                },
                                {
                                    "id": "cc5cf91d.e86dd8",
                                    "type": "inject",
                                    "z": "2821dd31.a0dd62",
                                    "name": "",
                                    "props": [
                                        {
                                            "p": "payload"
                                        },
                                        {
                                            "p": "topic",
                                            "vt": "str"
                                        }
                                    ],
                                    "repeat": "",
                                    "crontab": "",
                                    "once": false,
                                    "onceDelay": 0.1,
                                    "topic": "key2",
                                    "payload": "value2",
                                    "payloadType": "str",
                                    "x": 510,
                                    "y": 1640,
                                    "wires": [
                                        [
                                            "535efea7.5d7d2"
                                        ]
                                    ]
                                },
                                {
                                    "id": "535efea7.5d7d2",
                                    "type": "join",
                                    "z": "2821dd31.a0dd62",
                                    "name": "",
                                    "mode": "custom",
                                    "build": "object",
                                    "property": "payload",
                                    "propertyType": "msg",
                                    "key": "topic",
                                    "joiner": "\\n",
                                    "joinerType": "str",
                                    "accumulate": true,
                                    "timeout": "",
                                    "count": "1",
                                    "reduceRight": false,
                                    "reduceExp": "",
                                    "reduceInit": "",
                                    "reduceInitType": "",
                                    "reduceFixup": "",
                                    "x": 700,
                                    "y": 1600,
                                    "wires": [
                                        [
                                            "a78ff8d6.108498"
                                        ]
                                    ]
                                },
                                {
                                    "id": "ccbb833c.4dcc7",
                                    "type": "debug",
                                    "z": "2821dd31.a0dd62",
                                    "name": "JSON String - MQTT",
                                    "active": true,
                                    "tosidebar": true,
                                    "console": false,
                                    "tostatus": false,
                                    "complete": "true",
                                    "targetType": "full",
                                    "statusVal": "",
                                    "statusType": "auto",
                                    "x": 1360,
                                    "y": 1600,
                                    "wires": []
                                },
                                {
                                    "id": "a78ff8d6.108498",
                                    "type": "change",
                                    "z": "2821dd31.a0dd62",
                                    "name": "Timestamp setzen und Objekt bilden",
                                    "rules": [
                                        {
                                            "t": "move",
                                            "p": "payload",
                                            "pt": "msg",
                                            "to": "values",
                                            "tot": "msg"
                                        },
                                        {
                                            "t": "set",
                                            "p": "payload.ts",
                                            "pt": "msg",
                                            "to": "",
                                            "tot": "date"
                                        },
                                        {
                                            "t": "move",
                                            "p": "values",
                                            "pt": "msg",
                                            "to": "payload.values",
                                            "tot": "msg"
                                        }
                                    ],
                                    "action": "",
                                    "property": "",
                                    "from": "",
                                    "to": "",
                                    "reg": false,
                                    "x": 950,
                                    "y": 1600,
                                    "wires": [
                                        [
                                            "5ef66e6c.2549f"
                                        ]
                                    ]
                                },
                                {
                                    "id": "5ef66e6c.2549f",
                                    "type": "json",
                                    "z": "2821dd31.a0dd62",
                                    "name": "",
                                    "property": "payload",
                                    "action": "",
                                    "pretty": false,
                                    "x": 1170,
                                    "y": 1600,
                                    "wires": [
                                        [
                                            "ccbb833c.4dcc7"
                                        ]
                                    ]
                                }
                            ]
                            

                            9153c55d-70d5-443d-b679-db733ef7e24e-image.png

                            Damit sieht das Objekt bzw. der JSON-String exakt so aus, wie in Deiner Vorgabe:

                            screen.png

                            Da die JOIN Node ja mit jeder Nachricht diese sofort weitergibt, wird der Timestamp auch immer aktualisiert.

                            Im Prinip also nur die Change Node zwischen die JOIN Node und die JSON Node schieben und das wars!

                            Das würde ja dann diesem Bild aus Deinem Link entsprechen:

                            16f13dcf-6943-4f8f-99c9-057dc3a80aca-image.png

                            Frank Traut 1 Reply Last reply Reply Quote 1
                            • Frank Traut
                              Frank Traut @mickym last edited by

                              @mickym Sieht gut aus! Auf dem Testsystem klappt das schon Mal ohne Probleme 🙂

                              Frank Traut 1 Reply Last reply Reply Quote 0
                              • Frank Traut
                                Frank Traut @Frank Traut last edited by

                                @mickym
                                Ich hab da mal noch eine Frage 🐶
                                Ich möchte Daten aus Thindgsboard in die S7 schicken:
                                Unbenannt.JPG
                                Links Thingsboard -> rechts S7
                                Die Daten werden korrekt aus TB aboniert und auch an die Nodes für die S7 weitergegeben. Immer mit dem Schema "Name" "Satus". Unter den S7-Nodes sieht man auch, dass Werte ankommen. Die S7-Nodes übernhemen aber die Werte nicht.
                                Was gehen würde: Mit Split und Switch-Node von Hand die Werte trennen. Das wäre extrem aufwendig, weil ich mehr als nur die 4 Eingänge habe. Ich hatte schon Mal eine Lösung dafür - finde diese aber leider nicht wider.
                                Nachfolgend mein Code:

                                [{"id":"e6b2f5a5.f67e4","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"5832dbde.f274f4","type":"comment","z":"e6b2f5a5.f67e4","name":"Test: TB -> NodeRed -> S7","info":"","x":720,"y":160,"wires":[]},{"id":"7b6c8520.abff4c","type":"mqtt in","z":"e6b2f5a5.f67e4","name":"","topic":"v1/devices/me/attributes","qos":"1","datatype":"auto","broker":"d6a1db0.7bf03a8","x":570,"y":240,"wires":[["fb3e812f.5f3518","10d7ba9c.c296b5","169520d1.0b58af","cafa5741.a85778","af40042.86e75f8"]]},{"id":"fb3e812f.5f3518","type":"debug","z":"e6b2f5a5.f67e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":790,"y":540,"wires":[]},{"id":"10d7ba9c.c296b5","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1555)_betriebsstunden_p1","name":"","x":960,"y":240,"wires":[]},{"id":"7b14759d.8b13bc","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1555)_betriebsstunden_p1","name":"","x":860,"y":840,"wires":[]},{"id":"b774c83c.f619d8","type":"inject","z":"e6b2f5a5.f67e4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":578,"y":841,"wires":[["7b14759d.8b13bc","ba50d833.15818"]]},{"id":"9120c446.14b768","type":"inject","z":"e6b2f5a5.f67e4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":588,"y":901,"wires":[["7b14759d.8b13bc","ba50d833.15818"]]},{"id":"ba50d833.15818","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1556)_betriebsstunden_p2","name":"","x":870,"y":900,"wires":[]},{"id":"169520d1.0b58af","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1501)_run_stop","name":"","x":930,"y":300,"wires":[]},{"id":"cafa5741.a85778","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1541)_anlagenlaufzeit_monat_8","name":"","x":980,"y":360,"wires":[]},{"id":"af40042.86e75f8","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1563)_betriebsstunden_09","name":"","x":960,"y":420,"wires":[]},{"id":"d6a1db0.7bf03a8","type":"mqtt-broker","name":"NodeRed_out","broker":"138.197.182.168","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"5dd03a7c.af7b9c","type":"s7 endpoint","transport":"iso-on-tcp","address":"172.16.58.1","port":"102","rack":"0","slot":"0","localtsaphi":"01","localtsaplo":"00","remotetsaphi":"01","remotetsaplo":"00","connmode":"rack-slot","adapter":"","busaddr":"2","cycletime":"3000","timeout":"2000","name":"TB_NodeRed_S7","vartable":[{"addr":"DB1500,X0.0","name":"(1501)_run_stop"},{"addr":"DB1500,X0.1","name":"(1502)_anlagentyp1_2"},{"addr":"DB1500,X0.2","name":"(1503)_basic_03"},{"addr":"DB1500,X0.3","name":"(1504)_basic_04"},{"addr":"DB1500,X0.4","name":"(1505)_basic_05"},{"addr":"DB1500,X0.5","name":"(1506)_basic_06"},{"addr":"DB1500,X0.6","name":"(1507)_basic_07"},{"addr":"DB1500,X0.7","name":"(1508)_basic_08"},{"addr":"DB1500,X1.0","name":"(1509)_basic_09"},{"addr":"DB1500,WORD2","name":"(1510)_anlagenleistung_monat_1"},{"addr":"DB1500,WORD4","name":"(1511)_anlagenleistung_monat_2"},{"addr":"DB1500,WORD6","name":"(1512)_anlagenleistung_monat_3"},{"addr":"DB1500,WORD8","name":"(1513)_anlagenleistung_monat_4"},{"addr":"DB1500,WORD10","name":"(1514)_anlagenleistung_monat_5"},{"addr":"DB1500,WORD12","name":"(1515)_anlagenleistung_monat_6"},{"addr":"DB1500,WORD14","name":"(1516)_anlagenleistung_monat_7"},{"addr":"DB1500,WORD16","name":"(1517)_anlagenleistung_monat_8"},{"addr":"DB1500,WORD18","name":"(1518)_anlagenleistung_monat_9"},{"addr":"DB1500,WORD20","name":"(1519)_anlagenleistung_monat_10"},{"addr":"DB1500,WORD22","name":"(1520)_anlagenleistung_monat_11"},{"addr":"DB1500,WORD24","name":"(1521)_anlagenleistung_monat_12"},{"addr":"DB1500,X26.0","name":"(1522)_anzahl_pumpen_monat_1"},{"addr":"DB1500,X26.1","name":"(1523)_anzahl_pumpen_monat_2"},{"addr":"DB1500,X26.2","name":"(1524)_anzahl_pumpen_monat_3"},{"addr":"DB1500,X26.3","name":"(1525)_anzahl_pumpen_monat_4"},{"addr":"DB1500,X26.4","name":"(1526)_anzahl_pumpen_monat_5"},{"addr":"DB1500,X26.5","name":"(1527)_anzahl_pumpen_monat_6"},{"addr":"DB1500,X26.6","name":"(1528)_anzahl_pumpen_monat_7"},{"addr":"DB1500,X26.7","name":"(1529)_anzahl_pumpen_monat_8"},{"addr":"DB1500,X27.0","name":"(1530)_anzahl_pumpen_monat_9"},{"addr":"DB1500,X27.1","name":"(1531)_anzahl_pumpen_monat_10"},{"addr":"DB1500,X27.2","name":"(1532)_anzahl_pumpen_monat_11"},{"addr":"DB1500,X27.3","name":"(1533)_anzahl_pumpen_monat_12"},{"addr":"DB1500,WORD28","name":"(1534)_anlagenlaufzeit_monat_1"},{"addr":"DB1500,WORD30","name":"(1535)_anlagenlaufzeit_monat_2"},{"addr":"DB1500,WORD32","name":"(1536)_anlagenlaufzeit_monat_3"},{"addr":"DB1500,WORD34","name":"(1537)_anlagenlaufzeit_monat_4"},{"addr":"DB1500,WORD36","name":"(1538)_anlagenlaufzeit_monat_5"},{"addr":"DB1500,WORD38","name":"(1539)_anlagenlaufzeit_monat_6"},{"addr":"DB1500,WORD40","name":"(1540)_anlagenlaufzeit_monat_7"},{"addr":"DB1500,WORD42","name":"(1541)_anlagenlaufzeit_monat_8"},{"addr":"DB1500,WORD44","name":"(1542)_anlagenlaufzeit_monat_9"},{"addr":"DB1500,WORD46","name":"(1543)_anlagenlaufzeit_monat_10"},{"addr":"DB1500,WORD48","name":"(1544)_anlagenlaufzeit_monat_11"},{"addr":"DB1500,WORD50","name":"(1545)_anlagenlaufzeit_monat_12"},{"addr":"DB1500,WORD52","name":"(1546)_temp_luft_1"},{"addr":"DB1500,WORD54","name":"(1547)_temp_luft_2"},{"addr":"DB1500,WORD56","name":"(1548)_temp_wasser_1"},{"addr":"DB1500,WORD58","name":"(1549)_temp_wasser_2"},{"addr":"DB1500,WORD60","name":"(1550)_messwert_05"},{"addr":"DB1500,WORD62","name":"(1551)_messwert_06"},{"addr":"DB1500,WORD64","name":"(1552)_messwert_07"},{"addr":"DB1500,WORD66","name":"(1553)_messwert_08"},{"addr":"DB1500,WORD68","name":"(1554)_messwert_09"},{"addr":"DB1500,WORD70","name":"(1555)_betriebsstunden_p1"},{"addr":"DB1500,WORD72","name":"(1556)_betriebsstunden_p2"},{"addr":"DB1500,WORD74","name":"(1557)_betriebsstunden_03"},{"addr":"DB1500,WORD76","name":"(1558)_betriebsstunden_04"},{"addr":"DB1500,WORD78","name":"(1559)_betriebsstunden_05"},{"addr":"DB1500,WORD80","name":"(1560)_betriebsstunden_06"},{"addr":"DB1500,WORD82","name":"(1561)_betriebsstunden_07"},{"addr":"DB1500,WORD84","name":"(1562)_betriebsstunden_08"},{"addr":"DB1500,WORD86","name":"(1563)_betriebsstunden_09"},{"addr":"DB1500,X106.0","name":"(1564)_alarm_ms_p1"},{"addr":"DB1500,X106.1","name":"(1565)_alarm_ms_p2"},{"addr":"DB1500,X106.2","name":"(1566)_temp_luft_1_hoch"},{"addr":"DB1500,X106.3","name":"(1567)_temp_luft_1_niedrig"},{"addr":"DB1500,X106.4","name":"(1568)_messfehler_temp_luft_1"},{"addr":"DB1500,X106.5","name":"(1569)_messfehler_temp_luft_2"},{"addr":"DB1500,X106.6","name":"(1570)_messfehler_temp_wasser_1"},{"addr":"DB1500,X106.7","name":"(1571)_messfehler_temp_wasser_2"},{"addr":"DB1500,X107.0","name":"(1572)_alarm_08"},{"addr":"DB1500,X107.1","name":"(1573)_alarm_09"}]}]
                                
                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Frank Traut last edited by mickym

                                  siehe nächster Beitrag

                                  mickym 1 Reply Last reply Reply Quote 1
                                  • mickym
                                    mickym Most Active @mickym last edited by mickym

                                    habs schon gesehen -

                                    [
                                        {
                                            "id": "c6a50eae.ea43c",
                                            "type": "json",
                                            "z": "6e170384.60c96c",
                                            "name": "",
                                            "property": "payload",
                                            "action": "",
                                            "pretty": false,
                                            "x": 1740,
                                            "y": 4220,
                                            "wires": [
                                                [
                                                    "e45442d.763bdc"
                                                ]
                                            ]
                                        },
                                        {
                                            "id": "e45442d.763bdc",
                                            "type": "change",
                                            "z": "6e170384.60c96c",
                                            "name": "",
                                            "rules": [
                                                {
                                                    "t": "set",
                                                    "p": "payload",
                                                    "pt": "msg",
                                                    "to": "payload.(1555)_betriebsstunden_p1",
                                                    "tot": "msg"
                                                }
                                            ],
                                            "action": "",
                                            "property": "",
                                            "from": "",
                                            "to": "",
                                            "reg": false,
                                            "x": 1960,
                                            "y": 4220,
                                            "wires": [
                                                []
                                            ]
                                        }
                                    ]
                                    

                                    klemm diese beiden Nodes hinter Deine mqtt Node - dann müsste es gehen.

                                    Also um es nochmal zu erklären, was die beiden Nodes machen. Der erste konvertiert den JSON String in ein Objekt. Der Change Node extrahiert die gewünschte Eigenschaft und kopiert die in die payload.

                                    Frank Traut 1 Reply Last reply Reply Quote 1
                                    • Frank Traut
                                      Frank Traut @mickym last edited by

                                      @mickym Moin, wenn ich das mache bekomme ich doch ich vor und nach dem cahnge Node genau die gleiche Nachricht: node.JPG
                                      Müsste ich dann für jede Variable diesen Baum aufbauen?

                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @Frank Traut last edited by mickym

                                        @frank-traut ich habe festgestellt, dass die Change Node Probleme mit den Klammern im Objekt hat.

                                        [
                                            {
                                                "id": "c6a50eae.ea43c",
                                                "type": "json",
                                                "z": "6e170384.60c96c",
                                                "name": "",
                                                "property": "payload",
                                                "action": "",
                                                "pretty": false,
                                                "x": 3310,
                                                "y": 1220,
                                                "wires": [
                                                    [
                                                        "e45442d.763bdc"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "e45442d.763bdc",
                                                "type": "change",
                                                "z": "6e170384.60c96c",
                                                "name": "",
                                                "rules": [
                                                    {
                                                        "t": "set",
                                                        "p": "payload",
                                                        "pt": "msg",
                                                        "to": "payload.1555_betriebsstunden_p1",
                                                        "tot": "msg"
                                                    }
                                                ],
                                                "action": "",
                                                "property": "",
                                                "from": "",
                                                "to": "",
                                                "reg": false,
                                                "x": 3490,
                                                "y": 1220,
                                                "wires": [
                                                    []
                                                ]
                                            },
                                            {
                                                "id": "7c121490.b9004c",
                                                "type": "change",
                                                "z": "6e170384.60c96c",
                                                "name": "",
                                                "rules": [
                                                    {
                                                        "t": "change",
                                                        "p": "payload",
                                                        "pt": "msg",
                                                        "from": "(",
                                                        "fromt": "str",
                                                        "to": "",
                                                        "tot": "str"
                                                    },
                                                    {
                                                        "t": "change",
                                                        "p": "payload",
                                                        "pt": "msg",
                                                        "from": ")",
                                                        "fromt": "str",
                                                        "to": "",
                                                        "tot": "str"
                                                    }
                                                ],
                                                "action": "",
                                                "property": "",
                                                "from": "",
                                                "to": "",
                                                "reg": false,
                                                "x": 3120,
                                                "y": 1220,
                                                "wires": [
                                                    [
                                                        "c6a50eae.ea43c"
                                                    ]
                                                ]
                                            }
                                        ]
                                        

                                        So müsste es nun funktionieren.

                                        Auf Dein Frage, ob Du das für jede Variable machen musst - das kann ich Dir so nicht beantworten - ich weiß weder was aus der mqtt Node rauskommen kann, welche Variablen da rauskommen noch welche Werte dann weitergegeben werden müssen. Ich habe Dir nun gezeigt, wie Du aus dem String, dann Objekt, die entsprechenden Werte aus bestimmten Eigenschaften (properties - Objektnamen) rausbekommst.

                                        Falls das in dem String auch grundsätzlich so rausbekommt und der 1. Teil im Prinzip das Topic also die 1555 ist - kann man das auch anders machen. Das heißt wenn immer "betriebsstunden_p1" rauskommt - sich aber das Gerät über die Klammer unterscheidet, dann macht man aus dem Inhalt der Klammer das topic - und aus dem Rest direkt die Zahl. Irgendwo musst Du ja immer nach Gerät und nach Eigenschaft aufteilen.

                                        Frank Traut 1 Reply Last reply Reply Quote 1
                                        • Frank Traut
                                          Frank Traut @mickym last edited by

                                          @mickym okay sehr cool das klappt. Ich habe jetzt vor der Umwandlung die entsprechenden Routen augebaut. So kommt dann immer nur genau der Wert beim Eingang an.
                                          Gibt es noch eine Möglichkeit den Inhalt der "change-Node" "global" zu halten. Die macht ja nicht anderes als das Objekt in Number zu wechseln. Da müsste doch der Name egal sein, oder? Kann man da evtl. mit Sternchen o.ä. arbeiten?

                                          mickym 3 Replies Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Frank Traut last edited by mickym

                                            gelöscht - da bessere finale Lösung oben

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            870
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            29
                                            3300
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo