Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Problem]Daten aus JSON nutzen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    271

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

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

[Problem]Daten aus JSON nutzen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 4 Kommentatoren 4.1k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    SomeThingNice
    schrieb am zuletzt editiert von
    #1

    Hallo Leute, ich bin leider noch relativ unerfahren in der Nutzung mit Node-Red.

    Ich stehe gerade vor Aufgabe Daten die mir per MQTT und in JSON Format geschickt werden Auszuwerten, und jetzt stehe ich vor folgendem Problem das ich nicht weiß wie ich gezielt Werte aus dem JASON abfragen kann. Die folgende Abbildung zeigt den momentanen Aufbau meiner Testasusgabe, der Inject Node simuliert dabei die MQTT Nachricht. Die eingehende Nachricht sieht wie folgt aus.

    {"A-01 ":{"TAG":" ","Ziel":"ort ","DATUM":"12.04.2018","Zeit":"0"}}

    6860_image002.png_01d3d268.6b8dc040.png

    Der json Node formatiert mir nun entsprechend die eingehende msg.payload, so dass mir der debuger folgendes Ergebnis ausgibt.

    6860_image001.png_01d3d269.37674470.png

    Ich möchte nun gerne nur den Punkt DATUM ausgegeben bekommen, also hab ich einen Funktions-Node wie folgt eingebaut

    6860_x.jpg

    und folgende Funktion definiert

    var test = msg.payload.A-01.DATUM;

    msg.payload = test;

    return msg;

    Leider bekomme ich immer folgende Fehlermeldung

    6860_image002.png_01d3d269.96c92500.png

    Vielleicht kann mir ja jemand von euch erklären wo mein Fehler ist und wie ich den Punkt DATUM auslesen kann um ihn später zu verwenden.

    Vielen Dank für alle Beiträge bereits im vorraus!

    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von
      #2

      Stell mal den Export deines Flow rein.

      Da ist ein Leerzeichen hinter A-01. Falls das so sein soll, kannst du das datum z.B. so erhalten:

      [{"id":"9a7aa50a.7d73c8","type":"inject","z":"29677dc5.77b46a","name":"","topic":"","payload":"{\"A-01 \":{\"TAG\":\" \",\"Ziel\":\"ort \",\"DATUM\":\"12.04.2018\",\"Zeit\":\"0\"}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":122.5,"y":1051,"wires":[["e86a90de.a62158"]]},{"id":"1c8163a5.e045e4","type":"debug","z":"29677dc5.77b46a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":482,"y":1054,"wires":[]},{"id":"e86a90de.a62158","type":"change","z":"29677dc5.77b46a","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.'A-01 '.DATUM","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":289.5,"y":1053,"wires":[["1c8163a5.e045e4"]]}]
      
      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        SomeThingNice
        schrieb am zuletzt editiert von
        #3

        Erstmal vielen Dank an rewenode.

        Hier ist der Export von meinem Flow.

        [{"id":"15b9b55.6925b4b","type":"inject","z":"3bd6fff6.6e10c8","name":"","topic":"","payload":" {\"A-01 \":{\"TAG\":\" \",\"Ziel\":\"ort \",\"DATUM\":\"12.04.2018\",\"Zeit\":\"0\"}}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":370,"y":140,"wires":[["6af5d208.dfae8c"]]},{"id":"6af5d208.dfae8c","type":"json","z":"3bd6fff6.6e10c8","name":"","property":"payload","action":"","pretty":false,"x":578,"y":141,"wires":[["95f4603f.f8a958"]]},{"id":"95f4603f.f8a958","type":"debug","z":"3bd6fff6.6e10c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":818,"y":142,"wires":[]}]
        

        Ja das Leerzeichen dahinter hab ich berücksichtigt, leider muss das so sein da ich die Daten so zugesandt bekomme.

        Gibt es eigentlich auch eine Lösung ohne Verwendung eines Change Bausteins?

        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          rewenode
          schrieb am zuletzt editiert von
          #4

          Klar, functions-node ist in diesem einfachen Fall genauso einfach:

          [{"id":"9a7aa50a.7d73c8","type":"inject","z":"29677dc5.77b46a","name":"","topic":"","payload":"{\"A-01 \":{\"TAG\":\" \",\"Ziel\":\"ort \",\"DATUM\":\"12.04.2018\",\"Zeit\":\"0\"}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":122.5,"y":1051,"wires":[["d8d3a757.8a1f78"]]},{"id":"d8d3a757.8a1f78","type":"function","z":"29677dc5.77b46a","name":"per f-node","func":"let d = msg.payload['A-01 '].DATUM;\nmsg.payload = d;\n\nreturn msg;","outputs":1,"noerr":0,"x":297.5,"y":1052,"wires":[["7dc8cf94.7f6c8"]]},{"id":"7dc8cf94.7f6c8","type":"debug","z":"29677dc5.77b46a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":486,"y":1052,"wires":[]}]
          

          Warum kommt eigentlich der Change-node nicht in Frage?

          T 1 Antwort Letzte Antwort
          0
          • R rewenode

            Klar, functions-node ist in diesem einfachen Fall genauso einfach:

            [{"id":"9a7aa50a.7d73c8","type":"inject","z":"29677dc5.77b46a","name":"","topic":"","payload":"{\"A-01 \":{\"TAG\":\" \",\"Ziel\":\"ort \",\"DATUM\":\"12.04.2018\",\"Zeit\":\"0\"}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":122.5,"y":1051,"wires":[["d8d3a757.8a1f78"]]},{"id":"d8d3a757.8a1f78","type":"function","z":"29677dc5.77b46a","name":"per f-node","func":"let d = msg.payload['A-01 '].DATUM;\nmsg.payload = d;\n\nreturn msg;","outputs":1,"noerr":0,"x":297.5,"y":1052,"wires":[["7dc8cf94.7f6c8"]]},{"id":"7dc8cf94.7f6c8","type":"debug","z":"29677dc5.77b46a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":486,"y":1052,"wires":[]}]
            

            Warum kommt eigentlich der Change-node nicht in Frage?

            T Offline
            T Offline
            ThomyTP
            schrieb am zuletzt editiert von ThomyTP
            #5

            @rewenode
            Ich habe heute mal versuch meinen MQTT / Json String auszuwerten:

            So sind der String aus:
            {'data': [{'plantMoneyText': '9.2 (€)', 'plantName': 'xxx', 'plantId': '23422', 'isHaveStorage': 'false', 'todayEnergy': '2 kWh', 'totalEnergy': '33.6 kWh', 'currentPower': '164.2 W'}], 'totalData': {'currentPowerSum': '164.2 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.2 (€)', 'todayEnergySum': '2 kWh', 'totalEnergySum': '33.6 kWh'}

            Ich wollten den Wert current Power auslesen.

            Leider bin ich auf ganzer Breite gescheitert.
            Wenn ich nur perr MQTT die Daten auf den Debuger lege, bekomme ich folgende Meldung:
            "Unexpected token ' in JSON at position 1"

            Als Test habe ich mal versucht einfach nur das Item auszulesen.

            [{"id":"8a70329b.ef589","type":"tab","label":"Flow 6","disabled":false,"info":""},{"id":"60f6dbff.eb65cc","type":"mqtt in","z":"8a70329b.ef589","name":"","topic":"inverter/plant_info","qos":"2","datatype":"json","broker":"c51b082c.bcad68","x":490,"y":180,"wires":[["9831eeb.105cb9"]]},{"id":"9831eeb.105cb9","type":"function","z":"8a70329b.ef589","name":"","func":"\nlet d = msg.payload['data'].currentPower;\nmsg.payload = d;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":700,"y":180,"wires":[["ab1699ec.3f381"]]},{"id":"ab1699ec.3f381","type":"debug","z":"8a70329b.ef589","name":"post response","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":180,"wires":[]},{"id":"c51b082c.bcad68","type":"mqtt-broker","name":"openhab","broker":"192.168.111.128","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
            

            Hierbei bekomme ich:
            "Failed to parse JSON string"

            Nun stehe ich vor einen Rätsel..

            Hat jemand wohl eine Idee?

            Vielen Dank..

            R 1 Antwort Letzte Antwort
            0
            • T ThomyTP

              @rewenode
              Ich habe heute mal versuch meinen MQTT / Json String auszuwerten:

              So sind der String aus:
              {'data': [{'plantMoneyText': '9.2 (€)', 'plantName': 'xxx', 'plantId': '23422', 'isHaveStorage': 'false', 'todayEnergy': '2 kWh', 'totalEnergy': '33.6 kWh', 'currentPower': '164.2 W'}], 'totalData': {'currentPowerSum': '164.2 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.2 (€)', 'todayEnergySum': '2 kWh', 'totalEnergySum': '33.6 kWh'}

              Ich wollten den Wert current Power auslesen.

              Leider bin ich auf ganzer Breite gescheitert.
              Wenn ich nur perr MQTT die Daten auf den Debuger lege, bekomme ich folgende Meldung:
              "Unexpected token ' in JSON at position 1"

              Als Test habe ich mal versucht einfach nur das Item auszulesen.

              [{"id":"8a70329b.ef589","type":"tab","label":"Flow 6","disabled":false,"info":""},{"id":"60f6dbff.eb65cc","type":"mqtt in","z":"8a70329b.ef589","name":"","topic":"inverter/plant_info","qos":"2","datatype":"json","broker":"c51b082c.bcad68","x":490,"y":180,"wires":[["9831eeb.105cb9"]]},{"id":"9831eeb.105cb9","type":"function","z":"8a70329b.ef589","name":"","func":"\nlet d = msg.payload['data'].currentPower;\nmsg.payload = d;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":700,"y":180,"wires":[["ab1699ec.3f381"]]},{"id":"ab1699ec.3f381","type":"debug","z":"8a70329b.ef589","name":"post response","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":180,"wires":[]},{"id":"c51b082c.bcad68","type":"mqtt-broker","name":"openhab","broker":"192.168.111.128","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
              

              Hierbei bekomme ich:
              "Failed to parse JSON string"

              Nun stehe ich vor einen Rätsel..

              Hat jemand wohl eine Idee?

              Vielen Dank..

              R Offline
              R Offline
              rewenode
              schrieb am zuletzt editiert von
              #6

              @thomytp Ich weis jetzt nicht, wo dein String herkommt, Aber die einfachen Hochkommas müssen Doppelte sein. Und am Ende fehlt eine schließende geschweifte Klammer:

              {
                "data": [
                  {
                    "plantMoneyText": "9.2 (€)",
                    "plantName": "xxx",
                    "plantId": "23422",
                    "isHaveStorage": "false",
                    "todayEnergy": "2 kWh",
                    "totalEnergy": "33.6 kWh",
                    "currentPower": "164.2 W"
                  }
                ],
                "totalData": {
                  "currentPowerSum": "164.2 W",
                  "CO2Sum": "0 T",
                  "isHaveStorage": "false",
                  "eTotalMoneyText": "9.2 (€)",
                  "todayEnergySum": "2 kWh",
                  "totalEnergySum": "33.6 kWh"
                }
              }
              

              dann sollte das auch klappen.

              Wenn du es mit NodeRed machen willst, dann z.B. so:

              [
                 {
                     "id": "d93e3783.0c3008",
                     "type": "tab",
                     "label": "Flow 2",
                     "disabled": false,
                     "info": ""
                 },
                 {
                     "id": "55aec5b6.5ea1a4",
                     "type": "inject",
                     "z": "d93e3783.0c3008",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "{'data': [{'plantMoneyText': '9.2 (€)', 'plantName': 'xxx', 'plantId': '23422', 'isHaveStorage': 'false', 'todayEnergy': '2 kWh', 'totalEnergy': '33.6 kWh', 'currentPower': '164.2 W'}], 'totalData': {'currentPowerSum': '164.2 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.2 (€)', 'todayEnergySum': '2 kWh', 'totalEnergySum': '33.6 kWh'}}",
                     "payloadType": "str",
                     "x": 420,
                     "y": 140,
                     "wires": [
                         [
                             "d65131d.704c25",
                             "62838cef.a94bc4"
                         ]
                     ]
                 },
                 {
                     "id": "e390c910.325d28",
                     "type": "debug",
                     "z": "d93e3783.0c3008",
                     "name": "",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "false",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 670,
                     "y": 580,
                     "wires": []
                 },
                 {
                     "id": "99207548.64ef78",
                     "type": "json",
                     "z": "d93e3783.0c3008",
                     "name": "JSON-String => javaScript-Objekt",
                     "property": "payload",
                     "action": "obj",
                     "pretty": false,
                     "x": 340,
                     "y": 500,
                     "wires": [
                         [
                             "35915391.5305d4",
                             "d37dd080.68411"
                         ]
                     ]
                 },
                 {
                     "id": "35915391.5305d4",
                     "type": "change",
                     "z": "d93e3783.0c3008",
                     "name": "msg.payload.data[0].currentPower => msg.payload",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.data[0].currentPower",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 310,
                     "y": 580,
                     "wires": [
                         [
                             "e390c910.325d28"
                         ]
                     ]
                 },
                 {
                     "id": "d65131d.704c25",
                     "type": "change",
                     "z": "d93e3783.0c3008",
                     "name": "Konvertiere alle ' nach \"",
                     "rules": [
                         {
                             "t": "change",
                             "p": "payload",
                             "pt": "msg",
                             "from": "'",
                             "fromt": "str",
                             "to": "\"",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 370,
                     "y": 360,
                     "wires": [
                         [
                             "99207548.64ef78",
                             "4c0e8fba.aacef"
                         ]
                     ]
                 },
                 {
                     "id": "62838cef.a94bc4",
                     "type": "debug",
                     "z": "d93e3783.0c3008",
                     "name": "",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "false",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 670,
                     "y": 140,
                     "wires": []
                 },
                 {
                     "id": "4c0e8fba.aacef",
                     "type": "debug",
                     "z": "d93e3783.0c3008",
                     "name": "",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "false",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 670,
                     "y": 360,
                     "wires": []
                 },
                 {
                     "id": "d37dd080.68411",
                     "type": "debug",
                     "z": "d93e3783.0c3008",
                     "name": "",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "false",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 670,
                     "y": 500,
                     "wires": []
                 }
              ]
              

              2021-03-21_11-55-44.jpg

              T 1 Antwort Letzte Antwort
              0
              • R rewenode

                @thomytp Ich weis jetzt nicht, wo dein String herkommt, Aber die einfachen Hochkommas müssen Doppelte sein. Und am Ende fehlt eine schließende geschweifte Klammer:

                {
                  "data": [
                    {
                      "plantMoneyText": "9.2 (€)",
                      "plantName": "xxx",
                      "plantId": "23422",
                      "isHaveStorage": "false",
                      "todayEnergy": "2 kWh",
                      "totalEnergy": "33.6 kWh",
                      "currentPower": "164.2 W"
                    }
                  ],
                  "totalData": {
                    "currentPowerSum": "164.2 W",
                    "CO2Sum": "0 T",
                    "isHaveStorage": "false",
                    "eTotalMoneyText": "9.2 (€)",
                    "todayEnergySum": "2 kWh",
                    "totalEnergySum": "33.6 kWh"
                  }
                }
                

                dann sollte das auch klappen.

                Wenn du es mit NodeRed machen willst, dann z.B. so:

                [
                   {
                       "id": "d93e3783.0c3008",
                       "type": "tab",
                       "label": "Flow 2",
                       "disabled": false,
                       "info": ""
                   },
                   {
                       "id": "55aec5b6.5ea1a4",
                       "type": "inject",
                       "z": "d93e3783.0c3008",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "{'data': [{'plantMoneyText': '9.2 (€)', 'plantName': 'xxx', 'plantId': '23422', 'isHaveStorage': 'false', 'todayEnergy': '2 kWh', 'totalEnergy': '33.6 kWh', 'currentPower': '164.2 W'}], 'totalData': {'currentPowerSum': '164.2 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.2 (€)', 'todayEnergySum': '2 kWh', 'totalEnergySum': '33.6 kWh'}}",
                       "payloadType": "str",
                       "x": 420,
                       "y": 140,
                       "wires": [
                           [
                               "d65131d.704c25",
                               "62838cef.a94bc4"
                           ]
                       ]
                   },
                   {
                       "id": "e390c910.325d28",
                       "type": "debug",
                       "z": "d93e3783.0c3008",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 670,
                       "y": 580,
                       "wires": []
                   },
                   {
                       "id": "99207548.64ef78",
                       "type": "json",
                       "z": "d93e3783.0c3008",
                       "name": "JSON-String => javaScript-Objekt",
                       "property": "payload",
                       "action": "obj",
                       "pretty": false,
                       "x": 340,
                       "y": 500,
                       "wires": [
                           [
                               "35915391.5305d4",
                               "d37dd080.68411"
                           ]
                       ]
                   },
                   {
                       "id": "35915391.5305d4",
                       "type": "change",
                       "z": "d93e3783.0c3008",
                       "name": "msg.payload.data[0].currentPower => msg.payload",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.data[0].currentPower",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 310,
                       "y": 580,
                       "wires": [
                           [
                               "e390c910.325d28"
                           ]
                       ]
                   },
                   {
                       "id": "d65131d.704c25",
                       "type": "change",
                       "z": "d93e3783.0c3008",
                       "name": "Konvertiere alle ' nach \"",
                       "rules": [
                           {
                               "t": "change",
                               "p": "payload",
                               "pt": "msg",
                               "from": "'",
                               "fromt": "str",
                               "to": "\"",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 370,
                       "y": 360,
                       "wires": [
                           [
                               "99207548.64ef78",
                               "4c0e8fba.aacef"
                           ]
                       ]
                   },
                   {
                       "id": "62838cef.a94bc4",
                       "type": "debug",
                       "z": "d93e3783.0c3008",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 670,
                       "y": 140,
                       "wires": []
                   },
                   {
                       "id": "4c0e8fba.aacef",
                       "type": "debug",
                       "z": "d93e3783.0c3008",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 670,
                       "y": 360,
                       "wires": []
                   },
                   {
                       "id": "d37dd080.68411",
                       "type": "debug",
                       "z": "d93e3783.0c3008",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 670,
                       "y": 500,
                       "wires": []
                   }
                ]
                

                2021-03-21_11-55-44.jpg

                T Offline
                T Offline
                ThomyTP
                schrieb am zuletzt editiert von ThomyTP
                #7

                @rewenode said in [Problem]Daten aus JSON nutzen:

                Hallo,
                vielen Dank schon mal für den Tip,das klappt ja schon mal ganz gut,..
                Super respekt für die Top aufbereitung.. Ich habe noch nie einen Flow gemacht, daher auch meine doofen Fragen :-)
                Die Daten kommen von der Growatt API über MQTT:
                Ich hatte leider nicht gesamten String kopiert, da kommt noch ein success am Ende was nun stresst.

                {'data': [{'plantMoneyText': '9.6 (â^b¬)', 'plantName': 'xxxxx', 'plantId': '234482', 'isHaveStorage': 'false', 'todayEnergy': '1.1 kWh', 'totalEnergy': '35 kWh','currentPower': '0 W'}], 'totalData': {'currentPowerSum': '0 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.6 (â^b¬)', 'todayEnergySum': '1.1 kWh', 'totalEnergySum': '35 kWh'}, 'success': True}
                

                Hier bekomme ich nun die Fehlermeldung
                "Unexpected token T in JSON at position 378"

                Im anschluss möchte ich die Daten an Volkszähler geben um diese zu visualiserern.

                Ich hatte da an so einen Flow gedacht, bin ich da auf dem richtigem Weg?

                
                [{"id":"20226fae.f5f3f","type":"tab","label":"Flow 10","disabled":false,"info":""},{"id":"522399fd.b1ca3","type":"http request","z":"20226fae.f5f3f","name":"volkszaehler post","method":"POST","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":750,"y":720,"wires":[["987b67cb.1a4978"]]},{"id":"1a4ac21f.e52006","type":"template","z":"20226fae.f5f3f","name":"post data url","field":"url","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"http://localhost/middleware.php/data/{{uuid}}.json?ts={{timestamp}}&value={{payload}}","x":730,"y":640,"wires":[["81bf5d64.86db58"]]},{"id":"c46f4ca6.8a3278","type":"json","z":"20226fae.f5f3f","name":"","property":"payload","action":"","pretty":false,"x":1190,"y":640,"wires":[["522399fd.b1ca3"]]},{"id":"987b67cb.1a4978","type":"debug","z":"20226fae.f5f3f","name":"post response","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1040,"y":720,"wires":[]},{"id":"81bf5d64.86db58","type":"change","z":"20226fae.f5f3f","name":"","rules":[{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":640,"wires":[["c46f4ca6.8a3278"]]},{"id":"4997c860.5affe","type":"change","z":"20226fae.f5f3f","name":"set uuid / timestamp","rules":[{"t":"set","p":"uuid","pt":"msg","to":"c0e80280-8978-11eb-aed4-7bf6c054beaa","tot":"str"},{"t":"set","p":"timestamp","pt":"msg","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":780,"y":480,"wires":[["1a4ac21f.e52006"]]},{"id":"69a40557.f8ee4c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":540,"wires":[]},{"id":"d07f3214.8ebcf","type":"json","z":"20226fae.f5f3f","name":"JSON-String => javaScript-Objekt","property":"payload","action":"obj","pretty":false,"x":220,"y":400,"wires":[["98cccdab.a3e568","43cf62d3.bdd86c"]]},{"id":"98cccdab.a3e568","type":"change","z":"20226fae.f5f3f","name":"msg.payload.data[0].currentPower => msg.payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.data[0].currentPower","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":190,"y":480,"wires":[["69a40557.f8ee4c","4997c860.5affe"]]},{"id":"cb896446.9a8198","type":"change","z":"20226fae.f5f3f","name":"Konvertiere alle ' nach \"","rules":[{"t":"change","p":"payload","pt":"msg","from":"'","fromt":"str","to":"\"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":250,"y":260,"wires":[["d07f3214.8ebcf","5c34a8c0.88359"]]},{"id":"7f22423.5da973c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":40,"wires":[]},{"id":"5c34a8c0.88359","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":260,"wires":[]},{"id":"43cf62d3.bdd86c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":400,"wires":[]},{"id":"70b8b8b.4428e48","type":"mqtt in","z":"20226fae.f5f3f","name":"","topic":"inverter/plant_info","qos":"2","datatype":"auto","broker":"c51b082c.bcad68","x":170,"y":40,"wires":[["7f22423.5da973c","cb896446.9a8198"]]},{"id":"c51b082c.bcad68","type":"mqtt-broker","name":"ziel","broker":"192.168.111.128","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
                
                R 1 Antwort Letzte Antwort
                0
                • T ThomyTP

                  @rewenode said in [Problem]Daten aus JSON nutzen:

                  Hallo,
                  vielen Dank schon mal für den Tip,das klappt ja schon mal ganz gut,..
                  Super respekt für die Top aufbereitung.. Ich habe noch nie einen Flow gemacht, daher auch meine doofen Fragen :-)
                  Die Daten kommen von der Growatt API über MQTT:
                  Ich hatte leider nicht gesamten String kopiert, da kommt noch ein success am Ende was nun stresst.

                  {'data': [{'plantMoneyText': '9.6 (â^b¬)', 'plantName': 'xxxxx', 'plantId': '234482', 'isHaveStorage': 'false', 'todayEnergy': '1.1 kWh', 'totalEnergy': '35 kWh','currentPower': '0 W'}], 'totalData': {'currentPowerSum': '0 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.6 (â^b¬)', 'todayEnergySum': '1.1 kWh', 'totalEnergySum': '35 kWh'}, 'success': True}
                  

                  Hier bekomme ich nun die Fehlermeldung
                  "Unexpected token T in JSON at position 378"

                  Im anschluss möchte ich die Daten an Volkszähler geben um diese zu visualiserern.

                  Ich hatte da an so einen Flow gedacht, bin ich da auf dem richtigem Weg?

                  
                  [{"id":"20226fae.f5f3f","type":"tab","label":"Flow 10","disabled":false,"info":""},{"id":"522399fd.b1ca3","type":"http request","z":"20226fae.f5f3f","name":"volkszaehler post","method":"POST","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":750,"y":720,"wires":[["987b67cb.1a4978"]]},{"id":"1a4ac21f.e52006","type":"template","z":"20226fae.f5f3f","name":"post data url","field":"url","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"http://localhost/middleware.php/data/{{uuid}}.json?ts={{timestamp}}&value={{payload}}","x":730,"y":640,"wires":[["81bf5d64.86db58"]]},{"id":"c46f4ca6.8a3278","type":"json","z":"20226fae.f5f3f","name":"","property":"payload","action":"","pretty":false,"x":1190,"y":640,"wires":[["522399fd.b1ca3"]]},{"id":"987b67cb.1a4978","type":"debug","z":"20226fae.f5f3f","name":"post response","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1040,"y":720,"wires":[]},{"id":"81bf5d64.86db58","type":"change","z":"20226fae.f5f3f","name":"","rules":[{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":640,"wires":[["c46f4ca6.8a3278"]]},{"id":"4997c860.5affe","type":"change","z":"20226fae.f5f3f","name":"set uuid / timestamp","rules":[{"t":"set","p":"uuid","pt":"msg","to":"c0e80280-8978-11eb-aed4-7bf6c054beaa","tot":"str"},{"t":"set","p":"timestamp","pt":"msg","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":780,"y":480,"wires":[["1a4ac21f.e52006"]]},{"id":"69a40557.f8ee4c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":540,"wires":[]},{"id":"d07f3214.8ebcf","type":"json","z":"20226fae.f5f3f","name":"JSON-String => javaScript-Objekt","property":"payload","action":"obj","pretty":false,"x":220,"y":400,"wires":[["98cccdab.a3e568","43cf62d3.bdd86c"]]},{"id":"98cccdab.a3e568","type":"change","z":"20226fae.f5f3f","name":"msg.payload.data[0].currentPower => msg.payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.data[0].currentPower","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":190,"y":480,"wires":[["69a40557.f8ee4c","4997c860.5affe"]]},{"id":"cb896446.9a8198","type":"change","z":"20226fae.f5f3f","name":"Konvertiere alle ' nach \"","rules":[{"t":"change","p":"payload","pt":"msg","from":"'","fromt":"str","to":"\"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":250,"y":260,"wires":[["d07f3214.8ebcf","5c34a8c0.88359"]]},{"id":"7f22423.5da973c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":40,"wires":[]},{"id":"5c34a8c0.88359","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":260,"wires":[]},{"id":"43cf62d3.bdd86c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":400,"wires":[]},{"id":"70b8b8b.4428e48","type":"mqtt in","z":"20226fae.f5f3f","name":"","topic":"inverter/plant_info","qos":"2","datatype":"auto","broker":"c51b082c.bcad68","x":170,"y":40,"wires":[["7f22423.5da973c","cb896446.9a8198"]]},{"id":"c51b082c.bcad68","type":"mqtt-broker","name":"ziel","broker":"192.168.111.128","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
                  
                  R Offline
                  R Offline
                  rewenode
                  schrieb am zuletzt editiert von
                  #8

                  @thomytp
                  Das

                  'success': True
                  

                  muss in Anführungsstrichen stehen. Also

                  'success': 'True'
                  

                  oder

                  'success': "True"
                  

                  Du kannst das zwar im change-node berücksichtigen, aber wenn das außer True noch andere Fälle vorkommen können, musst du alle Fälle berücksichtigen.
                  Könnte man aber sicher einfacher mit regEx lösen, aber da bin ich nicht so der Experte, dass kann dir vlt. jemand anderes aus dem Ärmel schütteln.

                  Bildschirmfoto 2021-03-21 um 20.32.36.png

                  Zu der Weiterverarbeitung Richtung Volkszähler kann ich leider nicht weiterhelfen, da habe ich noch nie was mit gemacht.

                  T 1 Antwort Letzte Antwort
                  0
                  • R rewenode

                    @thomytp
                    Das

                    'success': True
                    

                    muss in Anführungsstrichen stehen. Also

                    'success': 'True'
                    

                    oder

                    'success': "True"
                    

                    Du kannst das zwar im change-node berücksichtigen, aber wenn das außer True noch andere Fälle vorkommen können, musst du alle Fälle berücksichtigen.
                    Könnte man aber sicher einfacher mit regEx lösen, aber da bin ich nicht so der Experte, dass kann dir vlt. jemand anderes aus dem Ärmel schütteln.

                    Bildschirmfoto 2021-03-21 um 20.32.36.png

                    Zu der Weiterverarbeitung Richtung Volkszähler kann ich leider nicht weiterhelfen, da habe ich noch nie was mit gemacht.

                    T Offline
                    T Offline
                    ThomyTP
                    schrieb am zuletzt editiert von
                    #9

                    @rewenode
                    perfekt, vielen Dank, so langsam verstehe ich node-Red.

                    Nun muss ich es noch mit dem Volkszähler hinbekommen.. aber das wird sicher auch
                    :-)

                    1 Antwort Letzte Antwort
                    0
                    • PLCHome 0P Offline
                      PLCHome 0P Offline
                      PLCHome 0
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @thomytp said in [Problem]Daten aus JSON nutzen:

                      Die Daten kommen von der Growatt API über MQTT:

                      Schon mal den ioBroker Growatt Adapter getestet?

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      461

                      Online

                      32.7k

                      Benutzer

                      82.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe