NEWS
Blockly Timeout stoppen geht nicht
-
Ich habe in meinen Briefkasten zwei Reedkontakte eingebaut. Einer wird durch die Einwurfklappe, der andere durch das Öffnen des Fachs betätigt.
Ziel ist, eine Variable "Post ist da" zu setzen, wenn die Klappe betätigt wurde. Das Rücksetzen geschieht dann durch das Entnehmen der Post mit Öffnen des Fachs.
Problem nun: das Fach lässt sich nur öffnen, wenn die Klappe offen ist. Es ist also zu verhindern, dass das Öffnen der Klappe "Post ist da" setzt, wenn glich danach auch das Fach geöffnet wird.
Kein Problem denke ich, dafür gibt es ja das Objekt "Ausführen mit Timeout". Also folgendes Script gebaut:
Nun wird mir aber unter allen Umständen "Post ist da" gesetzt. Und zwar genau 30 Sekunden nach dem Öffnen der Klappe - auch wenn gleiuch danach das Fach geöffne t wird.Kurze Erklärung zu den Stati: Klappe/Fach offen = unwahr/false.
-
@hmanfred sagte in Blockly Timeout stoppen geht nicht:
Problem nun: das Fach lässt sich nur öffnen, wenn die Klappe offen ist.
Und somit wird auch immer die Klappe zuletzt geschlossen und der Timeout gestartet
-
@haus-automatisierung sagte in Blockly Timeout stoppen geht nicht:
@hmanfred sagte in Blockly Timeout stoppen geht nicht:
Problem nun: das Fach lässt sich nur öffnen, wenn die Klappe offen ist.
Und somit wird auch immer die Klappe zuletzt geschlossen und der Timeout gestartet
@hmanfred
... und beim Testen sogar ggf. mehrfach, so dass ein Timeout grundsätzlich nie mehr gestoppt werden kann -
@haus-automatisierung sagte in Blockly Timeout stoppen geht nicht:
Und somit wird auch immer die Klappe zuletzt geschlossen und der Timeout gestartet
Danke für die Hinweise. Mit meinem beschränkten Wissen hilft mir das leider nicht weiter.
Wird das Script denn nicht nur getriggert, wenn einer der Kontakte öffnet? Getriggert wird doch auf "unwahr".
-
Hab ich wohl zu schnell gelesen. Sollte ja so laufen:
- "Klappe" auf =
unwahr
-> Trigger -> Startet Timer - "Fach" auf =
unwahr
-> Trigger -> Stoppt Timer - "Fach" zu =
wahr
-> nix - "Klappe" zu =
wahr
-> nix
In der Zeit wo das Fach auf ist, darf halt nur nicht die Klappe wieder schließen (bleibt die oben?). Sonst wäre es ja
- "Klappe" auf =
unwahr
-> Trigger -> Startet Timer - "Fach" auf =
unwahr
-> Trigger -> Stoppt Timer - "Klappe" zu (weil bleibt nicht stehen) =
wahr
-> nix - "Klappe" nochmal auf (weil bleibt nicht stehen) =
unwahr
-> Trigger -> Startet Timer - "Fach" zu =
wahr
-> nix - "Klappe" zu =
wahr
-> nix
= Timer läuft
Und das Problem mit Mehrfachauslöungen bleibt auch noch. Hatte @Homoran ja schon geschrieben. Also wenn man die Klappe mehrfach hintereinander auf und zu macht laufen mehrere Timer parallel. Davon kann nur der letzte gestoppt werden.
- "Klappe" auf =
-
@haus-automatisierung sagte in Blockly Timeout stoppen geht nicht:
Und das Problem mit Mehrfachauslöungen bleibt auch noch. Hatte @Homoran ja schon geschrieben. Also wenn man die Klappe mehrfach hintereinander auf und zu macht laufen mehrere Timer parallel. Davon kann nur der letzte gestoppt werden.
Das ist der entscheidende Hinweis. Ich habe nämlich im Log gesehen, dass der Kontakt wohl prellt (bzw. mein Testaufbau mit Klemmen). Also läuft ein zweiter Timer parallel...
Habe im Sensor jekt mal die Entprellzeit erhöht. Mal sehen...
-
@hmanfred sagte in Blockly Timeout stoppen geht nicht:
Habe im Sensor jekt mal die Entprellzeit erhöht.
Ansonsten zusätzlich abfragen ob der Timeout noch nicht läuft (und nur dann starten).
-
@hmanfred sagte: Kontakt wohl prellt
Einzel-Trigger benötigen weniger Ressourcen. Mit Entprellen:
Anmerkung: 30 s können recht sportlich sein vom Öffnen der Klappe bis zum Prellen beim Schließen der Klappe.