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. Funktion zum auslesen der Leistungsdaten SMA WEBBOX

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    338

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Funktion zum auslesen der Leistungsdaten SMA WEBBOX

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 5 Kommentatoren 3.7k Aufrufe
  • Ä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.
  • W Offline
    W Offline
    wobo
    schrieb am zuletzt editiert von
    #1

    Hallo

    Ich würde gerne aus den folgenden JSON String die Daten wie Tagesertrag auslesen. Wie muss die Funktion aussehen damit ich den Tagesertrag bekomme ?

    { "result": { "overview": [ { "meta": "GriPwr", "name": "Leistung", "unit": "W", "value": "0" }, { "meta": "GriEgyTdy", "name": "Tagesertrag", "unit": "kWh", "value": "29.667" }, { "meta": "GriEgyTot", "name": "Gesamtertrag", "unit": "kWh", "value": "28361.134" }, { "meta": "OpStt", "name": "Zustand", "value": "Ok, Ok, Ok" }, { "meta": "Msg", "name": "Meldung", "value": "" } ] }, "format": "JSON", "proc": "GetPlantOverview", "version": "1.0", "id": "1" }

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @wobo:

      Wie muss die Funktion aussehen damit ich den Tagesertrag bekomme ? `

      var obj = { "result": 
      	{ "overview": [ { "meta": "GriPwr",
      					  "name": "Leistung",
      					  "unit": "W",
      					  "value": "0" 
      					}, 
      					{ "meta": "GriEgyTdy",
      					  "name": "Tagesertrag",
      					  "unit": "kWh",
      					  "value": "29.667" 
      					}, 
      					{ "meta": "GriEgyTot",
      					  "name": "Gesamtertrag",
      					  "unit": "kWh",
      					  "value": "28361.134" 
      					}, 
      					{ "meta": "OpStt",
       					  "name": "Zustand",
      					  "value": "Ok, Ok, Ok" 
      					}, 
      					{ "meta": "Msg",
      					  "name": "Meldung",
      					  "value": "" 
      					} 
      				]
      	},
      	"format": "JSON",
      	"proc": "GetPlantOverview",
      	"version": "1.0",
      	"id": "1" 
      };
      log(obj.result.overview[1].value); // Wert für Tagesertrag = 29.667
      
      

      Log:
      ` > 22:08:04.937 [info] javascript.1 Start javascript script.js.common.Tests

      22:08:04.937 [info] javascript.1 script.js.common.Tests: 29.667

      22:08:04.937 [info] javascript.1 script.js.common.Tests: registered 0 subscriptions and 0 schedules `

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • W Offline
        W Offline
        wobo
        schrieb am zuletzt editiert von
        #3

        Danke für die schnelle Antwort.

        Ich meinte eine node-red Funktion.
        1330_unbenannt.png

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          Ich wollte die Objektstruktur besser sichtbar machen.

          Von node-red habe ich keine Ahnung. Vielleicht so ?

          return  { payload: msg.payload.result.overview[1].value };
          

          oder so ?

          return msg.result.overview[1].value ;
          

          oder, da die Ausgabe "msg.payload" ist, so ?

          return  { payload: msg.result.overview[1].value };
          

          Ich hoffe, dass eine der Varianten funktioniert ;)

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • N Offline
            N Offline
            nobody
            schrieb am zuletzt editiert von
            #5

            Hallo,

            Eine kleine Änderung ist notwendig:

            msg.payload=msg.payload.result.overview [1].value;

            return msg;

            Gesendet von meinem SM-G900F mit Tapatalk

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @nobody:

              msg.payload=msg.payload.result.overview [1].value;

              return msg; `
              Das sollte identisch zu meinem ersten Vorschlag sein.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • N Offline
                N Offline
                nobody
                schrieb am zuletzt editiert von
                #7

                Praktisch ja, rein formell nein. Zu einem korrekten Message Objekt gehören per Definition mindestens die Attribute payload und topic, auch wenn diese leer sind.

                Gesendet von meinem SM-G900F mit Tapatalk

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @nobody:

                  Zu einem korrekten Message Objekt gehören per Definition mindestens die Attribute payload und topic, auch wenn diese leer sind. `
                  Danke für die Information.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • W Offline
                    W Offline
                    wobo
                    schrieb am zuletzt editiert von
                    #9

                    Hat super funktioniert

                    hier die Lösung

                    msg1 = {};

                    msg1.payload = msg.payload.result.overview[0].value + " " + msg.payload.result.overview[0].unit;

                    msg2 = {};

                    msg2.payload = msg.payload.result.overview[1].value + " " + msg.payload.result.overview[1].unit;

                    msg3 = {};

                    msg3.payload = msg.payload.result.overview[2].value + " " + msg.payload.result.overview[2].unit ;

                    return [msg1,msg2,msg3];

                    mir ist noch unklar wie die Funktion aussehen müsste wenn der folgende String abgefragt wird.

                    {"result":{"devices":[{"channels":[{"meta":"Ipv","name":"DC Strom Eingang","unit":"A","value":"0"},{"meta":"Upv-Ist","name":"DC Spannung Eingang","unit":"V","value":"0"},{"meta":"WindVel m/s","name":"Windgeschwindigkeit","unit":"m/s","value":"2.4"},{"meta":"TmpAmb C","name":"Au\u00DFentemperatur","unit":"\u00B0C","value":"20.3"},{"meta":"IntSolIrr","name":"Einstrahlung","unit":"W/m^2","value":"75"},{"meta":"Fac","name":"Netzfrequenz","unit":"Hz","value":"0"},{"meta":"Iac-Ist","name":"Netzstrom","unit":"A","value":"0"},{"meta":"Pac","name":"Leistung","unit":"W","value":"0"},{"meta":"Riso","name":"Isolationswiderstand","unit":"Ohm","value":"0"},{"meta":"TmpMdul C","name":"Modultemperatur","unit":"\u00B0C","value":"22.3"},{"meta":"h-On","name":"Einspeisezeit","unit":"h","value":"0"},{"meta":"h-Total","name":"Betriebszeit","unit":"h","value":"0"},{"meta":"E-Total","name":"Gesamtertrag","unit":"kWh","value":"0"},{"meta":"Netz-Ein","name":"Anzahl Netzzuschaltungen","value":"0"}],"key":"0088:0000725b"}]},"format":"JSON","proc":"GetProcessData","version":"1.0","id":"1"}

                    1 Antwort Letzte Antwort
                    0
                    • N Offline
                      N Offline
                      nobody
                      schrieb am zuletzt editiert von
                      #10

                      Gib das json objekt doch mal hier in das Formular ein:

                      http://jsonprettyprint.com

                      Dann wird es richtig formatiert und man sieht die Ebenen und Arrays für den Zugriff auf die Attribute.

                      Gesendet von meinem SM-G900F mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • W Offline
                        W Offline
                        wobo
                        schrieb am zuletzt editiert von
                        #11

                        Danke für den Tip.

                        es sind 2 Arrays wie fragt man die dann ab ? Ich würde dann gerne die Modultemperatur auslesen.

                        {

                        "result": {

                        "devices": [

                        {

                        "channels": [

                        {

                        "meta": "Ipv",

                        "name": "DC Strom Eingang",

                        "unit": "A",

                        "value": "0"

                        },

                        {

                        "meta": "Upv-Ist",

                        "name": "DC Spannung Eingang",

                        "unit": "V",

                        "value": "0"

                        },

                        {

                        "meta": "WindVel m/s",

                        "name": "Windgeschwindigkeit",

                        "unit": "m/s",

                        "value": "2.4"

                        },

                        {

                        "meta": "TmpAmb C",

                        "name": "Au\u00dfentemperatur",

                        "unit": "\u00b0C",

                        "value": "20.3"

                        },

                        {

                        "meta": "IntSolIrr",

                        "name": "Einstrahlung",

                        "unit": "W/m^2",

                        "value": "75"

                        },

                        {

                        "meta": "Fac",

                        "name": "Netzfrequenz",

                        "unit": "Hz",

                        "value": "0"

                        },

                        {

                        "meta": "Iac-Ist",

                        "name": "Netzstrom",

                        "unit": "A",

                        "value": "0"

                        },

                        {

                        "meta": "Pac",

                        "name": "Leistung",

                        "unit": "W",

                        "value": "0"

                        },

                        {

                        "meta": "Riso",

                        "name": "Isolationswiderstand",

                        "unit": "Ohm",

                        "value": "0"

                        },

                        {

                        "meta": "TmpMdul C",

                        "name": "Modultemperatur",

                        "unit": "\u00b0C",

                        "value": "22.3"

                        },

                        {

                        "meta": "h-On",

                        "name": "Einspeisezeit",

                        "unit": "h",

                        "value": "0"

                        },

                        {

                        "meta": "h-Total",

                        "name": "Betriebszeit",

                        "unit": "h",

                        "value": "0"

                        },

                        {

                        "meta": "E-Total",

                        "name": "Gesamtertrag",

                        "unit": "kWh",

                        "value": "0"

                        },

                        {

                        "meta": "Netz-Ein",

                        "name": "Anzahl Netzzuschaltungen",

                        "value": "0"

                        }

                        ],

                        "key": "0088:0000725b"

                        }

                        ]

                        },

                        "format": "JSON",

                        "proc": "GetProcessData",

                        "version": "1.0",

                        "id": "1"

                        }

                        1 Antwort Letzte Antwort
                        0
                        • N Offline
                          N Offline
                          nobody
                          schrieb am zuletzt editiert von
                          #12

                          Einfach durchhangeln. Z. B.

                          msg.payload.result.devices[0].channels [0].value

                          Wenn nur die Werte und Einheiten interessant sind, bleibt das erste Array konstant auf 0. Die Anzahl der Einträge im zweiten Array bekommt man mit msg.payload.result.devices[0].channels.length.

                          Jetzt kommt es drauf an, was mit den Werten passieren soll.

                          Gesendet von meinem GT-N8000 mit Tapatalk

                          1 Antwort Letzte Antwort
                          0
                          • J Offline
                            J Offline
                            jamesmalvi
                            schrieb am zuletzt editiert von
                            #13

                            @nobody:

                            Gib das json objekt doch mal hier in das Formular ein:

                            http://jsonprettyprint.com

                            Dann wird es richtig formatiert und man sieht die Ebenen und Arrays für den Zugriff auf die Attribute.

                            Gesendet von meinem SM-G900F mit Tapatalk `

                            Ich benutze https://jsonformatter.org/json-pretty-print und https://codebeautify.org/jsonviewer

                            1 Antwort Letzte Antwort
                            0
                            • boeserkornB Offline
                              boeserkornB Offline
                              boeserkorn
                              schrieb am zuletzt editiert von
                              #14

                              @wobo

                              hast du es gelöst… ich bekomme leider noch nicht mal eine Rückmeldung von der Webbox, wäre schön wenn du mir da helfen könntest.

                              Danke

                              @wobo:

                              Danke für den Tip.

                              es sind 2 Arrays wie fragt man die dann ab ? Ich würde dann gerne die Modultemperatur auslesen.

                              {

                              "result": {

                              "devices": [

                              {

                              "channels": [

                              {

                              "meta": "Ipv",

                              "name": "DC Strom Eingang",

                              "unit": "A",

                              "value": "0"

                              },

                              {

                              "meta": "Upv-Ist",

                              "name": "DC Spannung Eingang",

                              "unit": "V",

                              "value": "0"

                              },

                              {

                              "meta": "WindVel m/s",

                              "name": "Windgeschwindigkeit",

                              "unit": "m/s",

                              "value": "2.4"

                              },

                              {

                              "meta": "TmpAmb C",

                              "name": "Au\u00dfentemperatur",

                              "unit": "\u00b0C",

                              "value": "20.3"

                              },

                              {

                              "meta": "IntSolIrr",

                              "name": "Einstrahlung",

                              "unit": "W/m^2",

                              "value": "75"

                              },

                              {

                              "meta": "Fac",

                              "name": "Netzfrequenz",

                              "unit": "Hz",

                              "value": "0"

                              },

                              {

                              "meta": "Iac-Ist",

                              "name": "Netzstrom",

                              "unit": "A",

                              "value": "0"

                              },

                              {

                              "meta": "Pac",

                              "name": "Leistung",

                              "unit": "W",

                              "value": "0"

                              },

                              {

                              "meta": "Riso",

                              "name": "Isolationswiderstand",

                              "unit": "Ohm",

                              "value": "0"

                              },

                              {

                              "meta": "TmpMdul C",

                              "name": "Modultemperatur",

                              "unit": "\u00b0C",

                              "value": "22.3"

                              },

                              {

                              "meta": "h-On",

                              "name": "Einspeisezeit",

                              "unit": "h",

                              "value": "0"

                              },

                              {

                              "meta": "h-Total",

                              "name": "Betriebszeit",

                              "unit": "h",

                              "value": "0"

                              },

                              {

                              "meta": "E-Total",

                              "name": "Gesamtertrag",

                              "unit": "kWh",

                              "value": "0"

                              },

                              {

                              "meta": "Netz-Ein",

                              "name": "Anzahl Netzzuschaltungen",

                              "value": "0"

                              }

                              ],

                              "key": "0088:0000725b"

                              }

                              ]

                              },

                              "format": "JSON",

                              "proc": "GetProcessData",

                              "version": "1.0",

                              "id": "1"

                              } `

                              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

                              720

                              Online

                              32.5k

                              Benutzer

                              81.7k

                              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