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. Node-Red InFlux Query JSON Hilfe erbeten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node-Red InFlux Query JSON Hilfe erbeten

    This topic has been deleted. Only users with topic management privileges can see it.
    • icebear
      icebear last edited by

      Hallo, ich habe einen ganz simplen Flow der mir Werte aus einer InfluxDB holt, die dann folgendermaßen in Node-Red ankommen

      24.2.2025, 17:50:14node: debug 24
      msg.payload : array[2]
      array[2]
      0: object
      result: "_result"
      table: 0
      _start: "2025-01-01T00:00:00Z"
      _stop: "2025-02-24T16:50:13.377103661Z"
      _field: "value"
      _measurement: "WP_Energy_Month"
      _value: 537.3399999999997
      _time: "2025-02-01T00:00:00Z"
      1: object
      result: "_result"
      table: 0
      _start: "2025-01-01T00:00:00Z"
      _stop: "2025-02-24T16:50:13.377103661Z"
      _field: "value"
      _measurement: "WP_Energy_Month"
      _value: 386.03999999999996
      _time: "2025-02-24T16:50:13.377103661Z"
      

      Daraus möchte ich gerne nur die _value in folgendem Format in einem DP speichern

      [
        537.5,
        383.72
      ]
      
      

      wobei, der erste Wert dem Monat= Januar entspricht, der zweite Wert= Februar usw. d.h. er müsste dann im nächsten Monat mit einem neuen Eintrag weiter machen usw.

      Der aktuelle Monat soll fortlaufend fortgeschrieben werden (z.B. jede Stunde o.Ä)

      Ich hoffe es kann jemand helfen.

      mickym sprobst 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @icebear last edited by

        @icebear Am Besten ist immer wenn Du den Wert aus dem Debugfenster nicht mit der Maus kopierst, sondern oben als on top neben der payload die Schaltfläche "Wert kopieren" (in dem Bild "Copy value") nimmst und dass dann in Codetags kopierst. So kann man wenig damit anfangen.

        NodeRed Copy Path.gif

        Ich denke aber dass es einfach ist, da Du nur mit einer ChangeNode und JSONATA, die payload auf payload._value setzen musst.

        Wie gesagt wenn Du die Daten hier richtig einstellst, kann ich Dir den Flow auch machen.

        1 Reply Last reply Reply Quote 0
        • sprobst
          sprobst @icebear last edited by

          Hallo @icebear,

          ich würde mal mit einem jsonata-Ausdruck loslegen:

          [
              {
                  "id": "ad1cf4c5a0ed4267",
                  "type": "change",
                  "z": "47f31805d18ffe61",
                  "name": "influx2array",
                  "rules": [
                      {
                          "t": "set",
                          "p": "payload",
                          "pt": "msg",
                          "to": "payload[].\"_value\"",
                          "tot": "jsonata"
                      }
                  ],
                  "action": "",
                  "property": "",
                  "from": "",
                  "to": "",
                  "reg": false,
                  "x": 630,
                  "y": 300,
                  "wires": [
                      [
                          "a410bdbf7bc22bd8"
                      ]
                  ]
              }
          ]
          

          Den Start der influx-Ausgabe im Januar sicherst Du vermutlich über deine query dort.

          Gruß
          Sven

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

            @sprobst Dein JSONATA ist aber schon etwas eigenartig, aber wenn Du es probiert hast, dann wird es wohl stimmen.

            1 Reply Last reply Reply Quote 0
            • icebear
              icebear last edited by

              @mickym said in Node-Red InFlux Query JSON Hilfe erbeten:

              Wie gesagt wenn Du die Daten hier richtig einstellst, kann ich Dir den Flow auch machen.

              [{"result":"_result","table":0,"_start":"2025-01-01T00:00:00Z","_stop":"2025-02-24T18:28:53.015523517Z","_field":"value","_measurement":"WP_Energy_Month","_value":537.3399999999997,"_time":"2025-02-01T00:00:00Z"},{"result":"_result","table":0,"_start":"2025-01-01T00:00:00Z","_stop":"2025-02-24T18:28:53.015523517Z","_field":"value","_measurement":"WP_Energy_Month","_value":386.3800000000001,"_time":"2025-02-24T18:28:53.015523517Z"}]
              

              Ich hoffe das ist so o.K.

              sprobst mickym 2 Replies Last reply Reply Quote 0
              • sprobst
                sprobst @icebear last edited by

                @icebear

                geht mit dem Knoten von oben, oder etwas kürzeres Jsonata geht auch (wie schon im Thread zu lesen war)

                [
                    {
                        "id": "c11cd86aa59aac08",
                        "type": "inject",
                        "z": "3ca7d7d6004a839f",
                        "name": "",
                        "props": [
                            {
                                "p": "payload"
                            },
                            {
                                "p": "topic",
                                "vt": "str"
                            }
                        ],
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "topic": "test",
                        "payload": "[{\"result\":\"_result\",\"table\":0,\"_start\":\"2025-01-01T00:00:00Z\",\"_stop\":\"2025-02-24T18:28:53.015523517Z\",\"_field\":\"value\",\"_measurement\":\"WP_Energy_Month\",\"_value\":537.3399999999997,\"_time\":\"2025-02-01T00:00:00Z\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2025-01-01T00:00:00Z\",\"_stop\":\"2025-02-24T18:28:53.015523517Z\",\"_field\":\"value\",\"_measurement\":\"WP_Energy_Month\",\"_value\":386.3800000000001,\"_time\":\"2025-02-24T18:28:53.015523517Z\"}]",
                        "payloadType": "json",
                        "x": 730,
                        "y": 120,
                        "wires": [
                            [
                                "ad1cf4c5a0ed4267"
                            ]
                        ]
                    },
                    {
                        "id": "ad1cf4c5a0ed4267",
                        "type": "change",
                        "z": "3ca7d7d6004a839f",
                        "name": "influx2array",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "payload._value",
                                "tot": "jsonata"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 910,
                        "y": 120,
                        "wires": [
                            [
                                "ab6ed17dd7101198"
                            ]
                        ]
                    },
                    {
                        "id": "ab6ed17dd7101198",
                        "type": "debug",
                        "z": "3ca7d7d6004a839f",
                        "name": "debug 16",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "false",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 1100,
                        "y": 120,
                        "wires": []
                    }
                ]
                
                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @icebear last edited by

                  @icebear sagte in Node-Red InFlux Query JSON Hilfe erbeten:

                  [{"result":"_result","table":0,"_start":"2025-01-01T00:00:00Z","_stop":"2025-02-24T18:28:53.015523517Z","_field":"value","_measurement":"WP_Energy_Month","_value":537.3399999999997,"_time":"2025-02-01T00:00:00Z"},{"result":"_result","table":0,"_start":"2025-01-01T00:00:00Z","_stop":"2025-02-24T18:28:53.015523517Z","_field":"value","_measurement":"WP_Energy_Month","_value":386.3800000000001,"_time":"2025-02-24T18:28:53.015523517Z"}]

                  Ja so wie ich mir gedacht habe:

                  3ec903cf-e388-41a8-9ed5-6d37dfe18efb-image.png

                  Hier zum Import:

                  [
                     {
                         "id": "97226e97898c1d1b",
                         "type": "inject",
                         "z": "7e6af0015415146d",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "[{\"result\":\"_result\",\"table\":0,\"_start\":\"2025-01-01T00:00:00Z\",\"_stop\":\"2025-02-24T18:28:53.015523517Z\",\"_field\":\"value\",\"_measurement\":\"WP_Energy_Month\",\"_value\":537.3399999999997,\"_time\":\"2025-02-01T00:00:00Z\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2025-01-01T00:00:00Z\",\"_stop\":\"2025-02-24T18:28:53.015523517Z\",\"_field\":\"value\",\"_measurement\":\"WP_Energy_Month\",\"_value\":386.3800000000001,\"_time\":\"2025-02-24T18:28:53.015523517Z\"}]",
                         "payloadType": "json",
                         "x": 230,
                         "y": 7300,
                         "wires": [
                             [
                                 "cbc091c2c79dbd73"
                             ]
                         ]
                     },
                     {
                         "id": "cbc091c2c79dbd73",
                         "type": "change",
                         "z": "7e6af0015415146d",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload.$round(_value,2)",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 410,
                         "y": 7300,
                         "wires": [
                             [
                                 "c645ad9c92eef1f5"
                             ]
                         ]
                     },
                     {
                         "id": "c645ad9c92eef1f5",
                         "type": "debug",
                         "z": "7e6af0015415146d",
                         "name": "value",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 590,
                         "y": 7300,
                         "wires": []
                     }
                  ]
                  

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

                    @mickym

                    Erst einmal Danke für deine Hilfe.

                    Soweit funktioniert das auch, allerdings bekomme ich die folgende Fehlermeldung:

                    	State value to set for "0_userdata.0.Eigene_Variablen.WP.Energie.Database.GesamtYear" has to be stringified but received type "object"
                    

                    und beim aktualisieren macht er immer die [] weg. Es sollte allerdings so wie ich oben gepostet hatte gespeichert werden. (Also im DP als "role": "state", "type": "json", )

                    [
                      537.34,
                      394.76
                    ]
                    

                    ist bestimmt nur eine Kleinigkeit.strikethrough text

                    Hat sich erledigt, ich habs hinbekommen, funktioniert jetzt wie gewünscht.

                    Ich hab einfach noch ein json-node dazwischen gepackt. (Ich denke das war richtig so), auf jedenfall meckert das log nicht mehr und der Wert steht auch so im DP wie gewünscht.

                    Also nochmal vielen Dank

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    749
                    Online

                    31.7k
                    Users

                    79.7k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    248
                    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