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

      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
                        • S
                          Spidermike @paul53 last edited by

                          @paul53

                          ich wollte mich mal wieder melden und bescheid geben das das Script perfekt funktioniert.

                          Jetzt hab ich aber noch eine Bitte oder anliegen.

                          Ich habe mir jetzt ein ESP8266 mit zwei Temperatursensoren zusammengebaut und sie an dem 500l Boiler installiert. (habe zwei Möglichkeiten in dem Boiler 1. im oberen drittel und 2. im untereren drittel)

                          jetzt möchte ich diese Temperaturen in dem Script integrieren damit die Heizstäbe komplett ausschalten wenn sagen wir mal 55 Grad erreicht sind und ab einer Temperatur von unter 45 Grad wieder einschalten und wieder ihre arbeit machen wie jetzt im Script.

                          kannst Du mir da weiterhelfen?

                          Bekomme die Werte der Sensoren über Mqtt in den iobroker.

                          Gruß

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

                            @fm
                            Hallo,

                            könnt ihr mir das endgültige Skript zur verfügung stellen ?
                            Ich möchte folgendes Umsetzen :

                            Heizung Hysterese umzusetzen aber besten per Blockly.

                            Ich habe drei Heizstäbe die über ein Shelly von :
                            Schalter 1 (Shelly) zu Heizstab Relai 1 2000W
                            Schalter 2 (Shelly) zu Heizstab Relai 2 4000W
                            Schalter 3 (Shelly) zu Heizstab Relai 3 6000W

                            Solltemperatur einschalten ab 40°C → am liebsten per Variablen Datenpunkt
                            Solltemperatur ausschalten ab 70°C → am liebsten per Variablen Datenpunkt
                            Einmal am Tag auf über 60°C einschalten
                            Man kann es auch mit Heizstufen umsetzten, die Variabel anpassbar sind
                            40→ 50 Stufe 1
                            50→60 Stufe 2
                            60→70 Stufe 3

                            Wenn ihr ein ähnliches Skript habt baue ich mir das um. Ich muss erstmal reinkommen, ich bin leider Einsteiger.

                            Hier noch ein kleines Schaubild.
                            Unbenannt.JPG

                            1 Reply Last reply Reply Quote 0
                            • A
                              Andreas 9 @Diamand2k22 last edited by

                              @diamand2k22
                              Halllo, ich bin dabei das script nachzubauen und scheitere gleich am Anfang weil ich diesen Baustein "+" nicht finden kann. In deiner Abbildung ganz oben nach "setze Leistungsstufe auf", "prüfe falls falsch" kommt ein "+" mit Auswahl.
                              Wo ist dasdenn im Blockly versteckt? Der Farbe nach sollte es in "Mathematik" sein. Da finde iich nichts. Vielen Dank für einen Tip!!! 🙏

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

                                @andreas-9

                                Hi, das Plus wie hier dargestellt ist mit externen Eingängen.
                                Rechte Maustaste klicken und externe Eingänge auswählen, dann sieht das so aus...

                                3778054f-8ac2-4102-bf64-6f377304ab30-image.png

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                789
                                Online

                                31.7k
                                Users

                                79.9k
                                Topics

                                1.3m
                                Posts

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