Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Ansteuerung für Zeit X

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Ansteuerung für Zeit X

Scheduled Pinned Locked Moved Blockly
6 Posts 4 Posters 285 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Mika 0
    wrote on last edited by Mika 0
    #1

    Hallo,

    ich habe einen Heizstab in meinem Boiler, den ich Ersatzweise für die Wärmepumpe im Sommer betreibe.
    Die Ansteuerung erfolgt über die Vis, ein Objekt. Das Blockly läuft los und steuert für 30min im regelmäßigen Abstand von 3 Sekunden ein Zeitrelais an.
    Sollte sich iobroker aufhängen oder fehlerhaft sein, wird nicht mehr angesteuert und der Heizstab saugt mir nicht die Hausbatterie leer. So der Grundgedanke.

    Gelegentlich kommt es aber vor, dass nicht nur 30min angesteuert wird, sondern ununterbrochen, bis ich entweder iobroker neu starte, oder das Skript beende.

    1. Warum ist das so?
    2. Wie kann ich das Blockly verbessern, damit es überhaupt nicht dazu kommen kann?
    3. Wie kann ich verhindern, wenn schon eine Person auf Heizen gedrückt hat, also das Skript läuft, jemand anderes den während die Ansteuerung schon läuft nochmals das Skript startet. Ich vermute, dass könnte auch Einfluss haben. Vielleicht gibt es die Möglichkeit, das zu verhindern

    4141eb16-8077-4d7a-9f1c-e245b01779e2-image.png

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable type="interval" id="Intervall">Intervall</variable>
        <variable type="interval" id="Intervall2">Intervall2</variable>
      </variables>
      <block type="on_ext" id="{GP]f31L:Z[:8=bu`p7e" x="-337" y="-2137">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">any</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="3ciF;@X=vqdnZWF}/ND*">
            <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="iq/q#-=Abklf_EhtBYkK">
            <value name="IF0">
              <block type="logic_compare" id="tbh*PfF;vTS#Pf8@-3*J">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="on_source" id="1*`ZN7m4B|(U?{NvV/|-">
                    <field name="ATTR">state.val</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="5wKA#s?j!xMt@o:y4Dwp">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="timeouts_setinterval" id="U1Psj/[4{(8mM$SST!Y6">
                <field name="NAME">Intervall</field>
                <field name="INTERVAL">3</field>
                <field name="UNIT">sec</field>
                <statement name="STATEMENT">
                  <block type="control" id=".*}z95zpJQuIn@*M]9IF">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">s7.2.DBs.DB1.NI32_121_1_Boiler_Stufe_NUR_Heizstab_Puls-Ansteuerung</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="{VWJ!M7,.!5|vQt.XX$i">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <next>
                  <block type="update" id="@qHjmj$O1vM]AQiJZ=HB">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Boiler.HeizstabAN30min</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="-VP;T9%@oM4vS#*e~E~1">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="h4R*C^X]WZ#[d^X8^0N*">
                        <field name="DELAY">30</field>
                        <field name="UNIT">min</field>
                        <next>
                          <block type="timeouts_clearinterval" id="QQ+0)HsRZ1VUm!!87:Z{">
                            <field name="NAME">Intervall</field>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
      <block type="on_ext" id=");@yOqr(mMo~ALPv4/=5" disabled="true" x="888" y="-2063">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">any</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="Ij)-ngYVT#cLxp,?P/K|">
            <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="aIsH%2KngNR,_:[!SCu?">
            <value name="IF0">
              <block type="logic_compare" id=".-%f^|%IP[42K`+KG12B">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="on_source" id="zz+uMp2gvk)x7SZMNR+}">
                    <field name="ATTR">state.val</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="f{dAWKeOZ,O$]txc0/}r">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="timeouts_setinterval" id="tK2zyxG,e1VL1Ja3GW*@">
                <field name="NAME">Intervall2</field>
                <field name="INTERVAL">2</field>
                <field name="UNIT">sec</field>
                <statement name="STATEMENT">
                  <block type="control" id="-*^#TQzRS9rZU.%~qlVC">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">s7.2.DBs.DB1.NI32_Boiler_Stufe_NUR_Heizstab_Ansteuerung_(Zusatzrelais-Dauersignal)</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="ka[OYk$9tzx9-?Kxw^bX">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <next>
                  <block type="telegram" id="2KxsY+}@i0S6lY(!f[Qr">
                    <field name="INSTANCE"></field>
                    <field name="LOG"></field>
                    <field name="SILENT">FALSE</field>
                    <field name="PARSEMODE">default</field>
                    <field name="ESCAPING">FALSE</field>
                    <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                    <value name="MESSAGE">
                      <shadow type="text" id=":x~LJOhzhk@,0z:6E4`z">
                        <field name="TEXT">Heizstab für 30min an</field>
                      </shadow>
                    </value>
                    <value name="USERNAME">
                      <block type="text" id="J{SZDA#SsH4,8!VaU%aI">
                        <field name="TEXT">Michael</field>
                      </block>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="J4k~5QLA2sx*N[ydPQc8">
                        <field name="DELAY">15</field>
                        <field name="UNIT">min</field>
                        <next>
                          <block type="timeouts_clearinterval" id="h_~J%?~6q]H].|nVVG_c">
                            <field name="NAME">Intervall</field>
                            <next>
                              <block type="control_ex" id="5H]wK@eIgjSX7HiSuTf=">
                                <field name="TYPE">true</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="OID">
                                  <shadow type="field_oid" id="wjSA(m4#v1;GcT{7iu@9">
                                    <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
                                  </shadow>
                                </value>
                                <value name="VALUE">
                                  <shadow type="logic_boolean" id="p+JC@nUbIB=s(DEUC}.U">
                                    <field name="BOOL">FALSE</field>
                                  </shadow>
                                </value>
                                <value name="DELAY_MS">
                                  <shadow type="math_number" id="(]yJ*3[CCC=HB);2p8_e">
                                    <field name="NUM">0</field>
                                  </shadow>
                                </value>
                                <next>
                                  <block type="telegram" id="V8v2.HaOWFe*~?{5:B;c">
                                    <field name="INSTANCE"></field>
                                    <field name="LOG"></field>
                                    <field name="SILENT">FALSE</field>
                                    <field name="PARSEMODE">default</field>
                                    <field name="ESCAPING">FALSE</field>
                                    <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                    <value name="MESSAGE">
                                      <shadow type="text" id="~(oOqE6)X;)?zy%wnQq8">
                                        <field name="TEXT">Heizstab wieder aus</field>
                                      </shadow>
                                    </value>
                                    <value name="USERNAME">
                                      <block type="text" id="zOJ|[C)zoGPyK`#z,,V;">
                                        <field name="TEXT">Michael</field>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Besten Dank für eure Hilfe.

    MartinPM Dr. BakteriusD paul53P 3 Replies Last reply
    0
    • M Mika 0

      Hallo,

      ich habe einen Heizstab in meinem Boiler, den ich Ersatzweise für die Wärmepumpe im Sommer betreibe.
      Die Ansteuerung erfolgt über die Vis, ein Objekt. Das Blockly läuft los und steuert für 30min im regelmäßigen Abstand von 3 Sekunden ein Zeitrelais an.
      Sollte sich iobroker aufhängen oder fehlerhaft sein, wird nicht mehr angesteuert und der Heizstab saugt mir nicht die Hausbatterie leer. So der Grundgedanke.

      Gelegentlich kommt es aber vor, dass nicht nur 30min angesteuert wird, sondern ununterbrochen, bis ich entweder iobroker neu starte, oder das Skript beende.

      1. Warum ist das so?
      2. Wie kann ich das Blockly verbessern, damit es überhaupt nicht dazu kommen kann?
      3. Wie kann ich verhindern, wenn schon eine Person auf Heizen gedrückt hat, also das Skript läuft, jemand anderes den während die Ansteuerung schon läuft nochmals das Skript startet. Ich vermute, dass könnte auch Einfluss haben. Vielleicht gibt es die Möglichkeit, das zu verhindern

      4141eb16-8077-4d7a-9f1c-e245b01779e2-image.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="interval" id="Intervall">Intervall</variable>
          <variable type="interval" id="Intervall2">Intervall2</variable>
        </variables>
        <block type="on_ext" id="{GP]f31L:Z[:8=bu`p7e" x="-337" y="-2137">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="3ciF;@X=vqdnZWF}/ND*">
              <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="iq/q#-=Abklf_EhtBYkK">
              <value name="IF0">
                <block type="logic_compare" id="tbh*PfF;vTS#Pf8@-3*J">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="on_source" id="1*`ZN7m4B|(U?{NvV/|-">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="5wKA#s?j!xMt@o:y4Dwp">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="timeouts_setinterval" id="U1Psj/[4{(8mM$SST!Y6">
                  <field name="NAME">Intervall</field>
                  <field name="INTERVAL">3</field>
                  <field name="UNIT">sec</field>
                  <statement name="STATEMENT">
                    <block type="control" id=".*}z95zpJQuIn@*M]9IF">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">s7.2.DBs.DB1.NI32_121_1_Boiler_Stufe_NUR_Heizstab_Puls-Ansteuerung</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="{VWJ!M7,.!5|vQt.XX$i">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="update" id="@qHjmj$O1vM]AQiJZ=HB">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.Boiler.HeizstabAN30min</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="-VP;T9%@oM4vS#*e~E~1">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                      <next>
                        <block type="timeouts_wait" id="h4R*C^X]WZ#[d^X8^0N*">
                          <field name="DELAY">30</field>
                          <field name="UNIT">min</field>
                          <next>
                            <block type="timeouts_clearinterval" id="QQ+0)HsRZ1VUm!!87:Z{">
                              <field name="NAME">Intervall</field>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
        <block type="on_ext" id=");@yOqr(mMo~ALPv4/=5" disabled="true" x="888" y="-2063">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="Ij)-ngYVT#cLxp,?P/K|">
              <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="aIsH%2KngNR,_:[!SCu?">
              <value name="IF0">
                <block type="logic_compare" id=".-%f^|%IP[42K`+KG12B">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="on_source" id="zz+uMp2gvk)x7SZMNR+}">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="f{dAWKeOZ,O$]txc0/}r">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="timeouts_setinterval" id="tK2zyxG,e1VL1Ja3GW*@">
                  <field name="NAME">Intervall2</field>
                  <field name="INTERVAL">2</field>
                  <field name="UNIT">sec</field>
                  <statement name="STATEMENT">
                    <block type="control" id="-*^#TQzRS9rZU.%~qlVC">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">s7.2.DBs.DB1.NI32_Boiler_Stufe_NUR_Heizstab_Ansteuerung_(Zusatzrelais-Dauersignal)</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="ka[OYk$9tzx9-?Kxw^bX">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="telegram" id="2KxsY+}@i0S6lY(!f[Qr">
                      <field name="INSTANCE"></field>
                      <field name="LOG"></field>
                      <field name="SILENT">FALSE</field>
                      <field name="PARSEMODE">default</field>
                      <field name="ESCAPING">FALSE</field>
                      <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                      <value name="MESSAGE">
                        <shadow type="text" id=":x~LJOhzhk@,0z:6E4`z">
                          <field name="TEXT">Heizstab für 30min an</field>
                        </shadow>
                      </value>
                      <value name="USERNAME">
                        <block type="text" id="J{SZDA#SsH4,8!VaU%aI">
                          <field name="TEXT">Michael</field>
                        </block>
                      </value>
                      <next>
                        <block type="timeouts_wait" id="J4k~5QLA2sx*N[ydPQc8">
                          <field name="DELAY">15</field>
                          <field name="UNIT">min</field>
                          <next>
                            <block type="timeouts_clearinterval" id="h_~J%?~6q]H].|nVVG_c">
                              <field name="NAME">Intervall</field>
                              <next>
                                <block type="control_ex" id="5H]wK@eIgjSX7HiSuTf=">
                                  <field name="TYPE">true</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="OID">
                                    <shadow type="field_oid" id="wjSA(m4#v1;GcT{7iu@9">
                                      <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
                                    </shadow>
                                  </value>
                                  <value name="VALUE">
                                    <shadow type="logic_boolean" id="p+JC@nUbIB=s(DEUC}.U">
                                      <field name="BOOL">FALSE</field>
                                    </shadow>
                                  </value>
                                  <value name="DELAY_MS">
                                    <shadow type="math_number" id="(]yJ*3[CCC=HB);2p8_e">
                                      <field name="NUM">0</field>
                                    </shadow>
                                  </value>
                                  <next>
                                    <block type="telegram" id="V8v2.HaOWFe*~?{5:B;c">
                                      <field name="INSTANCE"></field>
                                      <field name="LOG"></field>
                                      <field name="SILENT">FALSE</field>
                                      <field name="PARSEMODE">default</field>
                                      <field name="ESCAPING">FALSE</field>
                                      <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                      <value name="MESSAGE">
                                        <shadow type="text" id="~(oOqE6)X;)?zy%wnQq8">
                                          <field name="TEXT">Heizstab wieder aus</field>
                                        </shadow>
                                      </value>
                                      <value name="USERNAME">
                                        <block type="text" id="zOJ|[C)zoGPyK`#z,,V;">
                                          <field name="TEXT">Michael</field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Besten Dank für eure Hilfe.

      MartinPM Online
      MartinPM Online
      MartinP
      wrote on last edited by
      #2

      @mika-0 Vielleicht hängen die Probleme (1) und (2) mit dem Auftreten von (3) zusammen

      Für Verriegelung entsprechend Frage (3) könntest Du eine Variable "HeizenLäuft" definieren, mit "false" initialisieren, und zu Beginn des Triggers prüfen, ob die Variable auf false steht.
      Nur dann den Timer-Mechanismus starten, die Variable auf true setzen und nach dem Ablauf am ende nach dem stop der zyklischen Ausführung wieder auf false setzen...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
      kernel Linux pve 6.8.12-15-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      M 1 Reply Last reply
      0
      • M Mika 0

        Hallo,

        ich habe einen Heizstab in meinem Boiler, den ich Ersatzweise für die Wärmepumpe im Sommer betreibe.
        Die Ansteuerung erfolgt über die Vis, ein Objekt. Das Blockly läuft los und steuert für 30min im regelmäßigen Abstand von 3 Sekunden ein Zeitrelais an.
        Sollte sich iobroker aufhängen oder fehlerhaft sein, wird nicht mehr angesteuert und der Heizstab saugt mir nicht die Hausbatterie leer. So der Grundgedanke.

        Gelegentlich kommt es aber vor, dass nicht nur 30min angesteuert wird, sondern ununterbrochen, bis ich entweder iobroker neu starte, oder das Skript beende.

        1. Warum ist das so?
        2. Wie kann ich das Blockly verbessern, damit es überhaupt nicht dazu kommen kann?
        3. Wie kann ich verhindern, wenn schon eine Person auf Heizen gedrückt hat, also das Skript läuft, jemand anderes den während die Ansteuerung schon läuft nochmals das Skript startet. Ich vermute, dass könnte auch Einfluss haben. Vielleicht gibt es die Möglichkeit, das zu verhindern

        4141eb16-8077-4d7a-9f1c-e245b01779e2-image.png

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable type="interval" id="Intervall">Intervall</variable>
            <variable type="interval" id="Intervall2">Intervall2</variable>
          </variables>
          <block type="on_ext" id="{GP]f31L:Z[:8=bu`p7e" x="-337" y="-2137">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">any</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="3ciF;@X=vqdnZWF}/ND*">
                <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="controls_if" id="iq/q#-=Abklf_EhtBYkK">
                <value name="IF0">
                  <block type="logic_compare" id="tbh*PfF;vTS#Pf8@-3*J">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="on_source" id="1*`ZN7m4B|(U?{NvV/|-">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="5wKA#s?j!xMt@o:y4Dwp">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="timeouts_setinterval" id="U1Psj/[4{(8mM$SST!Y6">
                    <field name="NAME">Intervall</field>
                    <field name="INTERVAL">3</field>
                    <field name="UNIT">sec</field>
                    <statement name="STATEMENT">
                      <block type="control" id=".*}z95zpJQuIn@*M]9IF">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">s7.2.DBs.DB1.NI32_121_1_Boiler_Stufe_NUR_Heizstab_Puls-Ansteuerung</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="{VWJ!M7,.!5|vQt.XX$i">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                    <next>
                      <block type="update" id="@qHjmj$O1vM]AQiJZ=HB">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Boiler.HeizstabAN30min</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="-VP;T9%@oM4vS#*e~E~1">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <next>
                          <block type="timeouts_wait" id="h4R*C^X]WZ#[d^X8^0N*">
                            <field name="DELAY">30</field>
                            <field name="UNIT">min</field>
                            <next>
                              <block type="timeouts_clearinterval" id="QQ+0)HsRZ1VUm!!87:Z{">
                                <field name="NAME">Intervall</field>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
          <block type="on_ext" id=");@yOqr(mMo~ALPv4/=5" disabled="true" x="888" y="-2063">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">any</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="Ij)-ngYVT#cLxp,?P/K|">
                <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="controls_if" id="aIsH%2KngNR,_:[!SCu?">
                <value name="IF0">
                  <block type="logic_compare" id=".-%f^|%IP[42K`+KG12B">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="on_source" id="zz+uMp2gvk)x7SZMNR+}">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="f{dAWKeOZ,O$]txc0/}r">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="timeouts_setinterval" id="tK2zyxG,e1VL1Ja3GW*@">
                    <field name="NAME">Intervall2</field>
                    <field name="INTERVAL">2</field>
                    <field name="UNIT">sec</field>
                    <statement name="STATEMENT">
                      <block type="control" id="-*^#TQzRS9rZU.%~qlVC">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">s7.2.DBs.DB1.NI32_Boiler_Stufe_NUR_Heizstab_Ansteuerung_(Zusatzrelais-Dauersignal)</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="ka[OYk$9tzx9-?Kxw^bX">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                    <next>
                      <block type="telegram" id="2KxsY+}@i0S6lY(!f[Qr">
                        <field name="INSTANCE"></field>
                        <field name="LOG"></field>
                        <field name="SILENT">FALSE</field>
                        <field name="PARSEMODE">default</field>
                        <field name="ESCAPING">FALSE</field>
                        <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                        <value name="MESSAGE">
                          <shadow type="text" id=":x~LJOhzhk@,0z:6E4`z">
                            <field name="TEXT">Heizstab für 30min an</field>
                          </shadow>
                        </value>
                        <value name="USERNAME">
                          <block type="text" id="J{SZDA#SsH4,8!VaU%aI">
                            <field name="TEXT">Michael</field>
                          </block>
                        </value>
                        <next>
                          <block type="timeouts_wait" id="J4k~5QLA2sx*N[ydPQc8">
                            <field name="DELAY">15</field>
                            <field name="UNIT">min</field>
                            <next>
                              <block type="timeouts_clearinterval" id="h_~J%?~6q]H].|nVVG_c">
                                <field name="NAME">Intervall</field>
                                <next>
                                  <block type="control_ex" id="5H]wK@eIgjSX7HiSuTf=">
                                    <field name="TYPE">true</field>
                                    <field name="CLEAR_RUNNING">FALSE</field>
                                    <value name="OID">
                                      <shadow type="field_oid" id="wjSA(m4#v1;GcT{7iu@9">
                                        <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
                                      </shadow>
                                    </value>
                                    <value name="VALUE">
                                      <shadow type="logic_boolean" id="p+JC@nUbIB=s(DEUC}.U">
                                        <field name="BOOL">FALSE</field>
                                      </shadow>
                                    </value>
                                    <value name="DELAY_MS">
                                      <shadow type="math_number" id="(]yJ*3[CCC=HB);2p8_e">
                                        <field name="NUM">0</field>
                                      </shadow>
                                    </value>
                                    <next>
                                      <block type="telegram" id="V8v2.HaOWFe*~?{5:B;c">
                                        <field name="INSTANCE"></field>
                                        <field name="LOG"></field>
                                        <field name="SILENT">FALSE</field>
                                        <field name="PARSEMODE">default</field>
                                        <field name="ESCAPING">FALSE</field>
                                        <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                        <value name="MESSAGE">
                                          <shadow type="text" id="~(oOqE6)X;)?zy%wnQq8">
                                            <field name="TEXT">Heizstab wieder aus</field>
                                          </shadow>
                                        </value>
                                        <value name="USERNAME">
                                          <block type="text" id="zOJ|[C)zoGPyK`#z,,V;">
                                            <field name="TEXT">Michael</field>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Besten Dank für eure Hilfe.

        Dr. BakteriusD Offline
        Dr. BakteriusD Offline
        Dr. Bakterius
        Most Active
        wrote on last edited by
        #3

        @mika-0 Warum auf wurde aktualisiert und nicht auf wurde geändert getriggert? Denn dann würde es nach den 30 Minuten enden. So startest du immer wieder neu wenn der Datenpunkt aktualisiert wurde und das Intervall läuft mehrfach.

        Du kannst aber auch mit der Aktualisierung das laufende Intervall abbrechen. Dann würde mit jedem Start die Zeit neu zu laufen beginnen ohne das es mehrfach parallel läuft.

        MartinPM 1 Reply Last reply
        0
        • Dr. BakteriusD Dr. Bakterius

          @mika-0 Warum auf wurde aktualisiert und nicht auf wurde geändert getriggert? Denn dann würde es nach den 30 Minuten enden. So startest du immer wieder neu wenn der Datenpunkt aktualisiert wurde und das Intervall läuft mehrfach.

          Du kannst aber auch mit der Aktualisierung das laufende Intervall abbrechen. Dann würde mit jedem Start die Zeit neu zu laufen beginnen ohne das es mehrfach parallel läuft.

          MartinPM Online
          MartinPM Online
          MartinP
          wrote on last edited by MartinP
          #4

          @dr-bakterius Es gibt eine noch bessere Variante, und zwar "ist größer als letztes" dann könnte man die "falls" Klammer weglassen
          287ea0aa-8a5a-4316-8e5f-8e27f9f2b39c-grafik.png
          Die Frage ist aber ob der Datenpunkt "HeizstabAN30nin" wirklich nur vom Skript gelöscht werden kann. Wenn von außerhalb gelöscht werden kann, ist das natürlich so nicht möglich...

          Ansonste würde diese Lösung auch die Hilfsvariable "HeizenLäuft" unnötig machen.

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
          kernel Linux pve 6.8.12-15-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          1 Reply Last reply
          0
          • M Mika 0

            Hallo,

            ich habe einen Heizstab in meinem Boiler, den ich Ersatzweise für die Wärmepumpe im Sommer betreibe.
            Die Ansteuerung erfolgt über die Vis, ein Objekt. Das Blockly läuft los und steuert für 30min im regelmäßigen Abstand von 3 Sekunden ein Zeitrelais an.
            Sollte sich iobroker aufhängen oder fehlerhaft sein, wird nicht mehr angesteuert und der Heizstab saugt mir nicht die Hausbatterie leer. So der Grundgedanke.

            Gelegentlich kommt es aber vor, dass nicht nur 30min angesteuert wird, sondern ununterbrochen, bis ich entweder iobroker neu starte, oder das Skript beende.

            1. Warum ist das so?
            2. Wie kann ich das Blockly verbessern, damit es überhaupt nicht dazu kommen kann?
            3. Wie kann ich verhindern, wenn schon eine Person auf Heizen gedrückt hat, also das Skript läuft, jemand anderes den während die Ansteuerung schon läuft nochmals das Skript startet. Ich vermute, dass könnte auch Einfluss haben. Vielleicht gibt es die Möglichkeit, das zu verhindern

            4141eb16-8077-4d7a-9f1c-e245b01779e2-image.png

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable type="interval" id="Intervall">Intervall</variable>
                <variable type="interval" id="Intervall2">Intervall2</variable>
              </variables>
              <block type="on_ext" id="{GP]f31L:Z[:8=bu`p7e" x="-337" y="-2137">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                <field name="CONDITION">any</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="3ciF;@X=vqdnZWF}/ND*">
                    <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="controls_if" id="iq/q#-=Abklf_EhtBYkK">
                    <value name="IF0">
                      <block type="logic_compare" id="tbh*PfF;vTS#Pf8@-3*J">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="on_source" id="1*`ZN7m4B|(U?{NvV/|-">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="5wKA#s?j!xMt@o:y4Dwp">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="timeouts_setinterval" id="U1Psj/[4{(8mM$SST!Y6">
                        <field name="NAME">Intervall</field>
                        <field name="INTERVAL">3</field>
                        <field name="UNIT">sec</field>
                        <statement name="STATEMENT">
                          <block type="control" id=".*}z95zpJQuIn@*M]9IF">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">s7.2.DBs.DB1.NI32_121_1_Boiler_Stufe_NUR_Heizstab_Puls-Ansteuerung</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="{VWJ!M7,.!5|vQt.XX$i">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                        <next>
                          <block type="update" id="@qHjmj$O1vM]AQiJZ=HB">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Boiler.HeizstabAN30min</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="-VP;T9%@oM4vS#*e~E~1">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <next>
                              <block type="timeouts_wait" id="h4R*C^X]WZ#[d^X8^0N*">
                                <field name="DELAY">30</field>
                                <field name="UNIT">min</field>
                                <next>
                                  <block type="timeouts_clearinterval" id="QQ+0)HsRZ1VUm!!87:Z{">
                                    <field name="NAME">Intervall</field>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
              <block type="on_ext" id=");@yOqr(mMo~ALPv4/=5" disabled="true" x="888" y="-2063">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                <field name="CONDITION">any</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="Ij)-ngYVT#cLxp,?P/K|">
                    <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="controls_if" id="aIsH%2KngNR,_:[!SCu?">
                    <value name="IF0">
                      <block type="logic_compare" id=".-%f^|%IP[42K`+KG12B">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="on_source" id="zz+uMp2gvk)x7SZMNR+}">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="f{dAWKeOZ,O$]txc0/}r">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="timeouts_setinterval" id="tK2zyxG,e1VL1Ja3GW*@">
                        <field name="NAME">Intervall2</field>
                        <field name="INTERVAL">2</field>
                        <field name="UNIT">sec</field>
                        <statement name="STATEMENT">
                          <block type="control" id="-*^#TQzRS9rZU.%~qlVC">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">s7.2.DBs.DB1.NI32_Boiler_Stufe_NUR_Heizstab_Ansteuerung_(Zusatzrelais-Dauersignal)</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="ka[OYk$9tzx9-?Kxw^bX">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                        <next>
                          <block type="telegram" id="2KxsY+}@i0S6lY(!f[Qr">
                            <field name="INSTANCE"></field>
                            <field name="LOG"></field>
                            <field name="SILENT">FALSE</field>
                            <field name="PARSEMODE">default</field>
                            <field name="ESCAPING">FALSE</field>
                            <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                            <value name="MESSAGE">
                              <shadow type="text" id=":x~LJOhzhk@,0z:6E4`z">
                                <field name="TEXT">Heizstab für 30min an</field>
                              </shadow>
                            </value>
                            <value name="USERNAME">
                              <block type="text" id="J{SZDA#SsH4,8!VaU%aI">
                                <field name="TEXT">Michael</field>
                              </block>
                            </value>
                            <next>
                              <block type="timeouts_wait" id="J4k~5QLA2sx*N[ydPQc8">
                                <field name="DELAY">15</field>
                                <field name="UNIT">min</field>
                                <next>
                                  <block type="timeouts_clearinterval" id="h_~J%?~6q]H].|nVVG_c">
                                    <field name="NAME">Intervall</field>
                                    <next>
                                      <block type="control_ex" id="5H]wK@eIgjSX7HiSuTf=">
                                        <field name="TYPE">true</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="OID">
                                          <shadow type="field_oid" id="wjSA(m4#v1;GcT{7iu@9">
                                            <field name="oid">0_userdata.0.Boiler.HeizstabAN30min</field>
                                          </shadow>
                                        </value>
                                        <value name="VALUE">
                                          <shadow type="logic_boolean" id="p+JC@nUbIB=s(DEUC}.U">
                                            <field name="BOOL">FALSE</field>
                                          </shadow>
                                        </value>
                                        <value name="DELAY_MS">
                                          <shadow type="math_number" id="(]yJ*3[CCC=HB);2p8_e">
                                            <field name="NUM">0</field>
                                          </shadow>
                                        </value>
                                        <next>
                                          <block type="telegram" id="V8v2.HaOWFe*~?{5:B;c">
                                            <field name="INSTANCE"></field>
                                            <field name="LOG"></field>
                                            <field name="SILENT">FALSE</field>
                                            <field name="PARSEMODE">default</field>
                                            <field name="ESCAPING">FALSE</field>
                                            <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                            <value name="MESSAGE">
                                              <shadow type="text" id="~(oOqE6)X;)?zy%wnQq8">
                                                <field name="TEXT">Heizstab wieder aus</field>
                                              </shadow>
                                            </value>
                                            <value name="USERNAME">
                                              <block type="text" id="zOJ|[C)zoGPyK`#z,,V;">
                                                <field name="TEXT">Michael</field>
                                              </block>
                                            </value>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </xml>
            

            Besten Dank für eure Hilfe.

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by paul53
            #5

            @mika-0 sagte: nicht nur 30min angesteuert wird, sondern ununterbrochen

            Man muss einen Mehrfachstart des Intervalls verhindern, z.B. so:

            Blockly_temp.JPG

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            1
            • MartinPM MartinP

              @mika-0 Vielleicht hängen die Probleme (1) und (2) mit dem Auftreten von (3) zusammen

              Für Verriegelung entsprechend Frage (3) könntest Du eine Variable "HeizenLäuft" definieren, mit "false" initialisieren, und zu Beginn des Triggers prüfen, ob die Variable auf false steht.
              Nur dann den Timer-Mechanismus starten, die Variable auf true setzen und nach dem Ablauf am ende nach dem stop der zyklischen Ausführung wieder auf false setzen...

              M Offline
              M Offline
              Mika 0
              wrote on last edited by
              #6

              OK danke euch allen.
              Ich werde diverse Möglichkeiten testen und euch berichten
              @martinp

              1. was bedeutet "false" initialisieren?
              2. wie geht das?
              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              433

              Online

              32.4k

              Users

              81.4k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe