Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jockel_Bln @hennerich last edited by Jockel_Bln

      @hennerich
      Nein, ich habe drei Datenquellen eingebunden, wobei ich den Gesamtverbrauch hinter den gestapelten Balken "versteckt" habe.
      Bei mir sieht es ein bissl anders aus.
      1.JPG

      2.JPG

      3.JPG
      Die Datenreihen sind fortlaufende Zählerstände, deshalb SELECT max("value") - min("value")
      Bei GROUP BY time(1d,-1h) fill(null) mustte ich -1h eintragen, da die Ausgabewerte sonst nicht stimmen, da sich Grafana scheinbar nicht um die Zeitzohne schert und einfach UTC nimmt. So stimmten die Verbrauchswerte nicht, da die Zeit zwischen 0:00 und 01:00 Uhr immer dem Vortag zugerechnet wurde.

      Die übrige Config des Panels, Display usw, ist bei mir bis auf Stacking gleich.

      Mir war nur so, als wenn die Anzeige nach Mitternacht gleich um einen Tag nach links springt. Aber vielleicht habe ich mich auch geirrt. Ist halt nicht so ganz schön, wenn der aktuelle Tag anfangs nur als schmaler Balken langsam ins Bild kommt.
      Bei deinem Bild oben ist der aktuelle Tag ja auch schon komplett sichtbar, obwohl es ja erst nach 11:00 Uhr zu sein scheint.
      Aber egal, ich bin schon forh, dass ich überhaupt was hinbekommen habe.
      In meinem Alter (knappe 60) dauert die Lernphase ja immer etwas länger 😉

      Gruß Jörg

      EDIT sagt:
      Gerade habe ich noch irgendwo aufgeschnappt, dass der Eintrag GROUP BY time(1d,-1h) fill(null) zwar funktioniert, aber zur Sommerzeit auf -2h geändert werde müsste.
      Deshalb ist es besser den Versatz nicht einzutragen und stattdessen GROUP BY time(1d) fill(null) tz('Europe/Berlin')
      Somit braucht man sich um die Zeitumstellung nicht mehr zu sorgen.

      1 Reply Last reply Reply Quote 2
      • S
        sol21 @Aare 07 last edited by

        @Aare-07 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

        Was ich plane ist die voraussichtliche PV Leistung von morgen zu berücksichtigen.

        Mich hatte es auch gestört, dass die Wärmepumpe kurz vor Sonnenaufgang lief und kurze Zeit später viel Strom vom Dach kam. Versuche mal meinen Ansatz zu beschreiben (vielleicht hilft es jemandem).

        Grundsätzlich hebe ich die Temperatur Nachts nicht an, sondern sperre die Wärmepumpe. Ich habe Angst dass die Wärmepumpe in einem ungünstigen Arbeitspunkt kommt und so lasse ich die Wärme etwas abfalle (nur soviel, dass es nicht kalt wird) und heize sobald die Sonne kommt nach. Ich habe aber auch keine Speicher.

        Ablauf:
        Ab einer bestimmten Zeit in der Nacht sperre ich die WP, wenn der Wetterbericht "Sonne" ankündigt.


        Verwenden den Adapter "DasWetter.com" und schaue ob um 9:00Uhr weniger als 60% Wolken vorhergesagt werden. Sonst sperre ich die WP für heute nicht.
        Zusätzlich schaue ich auch auf die Aussentemperatur und setzt den Zeitpunkt des Anfangs der Sperre früher oder später (Erfahrungswerte damit es bis zum Morgen nicht kalt wird)

        Sobald genügend Sonne vom Dach kommt hebe ich die Sperre wieder auf und die WP fängt automatisch an zu laufen, da die Heiztemperatur mittlerweile zu tief ist.


        ich verwende da keine Sonnenstand-Scripte oder so. Ich habe mit der PV-Anlage ja einen grossen "Sensor" und der berücksichtig den Schatten von den Nachbarhäusern gleich mit.

        Ist die Vorhersage "falsch" und die Sonne kommt einfach nicht, stelle ich das fest und hebe die Sperre wieder auf.

        Dies ist bei mir bei Nebel z.B. häuftig der Fall. Früher hatte ich einfach ein Zeit (10:00Uhr) an welcher ich die Sperre auf jeden Fall zurückgesetzt hatte.
        In der Zwischenzeit schaue ich, wann sie in den letzten 7 Tagen kam und setze spätestens 30min später die Sperre zurück. Damit muss ich mich wieder nicht um die Nachbarhäuser, Jahreszeit oder Sommer-/Winterzeit kümmern.

        A 1 Reply Last reply Reply Quote 1
        • A
          Aare 07 @sol21 last edited by

          @sol21 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

          Versuche mal meinen Ansatz zu beschreiben (vielleicht hilft es jemandem).

          Danke für den Ansatz, gute Idee das einrechnen der erwarteten Temperatur in die Dauer der Absenkung unter Berücksichtigung der Dämpfung des Hauses.
          Da ich nicht so der Scripter bin, wäre es Dir möglich die verschiedenen Script-Snipnets hier einzustellen?
          Gruss Aare

          S 1 Reply Last reply Reply Quote 0
          • S
            sol21 @Aare 07 last edited by

            @Aare-07 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

            ... gute Idee das einrechnen der erwarteten Temperatur in die Dauer der Absenkung unter Berücksichtigung der Dämpfung des Hauses.

            Du meinst diesen Teil: "Zusätzlich schaue ich auch auf die Aussentemperatur und setzt den Zeitpunkt des Anfangs der Sperre früher oder später (Erfahrungswerte damit es bis zum Morgen nicht kalt wird)"?
            Da schaue ich auf Isttemperatur morgens um 0.30Uhr uns setzen den Startpunkt der Sperre wie folgt:
            ![Bild Text](Bild Link)61573323-232e-48ed-a496-933f4708c89b-grafik.png

            Z 1 Reply Last reply Reply Quote 1
            • C
              cybtrash last edited by

              Hallo,

              vielen Dank für dieses Tutorial. Leider habe ich das Problem, dass nachts, wenn keine Stromerzeugung ist, unter "holdingRegisters.40083_I_AC_Leistung" weiterhin Zahlen angezeigt werden (bei mir wechselnd zwischen ~30 Watt und ~650 Watt). Das ist natürlich falsch.

              Tagsüber stimmen die Werte aber mit den Daten aus der App überein und sind realistisch.

              Kennt jemand das Problem?

              J 1 Reply Last reply Reply Quote 0
              • J
                Jockel_Bln @cybtrash last edited by Jockel_Bln

                @cybtrash Was hast Du denn bei "SELECT" eingestellt?
                Bei mir steht "last" und damit passt es.
                Unbenannt.JPG

                EDIT:
                Hast Du den Fehler nur in Grafana, oder kommen die "falschen" Werte direkt vom Wechselrichter über den Modbus Adapter? Dann weiß ich auch nicht...

                1 Reply Last reply Reply Quote 0
                • C
                  Chris87 last edited by

                  @hennerich said in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                  1. Graph PV Erzeugung in kWh
                    Quelle aus der InfluxDB sind

                  PVErzeugteEnergieAktuell
                  Blockly Script:

                  @hennerich Coole Arbeit sieht echt gut aus!!!

                  Ich würde nur gerne wissen was du mit den Werten machst?:


                  javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag
                  javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag
                  javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag

                  Finde irgendwie nichts wo diese beschrieben werden.
                  Du hast auch unter Punkt 2 und Punkt 7 den gleichen Code gepostet.
                  Evtl. bin ich blind...
                  Wäre cool wenn du dich hier melden könntest.

                  MfG Chris

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    hennerich @Chris87 last edited by

                    @Chris87
                    Moin Chris, sorry für die späte Antwort. Und die wird dich glaube ich etwas enttäuschen. Da ich die Idee von einem User aus dem PV Forum habe und die von dir angesprochenen Werte auch nicht nutze, kann ich dir nichts näheres dazu sagen.

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      Chris87 @hennerich last edited by

                      Hi @hennerich ,

                      kein Thema. Ich sag sogar Danke für die späte Antwort.
                      Somit hatte ich die Möglichkeit mich mal detailiert mit Grafana auseinander zu setzten, mit (wie ich finde) gutem Resultat:
                      50201f10-7a8b-4c8e-aebf-3c41a3c2c018-image.png

                      H H Z S 4 Replies Last reply Reply Quote 0
                      • H
                        hennerich @Chris87 last edited by

                        @Chris87 Na das schaut doch super aus 😉

                        1 Reply Last reply Reply Quote 0
                        • D
                          DanielO last edited by DanielO

                          Hallo zusammen,

                          seit 2 Wochen beschäftige ich mich nun auch mit diesem Thema. Hab zwar alles so gemacht wie oben geschildert und die Variablen mit meiner Situation angepasst. Doch irgendwie klappt es doch nicht... Vermute mal etwas im Script nicht passt und bei Java kenne ich mich leider noch nicht aus.... Wäre also um einen kleinen Tip Dankbar...
                          Das Script schaut bei mir so aus. hab's nur mal mit der Wechselrichter Temperatur ausprobiert, denn da bin ich mir eigentlich über den zu erhaltenen Wert sicher.


                          function convertValue(value, factor) {
                          if (value === null) return;
                          if (factor === null) factor = 0;
                          setState('Solar.Wechselrichter.TempWechselrichter', value * Math.pow(10, factor), true);
                          }

                          createState('Solar.Wechselrichter.TempWechselrichter', {
                          name: 'TempWechselrichter',
                          unit: '°C',
                          min: -999999,
                          type: 'number',
                          role: 'value.energy'
                          }, function () {
                          on('modbus.0.holdingRegisters.1.40105_I_Temp_Kühler'/Temperatur Wechselrichter/, function(obj) {
                          var timeout = setTimeout(function () {
                          clearTimeout(timeout);
                          var factorState = getState('modbus.0.holdingRegisters.1.40108_I_Temp_SF'/Temperatur Wechselrichter Skalierfaktor/);
                          convertValue(obj.state.val, factorState ? factorState.val : 0);
                          }, 100);
                          });
                          var factorState = getState('modbus.0.holdingRegisters.1.40108_I_Temp_SF'/Temperatur Wechselrichter Skalierfaktor/);
                          var valueState = getState('modbus.0.holdingRegisters.1.40105_I_Temp_Kühler'/Temperatur Wechselrichter/);
                          convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0);
                          });

                          40108_ Temperatur-SF = -4
                          40105 Temperatur = -32768

                          originale Werte vom Wechselrichter liegen auf 40107 und 40104
                          Und -3 Grad kommt so gerundet der aktuellen Situation hin

                          Das script bringt mir aber lediglich
                          -999999 Grad

                          Danke im Voraus

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            hennerich @DanielO last edited by hennerich

                            @DanielO sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                            originale Werte vom Wechselrichter liegen auf 40107 und 40104

                            Hey Daniel,

                            so wie ich das sehe, verwendest du die falschen Werte. Du musst (wie in meinem Fall) einen Zähler abziehen und das bedeutet statt 40107 und 40104 nimmst du 40106 und 40103 und nicht jeweils eins mehr. Versuch es mal damit.

                            D 2 Replies Last reply Reply Quote 0
                            • D
                              DanielO @hennerich last edited by

                              @hennerich Werde ich gleich mal versuchen. Bei diversen Youtube-Kanälen stand, dass der Modbus-Adapter nicht den realen Register nimmt, sondern +1. Daher also das Beispieö von oben+1, weil ich einen anderen Wechselrichter habe und nochmals +1 Zweck Bedienungsanleitungen im Netz... Aber werds danach testen. Schöne Grüße und Danke in der Zwischenzeit

                              1 Reply Last reply Reply Quote 0
                              • D
                                DanielO @hennerich last edited by

                                @hennerich Das hat in der Tat geholfen... Und ich war schon 7 Stunden heute am Testen 😞 Danke für den Tip... Nun geht's weiter 🙂

                                1 Reply Last reply Reply Quote 0
                                • D
                                  DanielO last edited by DanielO

                                  Hallo, nun meldet sich nochals der Neue...
                                  Teil 3 - Pumkt 2 PVErzeugteEnergieAktuell Blockly Script:
                                  Hier ist im Spoiler ja ein fixfertiges Script. Wenn ich ein neues Blockly öffne und das Ansichtsfenster von Blockly auf JS ändere, dann komme ich zum Script Bereich. Soweit OK.
                                  Das Script kann ich aber leider nicht importieren, weil man nur Lese-Rechte im Ansichtsfenster vom Blockly Script hat (schreibt mir der iobroker zumindest im Blockly Hausverbrauch). Kann man das ändern oder gibt es eine andere Möglichkeit, das Script zu importieren?1.PNG 2.PNG

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    hennerich @DanielO last edited by hennerich

                                    @DanielO
                                    Moin Daniel, du hast Recht. Dort kann man nichts ändern.
                                    Wenn du mal oben in deinem neuen Script auf das Symbol mit dem Pfeil in das Dokument klickst
                                    3e784a31-9975-4ef3-aeaa-17324fbdcd83-grafik.png

                                    dann öffnet sich ein neues Fenster, in das du meinen Code hineinkopieren kannst. Dann müsste ioBroker dir das Blockly Script erzeugen.

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      DanielO @hennerich last edited by

                                      @hennerich eben nur müsste 🙂 wenn man aufs rechte Symbol klickt, dann kommt in der Tat ein Fenster mit Blöcke importieren.
                                      Wenn der Code eingefügt wird, dann bleibt jedoch alles im Feld leer. Siehe Foto 3 und wenn ich mal auch JS umschalte, dann fügt er mir nur eine Zeile ein.
                                      1.PNG 2.PNG 3.PNG 4.PNG

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        DanielO @DanielO last edited by DanielO

                                        @hennerich Könntest du mir nicht bitte als ERsteller einen Export zur Verfügung stellen, wäre natt von dir 🙂 Hab mitbekommen, dass das nicht so einfach zu importieren geht.

                                        H 1 Reply Last reply Reply Quote 0
                                        • H
                                          hennerich @DanielO last edited by hennerich

                                          @DanielO
                                          Hey Daniel, ich habe mal mein zweites Posting (oben) etwas konkretisiert. Dort steht jetzt, dass die Scripte
                                          bdc769bc-426a-45d3-b480-026aecde2f33-grafik.png
                                          PVLeistungAktuell,
                                          Sonnenstand,
                                          TempWechselrichter und
                                          TotalRealPower

                                          JS Scripte sein müssen. Und von meinem einen Blockly hab ich einen Export eingefügt.

                                          Edit: Und auch in meinem dritten Posting hab ich das noch nachgezogen und die Namen meiner Blockly Scripte in Klammern dahinter geschrieben. War (ist) schon etwas verwirrend 😉

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            hardy_01 @Chris87 last edited by hardy_01

                                            @Chris87
                                            Mit welchem Script/Blocky hast du die drei fehlenden Werte erzeugt?
                                            Und wie hast du das Sonnenstandsscript angepasst, sodass die Werte passen? Bei mir stimmt der Verlauf nicht (Sonne steht viel zu hoch bzw. geht zu früh auf und zu spät unter)

                                            Mir fehlt noch:

                                            javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag
                                            javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag
                                            javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag

                                            Bildschirmfoto 2020-12-31 um 15.45.05.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            757
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            grafana modbus solaredge
                                            90
                                            603
                                            134607
                                            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