NEWS
Counter für eine gewisse Zeit sperren
-
Hallo an Alle
Ich habe mal wider ein kleines Problemchen. Und zwar:Ich habe in meiner Visulisierung einen Counter, wie oft der Kami AN war. Hierfür habe ich am Rauchrohr einen Wärmeschalter angebracht und mittels Kabel an einen Xiami-Wassersensor montiert.
Kamin ist an --> Temperatur steigt --> Bimetall löst aus --> Kontakt geht auf Wassermelder -->Broker bekommt "True-Signal" --> Skript zählt Counter hoch.Funktioniert seit einem halben Jahr ohne Probleme.
Das einzige Problem ist, wenn der Kamin die Temperatur so grad erreicht, das Bimetall auslöst und kurze Zeit später wider die Temperatur verliert, der Kontakt abfällt und kurz darauf wider aktiviert wird.
Also ich möchte Quasi eine Hysterese einprogrammieren, sodass nur zum Beistpiel einmal pro Stunde hochgezählt werden kann.Hat jemand eine gute Idee?!
Gruß und schönen Sonntag Abend!
-
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="@cU*#kZG[yp)D61sNOdi" x="-687" y="-362"> <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="HEniw3^l=PY[E`%F:][}"> <field name="oid">mihome.0.devices.sensor_wleak_aq1_158d00041f4a74.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="_[B,/R4HQ0lQcXy@hX?q"> <value name="IF0"> <block type="logic_compare" id="_?3aXAZxSo?,h62VEytc"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="bjDLQI*+C(9-Z851m-X|"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_wleak_aq1_158d00041f4a74.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="b(+c!gI)?*vuXJ7?f2@d"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="~Tcti)P:6mduSO?TOAMW"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mihome.0.devices.sensor_wleak_aq1_158d00041f4a74.Counter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="=VpaF{!0B|LM#^qvGZ)p"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="13[2d|-R}d{2A}ph-,=4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="bWU!jRYkauKO?;5C)20k"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_wleak_aq1_158d00041f4a74.Counter</field> </block> </value> <value name="B"> <shadow type="math_number" id="`gT.8i?q:M+8Q-Sk;i(v"> <field name="NUM">1</field> </shadow> </value> </block> </value> </block> </statement> </block> </statement> </block> </xml>
MOD EDIT: SCRIPT IN CODE TAGS GESETZT
-
@baummy dies ist das derzeitge Skript. Keine Ahnung wie ihr das sonst darstellt
-
-
@baummy
Für den Zugriff auf die Timer-Variable timeout muss erst einmal ein Dummy-Variable erstellt werden:oder den Export verwenden:
-
@paul53 Hallo Paul!
Sorry für die späte Rückmeldung!! Also ich habe den Skript komplett eingefügt und getestet. Hat auf Anhieb funktioniert. Auch wenn ich dieses Skript nicht komplett nachvollziehen kann
Aber egal, trotzdem DANKE!!! -
@baummy Timeout ist super um einen Block nach einer Zeit auszuführen. Das restliche Skript läuft aber weiter. Diese Fnuktion wurde später eingefügt...