NEWS
Ausführungsreihenfolge von Blockly- Skripten lässt sich nicht ändern
-
Hallo,
bislang hatte ich mir noch keine Gedanken dazu gemacht, jetzt habe ich aber 8 Rolladenschalter installiert. Die Stellung der Schalter ändert Variablen. Ein Skript schaltet diese Variablen und resettet die Schalter nach 45 Sekunden auf OFF-Stellung.
Jetzt muss ich aber dieses Skript nach hinten schieben um vorher mit einem weiteren Skript die Ursprungsstellung abzufragen.
Langes Gerede:
Ich muss die Ausführungsreihenfolge im Skripte Teil ändern und klicke dazu auf den Doppelpfeil (Neu ordnen). Dann ändere ich die Reihenfolge der Skripte durch ziehen an die neue Ausführungsstelle und klicke auf den Haken. Die Reihenfolge der Skripte ist dann aber wie vorher.
Mache ich was falsch? ioBroker ist aktuell, alle Adapter auch. Ist das ein bug?
Danke
Jo
-
Ich verstehe glaube ich nur Bahnhof….
Kannst du mal mit einem oder mehreren Screenshots zeigen was du meinst?
-
Warum löst du das nicht mit einem großen Script? Da kannst du dann beeinflussen, wann was passiert.
-
Ok, dazu muss ich mich noch schlau machen, kann das erst in einer Stunde…
-
OK, noch ein Versuch mit Bildern:
Also, ich gehe mal naiv davon aus, dass die Blockly-Skripte von oben nach unten abgearbeitet werden. Ich möchte nun z.B., dass das Skript Urlaub Jo direkt nach Dienst Jo ausgeführt werden soll. Ich drücke also auf den Doppelpfeil
und beginne Urlaub nach oben zu ziehen und platziere es hinter Dienst Jo
Nach einem Klick auf den Haken
sieht man aber wieder das Gleiche wie am Anfang.
Es kann nun also ein bug sein, oder ich denke zu naiv. Ich kann leider nicht nachvollziehen, was @Schuko80 mit seinem Skript erreichen kann und wie man so was aufbaut.
Hoffe, dass man das nachvollziehen kann.
Danke
Jo
-
Evtl ist diese Aussage jetzt falsch, aber in meinen Augen werden die Scripte parallel abgearbeitet. Also jedes Script in einem Thread.
Bei JavaScript ist es auf jeden Fall so, das innerhalb eines Scripte nicht ohne weiteres auf Rückmeldung von einem Befehl gewartet wird, sondern die nachfolgenden Befehle weiter abgearbeitet werden.
Wenn es also wichtig ist, das erst ein Script abgearbeitet wird, würde ich aus zwei eins machen und dort eine Abfrage einbauen, so das der zweite Teil im Script erst abgearbeitet wird, wenn der erste Teil ein bestimmtes Ergebniss zurückliefert
Ich sehe gerade, deine Scripte sind alle aktiv, evtl. Kannst du auch am Ende von deinem ersten Script das zweite Script starten, dann müsste es aber standartmässig auf false (nicht ausgeführt) stehen und im Anschluss wieder beendet werden. Das ist halt davon abhängig, was die Scripte überhaupt bezwecken sollen.
-
Ok, jetzt habe ich dann schon mal verstanden, was Du mit einem großen Skript meinst.
Ich würde aber lieber das Ganze in Teilaufgaben zerlegen. Jetzt muss ich dann noch mal ein wenig Hirnschmalz investieren, ob das so überhaupt funktioniert, wie ich mir das vorstelle. Dann bleibt aber noch die Frage, was man mit "Neu ordnen" eigentlich erreichen können soll? Denn irgend wie funktioniert das ja nicht…
Grüße
Jo
-
Also diese Auflistug ist keine Ausführungsreihenfolge.
Alles was in diesem Ordner ist, also alle deine Scripte, werden ausgeführt sobald der im Script definierte Trigger zuschlägt.
-
Alphabetische Anordnung nach Scriptname?
Hat mit der Ausführungsreihenfolge nichts zu tun.
Gruß Ulrich
Gesendet von meinem SM-J700H mit Tapatalk
-
Was soll in Jo denn überhaupt passieren?