NEWS
Timeout in Schleife wieder schließen
-
Hallo zusammen,
ich habe mir eine Bewässerungssteuerung zusammengestellt, die in mehreren Intervallen (t_intervall) das gleiche Ventil anstellen soll (über den Smartgarden Adapter). Nun könnte ich das natürlich über den Intervallblock lösen, allerdings hat das den Nachteil, dass erst nach dem eingestellten Zeitintervall (t_0+1*t_intervall) das Ventil eingeschaltet wird und man über einen zusätzlichen Counter die Anzahl der Schaltungen mitverfolgen muss (irgendwann soll es ja auch wieder aufhören). Die Lösung für den späten Start ist, dass man vor dem Intervallblock, die Blocke, die zum Zeitpunkt t_0 ausgeführt werden sollen, redundant ausführt:

Für mich auch keine schöne Lösung.Meine Idee war daher, dass ich über eine for-Schleife timeouts zu verschiedenen Zeitpunkten starte, die ich ja im Vorfeld kenne. Ein Minimalbeispiel sieht wie folgt aus:

Allerdings tue ich mich momentan schwer damit, diese wieder zu stoppen, wenn ich z.B. die Bewässerung einmal unterbrechen möchte (daher der stop-timeout am Ende, um das einmal zu testen). Vielleicht hat von euch ja jemand eine gute Idee oder einen besseren Ansatz?Schon einmal herzlichen Dank!
-
Hallo zusammen,
ich habe mir eine Bewässerungssteuerung zusammengestellt, die in mehreren Intervallen (t_intervall) das gleiche Ventil anstellen soll (über den Smartgarden Adapter). Nun könnte ich das natürlich über den Intervallblock lösen, allerdings hat das den Nachteil, dass erst nach dem eingestellten Zeitintervall (t_0+1*t_intervall) das Ventil eingeschaltet wird und man über einen zusätzlichen Counter die Anzahl der Schaltungen mitverfolgen muss (irgendwann soll es ja auch wieder aufhören). Die Lösung für den späten Start ist, dass man vor dem Intervallblock, die Blocke, die zum Zeitpunkt t_0 ausgeführt werden sollen, redundant ausführt:

Für mich auch keine schöne Lösung.Meine Idee war daher, dass ich über eine for-Schleife timeouts zu verschiedenen Zeitpunkten starte, die ich ja im Vorfeld kenne. Ein Minimalbeispiel sieht wie folgt aus:

Allerdings tue ich mich momentan schwer damit, diese wieder zu stoppen, wenn ich z.B. die Bewässerung einmal unterbrechen möchte (daher der stop-timeout am Ende, um das einmal zu testen). Vielleicht hat von euch ja jemand eine gute Idee oder einen besseren Ansatz?Schon einmal herzlichen Dank!
@manuelg sagte: einen besseren Ansatz?
Rekursive Funktion mit Timeout
@manuelg sagte in Timeout in Schleife wieder schließen:
über eine for-Schleife timeouts zu verschiedenen Zeitpunkten starte
Alle 4 Timer werden quasi gleichzeitig gestartet und lassen sich nicht mehr stoppen.
-
Hallo zusammen,
ich habe mir eine Bewässerungssteuerung zusammengestellt, die in mehreren Intervallen (t_intervall) das gleiche Ventil anstellen soll (über den Smartgarden Adapter). Nun könnte ich das natürlich über den Intervallblock lösen, allerdings hat das den Nachteil, dass erst nach dem eingestellten Zeitintervall (t_0+1*t_intervall) das Ventil eingeschaltet wird und man über einen zusätzlichen Counter die Anzahl der Schaltungen mitverfolgen muss (irgendwann soll es ja auch wieder aufhören). Die Lösung für den späten Start ist, dass man vor dem Intervallblock, die Blocke, die zum Zeitpunkt t_0 ausgeführt werden sollen, redundant ausführt:

Für mich auch keine schöne Lösung.Meine Idee war daher, dass ich über eine for-Schleife timeouts zu verschiedenen Zeitpunkten starte, die ich ja im Vorfeld kenne. Ein Minimalbeispiel sieht wie folgt aus:

Allerdings tue ich mich momentan schwer damit, diese wieder zu stoppen, wenn ich z.B. die Bewässerung einmal unterbrechen möchte (daher der stop-timeout am Ende, um das einmal zu testen). Vielleicht hat von euch ja jemand eine gute Idee oder einen besseren Ansatz?Schon einmal herzlichen Dank!
@manuelg Das was du willst ist mit reinem Blockly nicht sauber umsetzbar, da du die Timeouts nicht zu 100% wie Variablen behandeln kannst. Du wirst daher nicht umhin kommen an Stelle der Schleife 4 einzelne "ausführen Timeout" Blöcke zu benutzen. Als alternative kannst du versuchen das ganze in JS zusammenzubauen und dann in Blockly als "JS Funktion" einzuhängen.
A.
-
Hallo zusammen,
ich habe mir eine Bewässerungssteuerung zusammengestellt, die in mehreren Intervallen (t_intervall) das gleiche Ventil anstellen soll (über den Smartgarden Adapter). Nun könnte ich das natürlich über den Intervallblock lösen, allerdings hat das den Nachteil, dass erst nach dem eingestellten Zeitintervall (t_0+1*t_intervall) das Ventil eingeschaltet wird und man über einen zusätzlichen Counter die Anzahl der Schaltungen mitverfolgen muss (irgendwann soll es ja auch wieder aufhören). Die Lösung für den späten Start ist, dass man vor dem Intervallblock, die Blocke, die zum Zeitpunkt t_0 ausgeführt werden sollen, redundant ausführt:

Für mich auch keine schöne Lösung.Meine Idee war daher, dass ich über eine for-Schleife timeouts zu verschiedenen Zeitpunkten starte, die ich ja im Vorfeld kenne. Ein Minimalbeispiel sieht wie folgt aus:

Allerdings tue ich mich momentan schwer damit, diese wieder zu stoppen, wenn ich z.B. die Bewässerung einmal unterbrechen möchte (daher der stop-timeout am Ende, um das einmal zu testen). Vielleicht hat von euch ja jemand eine gute Idee oder einen besseren Ansatz?Schon einmal herzlichen Dank!
@manuelg sagte in Timeout in Schleife wieder schließen:
oder einen besseren Ansatz?
bin jetzt kein Experte, aber ich hab so eine ähnliche Geschichte, nutze aber statt dem Timeout einen "Warte" Block.
damit werden dann nicht alle 4 gleichzeitig gestartet, sondern eben gewartet bis die Zeit um ist bevor die nächste Schleife los geht.
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