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. Payload String zerlegen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Payload String zerlegen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @1984chris last edited by mickym

      @1984chris Na OK - ich weiss nicht was Du da genau gemacht hast.

      Wie gesagt wenn Du meinen Flow importierst - habe ich gerade gemacht - dann erhälst Du folgende Struktur

      c6cd19df-a859-4e36-9534-ac1964a2e038-image.png

      Wenn Du mein Flow hast - dann brauchst Du nur die neue Node und eine iobroker-Out Node:

      355133c4-db41-47c4-b7d8-3ae44abb9fea-image.png

      wie gesagt die Fremdobjekte erstellen zulassen und in der Node angeben unter welchem Datenpunkt die Datenpunkte angelegt werden sollen:

      02dbccce-d95d-47e7-9cd5-e81cc697612a-image.png

      Hier zum Import:

      [
         {
             "id": "6e802f1553b18149",
             "type": "subflow",
             "name": "JSON or Obj to IOBroker",
             "info": "# Creates an IOBroker tree\n\nThis node creates an IOBroker tree out of an Java-Object or JSON String.\n\nThe object tree will be created under 0_userdata.0\nIn addition to the JSON-String or Java Object as `msg.payload` it is necessary to specify a `msg.top` properity in addition to the msg-Object.\n\nThe object tree will be created under 0_userdata.0\n\nExisting `msg.topic` entries will be deleted.\nAn iobroker-out node has to be appended to this subflow node. It is not part of the subflow itself. No topic should be specified in the iobroker out node.\n\nIs `msg.top` property isn't defined, the `top` property of the subflow-node is used. \n\nIn the properties of the subflow node a new property `keepTopic` has been added. Default is _false_ to keep the current behaviour. If set to _true_ then the originial topic will be placed between the `top` property of the subflow node and the property of the analyzed JSON object.\n\n**Attention:**\nIf msg.top and top is empty, all msg.topics (msg.topic) will be directly prefixed with 0_userdata.0. . \n\n**Update 13.09.2022:**\nSpaces in topics of objects are no longer replaced with underscores in objects. No differences between all data types.\n\n# Erstellt einen Objektbaum im ioBroker\n\nDiese Node erstellt einen Objektbaum im ioBroker aus einem JAVA Objekt bzw. einem JSON String. \n\nDer Baum wird in jedem Fall unter 0_userdata.0 erstellt und zwar unter dem Topic der in` msg.top` mitgegeben wurde. In der `msg.payload` befindet sich dann der JSON String oder das entsprechende Objekt.\n\nExistierende `msg.topic `Einträge werden gelöscht.\nEin entsprechende iobroker-out Node muss an den Flow angehängt werden. Sie ist nicht Bestandteil des Subflows. In dieser iobroker-out Node darf kein Topic angegeben werden. \n\nFalls msg.top nicht definiert wurde, wird der `top`-Wert der Subflow-Node verwendet.\n\nIn den Eigenschaften der Subflow-Node wurde ein neuer Parameter `keepTopic` hinzugefügt. Standardwert ist _false_, um das bisherige Verhalten beizubehalten. Setzt man die Eigenschaft auf _true_, dann wird das originale Topic zwischen der `top` Eigenschaft der Subflow-Node und Eigenschaft des analysierten JSON Objektes eingefügt.\n\n**Achtung:**\nWenn top und msg.top leer ist, werden alle msg.topics (msg.topic) direkt unter dem Präfix 0_userdata.0., angelegt bzw. ausgegeben. \n\n**Update 13.09.2022:**\nLeerzeichen werden in Topics von Objekten nicht mehr durch Unterstriche ersetzt. Es gibt keine Unterschiede mehr zwischen den Datentypen.",
             "category": "",
             "in": [
                 {
                     "x": 60,
                     "y": 160,
                     "wires": [
                         {
                             "id": "554b8c663bcb46c2"
                         }
                     ]
                 }
             ],
             "out": [
                 {
                     "x": 2620,
                     "y": 280,
                     "wires": [
                         {
                             "id": "0962842ebd23e0d7",
                             "port": 0
                         }
                     ]
                 }
             ],
             "env": [
                 {
                     "name": "top",
                     "type": "str",
                     "value": "objRoot"
                 },
                 {
                     "name": "keepTopic",
                     "type": "bool",
                     "value": "false"
                 }
             ],
             "meta": {},
             "color": "#E2D96E",
             "icon": "node-red/batch.svg"
         },
         {
             "id": "3e11e8338f694832",
             "type": "split",
             "z": "6e802f1553b18149",
             "name": "split object",
             "splt": "\\n",
             "spltType": "str",
             "arraySplt": 1,
             "arraySpltType": "len",
             "stream": false,
             "addname": "key",
             "x": 1370,
             "y": 160,
             "wires": [
                 [
                     "0562a4249c8b856b"
                 ]
             ]
         },
         {
             "id": "0562a4249c8b856b",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "add key to topic",
             "rules": [
                 {
                     "t": "set",
                     "p": "stateName",
                     "pt": "msg",
                     "to": "key",
                     "tot": "msg"
                 },
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "topic  & '.' & key",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1560,
             "y": 160,
             "wires": [
                 [
                     "ddc90985bef0fafa"
                 ]
             ]
         },
         {
             "id": "ddc90985bef0fafa",
             "type": "switch",
             "z": "6e802f1553b18149",
             "name": "is type?",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "istype",
                     "v": "array",
                     "vt": "array"
                 },
                 {
                     "t": "istype",
                     "v": "object",
                     "vt": "object"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 3,
             "x": 1740,
             "y": 160,
             "wires": [
                 [
                     "bfce19b206660fbe"
                 ],
                 [
                     "3e11e8338f694832"
                 ],
                 [
                     "1a8c03d866b85b12"
                 ]
             ]
         },
         {
             "id": "bfce19b206660fbe",
             "type": "split",
             "z": "6e802f1553b18149",
             "name": "split array",
             "splt": "\\n",
             "spltType": "str",
             "arraySplt": 1,
             "arraySpltType": "len",
             "stream": false,
             "addname": "",
             "x": 780,
             "y": 280,
             "wires": [
                 [
                     "e89927810c6d75ec"
                 ]
             ]
         },
         {
             "id": "e89927810c6d75ec",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "add index to topic",
             "rules": [
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "topic  & '.' & parts.index",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 970,
             "y": 280,
             "wires": [
                 [
                     "a4d1a5d04564dc77"
                 ]
             ]
         },
         {
             "id": "f5d52c6a57d08904",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "finalize msg.topic",
             "rules": [
                 {
                     "t": "set",
                     "p": "top",
                     "pt": "msg",
                     "to": "'0_userdata.0.' & top",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "top & '.' & topic",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2170,
             "y": 240,
             "wires": [
                 [
                     "0962842ebd23e0d7"
                 ]
             ]
         },
         {
             "id": "1a8c03d866b85b12",
             "type": "switch",
             "z": "6e802f1553b18149",
             "name": "is msg.top != null",
             "property": "top",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "nnull"
                 },
                 {
                     "t": "null"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 1950,
             "y": 280,
             "wires": [
                 [
                     "f5d52c6a57d08904"
                 ],
                 [
                     "74c895ce724750de"
                 ]
             ]
         },
         {
             "id": "e023fe88445ce43e",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "",
             "rules": [
                 {
                     "t": "delete",
                     "p": "topic",
                     "pt": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 350,
             "y": 200,
             "wires": [
                 [
                     "3649300b4c233b10"
                 ]
             ]
         },
         {
             "id": "3649300b4c233b10",
             "type": "switch",
             "z": "6e802f1553b18149",
             "name": "is type?",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "istype",
                     "v": "json",
                     "vt": "json"
                 },
                 {
                     "t": "istype",
                     "v": "array",
                     "vt": "array"
                 },
                 {
                     "t": "istype",
                     "v": "object",
                     "vt": "object"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 4,
             "x": 600,
             "y": 160,
             "wires": [
                 [
                     "fc7913a8524badb7"
                 ],
                 [
                     "bfce19b206660fbe"
                 ],
                 [
                     "3e11e8338f694832"
                 ],
                 [
                     "9ac3cc3681e8b6c6"
                 ]
             ]
         },
         {
             "id": "1b8480cd2df7ba3f",
             "type": "comment",
             "z": "6e802f1553b18149",
             "name": "Array",
             "info": "",
             "x": 600,
             "y": 280,
             "wires": []
         },
         {
             "id": "b3541807672be040",
             "type": "comment",
             "z": "6e802f1553b18149",
             "name": "object",
             "info": "",
             "x": 1340,
             "y": 100,
             "wires": []
         },
         {
             "id": "a4d1a5d04564dc77",
             "type": "switch",
             "z": "6e802f1553b18149",
             "name": "is type?",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "istype",
                     "v": "object",
                     "vt": "object"
                 },
                 {
                     "t": "istype",
                     "v": "array",
                     "vt": "array"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 3,
             "x": 1160,
             "y": 280,
             "wires": [
                 [
                     "3e11e8338f694832"
                 ],
                 [
                     "bfce19b206660fbe"
                 ],
                 [
                     "a096a93bb82b7a93"
                 ]
             ]
         },
         {
             "id": "74c895ce724750de",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "finalize msg.topic",
             "rules": [
                 {
                     "t": "set",
                     "p": "top",
                     "pt": "msg",
                     "to": "top",
                     "tot": "env"
                 },
                 {
                     "t": "set",
                     "p": "top",
                     "pt": "msg",
                     "to": "'0_userdata.0.' & top",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "top & '.' & topic",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2170,
             "y": 320,
             "wires": [
                 [
                     "0962842ebd23e0d7"
                 ]
             ]
         },
         {
             "id": "554b8c663bcb46c2",
             "type": "switch",
             "z": "6e802f1553b18149",
             "name": "",
             "property": "keepTopic",
             "propertyType": "env",
             "rules": [
                 {
                     "t": "true"
                 },
                 {
                     "t": "false"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 170,
             "y": 160,
             "wires": [
                 [
                     "e30ba9f0483285e4"
                 ],
                 [
                     "e023fe88445ce43e"
                 ]
             ]
         },
         {
             "id": "e30ba9f0483285e4",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "",
             "rules": [
                 {
                     "t": "change",
                     "p": "topic",
                     "pt": "msg",
                     "from": "/",
                     "fromt": "str",
                     "to": ".",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 350,
             "y": 120,
             "wires": [
                 [
                     "3649300b4c233b10"
                 ]
             ]
         },
         {
             "id": "0962842ebd23e0d7",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "translate invalid chars in topic",
             "rules": [
                 {
                     "t": "change",
                     "p": "topic",
                     "pt": "msg",
                     "from": "..",
                     "fromt": "str",
                     "to": ".",
                     "tot": "str"
                 },
                 {
                     "t": "change",
                     "p": "topic",
                     "pt": "msg",
                     "from": "€",
                     "fromt": "str",
                     "to": "EUR",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2430,
             "y": 280,
             "wires": [
                 []
             ]
         },
         {
             "id": "9ac3cc3681e8b6c6",
             "type": "change",
             "z": "6e802f1553b18149",
             "name": "set topic, if empty",
             "rules": [
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "topic ? topic : $type(payload)\t",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 950,
             "y": 200,
             "wires": [
                 [
                     "a096a93bb82b7a93"
                 ]
             ]
         },
         {
             "id": "fc7913a8524badb7",
             "type": "json",
             "z": "6e802f1553b18149",
             "name": "",
             "property": "payload",
             "action": "obj",
             "pretty": false,
             "x": 750,
             "y": 100,
             "wires": [
                 [
                     "d9e7bdd4c48a8aa1"
                 ]
             ]
         },
         {
             "id": "d9e7bdd4c48a8aa1",
             "type": "switch",
             "z": "6e802f1553b18149",
             "name": "is type?",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "istype",
                     "v": "array",
                     "vt": "array"
                 },
                 {
                     "t": "istype",
                     "v": "object",
                     "vt": "object"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 3,
             "x": 900,
             "y": 100,
             "wires": [
                 [
                     "1520be42bcc2145e"
                 ],
                 [
                     "1520be42bcc2145e"
                 ],
                 [
                     "9ac3cc3681e8b6c6"
                 ]
             ]
         },
         {
             "id": "a096a93bb82b7a93",
             "type": "junction",
             "z": "6e802f1553b18149",
             "x": 1380,
             "y": 280,
             "wires": [
                 [
                     "1a8c03d866b85b12"
                 ]
             ]
         },
         {
             "id": "1520be42bcc2145e",
             "type": "junction",
             "z": "6e802f1553b18149",
             "x": 480,
             "y": 20,
             "wires": [
                 [
                     "3649300b4c233b10"
                 ]
             ]
         },
         {
             "id": "ef7643b826aed308",
             "type": "subflow:6e802f1553b18149",
             "z": "1983aa28392732ca",
             "name": "",
             "env": [
                 {
                     "name": "top",
                     "value": "Sensor_903788",
                     "type": "str"
                 }
             ],
             "x": 550,
             "y": 2960,
             "wires": [
                 [
                     "2b9df08b75d20726"
                 ]
             ]
         },
         {
             "id": "2b9df08b75d20726",
             "type": "ioBroker out",
             "z": "1983aa28392732ca",
             "name": "",
             "topic": "",
             "ack": "true",
             "autoCreate": "true",
             "stateName": "",
             "role": "",
             "payloadType": "",
             "readonly": "true",
             "stateUnit": "",
             "stateMin": "",
             "stateMax": "",
             "x": 780,
             "y": 2960,
             "wires": []
         }
      ]
      

      In der NodeRed Adapter konfig schauen, dass Fremdobjekte erstellt werden dürfen und die Konvertierung ausgeschaltet ist.

      cc96d5ff-99c1-49ae-b813-a0401695f6d1-image.png

      1 1 Reply Last reply Reply Quote 0
      • 1
        1984chris @mickym last edited by

        @mickym

        Bin blutiger Anfänger in NodeRed und habe keine Programierkenntnisse,hab mir gedacht das geht so einfach.

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

          @1984chris Geht dich auch einfach. Also Schritt für Schritt:

          1. Hast Du die Einstellungen in der Adapterkonfiguration gemacht?
          2. Weißt Du wie man einen Flow importiert?
          1 1 Reply Last reply Reply Quote 0
          • 1
            1984chris @mickym last edited by

            @mickym

            Ich habe noch kein iobrocker.
            habe via Docker MQTT NODERED InfluxDB und GRAFANA laufen

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

              @1984chris Ah OK - gut das ändert natürlich einiges. 😉

              Gut kannst Du mal einen Screenshot von Deinem Flow machen und dann stelle bitte in deinen mqtt-Nodes ein, dass das Objekt komplett analysiert werden soll.

              c7e9abd9-79a6-43ea-a700-e49b2e503450-image.png

              Dann solltest du nun in dem Debug Fenster keinen String sondern ein Objekt bekommen. Wenn Du das hast - dann mach da mal ein Screenshot von Deinem Debug Fenster.

              Welche Influx DB Version nutzt Du denn?

              1 1 Reply Last reply Reply Quote 0
              • 1
                1984chris @mickym last edited by

                @mickym

                so?
                einstellungen.jpg

                1 mickym 2 Replies Last reply Reply Quote 0
                • 1
                  1984chris @1984chris last edited by

                  @mickym
                  influxDB1.8

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

                    @1984chris sagte in Payload String zerlegen:

                    @mickym

                    so?
                    einstellungen.jpg

                    Ja dann sollte auch das Objekt in der Debug Node anders aussehen, Wenn Du das so einstellst.

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

                      @1984chris sagte in Payload String zerlegen:

                      @mickym
                      influxDB1.8

                      Hast Du die neu installiert und warum die alte Version?

                      1 Reply Last reply Reply Quote 0
                      • 1
                        1984chris @mickym last edited by

                        @mickym
                        aber das ist ja die Debug Node

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

                          @1984chris Ja aber wenn Du in der mqtt- Node umgestellt hast, dann sollte das Objekt auch anders aussehen.

                          1 1 Reply Last reply Reply Quote 0
                          • 1
                            1984chris @mickym last edited by

                            @mickym

                            das Foto ist schon als ich die Umstellung gemacht habe.

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

                              @1984chris sagte in Payload String zerlegen:

                              @mickym

                              das Foto ist schon als ich die Umstellung gemacht habe.

                              Wenn Du die mqtt Node bereits umgestellt hättest, dann sollte die Ausgabe Deiner Debug Node so aussehen:

                              ae44f5fa-32a1-4a54-9bb5-1743a55926b5-image.png

                              Du hattest vorher

                              e278b8bd-8a41-4e3e-8d9e-c523c257a94f-image.png
                              eingestellt.

                              1 1 Reply Last reply Reply Quote 0
                              • 1
                                1984chris @mickym last edited by

                                @mickym NodeDebug.jpg

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

                                  @1984chris Ja das ist ein Buffer

                                  Schau mal in der mqtt Node - dass das drin steht:

                                  bedf379a-2ed3-46a0-89e6-64a104bbd5e6-image.png

                                  Das müsste auch so voreingestellt gewesen sein - das hast Du sonst nachträglich umgestellt.

                                  Welche NodeRed Version nutzt du denn?

                                  1 1 Reply Last reply Reply Quote 0
                                  • 1
                                    1984chris @mickym last edited by

                                    @mickym

                                    das ist meine Einstellung

                                    MQTT.jpg

                                    NodeRed V3.0.2

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

                                      @1984chris Zieh bitte nochmal eine neue Mqtt-In Node raus - lass den QoS auf 2 - ändere gar nichts und trage nur das Topic ein.

                                      0d1a30b6-a024-433a-8558-2e6ec22be91b-image.png

                                      Bei mir kommen auch Objekte raus. Hast Du Deinen Broker auf Version 3.1.1 eingestellt?

                                      Und ich habe es auch den tele/SENSOR topic bei mir eingestellt.

                                      Das Intervall wie oft der tele Ast sendet stellst Du über die TelePeriod in der Tasmota Konsole ein:

                                      6a6cde76-dfb9-4afa-939f-c43ed71827fb-image.png

                                      1 1 Reply Last reply Reply Quote 0
                                      • 1
                                        1984chris @mickym last edited by

                                        @mickym

                                        MQTT_neu.jpg

                                        entweder bin ich zu blöd oda keine Ahnung warum das nicht geht

                                        mickym 2 Replies Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @1984chris last edited by

                                          @1984chris Was nutzt Du für ein mqtt-Broker? mosquitto?

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

                                            @1984chris Ok - dann machen wir das anders. Stellst Du mal

                                            032bb7db-51af-471f-8e54-c031d79c8e49-image.png

                                            um und zeig dann mal die Debug Ausgabe.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            841
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            77
                                            12666
                                            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