NEWS
Steckdosen Steuerung in Abhängigkeit der Leistung
-
Hallo,
ich versuche eine kleine Steckdosensteuerung zu bauen und scheitere leider an diesem, wie ich dachte, einfachem Thema.In dem Skript überwache ich Steckdose 1. Wenn diese den Wert >=20 Watt hat (Chlorinator und Wärempumpe), soll die Pumpe die an Steckdose 2 hängt geschaltet werden. Sinkt der Wert wieder unter 20 Watt, soll mit 3 Minuten Verzögerung die Steckdose (Pumpe) wieder abgeschaltet werden.
Das Einschalten bei meiner Lösung funktioniert, dass Abschalten findet jedoch zu früh statt. (maximal eine Minute). Ich vermute, das es ein Abschaltbefehl ist, der durch eine Leistungsschwankung des Standby ausgeführt wurde.
Wie kann ich den abfangen?Screenshot:
Im Anhang.Export meines Skriptes:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="on_ext" id=":lLUc)zVc/7wF`[Rge^V" x="12" y="37"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Q2oijC-Ul~.sNAx3v7SD"> <field name="oid">shelly.0.SHSW-25#686F69#1.Relay0.Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="4bmQ8^wgWdYh%e-^a}mB"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="be*hd*Ha|(^e+`T)Uk!6"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="l-,Ed(Jvn`G3@;]YO=e5"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay0.Power</field> </block> </value> <value name="B"> <block type="math_number" id="-Qw`wC?A-*T@LRgujiS@"> <field name="NUM">20</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="u6v0Csjx,67X!x[evFc+"> <field name="NAME">timeout</field> <next> <block type="control" id="6-Qxk.g47{COfe)vpERf"> <mutation delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="QR@R;F$GlP(rqz2^A_)5"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="|6.(iE3j_A=S#Iu2LLzl"> <field name="NAME">timeout</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="oY#}nx[J*2OsXL*56*cu"> <mutation delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Wtq%0S:d.Pc~{G4A|z^l"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </xml>
-
@BigChris mach mal sonst wenn wert kleiner 20 dann timeout 3 min
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on_ext" id=":lLUc)zVc/7wF`[Rge^V" x="12" y="37"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Q2oijC-Ul~.sNAx3v7SD"> <field name="oid">shelly.0.SHSW-25#686F69#1.Relay0.Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="4bmQ8^wgWdYh%e-^a}mB"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="be*hd*Ha|(^e+`T)Uk!6"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="l-,Ed(Jvn`G3@;]YO=e5"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay0.Power</field> </block> </value> <value name="B"> <block type="math_number" id="-Qw`wC?A-*T@LRgujiS@"> <field name="NUM">20</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="u6v0Csjx,67X!x[evFc+"> <field name="NAME">timeout</field> <next> <block type="control" id="6-Qxk.g47{COfe)vpERf"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="QR@R;F$GlP(rqz2^A_)5"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="F`RTIU^3MSW=hl*:i0K?"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="X_zsDa|pLeNxovr(=axD"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay0.Power</field> </block> </value> <value name="B"> <block type="math_number" id="9[@eZn+m|GRObLS;%kT;"> <field name="NUM">20</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="|6.(iE3j_A=S#Iu2LLzl"> <field name="NAME">timeout</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="oY#}nx[J*2OsXL*56*cu"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#686F69#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Wtq%0S:d.Pc~{G4A|z^l"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </xml>
-
Das habe ich versucht.
Leider so wie vorher auch. Die drei Minuten werden nicht eingehalten.
-
@BigChris sagte:
Leider so wie vorher auch
Wenn der Wert im Bereich < 20 schwankt, werden mehrere Timer gestartet. Versuche es mal so:
oder so:
Wert und vorheriger Wert findet man unter "Trigger".
-
Variante 1 hat direkt funktioniert.
Ich glaube ich habe noch viel zu lernen...