NEWS
Blockly Script stoppen/beenden beim erneuten ausführen
-
Hallo,
danke, aber Timeout funktioniert nicht zum abbrechen des Scriptes.
Man kann zwar den Timeout abbrechen, aber das Script läuft trotzdem weiter.
Ich bräuchte eine Lösung wo man wirklich das Script stoppen bzw. abbrechen kann, so das es nicht mehr weiterläuft. -
@nik82 sagte in Blockly Script stoppen/beenden beim erneuten ausführen:
Hallo,
danke, aber Timeout funktioniert nicht zum abbrechen des Scriptes.
Man kann zwar den Timeout abbrechen, aber das Script läuft trotzdem weiter.
Ich bräuchte eine Lösung wo man wirklich das Script stoppen bzw. abbrechen kann, so das es nicht mehr weiterläuft.Vielleicht zeigst Du uns einfach mal dein Script, ansonsten macht es wenig Sinn.
-
setze einen state beim erstmaligen auslösen und diesen fragst du bei erneutem skript start ab. so kannst du steuern was passieren soll wenn es bereits getriggert ist
-
@Adnim
Ja, das ist schonmal gut, so habe ich das momentan auch drin, so wie beim entprellen einer Taste:https://forum.iobroker.net/post/162760
Aber ich kann damit das Script nicht stoppen, das Script wird zwar nicht doppelt ausgeführt, aber ich möchte ja das das Script beim erneuten drücken der Taste stoppt und von vorne beginnt.
Also müsste es wirklich einen Abbruch/Stop geben.@skokarl
Das bringt nichts, das Script funktioniert ja einwandfrei und es geht ja eigentlich um eine allgemeine Frage:
"Wie kann ich ein Script abbrechen und von vorne beginnen wenn eine Taste gedrückt wird". -
doch das müsste auch funzen.
wenn der state "bereits ausgeführt"=true und der Trigger feuert erneut, dann stop timeouts und danach erneut die timeouts setzten. Würde dann noch in den Timeout das zurücksetzten des States "bereits ausgeführt" mitreinehmen, zack läuft oder?
Also prinzipiel wenn der trigger kommt läuft das skript würde ja sonst keinen sinn ergeben. einen Abbruch macht ja auch kein sinn da die Aktionen ja eigentlich direkt erledigt sind, das einzige was du stoppen kannst sind halt die timeouts->ansonsten musst du Logik einbauen die den Trigger ins leere laufen lassen...
hau einfach mal dein skript rein das macht es einfacher...
-
Ok, hier das Programm, nicht wundern, ich hab viele Telegrams drin, das ich es testen kann, also den Sinn jetzt erstmal nicht so genau nehmen.
Habe den State jetzt noch nicht eingefügt.
Aber es ist so das wenn ich einen Timeout stoppe, dass die Aktionen im Timeout noch ausgeführt werden.
Das heißt in meinem Beispiel, stoppe ich Timeout10 (das ich testweise über das komplette Programm gelegt habe), läuft das Script trotzdem noch bis zum Ende.Aber du hast recht, ich müsste quasi am Anfang des Programmes einfach komplett alle Timeouts stoppen,
also quasi wenn "bereits ausgeführt"=true, dann stoppe Timeout1, Timeout2, Timeout3 usw, dass sollte klappen denke ich oder? -
ohh eine whirlpool steuerung
ja genau so meinte ich das alle stoppen und dann neu loslegen. Wenn Sie gestoppt sind sollten die Aktionen darin auch nicht mehr losgehen
-
Das probiere ich mal, ich denke das ist die Lösung.
Vielen Dank für die Hilfe!
-
Ich will auch nen Whirlpool
-
Ist nur ne Whirlpoolbadewanne