NEWS
zeitgesteuertes Ansteuern von Gartenwasserventilen
-
Tag!
kann mir einer mal erklären, was der Unterschied zwischen folgenden beiden Befehlen ist? Und vor Allem: was bedeutet "löschen falls läuft"?
Ich möchte nacheinander die 24V-Ventile meiner Gartenbewässerung ansteuern (10 Min Ventil 1, dann 10 Min Ventil 2, etc.). Manchmal funktioniert es nicht so richtig, weil ab und zu die Ventile vorzeitig sich wieder ausschalten. Ich vermute, dass die "Verzögerung" etwas damit zu tun hat. Ich muss dazu sagen, dass ich die Bewässerung über das Aktivieren/Deaktivieren des Skripts steuere und nicht über eine Variable. Wenn ich also das Skript abbreche (was oft vorkommen kann), scheinen die Befehle trotze deaktiviertem Skript weiterhin aktiv zu sein, oder?!
Als Lösung könntet Ihr ja evtl. Eure Skripte mal hier posten...
Gruss und Dank!
Puls -
@puls200 sagte: Ventile meiner Gartenbewässerung ansteuern (10 Min Ventil 1, dann 10 Min Ventil 2, etc.)
Wenn alle Ventile gleich lange geöffnet werden sollen, bietet sich eine zyklische Funktion an:
Die Datenpunkt-IDs der Ventile sind im Array ids abgelegt.
@puls200 sagte in zeitgesteuertes Ansteuern von Gartenwasserventilen:
die Bewässerung über das Aktivieren/Deaktivieren des Skripts steuere
Das sollte man vermeiden!
-
@paul53 Ich habe mir schon mal sagen lassen, Befehle nicht über das Aktivieren/Deaktivieren der Skripte zu steuern. Aber bisher wurden mir keine Argumente geliefert... Warum lieber über eine Variable anstatt über die Skripte selbst? Hat jetzt nichts mit meiner ursprünglichen Frage zu tun, aber ich frage trotzdem...
Dein Blockly-Script schaue ich mir jetzt an...
-
@puls200 sagte: Warum lieber über eine Variable anstatt über die Skripte selbst?
Ein Skriptstart benötigt einige Ressourcen (CPU-Last).
-
@puls200 sagte in zeitgesteuertes Ansteuern von Gartenwasserventilen:
was bedeutet "löschen falls läuft"?
Am Ende wird bei beiden ein Timer gestartet, welcher die Logik nach Ablauf der Zeit ausführt. Löschen falls läuft würde einen eventuell existierenden Timer löschen, falls die Logik 2x ausgeführt wird. Also wie ein „stop timeout“ vor dem zweiten Beispiel
Wichtig: Die restliche Logik wartet nicht auf die Ausführung! Alles, was danach kommt, wird sofort ausgeführt. Möchtest Du wirklich warten, bevor es weiter geht, musst Du mit dem „Pause“ Baustein arbeiten.
-
@puls200 sagte in zeitgesteuertes Ansteuern von Gartenwasserventilen:
kann mir einer mal erklären, was der Unterschied zwischen folgenden beiden Befehlen ist?
Am Ende: gar nichts. Mit einem Timeout-Baustein hast Du halt die Möglichekeit vor dem „steuere“ noch eine Prüfung oder andere Aktionen durchzuführen.
Der generierte JS-Code sollte in beiden Fällen sehr ähnlich sein.