NEWS
Wartezeit einfügen ?
-
Hallo,
hatte schon im Discord Channel mal nachgehakt aber ich poste es hier auch noch einmal.Szenario:
1x Bewegungsmelder sowie zwei Magnetventile, die angesteuert werden müssen.Prinzipiell soll der Ablauf so sein, dass wenn Bewegung erkannt wird, dass zuerst das Magnetventil 1 für 3 Sek öffnet und das Magnetventil 2 nach 4 Sekunden für 3 Sekunden öffnet.
Dies funktioniert auch bereits eigentlich ganz gut.Allerdings möchte ich nun einen Timer haben, dass wenn Magnetventil 2 geschlossen wurde eine Zeit abläuft, so dass innerhalb dieses Counters nicht wieder die Sequenz aufgerufen wird. Also zB erst nach 20 Sekunden wieder bei Bewegung erkannt die Magnetventile öffnen. Vorher aber nicht. Bin für jeden Tipp dankbar.
Mein Hirn ist für Blockeis einfach nicht gemacht.
Anbei das bisherige Blockly:

-
Hallo,
hatte schon im Discord Channel mal nachgehakt aber ich poste es hier auch noch einmal.Szenario:
1x Bewegungsmelder sowie zwei Magnetventile, die angesteuert werden müssen.Prinzipiell soll der Ablauf so sein, dass wenn Bewegung erkannt wird, dass zuerst das Magnetventil 1 für 3 Sek öffnet und das Magnetventil 2 nach 4 Sekunden für 3 Sekunden öffnet.
Dies funktioniert auch bereits eigentlich ganz gut.Allerdings möchte ich nun einen Timer haben, dass wenn Magnetventil 2 geschlossen wurde eine Zeit abläuft, so dass innerhalb dieses Counters nicht wieder die Sequenz aufgerufen wird. Also zB erst nach 20 Sekunden wieder bei Bewegung erkannt die Magnetventile öffnen. Vorher aber nicht. Bin für jeden Tipp dankbar.
Mein Hirn ist für Blockeis einfach nicht gemacht.
Anbei das bisherige Blockly:

@segway
noch ne variable "Sperrzeit" mit stop und Timeout block. setzen bei magnetventil 2 dann im timeout block 20sek später zurück nehmen.
Dann muss das nur noch als abfrage oben mit rein. ist sperrzeit falsch.Edith: dein Timeout sollte auch nen Stopp block davor haben, immer damit nicht unzählige Timeouts gestartet werden können...
-
@segway
noch ne variable "Sperrzeit" mit stop und Timeout block. setzen bei magnetventil 2 dann im timeout block 20sek später zurück nehmen.
Dann muss das nur noch als abfrage oben mit rein. ist sperrzeit falsch.Edith: dein Timeout sollte auch nen Stopp block davor haben, immer damit nicht unzählige Timeouts gestartet werden können...
-
@segway
noch ne variable "Sperrzeit" mit stop und Timeout block. setzen bei magnetventil 2 dann im timeout block 20sek später zurück nehmen.
Dann muss das nur noch als abfrage oben mit rein. ist sperrzeit falsch.Edith: dein Timeout sollte auch nen Stopp block davor haben, immer damit nicht unzählige Timeouts gestartet werden können...
-
@segway
noch ne variable "Sperrzeit" mit stop und Timeout block. setzen bei magnetventil 2 dann im timeout block 20sek später zurück nehmen.
Dann muss das nur noch als abfrage oben mit rein. ist sperrzeit falsch.Edith: dein Timeout sollte auch nen Stopp block davor haben, immer damit nicht unzählige Timeouts gestartet werden können...
-
@segway ok, dann setzen wir das Gespräch eben hier fort, ich bin halt nicht 24/7 im Discord.
Ich würde folgenden Aufbau vorschlagen (kann aber natürlich nicht selbst testen, da andere Hardware):

