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
    337

  • 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.
  • 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

                            695

                            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