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

      @paul53 !

      schaue mal bitte,

      wie schaltet das Script jetzt genau?

      kannst mir das genauer erklären?

      Unbenannt.png

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

        @spidermike
        Das kann ich nicht entziffern.

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

        wie schaltet das Script jetzt genau?

        Wenn die Einspeisung in das öffentliche Netz > 1500 W beträgt, schaltet es den Heizstab ein. In dem Moment sinkt die Einspeisung um 1500 W (Heizstableistung).
        Wenn nun der Bezug aus dem öffentlichen Netz über 200 W geht, schaltet der Heizstab wieder aus. Eine Schwankungsreserve von mind. 200 W benötigt man, damit der Heizstab nicht ständig hin- und herschaltet.

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

          @paul53

          kannst du mir dein Script mal exportieren und senden damit ich es bei mir importieren kann?

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

            @spidermike sagte: exportieren und senden damit ich es bei mir importieren kann?

            Alle Datenpunkt-IDs müssen neu zugewiesen werden.

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="K(+i.N5t3ef42%y1}4V5">heizstab</variable>
             </variables>
             <block type="variables_set" id="3rENTMbHg0U{nrcjvQ4R" x="63" y="37">
               <field name="VAR" id="K(+i.N5t3ef42%y1}4V5">heizstab</field>
               <value name="VALUE">
                 <block type="get_value" id="+cb;AxKTdmDshv8e48#7">
                   <field name="ATTR">val</field>
                   <field name="OID">0_userdata.0.Blockly.Heizung</field>
                 </block>
               </value>
               <next>
                 <block type="on_ext" id="!Rq{7D;G~`WFuKW9w5)#">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="4X6rj1PTfMIVlak8d=zt">
                       <field name="oid">0_userdata.0.Blockly.Meter.Einspeisung</field>
                     </shadow>
                   </value>
                   <value name="OID1">
                     <shadow type="field_oid" id="p?mh5^;G*5$.NvpjOKBS">
                       <field name="oid">0_userdata.0.Blockly.Meter.Bezug</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="controls_if" id="_SWf:0$dUJ`Rxdf}=a~:">
                       <mutation elseif="1"></mutation>
                       <value name="IF0">
                         <block type="logic_compare" id="?AQR+~+%U*m,GD[](vMc">
                           <field name="OP">GT</field>
                           <value name="A">
                             <block type="get_value" id="0RTdIsUhTnGbst?Oo$}X">
                               <field name="ATTR">val</field>
                               <field name="OID">0_userdata.0.Blockly.Meter.Einspeisung</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id="B3SUmja#nhP07`Ib2e]3">
                               <field name="NUM">1500</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO0">
                         <block type="variables_set" id="FtO0s8CLtttuz;Pj_-@g">
                           <field name="VAR" id="K(+i.N5t3ef42%y1}4V5">heizstab</field>
                           <value name="VALUE">
                             <block type="logic_boolean" id="~3Ej,Y:V]vc.xo13T4FP">
                               <field name="BOOL">TRUE</field>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <value name="IF1">
                         <block type="logic_compare" id=")6cR9,M@yI3O0iv45Eby">
                           <field name="OP">GT</field>
                           <value name="A">
                             <block type="get_value" id="bUkmfYu-w:CY/zhEUIM:">
                               <field name="ATTR">val</field>
                               <field name="OID">0_userdata.0.Blockly.Meter.Bezug</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id="_;{nLGpv;B)9lig#KW$`">
                               <field name="NUM">200</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO1">
                         <block type="variables_set" id="zRf*^A/gIAE8exnh*Nei">
                           <field name="VAR" id="K(+i.N5t3ef42%y1}4V5">heizstab</field>
                           <value name="VALUE">
                             <block type="logic_boolean" id="Iu@~[H?T!`gi[a~?czm[">
                               <field name="BOOL">FALSE</field>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <next>
                         <block type="controls_if" id="txT}M{,sA+NkAb@Mr5l2">
                           <value name="IF0">
                             <block type="logic_compare" id="?PIVtSDfjo=%SJL+*Qm+">
                               <field name="OP">NEQ</field>
                               <value name="A">
                                 <block type="variables_get" id="%]kYs]{FI$9t~=w2I4jG">
                                   <field name="VAR" id="K(+i.N5t3ef42%y1}4V5">heizstab</field>
                                 </block>
                               </value>
                               <value name="B">
                                 <block type="get_value" id="))um5q|[Eb|6C.zPhuLX">
                                   <field name="ATTR">val</field>
                                   <field name="OID">0_userdata.0.Blockly.Heizung</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <statement name="DO0">
                             <block type="control" id="v*1c9`[9]8(ck!twBdTW">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">0_userdata.0.Blockly.Heizung</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="variables_get" id="tNl8n6AD5]o,VeqDGhd,">
                                   <field name="VAR" id="K(+i.N5t3ef42%y1}4V5">heizstab</field>
                                 </block>
                               </value>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
            </xml>
            

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

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

              <xml xmlns="https://developers.google.com/blockly/xml">

              danke Dir und melde mich wenn es funktioniert

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

                @paul53

                Ich habe das jetzt am laufen aber er schaltet leider den Heizstab nicht ein.

                Das bekomme ich unten geschrieben

                16:39:14.712 info javascript.0 (1471) Stop script script.js.Heizung_Warmwasser_
                16:39:16.786 info javascript.0 (1471) Start javascript script.js.Heizung_Warmwasser_
                16:39:16.819 info javascript.0 (1471) script.js.Heizung_Warmwasser_: registered 2 subscriptions and 0 schedules

                Gruß Maik

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

                  @spidermike sagte: schaltet leider den Heizstab nicht ein.

                  Dann bau Debug-Blöcke ein, um zu sehen, woran es liegt.

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

                    @paul53
                    kann ich da ein sendto reinsetzen damit ich sagen wir über Whatsapp oder telegram eine Nachricht bekomme wenn der Heizstab angeschaltet oder ausgeschaltet wurde?
                    Wenn ja an welcher Stelle müsste das passieren?

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

                      @spidermike sagte: kann ich da ein sendto reinsetzen

                      Das geht auch. Debug ist aber weniger aufwändig und man sieht im Protokoll, was wann passiert ist.

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

                      an welcher Stelle müsste das passieren?

                      Im Trigger unten:

                      Bild_2022-07-15_191912825.png

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

                        @paul53

                        ich danke Dir vielmals und ich werde sehen wie es funktioniert,

                        jetzt ist leider die Sonne weg und ich kann es nicht mehr testen.

                        Aber der Heizstab hat zumindest erstmal abgeschaltet. Morgen habe ich Zeit es zu testen.

                        um nochmal zu "sendto Whatsapp" zurückzukommen.

                        Wo müsste ich das in den Script einfügen?

                        gruß Maik

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

                          @spidermike sagte: um nochmal zu "sendto Whatsapp" zurückzukommen.
                          Wo müsste ich das in den Script einfügen?

                          Zusätzlich zu oder anstelle von Debug.
                          Du wirst sehr viele Nachrichten erhalten!

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

                            @paul53
                            Guten Morgen,

                            ich habe jetzt mal geschaut

                            es wird die Einspeisung und den Bezug erkannt aber der Heizstab wird leider nicht eingeschaltet.

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

                              @spidermike sagte: Heizstab wird leider nicht eingeschaltet.

                              Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

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

                                @paul53

                                java.jpg

                                ist das das was du möchtest

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

                                  @spidermike sagte: ist das das was du möchtest

                                  Nicht ganz: Per Copy & Paste in Code tags, denn das ist besser lesbar.
                                  Aber ich sehe, dass bei "steuere Heizung Warmwasser mit" die Zuweisung der Variablen heizstab fehlt.

                                  Bild_2022-07-16_155405303.png

                                  Außerdem ist die Hysterese < 1500 W. Es schaltet so im Grenzbereich ständig hin und her. Die Hysterese muss > 1500 W sein (mind. 1700 W).

                                  S 3 Replies Last reply Reply Quote 0
                                  • S
                                    Spidermike @paul53 last edited by

                                    @paul53

                                    var heizstab;
                                    
                                    
                                    heizstab = getState("hs100.0.192_168_178_38.state").val;
                                    on({id: [].concat(['plenticore.0.devices.local.ToGrid_P']).concat(['plenticore.0.devices.local.HomeGrid_P']), change: "ne"}, async function (obj) {
                                        if (getState("plenticore.0.devices.local.ToGrid_P").val > 1200) {
                                        heizstab = true;
                                      } else if (getState("plenticore.0.devices.local.HomeGrid_P").val > 200) {
                                        heizstab = false;
                                      }
                                      if (heizstab != getState("hs100.0.192_168_178_38.state").val) {
                                        setState("hs100.0.192_168_178_38.state"/*Heizung Warmwasser*/, heizstab);
                                      }
                                      console.log((['Einspeisung:',getState("plenticore.0.devices.local.ToGrid_P").val,'W,Bezug:',getState("plenticore.0.devices.local.HomeGrid_P").val,'W,Heizstab:',heizstab,''].join('')));
                                    });
                                    
                                    
                                    

                                    ist das so besser?

                                    Ich kenne mich damit wirklich nicht so richtig aus

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

                                      @paul53 Heizung.jpg

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

                                        @paul53

                                        wo muss ich jetzt noch etwas ändern?

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

                                          @spidermike sagte: wo muss ich jetzt noch etwas ändern?

                                          Ersetze wahr durch die Variable heizstab im Block "steuere". Sonst schaltet der Heizstab nie aus.
                                          Erhöhe den Vergleichswert für Einspeisung auf 1500 oder den Vergleichswert für Bezug auf 500.
                                          Korrekter Javascript-Code:

                                          var heizstab;
                                           
                                           
                                          heizstab = getState("hs100.0.192_168_178_38.state").val;
                                          on({id: [].concat(['plenticore.0.devices.local.ToGrid_P']).concat(['plenticore.0.devices.local.HomeGrid_P']), change: "ne"}, async function (obj) {
                                              if (getState("plenticore.0.devices.local.ToGrid_P").val > 1500) {
                                              heizstab = true;
                                            } else if (getState("plenticore.0.devices.local.HomeGrid_P").val > 200) {
                                              heizstab = false;
                                            }
                                            if (heizstab != getState("hs100.0.192_168_178_38.state").val) {
                                              setState("hs100.0.192_168_178_38.state"/*Heizung Warmwasser*/, heizstab);
                                            }
                                            console.log((['Einspeisung:',getState("plenticore.0.devices.local.ToGrid_P").val,'W,Bezug:',getState("plenticore.0.devices.local.HomeGrid_P").val,'W,Heizstab:',heizstab,''].join('')));
                                          });
                                          

                                          EDIT: Damit das Protokoll nicht alle 2 s zugemüllt wird, verschiebe den Debug-Block in die Abfrage:

                                          Blockly_temp.JPG

                                          S 3 Replies Last reply Reply Quote 0
                                          • S
                                            Spidermike @paul53 last edited by

                                            @paul53
                                            danke Dir vielmals, jetzt am Nachmittag hat alles sehr gut funktioniert.

                                            Ich habe noch ein Projekt, könntest Du mir dabei helfen?

                                            Gruß Maik

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            422
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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