Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Shelly Pro 3EM saldierender Stromzähler in Blockly

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Shelly Pro 3EM saldierender Stromzähler in Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Fritz 0 @Frederik Buss last edited by

      @frederik-buss
      Hallo Frederik,

      ich habe das Skript jetzt mal einen Tag laufen lassen, das Ergebnis:

      bei der Einspeisung gab es eine Abweichung von 0,53 kWh (und das wo ja nur einen Teil der Zeit eingespeist wurde)

      der Zählerstand vom Verbrauch hat sich am Stromzähler nicht geändert, das Skipt hat aber einen Bezug von 0,48kWh berechnet.

      Ich wüßte leider nicht, wie ein "Korrekturfaktor" da helfen könnte.

      Zum Punkt Berechnung bei Leistungsänderung hatte ich diese Aussage von @paul53 vor Augen:

      "Muss es nicht (siehe oben). Für zyklischen Ablauf im Hauptprogramm (also ständig) verwendet man kein Intervall, sondern einen Zeitplan."

      deshalb kam ich auf die Idee mit dem scheduler.

      Ich würde das Skript sonst auch gerne als blockly-Skript testen wollen, aber kenne den Weg nicht, wie ich es downloaden kann, ich habe nirgends einen Link dazu gesehen.

      Das kannst Du mir sicher sagen?

      Danke für Deine Unterstützung.

      Frederik Buss 1 Reply Last reply Reply Quote 0
      • Frederik Buss
        Frederik Buss @Fritz 0 last edited by

        @fritz-0 Hier würden etwas mehr Infos helfen. Z.B.: Zeigt Dein Zähler Nachkommastellen an? Meiner tut das nicht, daher muss ich Abweichungen über mehrere Tage bewerten. Auch ich habe Abweichungen, die sind aber innerhalb der Messtoleranz des Shelly und lassen sich imo auch nur per Korrekturfaktor halbwegs gerade ziehen. Ausserdem sind Infos zu erwartetem Gesamtverbrauch und Gesamtertrag hilfreich.
        Angenommen, Dein Zähler zeigt auch die Nachkommastellen an, tippe ich eher auch ein anderes Problem, weil Abweichungen von einer halben kWh pro Tag scheint mir zu hoch: Bist Du sicher, dass alle Stromwandler richtig herum eingebaut wurden? Sprich, die Richtung auf dem Pfeil der Wandler zeigen alle in dieselbe Richtung - von Stromnetz zu Hausnetz?

        F 1 Reply Last reply Reply Quote 0
        • F
          Fritz 0 @Frederik Buss last edited by

          @frederik-buss
          ein paar Daten:

          • der Stromzähler ist ein "einfacher" 2-Richtungszähler.
          • der Zählerstand wird mit einer Nachkommastelle angezeigt.

          Die jährliche Einspeisung beträgt ca. 1,500 kWh, der Bezug beträgt < 1.000 kWh.

          Ob die Stromwandler korrekt eingebaut sind kann ich nicht prüfen, dazu müsste ich im Schaltschrank Abdeckungen öffnen, als Elektro-Laie ist mir das zu gefährlich. Daher kann ich Deine Vermutung nicht überprüfen. Ich gehe aber vom korrekten Einbau aus, mein Elektriker ist erfahren, dem traue ich das schon zu.
          Wenn er das nächste Mal vor Ort sein sollte werde ich ihn dazu ansprechen, aber das kann dauern, aktuell habe ich keinen Auftrag für ihn.

          Nachdem das Skript jetzt knapp 4 Tage läuft sind die Abweichungen schon deutlich:

          • Bezug: Stromzähler keiner, Abweichung vom Skript 1,4 kWh
          • Einspeisung: Abweichung vom Skript 1,55 kWh
          Frederik Buss 1 Reply Last reply Reply Quote 0
          • Frederik Buss
            Frederik Buss @Fritz 0 last edited by

            @fritz-0 Bei den Werten gehe ich von aus, dass Du einen Stromspeicher verbaut hast. Falls Du das script 1:1 umgesetzt hast, bin ich mir sicher, dass der Fehler im Schaltschrank zu suchen ist. Abweichungen von 0,5kWh pro Tag sind zu hoch, zumal Auffällig ist, dass die Abweichungen von Bezug und Einspeisung in der selben Größenordnung sind. Zum Vergleich: Ich habe momentan wegen der Klimaanlage ca. 5.000-6.000 kWh Verbrauch pro Jahr hochgerechnet (Solar rausgerechnet) und seit 2 Wochen insgesamt < 0,2kWh Abweichungen. Es ist auch denkbar, dass der Shelly an der "falschen" Stelle sitzt - Messen sollte der direkt hinter dem Hausanschluss, vor allen Sicherungen/Verbrauchern/Akkus/Wechselrichtern etc.
            Wie hoch ist der Stromverbrauch ohne Solar? Oder anders: wie hoch war der Verbrauch vor der Solaranlage?

            F 1 Reply Last reply Reply Quote 0
            • F
              Fritz 0 @Frederik Buss last edited by

              @frederik-buss

              Wie hoch ist der Stromverbrauch ohne Solar? Oder anders: wie hoch war der Verbrauch vor der Solaranlage?

              der lag bei ca. 4.000 kWh

              Mit dem Speicher liegst Du richtig.

              Was den Einbau an der korrekten Stelle angeht muss ich warten bis ich den Elektriker mal wieder im Keller habe 🙂
              Ich denke, das ich da vorher nicht weiterkomme.
              Erstmal vielen Dank für Deine Unterstützung.

              Wissen würde ich trotzdem, wie ich das Blockly-Skript runterladen kann. Das geht vermutlich ganz einfach, aber ich habe den Weg dazu noch nicht gefunden.

              Frederik Buss 1 Reply Last reply Reply Quote 0
              • Frederik Buss
                Frederik Buss @Fritz 0 last edited by

                @fritz-0 Ich denke hier gibt es ein Missverständnis: Importieren und Exportieren geht im Javascript Adapter, wie von Pau beschrieben (oben rechts: Blöcke importieren/exportieren). Mit runterladen meinst Du vermutlich dass Du den hier gezeigten Code bei Dir importieren möchtest. Dazu muss ihn aber vorher jemand exportiert und hier bereit gestellt haben, was ich nicht sehe 😉
                Ich bin auch eher ein Freund davon die Scripte selbst nachzubauen, schon allein um alle Variablen/Verknüpfungen auswählen zu müssen, was die typischen Fehlerquellen deutlich reduziert.

                F 1 Reply Last reply Reply Quote 0
                • F
                  Fritz 0 @Frederik Buss last edited by

                  @frederik-buss
                  alles klar. Ich werde das Thema jetzt erstmal zurückstellen, bis klar ist ob die Anbringung der Stromzangen korrekt ist (sprich Richtung und Montageort).

                  Vielleicht klärt es sich danach ja schon 🙂

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Kippe @Fritz 0 last edited by Kippe

                    @fritz-0

                    Hallo
                    Ich habe mir jetzt die 2 Datenpunkte wie im oberen Beitrag angelegt
                    Energiezaehler 1:8:0 Verbrauch und Energiezaehler 2:8:0 Einspeisung

                    Ich bekomme es mit dem Blockly nicht hin. Könnte mir jemand das Blockly zu Verfügung stellen, und mir mal genau sagen kann welche Datenpunkte ich beim Shelly Pro 3 em nehmen muss?

                    Würde mich sehr freuen.

                    Screenshot (633).png

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Kippe last edited by paul53

                      @kippe sagte: Könnte mir jemand das Blockly zu Verfügung stellen

                      Du musst allerdings deine Datenpunkte zuweisen.

                      <xml xmlns="https://developers.google.com/blockly/xml">
                       <variables>
                         <variable id="8mF[y:Mu?ppOEQ|${|0v">Bezugsenergie</variable>
                         <variable id="8QfIKsruysJpkfI_Laz=">Einspeiseenergie</variable>
                         <variable id="WDQ;vNZrHosQ_UGc[U(^">delta_kWh</variable>
                       </variables>
                       <block type="comment" id="Oo~f?,+KUpsHqmTcN[WZ" x="188" y="37">
                         <field name="COMMENT">Energie (kWh)</field>
                         <next>
                           <block type="variables_set" id="[_???w4Erk+RQ}R~(7vB">
                             <field name="VAR" id="8mF[y:Mu?ppOEQ|${|0v">Bezugsenergie</field>
                             <value name="VALUE">
                               <block type="get_value" id="?j1{wfD2ewfvBo[@]aGI">
                                 <field name="ATTR">val</field>
                                 <field name="OID">0_userdata.0.Blockly.EVU-Bezug</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="mbhzmxw}Olt:RED`$HM?">
                                 <field name="VAR" id="8QfIKsruysJpkfI_Laz=">Einspeiseenergie</field>
                                 <value name="VALUE">
                                   <block type="get_value" id="fv.Pyn+=XNj3mBR^O*y#">
                                     <field name="ATTR">val</field>
                                     <field name="OID">0_userdata.0.Blockly.EVU-Einspeisung</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="comment" id="zB]aZ2A+Q7t}Zj)v/Mp0">
                                     <field name="COMMENT">TotalActivePower (W)</field>
                                     <next>
                                       <block type="on" id="UK.7BpQ#a@nx[dyE)3OQ">
                                         <field name="OID">0_userdata.0.Blockly.Bezug-Einspeisung</field>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <statement name="STATEMENT">
                                           <block type="variables_set" id="t+e]v;zvCc]pe`eHoiFR">
                                             <field name="VAR" id="WDQ;vNZrHosQ_UGc[U(^">delta_kWh</field>
                                             <value name="VALUE">
                                               <block type="math_arithmetic" id="A$gG{a@9o/lcbx##`D%y" inline="false">
                                                 <field name="OP">DIVIDE</field>
                                                 <value name="A">
                                                   <shadow type="math_number" id="q*0#7)IKIdS}sN%W7tfw">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="math_arithmetic" id="#u68#/SI`@H(ukUUj`=9" inline="false">
                                                     <field name="OP">MULTIPLY</field>
                                                     <value name="A">
                                                       <shadow type="math_number" id="J)-A5vC7c^f~YA_D,D,?">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="on_source" id="Z%ejn^wwOOcA0z2qVjYo">
                                                         <field name="ATTR">oldState.val</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <shadow type="math_number" id="l{SbNq,AT{hE]hFEqSB2">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="math_arithmetic" id="E02lX:*gLrgj+mWOqQVI">
                                                         <field name="OP">MINUS</field>
                                                         <value name="A">
                                                           <shadow type="math_number" id="%(VU0;/9G!^AX,q%]9cr">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="on_source" id="WncTZ;c4W4nn?s!)bwH?">
                                                             <field name="ATTR">state.lc</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow type="math_number" id="j=obz_-g%yDMlIBeJ^aH">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="on_source" id="AY]p`Oodsk4kQH0A9$nr">
                                                             <field name="ATTR">oldState.lc</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <shadow type="math_number" id="m?toN!Hb2WoT68y_1m0s">
                                                     <field name="NUM">3600000000</field>
                                                   </shadow>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="controls_if" id="Ah1T+%Zg,Jwu12qd{clW">
                                                 <mutation else="1"></mutation>
                                                 <value name="IF0">
                                                   <block type="logic_compare" id="!}L8R}/%Elp$%K5Sl(9|">
                                                     <field name="OP">LT</field>
                                                     <value name="A">
                                                       <block type="variables_get" id="d!3EdW@%s:cZ_`Bpi;Pd">
                                                         <field name="VAR" id="WDQ;vNZrHosQ_UGc[U(^">delta_kWh</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="math_number" id="[T?_,mrEXTI=ga^+u3N`">
                                                         <field name="NUM">0</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="math_change" id="TA~#gMw.SJ~,/v*ECS?1">
                                                     <field name="VAR" id="8QfIKsruysJpkfI_Laz=">Einspeiseenergie</field>
                                                     <value name="DELTA">
                                                       <shadow type="math_number" id="wXIN-|,F`7v*fx-hR{7R">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="math_single" id="zP9:F/$yeRfL%o^orE/z">
                                                         <field name="OP">NEG</field>
                                                         <value name="NUM">
                                                           <shadow type="math_number" id="F`a;S9wD61f?)xS$Ek99">
                                                             <field name="NUM">9</field>
                                                           </shadow>
                                                           <block type="variables_get" id="$kWK3DbhgC(l]%%=A4sD">
                                                             <field name="VAR" id="WDQ;vNZrHosQ_UGc[U(^">delta_kWh</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="p+(#|mvOG}YZ0iHd9]PX">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">0_userdata.0.Blockly.EVU-Einspeisung</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="math_rndfixed" id="t1[Qz#9@XJVau7lU_XgR">
                                                             <field name="n">2</field>
                                                             <value name="x">
                                                               <shadow type="math_number" id="Qnsd$8gBj5Ke$}=Iax5.">
                                                                 <field name="NUM">3.1234</field>
                                                               </shadow>
                                                               <block type="variables_get" id="v6mCa0tEa)Q%VFC$ULdS">
                                                                 <field name="VAR" id="8QfIKsruysJpkfI_Laz=">Einspeiseenergie</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                                 <statement name="ELSE">
                                                   <block type="math_change" id="_m0zaR1ZcuHEtMpGm3-g">
                                                     <field name="VAR" id="8mF[y:Mu?ppOEQ|${|0v">Bezugsenergie</field>
                                                     <value name="DELTA">
                                                       <shadow type="math_number" id="Uk@[+;hZ(9z{7j!R!*)~">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="variables_get" id="#f(*J,eIE7_,.1rW`kgW">
                                                         <field name="VAR" id="WDQ;vNZrHosQ_UGc[U(^">delta_kWh</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="!LqtdCcih;y)3*_[2q,|">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">0_userdata.0.Blockly.EVU-Bezug</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="math_rndfixed" id="1$r`f.h946vRu$1c`}$d">
                                                             <field name="n">2</field>
                                                             <value name="x">
                                                               <shadow type="math_number" id="Qnsd$8gBj5Ke$}=Iax5.">
                                                                 <field name="NUM">3.1234</field>
                                                               </shadow>
                                                               <block type="variables_get" id="`N=lK:Vp.lo+ro:$n#t3">
                                                                 <field name="VAR" id="8mF[y:Mu?ppOEQ|${|0v">Bezugsenergie</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                      </xml>
                      

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kippe @paul53 last edited by

                        @paul53
                        Super das Blockly habe ich jetzt drin. Also muss ich die 4 Datenpunkte jetzt noch zuordnen. Welche Datenpunkte vom Shelly
                        Pro 3em muss ich denn genau haben ? Und was muss ich in den Datenfeld ( Grün ) Umrandet im Bild eintragen. Mein jetziger Zählerstand ?

                        Screenshot (634).png

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Kippe last edited by paul53

                          @kippe sagte: muss ich die 4 Datenpunkte jetzt noch zuordnen.

                          Ja:

                          • EVU-Bezug --> 1:8:0_Verbrauch
                          • EVU-Einspeisung --> 2:8:0_Einspeisung
                          • Shelly (ich habe keine) müsste "EM0.TotalActivePower" sein

                          @kippe sagte in Shelly Pro 3EM saldierender Stromzähler in Blockly:

                          Und was muss ich in den Datenfeld ( Grün ) Umrandet im Bild eintragen.

                          Dieser Umrechnungsfaktor muss unverändert bleiben.

                          @kippe sagte in Shelly Pro 3EM saldierender Stromzähler in Blockly:

                          Mein jetziger Zählerstand ?

                          Die Zählerstände müssen unmittelbar vor Skriptstart in die beiden eigenen Datenpunkte eingetragen werden.

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

                            Falls es jemand interessiert.... be i mir läuft Script jetzt seit 5 Monaten und ich habe extra keine Wertanpassungen gemacht.
                            Ich habe nur knapp 5 kWh mehr auf dem Stromzähler als im Datenpunkt durch das Script. Das ist im Schnitt nur eine Differenz von 1 kWh pro Monat, was ich sehr gut finde und diese kommen auch durch Updates und Neustarts des Raspi welche ja das Script unterbrechen.
                            Muss allerdings dazusagen ich habe keine Einspeisung weil ich noch kein Photovoltaik habe.

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

                              Ich habe den shelly pro 3 EM. Habe das script bei mir mit Blockly genau nachgebaut. Irgendwie funktioniert es mit dem pro Gerät nicht.
                              Der Pro aktualisiert den Wert "TotalActivePower" ca. 2 mal pro Sekunde. Kann jemand helfen wie man das Script umbaut, dass es mit dem Shelly pro 3 EM funktioniert??

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @diba03 last edited by paul53

                                @diba03 sagte: Script umbaut, dass es mit dem Shelly pro 3 EM funktioniert??

                                Das Skript ist für den Shelly pro 3EM (siehe Zeile 3).

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                767
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                7
                                28
                                3614
                                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