Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. PV Überschuss zum betreiben von 1 Heizstab

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    PV Überschuss zum betreiben von 1 Heizstab

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Diamand2k22 @paul53 last edited by

      @paul53 said in PV Überschuss zum betreiben von 1 Heizstab:

      @diamand2k22 sagte: wie kann ich das Skript um eine 3. Heizstufe aufbohren, aber wenn der Verbraucher dann nicht 800 W hat sondern 2400W hat ?

      Wieso nur 3 Stufen?

      1. Stufe: Stab 1
      2. Stufe: Stab 1+2
      3. Stufe: Stab 3
      4. Stufe: Stab 3 + 1
      5. Stufe: Stab 3 + 1 + 2

      Jede Stufe unterscheidet sich um 800 W, also ist es wohl nicht so schwierig, das anzupassen?

      ok, dann ist Stufe 5 die 2400W

      2022-09-26 17_39_57-javascript - pi4b.png

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

        @diamand2k22 sagte: dann ist Stufe 5 die 2400W

        Nein, Stufe 5 ist 4000 W.

        Bild_2022-09-26_174939947.png

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

          @paul53

          stimmt, zu blöd zum Rechnen 😄 ....

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

            @paul53

            aber ich glaube wir haben aneinander vorbei geredet 😄 der Ablauf soll folgender sein:

            Überschuss >800W -> Heistab 1 ein (Heistufe 1)
            Danach Überschuss wieder > 800W Heizstab 2 ein (Heizstufe 2)
            danach Überschuss >2400 W Poolheizung ein (Heizstufe 3)

            aber Heizstab 1 und Heizstab 2 sollen weiterlaufen und der Pool schaltet sich bei Überschuss >2400W noch dazu.
            Wenn der Überschuss wieder weniger wird, schaltet sich alles in umgekehrter Reihenfolge wieder ab.

            paul53 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @Diamand2k22 last edited by paul53

              @diamand2k22 sagte: aber Heizstab 1 und Heizstab 2 sollen weiterlaufen

              Dann gibt es einen Leistungssprung von 2400 W (1600 auf 4000 W), der nicht mehr per einfacher Stufenschaltung zu behandeln ist.

              Übrigens: Wie hast Du mit zwei 800 W Heizungen 3 Stufen gebildet?

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

                @diamand2k22 sagte:

                Überschuss >800W -> Heistab 1 ein (Heistufe 1)
                Danach Überschuss wieder > 800W Heizstab 2 ein (Heizstufe 2)
                danach Überschuss >2400 W Poolheizung ein (Heizstufe 3)

                Bild_2022-09-26_192646505.png

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

                  @paul53

                  hier mal das aktuelle Blockly

                  9f46b0f6-e667-4b8a-9c72-8a43ae9bd99c-image.png

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

                    @diamand2k22 sagte: das aktuelle Blockly

                    Das funktioniert so nicht. Ändere bei Skriptstart die Ermittlung der Leistungsstufe so wie hier gezeigt.

                    Außerdem wird, wenn die Leistungsstufe 2 erreicht ist, ein höherer Grenzwert (-2400) für weiteres Hochschalten benötigt.

                    Bild_2022-09-26_201146441.png

                    Wozu dienen cntEin und cntAus, die nirgends ausgewertet werden?

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

                      @paul53

                      ich habe es wie von dir beschrieben angepasst.

                      8b07024c-7948-4d50-bda2-4bc742e9bb3a-image.png

                      cnt werden ausgewertet, siehe Markierung!

                      jetzt habe ich noch das Thema mit der Leistungsstufe 2400W.
                      Muss ich mal sehen wie ich das hin bekomm...

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

                        @diamand2k22 sagte: Thema mit der Leistungsstufe 2400W.
                        Muss ich mal sehen wie ich das hin bekomm...

                        Wie gezeigt.

                        @diamand2k22 sagte in PV Überschuss zum betreiben von 1 Heizstab:

                        cnt werden ausgewertet, siehe Markierung!

                        Ach ja, das dient zur Verzögerung (Anpassung an das Verhalten des Smartmeters).

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

                          @paul53

                          danke das funktioniert!

                          2fc0be58-b5d5-488c-979d-b0fae63f2b60-image.png

                          Wie müsste ich das Blockly noch anpassen, wenn die Leistungsstufe 3 nochmal eine E-Heizung mit 600W sind und dann die Leistungsstufe 4 der Pool mit den 2400W.
                          Wie sieht dann das setzten des Startwertes oben aus?

                          Danke und
                          Grüße

                          paul53 A 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @Diamand2k22 last edited by

                            @diamand2k22 sagte: Leistungsstufe 3 nochmal eine E-Heizung mit 600W sind und dann die Leistungsstufe 4 der Pool mit den 2400W.
                            Wie sieht dann das setzten des Startwertes oben aus?

                            Bild_2022-09-27_194640483.png

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

                              @paul53

                              Danke dir, jetzt kann ich beliebig viele Verbraucher der Reihe nach dazu oder abschalten am Überschuss orientiert, das ist perfekt.

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

                                @spidermike Hi Mike, mein Heizstab ist gerade im Anflug. Du hast da genau das schon aufgebaut was ich in den nächsten Wochen schaffen will. Wärst du bitte so nett und wüdest deinen finalen code posten?👏 Das würde mich und bestimmt einige andere um Tage beschleunigen. 🚀
                                Meine 18.5 kWp Anlage mit 2 SMA WR und einem HM 2 liefert mir schon alles was man an Daten braucht (über Modbus) in den IoB. Das nutze ich in meiner Hausbussteurung (Beckhoff Cx9010) bereits als Anzeigeoption.
                                Danke für die coole Vorarbeit.
                                Hodde

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

                                  @hodde sagte: mein Heizstab

                                  Leistung? Eine Stufe oder 3 Stufen?
                                  Messwerte: Bezug - Überschuss (negativ bei Überschuss) oder Bezug und Überschuss getrennt (beide positiv)?

                                  @hodde sagte in PV Überschuss zum betreiben von 1 Heizstab:

                                  code posten?

                                  Hier eine Version für Überschuss (positiv) und 3 mal 1 kW:

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <variables>
                                     <variable id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</variable>
                                     <variable id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</variable>
                                     <variable type="timeout" id="delayOn">delayOn</variable>
                                     <variable type="timeout" id="delayOff">delayOff</variable>
                                   </variables>
                                   <block type="variables_set" id="zo);,rK_T+=a,mP%]Wg." x="12" y="-62">
                                     <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field>
                                     <value name="VALUE">
                                       <block type="math_number" id="7%K@1T{#I/I|Lk};-m.l">
                                         <field name="NUM">1400</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="I7I-F_#:#J)(O0wL4Aih">
                                         <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field>
                                         <value name="VALUE">
                                           <block type="math_arithmetic" id="d=rJR%ogfy#lFSNUW#06">
                                             <field name="OP">MINUS</field>
                                             <value name="A">
                                               <shadow type="math_number" id="b+alG`6e;V6Rycn#})9|">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="variables_get" id="YHi/ucvd~zJOaY27ffQX">
                                                 <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow type="math_number" id="BrB|~i^$qYCE5dc,z}(J">
                                                 <field name="NUM">1200</field>
                                               </shadow>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="on_ext" id="^=k13pGi`kMjtE||vY.J">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                             <field name="CONDITION">ne</field>
                                             <field name="ACK_CONDITION"></field>
                                             <value name="OID0">
                                               <shadow type="field_oid" id="n:wY~I3GQO$7,0:+.oY=">
                                                 <field name="oid">0_userdata.0.Blockly.PV_Ueberschuss</field>
                                               </shadow>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="controls_if" id="?{[99~rn+X@-!776Gil$">
                                                 <mutation elseif="1"></mutation>
                                                 <value name="IF0">
                                                   <block type="logic_compare" id="d%IZlzT50i(a7nefKk6]">
                                                     <field name="OP">LTE</field>
                                                     <value name="A">
                                                       <block type="on_source" id="f=2?mi+jttya*Yya7dG.">
                                                         <field name="ATTR">state.val</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="variables_get" id="q{]f~,LPED4*s[Rqru9L">
                                                         <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="timeouts_cleartimeout" id="|#WysqWLOkMz:?pQ*-CZ">
                                                     <field name="NAME">delayOn</field>
                                                   </block>
                                                 </statement>
                                                 <value name="IF1">
                                                   <block type="logic_negate" id="dch2(fx(/ykyn#X-R`9x">
                                                     <value name="BOOL">
                                                       <block type="timeouts_gettimeout" id="xJVx:Mi5[U_(t*bw(Yq$">
                                                         <field name="NAME">delayOn</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO1">
                                                   <block type="timeouts_settimeout" id="=EI:`22NaF],y?uV^b1B">
                                                     <field name="NAME">delayOn</field>
                                                     <field name="DELAY">10</field>
                                                     <field name="UNIT">min</field>
                                                     <statement name="STATEMENT">
                                                       <block type="controls_if" id="i.:l;5vs?$}^L}N-R(^T">
                                                         <mutation elseif="2"></mutation>
                                                         <value name="IF0">
                                                           <block type="logic_negate" id="R(_3jAG`Md_w[,(|^wr/">
                                                             <value name="BOOL">
                                                               <block type="get_value" id="NG3*!?gfl8{k3cP;uW1`">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch1</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="control" id="qYesRpdij9z`93JQ2~w%">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">0_userdata.0.Blockly.Switch1</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="logic_boolean" id="ndh[{X~M{gFV,0p.u?49">
                                                                 <field name="BOOL">TRUE</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                         <value name="IF1">
                                                           <block type="logic_negate" id="r:ak[AbR=(fM06(!MiNq">
                                                             <value name="BOOL">
                                                               <block type="get_value" id="Wk#V-l{Fi[!?`_6`Qj_b">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch2</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO1">
                                                           <block type="control" id="S(zYFzv^}$AcCYB-`Q`e">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">0_userdata.0.Blockly.Switch2</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="logic_boolean" id="r_?O8H8QBzI#o|3X!Q%#">
                                                                 <field name="BOOL">TRUE</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                         <value name="IF2">
                                                           <block type="logic_negate" id="jM5~.3jyY`N/(9mGWI:O">
                                                             <value name="BOOL">
                                                               <block type="get_value" id="*guxu@lyFFjMcgr}bL4V">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch3</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO2">
                                                           <block type="control" id="XXUi|!^XGmi4z|s+a-/j">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">0_userdata.0.Blockly.Switch3</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="logic_boolean" id="J{N8i(G2CBr~GS95U1P5">
                                                                 <field name="BOOL">TRUE</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                         <next>
                                                           <block type="timeouts_wait" id="6xiZ%Mi^9lNm4OO$#|4N">
                                                             <field name="DELAY">10</field>
                                                             <field name="UNIT">sec</field>
                                                             <next>
                                                               <block type="timeouts_cleartimeout" id="WJ?t^mxt0H|jM5A2zX=v">
                                                                 <field name="NAME">delayOn</field>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </statement>
                                                 <next>
                                                   <block type="controls_if" id="U^YFuAk{|bn.*b{Ep;B=">
                                                     <mutation elseif="1"></mutation>
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="GddE`U/xj*}WZ:OC-j_5">
                                                         <field name="OP">GTE</field>
                                                         <value name="A">
                                                           <block type="on_source" id="7p.M-{Jv;0@=Z(ul53Sv">
                                                             <field name="ATTR">state.val</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="variables_get" id="-t@cJFEI+*?5ME9yFOuZ">
                                                             <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="timeouts_cleartimeout" id="_N.QOqsujv5EzF,e1:^`">
                                                         <field name="NAME">delayOff</field>
                                                       </block>
                                                     </statement>
                                                     <value name="IF1">
                                                       <block type="logic_negate" id="0(6[M7amQ.RY*S4wPkX3">
                                                         <value name="BOOL">
                                                           <block type="timeouts_gettimeout" id="pTQJfLPne.dmqq!4K#Q.">
                                                             <field name="NAME">delayOff</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO1">
                                                       <block type="timeouts_settimeout" id="b(4T]c7c@_xcR0^(IJQ#">
                                                         <field name="NAME">delayOff</field>
                                                         <field name="DELAY">10</field>
                                                         <field name="UNIT">min</field>
                                                         <statement name="STATEMENT">
                                                           <block type="controls_if" id="?qIetfb=Y~enZP|MFl{L">
                                                             <mutation elseif="2"></mutation>
                                                             <value name="IF0">
                                                               <block type="get_value" id="Gfj4~P(NGH1)wmLG*_5i">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch3</field>
                                                               </block>
                                                             </value>
                                                             <statement name="DO0">
                                                               <block type="control" id="+}7@V!ZV,:MdpdXzwfQM">
                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch3</field>
                                                                 <field name="WITH_DELAY">FALSE</field>
                                                                 <value name="VALUE">
                                                                   <block type="logic_boolean" id="7]gwCTD%n]L)8L{d}UV;">
                                                                     <field name="BOOL">FALSE</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </statement>
                                                             <value name="IF1">
                                                               <block type="get_value" id="c5)cE;gpnkQiW1,[Z~lq">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch2</field>
                                                               </block>
                                                             </value>
                                                             <statement name="DO1">
                                                               <block type="control" id="mz4KPZXji[VtQd%D^Q)G">
                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch2</field>
                                                                 <field name="WITH_DELAY">FALSE</field>
                                                                 <value name="VALUE">
                                                                   <block type="logic_boolean" id="aHm,f%vDaSf!ndb?Gy^;">
                                                                     <field name="BOOL">FALSE</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </statement>
                                                             <value name="IF2">
                                                               <block type="get_value" id="qiL4rv;pF_`rhwPjnuos">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch1</field>
                                                               </block>
                                                             </value>
                                                             <statement name="DO2">
                                                               <block type="control" id="1)T#:T-4fP9.161U$Ox!">
                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                 <field name="OID">0_userdata.0.Blockly.Switch1</field>
                                                                 <field name="WITH_DELAY">FALSE</field>
                                                                 <value name="VALUE">
                                                                   <block type="logic_boolean" id="EpsV1@;P~LvEiJ]XiL]D">
                                                                     <field name="BOOL">FALSE</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </statement>
                                                             <next>
                                                               <block type="timeouts_wait" id="L_G?=s-{iS/.+04Ro9ln">
                                                                 <field name="DELAY">10</field>
                                                                 <field name="UNIT">sec</field>
                                                                 <next>
                                                                   <block type="timeouts_cleartimeout" id="NWZqJ:pmXfkR7B(bD,.L">
                                                                     <field name="NAME">delayOff</field>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                  </xml>
                                  

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

                                    @paul53 Gerne gebe ich hier auch etwas zurück. Da ich einen Heizstab habe, der ein eingebautes Thermostat hat, kann es sein dass theoretisch zwar geladen werden könnte, aber der Heizstab intern abgeschaltet hat.
                                    Der Heizstab hat 3 Stufen, die ich über einen RasPI und dessen GPIOs mit einer SSR Platine und dann 3 Leistungs SSRs schalte. Eine Temperaturerfassung mit DS18B20 habe ich gerade angefangen. Ziel ist es dass die Gastherme nur noch dann WW aufbereitet, wenn die PV das nicht schafft. Hier ist mein Skript soweit ich es fertig habe. Kommetare willkommen.
                                    Gruß Hodde
                                    PV_ÜL_HeizSt.txt

                                    T.Spooner 1 Reply Last reply Reply Quote 0
                                    • T.Spooner
                                      T.Spooner @Hodde last edited by

                                      @hodde
                                      Hallo,
                                      darf ich mal fragen ob Du die Option eine stufenlosen Reglung in Betracht gezogen hast?
                                      Das würde sich sehr leicht über die CX und einen Thyristorsteller mit Phasenanschnittsteuerung realisieren lassen und es hätte den Vorteil, alle Watt zwischen den Stufen mitzunehmen.

                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        FM last edited by

                                        Hi Ihr,

                                        habe mir nach ein paar Vorgaben von euch dieses kleine Programm kopiert und umgebaut.
                                        Es funktioniert auch so weit nur weiß ich nicht wie ich es ändern müsste das der Heizstab nicht so oft tacket und immer eine halbe Stunde an bleibt und dann erst wieder prüft und wieder aus geht oder eben an bleibt. Wäre dankbar wenn mir jemand helfen könnte 🙂

                                        Danke udn Gruß FM

                                        Heizstab.jpg

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

                                          @fm sagte: eine halbe Stunde an bleibt

                                          Prinzip:

                                          Blockly_temp.JPG

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

                                            @paul53

                                            Super das ging ja Fix echt klasse so ein Forum ,eben umgebaut und mal schauen ob es heute so funtioniert, soll ja sonnig werden in Oberfranken. Melde mich wieder

                                            Gruß FM

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            931
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            144
                                            12679
                                            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