NEWS
Mehrere Timeouts hintereinander
-
Hallo zusammen,
ich versuche gerade, meine Gartenbewässerung zu automatisieren. Die Bewässerung wird durch verschiedene Ventile gesteuert, die den Wasserfluss für die einzelnen Bewässerungszonen öffnen oder schließen. Zusätzlich muß immer die Pumpe eingeschaltet werden, damit überhaupt Wasser fließt. Um das Ganze konfigurierbar zu machen habe ich unter 0_userdata für jeden Kreislauf ein Objekt angelegt, in welchem die Bewässerungsdauer für jeden Kreislauf gespeichert werden kann. Wenn der Wert dieses Objektes größer als 0 ist soll der jeweilige Kreislauf entsprechend der hinterlegten Anzahl der Minuten bewässert werden.
Ich habe angefangen, dafür das folgende Blockly-Script zu schreiben. Problematisch ist, dass hierbei alle Timeouts gleichzeitig starten und nicht hintereinander.
Mein Script sieht im Moment so aus:

Das Problem ist, dass so wie das Script momentan ist, alle Timeouts gleichzeitig starten. Sie sollen aber nacheinander starten. Falls ich die Timeouts hierfür schachtele und bei einem Kreislauf die Minutenzahl auf 0 gestellt wird (damit er diesmal nicht bewässert wird) würden alle folgenden Kreisläufe auch nicht mehr geprüft da das darüberliegende betreffende Timeout gar nicht ausgelöst werden würde.
Hat jemand eine gute Idee, wie ich dieses Problem lösen könnte? Ich hoffe, ich konnte mein Problem halbwegs verständlich beschrieben.
Vielen Dank für jede Hilfe.
-
Hallo zusammen,
ich versuche gerade, meine Gartenbewässerung zu automatisieren. Die Bewässerung wird durch verschiedene Ventile gesteuert, die den Wasserfluss für die einzelnen Bewässerungszonen öffnen oder schließen. Zusätzlich muß immer die Pumpe eingeschaltet werden, damit überhaupt Wasser fließt. Um das Ganze konfigurierbar zu machen habe ich unter 0_userdata für jeden Kreislauf ein Objekt angelegt, in welchem die Bewässerungsdauer für jeden Kreislauf gespeichert werden kann. Wenn der Wert dieses Objektes größer als 0 ist soll der jeweilige Kreislauf entsprechend der hinterlegten Anzahl der Minuten bewässert werden.
Ich habe angefangen, dafür das folgende Blockly-Script zu schreiben. Problematisch ist, dass hierbei alle Timeouts gleichzeitig starten und nicht hintereinander.
Mein Script sieht im Moment so aus:

Das Problem ist, dass so wie das Script momentan ist, alle Timeouts gleichzeitig starten. Sie sollen aber nacheinander starten. Falls ich die Timeouts hierfür schachtele und bei einem Kreislauf die Minutenzahl auf 0 gestellt wird (damit er diesmal nicht bewässert wird) würden alle folgenden Kreisläufe auch nicht mehr geprüft da das darüberliegende betreffende Timeout gar nicht ausgelöst werden würde.
Hat jemand eine gute Idee, wie ich dieses Problem lösen könnte? Ich hoffe, ich konnte mein Problem halbwegs verständlich beschrieben.
Vielen Dank für jede Hilfe.
-
Addiere doch die Zeiten!
Du arbeitest doch sowieso mit "Variablen"Wow, danke für die superschnelle Antwort.
Darüber habe ich auch nachgedacht. Allerdings habe ich dann noch immer das Problem mit den Timeouts der einzelnen Kreisläufe, die geschachtelt sein müssen damit sie nacheinander ausgeführt werden. Dazu kommt noch, dass jedes mal noch geprüft werden muß, ob die Minutenzahl größer als 0 ist.
Oder verstehe ich da ganz grundsätzlich etwas falsch?
-
Addiere doch die Zeiten!
Du arbeitest doch sowieso mit "Variablen"Wow, danke für die superschnelle Antwort.
Darüber habe ich auch nachgedacht. Allerdings habe ich dann noch immer das Problem mit den Timeouts der einzelnen Kreisläufe, die geschachtelt sein müssen damit sie nacheinander ausgeführt werden. Dazu kommt noch, dass jedes mal noch geprüft werden muß, ob die Minutenzahl größer als 0 ist.
Oder verstehe ich da ganz grundsätzlich etwas falsch?
@miwu ich meinte
Step1=wert von Vorgarten rundes beet...
Timeout 1 step1 msecStep2=Step1+Wert von alle Rasensprenger
Timeout 2 step2 msecUsw.
Das startet dann doch nacheinander
-
Stimmt, das werde ich mal probieren. Ich habe den Timeout-Block zum Abschalten bei meinem aktuellen Versuch mal aus dem "falls - dann"-Block rausgenommen. Nun wird er zwar jedes Mal ausgeführt, was aber nicht problematisch ist:

Vielleicht funktioniert das Ganze auch so falls ich da nicht wieder einen neuen Denkfehler drin habe.
-
Stimmt, das werde ich mal probieren. Ich habe den Timeout-Block zum Abschalten bei meinem aktuellen Versuch mal aus dem "falls - dann"-Block rausgenommen. Nun wird er zwar jedes Mal ausgeführt, was aber nicht problematisch ist:

Vielleicht funktioniert das Ganze auch so falls ich da nicht wieder einen neuen Denkfehler drin habe.
@miwu warum ineinander?
Dann startet das zweite Timeout ja erst wenn das erste erreicht ist.
Dann brauchst du nichts zu addieren -
Hallo zusammen,
ich versuche gerade, meine Gartenbewässerung zu automatisieren. Die Bewässerung wird durch verschiedene Ventile gesteuert, die den Wasserfluss für die einzelnen Bewässerungszonen öffnen oder schließen. Zusätzlich muß immer die Pumpe eingeschaltet werden, damit überhaupt Wasser fließt. Um das Ganze konfigurierbar zu machen habe ich unter 0_userdata für jeden Kreislauf ein Objekt angelegt, in welchem die Bewässerungsdauer für jeden Kreislauf gespeichert werden kann. Wenn der Wert dieses Objektes größer als 0 ist soll der jeweilige Kreislauf entsprechend der hinterlegten Anzahl der Minuten bewässert werden.
Ich habe angefangen, dafür das folgende Blockly-Script zu schreiben. Problematisch ist, dass hierbei alle Timeouts gleichzeitig starten und nicht hintereinander.
Mein Script sieht im Moment so aus:

Das Problem ist, dass so wie das Script momentan ist, alle Timeouts gleichzeitig starten. Sie sollen aber nacheinander starten. Falls ich die Timeouts hierfür schachtele und bei einem Kreislauf die Minutenzahl auf 0 gestellt wird (damit er diesmal nicht bewässert wird) würden alle folgenden Kreisläufe auch nicht mehr geprüft da das darüberliegende betreffende Timeout gar nicht ausgelöst werden würde.
Hat jemand eine gute Idee, wie ich dieses Problem lösen könnte? Ich hoffe, ich konnte mein Problem halbwegs verständlich beschrieben.
Vielen Dank für jede Hilfe.
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
