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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • Centurytt 0
      Centurytt 0 @M1R0O last edited by Centurytt 0

      @m1r0o

      warum berechnest du etwas was nicht zu berechnen ist `?

      659eaf83-4ead-4bb6-937a-c2f7951bf152-image.png

      Schmeiß mal die Formel raus ... bei mir liefern die Adressen die Werte ohne die Formel.

      _address name description unit type len factor offset formula role room poll wp cw isScale
      40071 AC_Current AC Total Current value A uint16be 1 1 0 x * Math.pow(10, sf['40075']) true false false false
      40072 AC_CurrentA AC Phase A Current value A uint16be 1 1 0 x * Math.pow(10, sf['40075']) true false false false
      40073 AC_CurrentB AC Phase B Current value A uint16be 1 1 0 x * Math.pow(10, sf['40075']) true false false false
      40074 AC_CurrentC AC Phase C Current value A uint16be 1 1 0 x * Math.pow(10, sf['40075']) true false false false
      40075 AC_Current_SF int16be 1 1 0 true false false true
      40076 AC_VoltageAB AC Voltage Phase AB value V uint16be 1 1 0 x * Math.pow(10, sf['40082']) true false false false
      40077 AC_VoltageBC AC Voltage Phase BC value V uint16be 1 1 0 x * Math.pow(10, sf['40082']) true false false false
      40078 AC_VoltageCA AC Voltage Phase CA value V uint16be 1 1 0 x * Math.pow(10, sf['40082']) true false false false
      40079 AC_VoltageAN AC Voltage Phase A to N value V uint16be 1 1 0 x * Math.pow(10, sf['40082']) true false false false
      40080 AC_VoltageBN AC Voltage Phase B to N value V uint16be 1 1 0 x * Math.pow(10, sf['40082']) true false false false
      40081 AC_VoltageCN AC Voltage Phase C to N value V uint16be 1 1 0 x * Math.pow(10, sf['40082']) true false false false
      40082 AC_Voltage_SF int16be 1 1 0 true false false true
      40083 AC_Power AC Power value kW int16be 1 1 0 x * Math.pow(10, sf['40084']) *0.001 true false false false
      40084 AC_Power_SF int16be 1 1 0 true false false true
      40085 AC_Frequency AC Frequency value Hz uint16be 1 1 0 x * Math.pow(10, sf['40086']) true false false false
      40086 AC_Frequency_SF int16be 1 1 0 true false false true
      40087 AC_VA Apparent Power VA int16be 1 1 0 x * Math.pow(10, sf['40088']) true false false false
      40088 AC_VA_SF int16be 1 1 0 true false false true
      40089 AC_VAR Reactive Power VAR int16be 1 1 0 x * Math.pow(10, sf['40090']) true false false false
      40090 AC_VAR_SF int16be 1 1 0 true false false true
      40091 AC_PF Power Factor int16be 1 1 0 x * Math.pow(10, sf['40092']) true false false false
      40092 AC_PF_SF int16be 1 1 0 true false false true
      40093 AC_Energy_WH AC Lifetime Energy production Wh int32be 2 1 0 x * Math.pow(10, sf['40095']) true false false false
      40095 AC_Energy_WH_SF uint16be 1 1 0 true false false true
      40096 DC_Current DC Current value A uint16be 1 1 0 x * Math.pow(10, sf['40097']) true false false false
      40097 DC_Current_SF int16be 1 1 0 true false false true
      40098 DC_Voltage DC Voltage value V uint16be 1 1 0 x * Math.pow(10, sf['40099']) true false false false
      40099 DC_Voltage_SF int16be 1 1 0 true false false true
      40100 DC_Power DC Power Value kW int16be 1 1 0 x * Math.pow(10, sf['40101'])*0.001 true false false false
      40101 DC_Power_SF int16be 1 1 0 true false false true
      40103 Temp_Sink Heat Sink Temperature °C int16be 1 1 0 x * Math.pow(10, sf['40106']) true false false false
      40106 Temp_SF int16be 1 1 0 true false false true
      40107 OP_State Operation State uint16be 1 1 0 true false false false
      40108 I_Status_Vendor Vendor-defined operating state and error codes. uint16be 1 1 0 true false false false
      40139 MeterModel M_C_Model string 16 1 0 state true false false false
      40163 MeterVersion M_C_Version string 8 1 0 state true false false false
      40171 MeterSerialNumber M_C_SerialNumber string 16 1 0 state true false false false
      40190 MeterCurrentTotal M_AC_Current A int16be 1 1 0 value true false false false
      40191 MeterCurrentL1 M_AC_Current_A A int16be 1 1 0 value true false false false
      40192 MeterCurrentL2 M_AC_Current_B A int16be 1 1 0 value true false false false
      40193 MeterCurrentL3 M_AC_Current_C A int16be 1 1 0 value true false false false
      40194 MeterCurrentSF M_AC_Current_SF int16be 1 1 0 state true false false false
      40195 MeterVoltageLN M_AC_Voltage_L_N V int16be 1 1 0 value true false false false
      40196 MeterVoltageL1N M_AC_Voltage_A_N V int16be 1 1 0 value true false false false
      40197 MeterVoltageL2N M_AC_Voltage_B_N V int16be 1 1 0 value true false false false
      40198 MeterVoltageL3N M_AC_Voltage_C_N V int16be 1 1 0 value true false false false
      40203 MeterVoltageSF M_AC_Voltage_SF int16be 1 1 0 state true false false false
      40204 MeterFrequency M_AC_Freq Hz int16be 1 1 0 value true false false false
      40205 MeterFrequencySF M_AC_Freq_SF int16be 1 1 0 state true false false false
      40206 MeterPowerTotal M_AC_Power W int16be 1 1 0 value true false false false
      40207 MeterPowerL1 M_AC_Power_A W int16be 1 1 0 value true false false false
      40208 MeterPowerL2 M_AC_Power_B W int16be 1 1 0 value true false false false
      40209 MeterPowerL3 M_AC_Power_C W int16be 1 1 0 value true false false false
      40210 MeterPowerSF M_AC_Power_SF int16be 1 1 0 state true false false false
      40211 MeterApparentPowerTotal M_AC_VA VA int16be 1 1 0 value true false false false
      40212 MeterApparentPowerL1 M_AC_VA_A VA int16be 1 1 0 value true false false false
      40213 MeterApparentPowerL2 M_AC_VA_B VA int16be 1 1 0 value true false false false
      40214 MeterApparentPowerL3 M_AC_VA_C VA int16be 1 1 0 value true false false false
      40215 MeterApparentPowerSF M_AC_VA_SF int16be 1 1 0 state true false false false
      40216 MeterReactivePowerTotal M_AC_VAR VAR int16be 1 1 0 value true false false false
      40217 MeterReactivePowerL1 M_AC_VAR_A VAR int16be 1 1 0 value true false false false
      40218 MeterReactivePowerL2 M_AC_VAR_B VAR int16be 1 1 0 value true false false false
      40219 MeterReactivePowerL3 M_AC_VAR_C VAR int16be 1 1 0 value true false false false
      40220 MeterReactivePowerSF M_AC_VAR_SF int16be 1 1 0 state true false false false
      40226 MeterEnergyExportedTotal M_Exported Wh uint32be 2 1 0 value true false false false
      40228 MeterEnergyExportedL1 M_Exported_A Wh uint32be 2 1 0 value true false false false
      40230 MeterEnergyExportedL2 M_Exported_B Wh uint32be 2 1 0 value true false false false
      40232 MeterEnergyExportedL3 M_Exported_C Wh uint32be 2 1 0 value true false false false
      40234 MeterEnergyImportedTotal M_Imported Wh uint32be 2 1 0 value true false false false
      40236 MeterEnergyImportedL1 M_Imported_A Wh uint32be 2 1 0 value true false false false
      40238 MeterEnergyImportedL2 M_Imported_B Wh uint32be 2 1 0 value true false false false
      40240 MeterEnergyImportedL3 M_Imported_C Wh uint32be 2 1 0 value true false false false
      40242 MeterEnergySF M_Energy_W_SF int16be 1 1 0 state true false false false
      62836 Batterieleistung W floatsw 2 1 0 true false false false
      62852 Batterieladezustand % floatsw 2 1 0 true false false false
      62854 Batteriestatus uint32sw 2 1 0 true false false false

      M 1 Reply Last reply Reply Quote 0
      • M
        M1R0O @Centurytt 0 last edited by M1R0O

        @centurytt-0
        Du warst schnell, danke.
        Als ich beim Posten genau drauf gewschaut habe, habe ich gesehen, dass da etwas nicht stimmt.
        Muss nur gucken, was ich genau löschen muss ...!?

        Centurytt 0 1 Reply Last reply Reply Quote 0
        • Centurytt 0
          Centurytt 0 @M1R0O last edited by

          @m1r0o

          importier dir einfach die Modbus Liste von mir...

          M 1 Reply Last reply Reply Quote 0
          • M
            M1R0O @Centurytt 0 last edited by

            @centurytt-0
            Zum Importieren benötige ich die Datei als .tsv?!

            Centurytt 0 1 Reply Last reply Reply Quote 0
            • Centurytt 0
              Centurytt 0 @M1R0O last edited by

              @m1r0o

              richtig

              1 Reply Last reply Reply Quote 0
              • M
                M1R0O last edited by M1R0O

                @centurytt-0 Danke, die Formeln sind raus.
                Bildschirm­foto 2023-08-13 um 20.04.20.png
                Nun habe ich die Skripte aus dem ersten Post eingefügt.
                PV Leistung aktuell läuft.

                Nur Total Real Power läuft (also Einspeisung oder Bezug) nicht, zeigt immer 0W an:

                function convertValue(value, factor) {
                  if (value === null) return;
                  if (factor === null) factor = 0;
                  setState('Solar.Wechselrichter.ACTotalRealPower', value * Math.pow(10, factor), true);
                }  
                
                createState('Solar.Wechselrichter.ACTotalRealPower', {
                   name: 'akt_bez_einsp',
                   unit: 'W',
                   min:  -999999,
                   type: 'number',
                   role: 'value.energy'
                }, function () {
                   on('modbus.0.holdingRegisters.40206_meter_M_AC_Power'/*Total Real Power (sum of active phases)*/, function(obj) {
                   	var timeout = setTimeout(function () {
                   		clearTimeout(timeout);
                   		var factorState = getState('modbus.0.holdingRegisters.40210_meter_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
                   		convertValue(obj.state.val, factorState ? factorState.val : 0);
                   	}, 100); 
                   });
                   var factorState = getState('modbus.0.holdingRegisters.40210_meter_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
                   var valueState = getState('modbus.0.holdingRegisters.40206_meter_M_AC_Power'/*Total Real Power (sum of active phases)*/);
                   convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
                });
                

                Ich bin, wie immer, für eure Hilfe dankbar!

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

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

                  @hennerich

                  Warum berechnest du nicht die Werte gleich im Modbus dann sparst dir das in den Scripten.

                  ich mache das so z.B.:
                  ab538379-cbeb-4a5f-a0ea-b793d73dc569-image.png

                  ist zwar Ansichtssache aber dann habe ich weniger Fehleranfälligkeit und iob hat nicht zig Scripte zum abarbeiten.

                  Lg
                  Tom

                  Sehr interessante Idee, wusste nicht, dass das geht. Schaue ich mir mal an.

                  Danke
                  Henri

                  1 Reply Last reply Reply Quote 0
                  • Centurytt 0
                    Centurytt 0 @M1R0O last edited by

                    @m1r0o

                    Total Real Power musst nicht berechnen. Total AC Real Power ist die Wechselstrom Seite und wird jetzt im Modbus automatisch berechnet, wenn du meine Liste importiert hast und heisst AC Power Value. Also die Energie über alle 3 Phasen.

                    oder meinst du was anderes ?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      M1R0O @Centurytt 0 last edited by M1R0O

                      @centurytt-0
                      Ich bin leider nicht in der Lage dein Liste zu importieren, da sie sich nicht via copy & paste einfügen lässt.
                      Ich eine .tsv daraus erstellt, die sich aber ebenfalls nicht importieren lässt 😠

                      Centurytt 0 1 Reply Last reply Reply Quote 0
                      • S
                        SentiQ @Centurytt 0 last edited by SentiQ

                        @centurytt-0 habe es so probiert wie du, das Ergebnis ist über die Nacht das gleiche. Immer mal wieder Werte für PVLeistungAktuell.
                        Außerdem scheint dein Blockly fehlerhaft? Der untere Teil müsste doch in ein "sonst". So wie abgebildet setzt er die Werte doppelt, wenn die Batterie geladen wird.

                        d7a381b8-fe0e-45ca-be51-8a5a67742e1d-image.png

                        Wie berechnest du den Hausverbrauch?

                        So sieht meine Lösung jetzt aus, das passt auch wunderbar:

                        fc3f86ef-7850-4d5b-8084-4c341862a486-image.png

                        Centurytt 0 1 Reply Last reply Reply Quote 0
                        • M
                          M1R0O last edited by M1R0O

                          Ich habe zumindest des Wert für 40083 AC_Power AC Power value kW int16be 1 1 0 x * Math.pow(10, sf['40084']) *0.001 true false false false jetzt manuell hinzugefügt und das klappt gut.

                          Das einzige was ich jetzt noch nicht geschafft habe (neben dem Import der kompletten Liste von @Centurytt-0) ist das Anzeigen/Berechnen der Aktuellen PV-Produktion!
                          Was muss ich tun, um die aktuelle Energieproduktion der PV-Anlage angezeigt zu bekommen?!

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

                          @sentiq

                          hab auch einen Speicher hab das Problem aber nicht. Ich gehe wie folgt vor:

                          52d3ebef-15ea-479f-9734-dde008b0c358-image.png

                          Kannst du mir dieses Blockly Skript zur Verfügung stellen?

                          Danke

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            SentiQ @M1R0O last edited by SentiQ

                            @m1r0o

                            du brauchst dafür noch DC_Power aus der Liste von @Centurytt-0

                            Beachte, dass ich mit Watt arbeite und *0.001 entfernt habe!

                            <xml xmlns="https://developers.google.com/blockly/xml">
                             <block type="on" id="nIckN53BSoxr;{]fe3kY" x="-587" y="137">
                               <field name="OID">modbus.0.holdingRegisters.40100_DC_Power</field>
                               <field name="CONDITION">ne</field>
                               <field name="ACK_CONDITION"></field>
                               <statement name="STATEMENT">
                                 <block type="controls_if" id="33C-n)jP`m.e%9?E!=tX">
                                   <mutation else="1"></mutation>
                                   <value name="IF0">
                                     <block type="math_number_property" id="~N8MFs(_bqs{CQh1Yx0T">
                                       <mutation divisor_input="false"></mutation>
                                       <field name="PROPERTY">POSITIVE</field>
                                       <value name="NUMBER_TO_CHECK">
                                         <shadow type="math_number" id="!AvF8j8n[B3S?`f.f+w5">
                                           <field name="NUM">0</field>
                                         </shadow>
                                         <block type="get_value" id="[msS4Zv06(%a%IqtKmRd">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.0.holdingRegisters.57716_Batt1_Power</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="update" id="?eJ+n7$X8Q,2OB[Jw?]6">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_arithmetic" id="1Fc?PZX0G%ufiK+b@x7E">
                                           <field name="OP">ADD</field>
                                           <value name="A">
                                             <shadow type="math_number" id=",KpQxgw6c0efaxM.H#V|">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="@5,wPHPN%::Xav3)TWyy">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.0.holdingRegisters.40100_DC_Power</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="7mlFm+r@6z{X}.Krv2~%">
                                               <field name="NUM">1000</field>
                                             </shadow>
                                             <block type="get_value" id="VWhNN8xf*=y|[MoS8%qf">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.0.holdingRegisters.57716_Batt1_Power</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </statement>
                                   <statement name="ELSE">
                                     <block type="update" id="@-|uQZ}BySNdkVVTi-m%">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_arithmetic" id="Q`Dz+Gn$.Vo2pjkb}k%N">
                                           <field name="OP">MINUS</field>
                                           <value name="A">
                                             <shadow type="math_number" id=",KpQxgw6c0efaxM.H#V|">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="]_]-,0)N(#mRO:o`FcT#">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.0.holdingRegisters.40100_DC_Power</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="7mlFm+r@6z{X}.Krv2~%">
                                               <field name="NUM">1000</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="Lq7956`[)v+%R`mpI2|S">
                                               <field name="OP">MULTIPLY</field>
                                               <value name="A">
                                                 <shadow type="math_number" id="}v#E=(+l|h7y9rz)0wy]">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="tW.kJ$2|~6vDI0#]{[5f">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">modbus.0.holdingRegisters.57716_Batt1_Power</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow type="math_number" id="!kqV52.],5yjJtrfedpG">
                                                   <field name="NUM">-1</field>
                                                 </shadow>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </statement>
                                 </block>
                               </statement>
                             </block>
                            </xml>
                            

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              M1R0O @SentiQ last edited by M1R0O

                              @sentiq
                              Hat geklappt! Sauber, danke!
                              Bildschirm­foto 2023-08-16 um 22.01.04.png

                              Ich würde nun gern den Wert 57116 "Batterieladung" in kwh umrechnen.
                              Einfach *0.001 in das Feld Formel zu schreiben, klappt nicht.
                              Welche Formel muss ich stattdessen nehmen?

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                SentiQ @M1R0O last edited by

                                @m1r0o

                                x *0.001
                                
                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  M1R0O @SentiQ last edited by M1R0O

                                  @sentiq Mega! THX

                                  @SentiQ Zu früh gefreut.
                                  Das Berechnen des Hausverbrauchs gelingt mir nicht.
                                  Das liegt u.a. darn, dass 40206 M_AC_Power keinen korrekten Wert ausgibt. Egal wie hoch mein realer Hausverbrauch ist, 40206-40209 verändern sich nicht.
                                  Bildschirm­foto 2023-08-17 um 20.51.03.png
                                  Woran kann das liegen?
                                  Danke vorab

                                  Centurytt 0 1 Reply Last reply Reply Quote 0
                                  • Centurytt 0
                                    Centurytt 0 @M1R0O last edited by

                                    @m1r0o

                                    Hi, anbei das TSV holding-registers (1).tsv

                                    1 Reply Last reply Reply Quote 0
                                    • Centurytt 0
                                      Centurytt 0 @M1R0O last edited by

                                      @m1r0o

                                      Welchen Wechselrichter hast du ? Hast du dir die Adressliste von Solaredge angesehen ? ob das alles stimmt oder ob du die Adressen um 1 verschieben musst ? Modbus Zähler ist installiert nehme ich an ?

                                      M 1 Reply Last reply Reply Quote 0
                                      • Centurytt 0
                                        Centurytt 0 @SentiQ last edited by Centurytt 0

                                        @sentiq

                                        Ich muss mir das in Ruhe nochmal ansehen du könntest nämlich Recht haben 😉 Ich berechne den Hausverbrauch auf der Realstrom also Wechselstrom Seite was mich eh ein wenig stört. Allerdings mache ich das nicht so wie du sondern so:

                                        5a4946e2-82e4-4efc-8621-cec929b47b67-image.png

                                        Eben aus besagtem Grund weil ich nicht die DC Seite im Hausverbrauch betrachte.

                                        Die Werte aus der PVLeistung aktuell setzt er nicht doppelt. Das "Mache" ist wie ein sonst. Hatte damit nie Schwierigkeiten.

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          M1R0O @Centurytt 0 last edited by

                                          @centurytt-0
                                          Danke für die tsv und die Antwort.
                                          Ich habe einen Solaredge-Wechselrichter. Alle anderen Werte liefern korrekte Werte, nur 40206 nicht

                                          L Glasfaser 2 Replies Last reply Reply Quote 0
                                          • L
                                            lisalisa @M1R0O last edited by lisalisa

                                            @m1r0o Dann teste doch mal nur 40206 auf 40207 und 40210 auf 40211 ändern.

                                            SE 8k und BYD Batterie
                                            40207holding-registers.tsv

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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