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. Node-Red
  5. Werte aus JSON übernehmen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Werte aus JSON übernehmen

Geplant Angeheftet Gesperrt Verschoben Node-Red
14 Beiträge 4 Kommentatoren 876 Aufrufe 2 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.
  • L Offline
    L Offline
    LibertyX82
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich möchte mehrere Werte aus einen JSON String als msg.payload an ein Objekt übergeben.

    Die msg.payload muss dazu wie folgt aussehen "CURRENT=WERT1&VOLTAGE=WERT2"

    Einzelne Werte aus einem JSON String zu extrahieren ist nicht das Problem, aber wie setzte ich merhere Werte als Variable in einem String zusammen?

    Ro75R mickymM 2 Antworten Letzte Antwort
    0
    • L LibertyX82

      Hi,

      ich möchte mehrere Werte aus einen JSON String als msg.payload an ein Objekt übergeben.

      Die msg.payload muss dazu wie folgt aussehen "CURRENT=WERT1&VOLTAGE=WERT2"

      Einzelne Werte aus einem JSON String zu extrahieren ist nicht das Problem, aber wie setzte ich merhere Werte als Variable in einem String zusammen?

      Ro75R Offline
      Ro75R Offline
      Ro75
      schrieb am zuletzt editiert von
      #2

      @libertyx82 'CURRENT='+WERT1+'&VOLTAGE='+WERT2

      SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

      1 Antwort Letzte Antwort
      0
      • L LibertyX82

        Hi,

        ich möchte mehrere Werte aus einen JSON String als msg.payload an ein Objekt übergeben.

        Die msg.payload muss dazu wie folgt aussehen "CURRENT=WERT1&VOLTAGE=WERT2"

        Einzelne Werte aus einem JSON String zu extrahieren ist nicht das Problem, aber wie setzte ich merhere Werte als Variable in einem String zusammen?

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #3

        @libertyx82 Na die WERT1 und WERT2 müssen unterschiedlicher Eigenschaften einer payload sein oder sie sind bereits Bestandteil eines Objektes. Ich würde vorschlagen Du machst das mal konkret - sprich woher kommen WERT1 und WERT2. Von function Nodes rate ich ab. Jedenfalls müssen beide Werte Bestandteil des eingehenden Nachrichtenobjektes sein oder Du holst es aus einem Kontext.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        L 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @libertyx82 Na die WERT1 und WERT2 müssen unterschiedlicher Eigenschaften einer payload sein oder sie sind bereits Bestandteil eines Objektes. Ich würde vorschlagen Du machst das mal konkret - sprich woher kommen WERT1 und WERT2. Von function Nodes rate ich ab. Jedenfalls müssen beide Werte Bestandteil des eingehenden Nachrichtenobjektes sein oder Du holst es aus einem Kontext.

          L Offline
          L Offline
          LibertyX82
          schrieb am zuletzt editiert von
          #4

          @mickym
          Die Werte kommen als JSON String aus einem Node

          e1525912-bf14-4cb9-bae5-a957c7d58b06-image.png

          {"timestamp":"2023-02-18T21:32:15.000+01:00","power":271.85,"lastMeterConsumption":417.8481905,"accumulatedConsumption":4.857743,"accumulatedProduction":0,"accumulatedConsumptionLastHour":0.207066,"accumulatedProductionLastHour":0,"accumulatedCost":1.195093,"currency":"EUR","minPower":133.88,"averagePower":225.5,"maxPower":2855.5,"powerProduction":0,"minPowerProduction":0,"maxPowerProduction":0,"lastMeterProduction":0.2099675,"signalStrength":null}
          

          Verschiedene Werte hieraus sollen als msg.payload dann in ein iobroker Objekt geschrieben werden, dazu muss die msg.payload in dem Format "CURRENT=WERT1&VOLTAGE=WERT2" sein.

          mickymM 1 Antwort Letzte Antwort
          0
          • L LibertyX82

            @mickym
            Die Werte kommen als JSON String aus einem Node

            e1525912-bf14-4cb9-bae5-a957c7d58b06-image.png

            {"timestamp":"2023-02-18T21:32:15.000+01:00","power":271.85,"lastMeterConsumption":417.8481905,"accumulatedConsumption":4.857743,"accumulatedProduction":0,"accumulatedConsumptionLastHour":0.207066,"accumulatedProductionLastHour":0,"accumulatedCost":1.195093,"currency":"EUR","minPower":133.88,"averagePower":225.5,"maxPower":2855.5,"powerProduction":0,"minPowerProduction":0,"maxPowerProduction":0,"lastMeterProduction":0.2099675,"signalStrength":null}
            

            Verschiedene Werte hieraus sollen als msg.payload dann in ein iobroker Objekt geschrieben werden, dazu muss die msg.payload in dem Format "CURRENT=WERT1&VOLTAGE=WERT2" sein.

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #5

            @libertyx82 Na dann ist es einfach:

            aber sag doch einfach, welchen Wert1 Du als Current und welchen Du als Voltage haben willst?

            Na ja seis drum - man kann halt nur so gut helfen, wie man konkrete Fragen bekommt:

            061fc6d8-a2fc-40b3-8d1e-fc87341691ca-image.png

            4d7145cd-f568-4409-ba28-de1e502b22bb-image.png

            Wenn man das in einen Datenpunkt im iobroker schreiben will, dann jagt man es einfach durch die JSON Node. ;)

            Wie gesagt - das was Du willst musst halt konkret formulieren.

            414f3e3b-15ec-422d-be06-e368a0934dba-image.png

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            L 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @libertyx82 Na dann ist es einfach:

              aber sag doch einfach, welchen Wert1 Du als Current und welchen Du als Voltage haben willst?

              Na ja seis drum - man kann halt nur so gut helfen, wie man konkrete Fragen bekommt:

              061fc6d8-a2fc-40b3-8d1e-fc87341691ca-image.png

              4d7145cd-f568-4409-ba28-de1e502b22bb-image.png

              Wenn man das in einen Datenpunkt im iobroker schreiben will, dann jagt man es einfach durch die JSON Node. ;)

              Wie gesagt - das was Du willst musst halt konkret formulieren.

              414f3e3b-15ec-422d-be06-e368a0934dba-image.png

              L Offline
              L Offline
              LibertyX82
              schrieb am zuletzt editiert von LibertyX82
              #6

              @mickym
              Tatsächlich geht es um fast alle Werte aus dem JSON string.
              Aber das hat mir schon geholfen, muss es ja nur entwprechend anpassen :)

              Allerdings ist mir gerade aufgefallen, dass der Wert lastMeterConsumption die falsche Einheit hat und ich diesen durch 1000 teilen müsste.

              Gibt es auch eine Möglichkeit, dass nicht jede Nachricht aus dem Node bearbeitet wird sondern nur z.B. jede 5.?

              Great SUNG mickymM 2 Antworten Letzte Antwort
              0
              • L LibertyX82

                @mickym
                Tatsächlich geht es um fast alle Werte aus dem JSON string.
                Aber das hat mir schon geholfen, muss es ja nur entwprechend anpassen :)

                Allerdings ist mir gerade aufgefallen, dass der Wert lastMeterConsumption die falsche Einheit hat und ich diesen durch 1000 teilen müsste.

                Gibt es auch eine Möglichkeit, dass nicht jede Nachricht aus dem Node bearbeitet wird sondern nur z.B. jede 5.?

                Great SUNG Offline
                Great SUNG Offline
                Great SUN
                schrieb am zuletzt editiert von
                #7

                @libertyx82 Ist das Thema jetzt gelöst, oder brauchst Du bei der Umsetzung noch Hilfe?

                1 Antwort Letzte Antwort
                0
                • L LibertyX82

                  @mickym
                  Tatsächlich geht es um fast alle Werte aus dem JSON string.
                  Aber das hat mir schon geholfen, muss es ja nur entwprechend anpassen :)

                  Allerdings ist mir gerade aufgefallen, dass der Wert lastMeterConsumption die falsche Einheit hat und ich diesen durch 1000 teilen müsste.

                  Gibt es auch eine Möglichkeit, dass nicht jede Nachricht aus dem Node bearbeitet wird sondern nur z.B. jede 5.?

                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von mickym
                  #8

                  @libertyx82 Wie gesagt, wenn Du das als Objekte in iobroker schreiben willst - dann erzeugst Du String nicht selbst, sondern nutzt das Objekt. Macht einfach keinen Sinn sonst.

                  Wenn das nicht genau 5 Nachrichten sein müssen, dann empfehle ich Dir die Delay Node. um die Nachrichtenrate zu begrenzen und die Zwischennachrichten zu löschen.

                  Wenn Du unbedingt zählen willst - dann musst halt eine kleine function Node schreiben.

                  [
                     {
                         "id": "042e386430770412",
                         "type": "function",
                         "z": "289f539dcc33814e",
                         "name": "nur alle 5 Nachrichten senden",
                         "func": "var counter = context.get(\"counter\") || 0;\ncounter++;\n\nif (counter==5) counter = 0;\ncontext.set(\"counter\", counter);\nif (!counter) return msg;",
                         "outputs": 1,
                         "noerr": 0,
                         "initialize": "",
                         "finalize": "",
                         "libs": [],
                         "x": 2710,
                         "y": 4600,
                         "wires": [
                             []
                         ]
                     }
                  ]
                  

                  var counter = context.get("counter") || 0;
                  counter++;
                  
                  if (counter==5) counter = 0;
                  context.set("counter", counter);
                  if (!counter) return msg;
                  

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  L 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @libertyx82 Wie gesagt, wenn Du das als Objekte in iobroker schreiben willst - dann erzeugst Du String nicht selbst, sondern nutzt das Objekt. Macht einfach keinen Sinn sonst.

                    Wenn das nicht genau 5 Nachrichten sein müssen, dann empfehle ich Dir die Delay Node. um die Nachrichtenrate zu begrenzen und die Zwischennachrichten zu löschen.

                    Wenn Du unbedingt zählen willst - dann musst halt eine kleine function Node schreiben.

                    [
                       {
                           "id": "042e386430770412",
                           "type": "function",
                           "z": "289f539dcc33814e",
                           "name": "nur alle 5 Nachrichten senden",
                           "func": "var counter = context.get(\"counter\") || 0;\ncounter++;\n\nif (counter==5) counter = 0;\ncontext.set(\"counter\", counter);\nif (!counter) return msg;",
                           "outputs": 1,
                           "noerr": 0,
                           "initialize": "",
                           "finalize": "",
                           "libs": [],
                           "x": 2710,
                           "y": 4600,
                           "wires": [
                               []
                           ]
                       }
                    ]
                    

                    var counter = context.get("counter") || 0;
                    counter++;
                    
                    if (counter==5) counter = 0;
                    context.set("counter", counter);
                    if (!counter) return msg;
                    
                    L Offline
                    L Offline
                    LibertyX82
                    schrieb am zuletzt editiert von
                    #9

                    @mickym

                    Muss nicht exakt jede 5. sein, Delay Node mit 1msg/5s passt perfekt Danke!

                    Ich schreibe den Wert der msg.payload als Wert in ein iobroker objekt
                    fc009c84-8614-4916-a52d-4bc433b35c6b-image.png

                    Daher müsste ich den Wert von lastMeterConsumption davor umrechnen

                    Great SUNG mickymM 2 Antworten Letzte Antwort
                    0
                    • L LibertyX82

                      @mickym

                      Muss nicht exakt jede 5. sein, Delay Node mit 1msg/5s passt perfekt Danke!

                      Ich schreibe den Wert der msg.payload als Wert in ein iobroker objekt
                      fc009c84-8614-4916-a52d-4bc433b35c6b-image.png

                      Daher müsste ich den Wert von lastMeterConsumption davor umrechnen

                      Great SUNG Offline
                      Great SUNG Offline
                      Great SUN
                      schrieb am zuletzt editiert von Great SUN
                      #10

                      @libertyx82 Warum machst Du da kein Device draus oder ein Verzeichnis und speicherst die Werte einzeln?

                      -> SET_STATES
                          -> POWER
                               241,02
                          -> CURRENT
                               2,01
                      
                      mickymM 1 Antwort Letzte Antwort
                      0
                      • L LibertyX82

                        @mickym

                        Muss nicht exakt jede 5. sein, Delay Node mit 1msg/5s passt perfekt Danke!

                        Ich schreibe den Wert der msg.payload als Wert in ein iobroker objekt
                        fc009c84-8614-4916-a52d-4bc433b35c6b-image.png

                        Daher müsste ich den Wert von lastMeterConsumption davor umrechnen

                        mickymM Offline
                        mickymM Offline
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #11

                        @libertyx82 dann rechnest halt um
                        8d21f7c0-60aa-49f4-995a-64e2590594dc-image.png

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        L 1 Antwort Letzte Antwort
                        0
                        • Great SUNG Great SUN

                          @libertyx82 Warum machst Du da kein Device draus oder ein Verzeichnis und speicherst die Werte einzeln?

                          -> SET_STATES
                              -> POWER
                                   241,02
                              -> CURRENT
                                   2,01
                          
                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @great-sun Na dann kann er gleich meinen Subflow nehmen, der schreibt alle Werte eines JSON in einzelne Datenpunkte:

                          https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          Great SUNG 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @great-sun Na dann kann er gleich meinen Subflow nehmen, der schreibt alle Werte eines JSON in einzelne Datenpunkte:

                            https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen

                            Great SUNG Offline
                            Great SUNG Offline
                            Great SUN
                            schrieb am zuletzt editiert von
                            #13

                            @mickym Siehste, noch einfacher :-)

                            1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              @libertyx82 dann rechnest halt um
                              8d21f7c0-60aa-49f4-995a-64e2590594dc-image.png

                              L Offline
                              L Offline
                              LibertyX82
                              schrieb am zuletzt editiert von LibertyX82
                              #14

                              @mickym
                              Da hätte ich drauf kommen können

                              Da ich die Werte in iobroker nicht weiter bearbeite sondern lediglich in ein virtuelles Geräte meines SmartHome schreibe, reicht mir das.

                              Nochmals Danke!

                              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

                              770

                              Online

                              32.6k

                              Benutzer

                              82.2k

                              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