Die Datenpunkte von Dir sind natürlich noch anzupassen auf Deine.
Noch ein Nachtrag: "Duration" wird nur einmalig gesetzt auf die gewünschte Verzögerung in ms, Du könntest natürlich statt dessen auch direkt unten in den Timeout 20 schreiben und die Einheit auf "Sek" setzen.
-
Hallo,
hatte schon im Discord Channel mal nachgehakt aber ich poste es hier auch noch einmal.Szenario:
1x Bewegungsmelder sowie zwei Magnetventile, die angesteuert werden müssen.Prinzipiell soll der Ablauf so sein, dass wenn Bewegung erkannt wird, dass zuerst das Magnetventil 1 für 3 Sek öffnet und das Magnetventil 2 nach 4 Sekunden für 3 Sekunden öffnet.
Dies funktioniert auch bereits eigentlich ganz gut.Allerdings möchte ich nun einen Timer haben, dass wenn Magnetventil 2 geschlossen wurde eine Zeit abläuft, so dass innerhalb dieses Counters nicht wieder die Sequenz aufgerufen wird. Also zB erst nach 20 Sekunden wieder bei Bewegung erkannt die Magnetventile öffnen. Vorher aber nicht. Bin für jeden Tipp dankbar.
Mein Hirn ist für Blockeis einfach nicht gemacht.
Anbei das bisherige Blockly:

-
@segway ok, dann setzen wir das Gespräch eben hier fort, ich bin halt nicht 24/7 im Discord.
Ich würde folgenden Aufbau vorschlagen (kann aber natürlich nicht selbst testen, da andere Hardware):

Die Datenpunkte von Dir sind natürlich noch anzupassen auf Deine.
Noch ein Nachtrag: "Duration" wird nur einmalig gesetzt auf die gewünschte Verzögerung in ms, Du könntest natürlich statt dessen auch direkt unten in den Timeout 20 schreiben und die Einheit auf "Sek" setzen.
-
@segway Ja, sollte soweit klappen. In meiner Variante braucht es keine "Duration" zum Prüfen, ob der Timeout läuft, denn dann ist ja der Counter>0. Deswegen auch kein StopTimeout. Aber egal, sollte so auch gehen.
Noch eine Anregung: Ich würde (wie gepostet) beim Trigger "Falls Objekt" nicht auf "wurde geändert" prüfen, sondern auf "größer als letztes". Grund: Der BWM wird normalerweise "true", wenn er Bewegung erkennt und dann wieder "false". In Deiner Variante löst Du also 2x aus.
-
@segway Ja, sollte soweit klappen. In meiner Variante braucht es keine "Duration" zum Prüfen, ob der Timeout läuft, denn dann ist ja der Counter>0. Deswegen auch kein StopTimeout. Aber egal, sollte so auch gehen.
Noch eine Anregung: Ich würde (wie gepostet) beim Trigger "Falls Objekt" nicht auf "wurde geändert" prüfen, sondern auf "größer als letztes". Grund: Der BWM wird normalerweise "true", wenn er Bewegung erkennt und dann wieder "false". In Deiner Variante löst Du also 2x aus.
@Segway Das "setze duration auf 0" ganz am Anfang bitte noch wieder aktivieren, sonst startet Dein Script mit einem undefinierten Zustand.
-
@Segway Das "setze duration auf 0" ganz am Anfang bitte noch wieder aktivieren, sonst startet Dein Script mit einem undefinierten Zustand.
Okay duration am Anfang aktiviert und Falls Objekt geändert.
... ich teste -
@bbtown
Doch klar aber ich bin froh das es überhaupt funktioniert jetzt und habe mich dann an diese Philosophie gehalten. Dein Vorschlag sieht ja irgendwie komplett anders anders - daher blieb ich erstmal bei dem anderen :-)Aber vielleicht teste ich das mal --> momentan zu viel Baustellen :-)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden


