Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker 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.9k

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

Ansteuerung für Zeit X

Geplant Angeheftet Gesperrt Verschoben Blockly
6 Beiträge 4 Kommentatoren 285 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Mika 0
    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
    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 Offline
      MartinPM Offline
      MartinP
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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 Offline
          MartinPM Offline
          MartinP
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              398

              Online

              32.4k

              Benutzer

              81.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe