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.
- Warum ist das so?
- Wie kann ich das Blockly verbessern, damit es überhaupt nicht dazu kommen kann?
- 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

<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.