NEWS
Blockly bildet Schleife
-
Hallo,
Es kommt 1-2 mal im Jahr vor das dieses Blockly eine Schleife bildet und alle Millisekunden von false auf true schaltet und alles eskaliert.
Diese Art von Blockly habe ich sehr oft und die Schleife passiert nur bei diesem. Der DP Licht Treppe wird von zwei Bewegungsmelder gesteuert die zufällig auch fast zeitgleich auslösen könnten. Kann es dadurch die besagte Schleife geben, bzw. kann ich das irgendwie komplett verhindern?
-
@saeft_2003
Du könntest noch den "Ursprung" auswerten, damit das Script sich nicht selbst triggert. -
@codierknecht Macht es eigentlich einen Unterschied, ob man die beiden Trigger-Blöcke aneinander dockt, oder sie separat hält?
-
@martinp Nein. Guck doch einfach den generierten Code an
-
@haus-automatisierung said in Blockly bildet Schleife:
@martinp Nein. Guck doch einfach den generierten Code an
Da Brett vor meinem Kopf ist gerade auf meine Zehen gefallen - aua
EDIT
Die Reihenfolge der Funktionen ändert sich.
Dockt man Trigger-Blöcke aneinander, werden die Javascript-Funktionen auch hintereinander gehängt.
Bei freistehenden Blöcken wird wohl von oben nach unten das Blockly Board abgearbeitet und in Javascript umgewandelt... -
@codierknecht sagte in Blockly bildet Schleife:
@saeft_2003
Du könntest noch den "Ursprung" auswerten, damit das Script sich nicht selbst triggert.Wie genau macht man das habe ich noch nie benutzt?
-
EDIT IST QUATSCH, bitte warten
So, habs gefunden
"Ursprung" kann man auch als Debug-Meldung schicken lassen, um herauszufinden, was da überhaupt an Varianten bei den verschiedenen Varianten der Auslösung der Trigger kommen ...
-
Alles klar danke probiere ich aus.
-
@martinp sagte in Blockly bildet Schleife:
Die Reihenfolge der Funktionen ändert sich.
Dockt man Trigger-Blöcke aneinander, werden die Javascript-Funktionen auch hintereinander gehängt.
Bei freistehenden Blöcken wird wohl von oben nach unten das Blockly Board abgearbeitet und in Javascript umgewandelt...Was aber völlig unerheblich ist.
-
@codierknecht Könnte etwas an der Reihenfolge ändern, in der z.B. Trigger abgearbeitet werden... Weiß aber nicht, wie da die internen Strukturen aufgebaut sind, die die on(...) Funktionen verwalten...
Wenn zwei Funktionen auf das gleiche Ereignis warten, wird die weiter unten im Quellcode stehende Funktion aufgrund der Position im Quellcode erst nach der weiter oben stehenden Funktion bedient?
-
@martinp sagte in Blockly bildet Schleife:
Wenn zwei Funktionen auf das gleiche Ereignis warten, wird die weiter unten im Quellcode stehende Funktion aufgrund der Position im Quellcode erst nach der weiter oben stehenden Funktion bedient?
Wenn die Reihenfolge wichtig ist, dann gehört die Logik in den gleichen Trigger.
-
@haus-automatisierung Das sowieso - aber ich könnte mir auch bei dem ersten Beispiel oben aus dem Thread vorstellen, dass eine Vertauschung der beiden Blöcke sich irgendwie auswirken könnte ....
-
@codierknecht sagte: Du könntest noch den "Ursprung" auswerten, damit das Script sich nicht selbst triggert.
... oder den Skriptnamen.
Dann können andere Skripte noch ein Licht steuern und beide Lichter schalten gleich.
-
@martinp
Die beiden Trigger im Eröffnungsthread befeuern sich gegenseitig.
Das sieht nach 'ner wunderbaren Endlosschleife aus.Wird "Licht Treppe" geändert, reagiert der Trigger und setzt einen Wert des Schaltaktors.
Der Aktor hat aber einen eigenen Trigger, der dann wiederum "Licht Treppe" schaltet.
So beginnt der Spaß gleich wieder von vorne.In welcher Reihenfolge die beiden Trigger definiert werden, ist dabei völlig Wumpe.
@saeft_2003
Nimm mal das Beispiel von @paul53. Damit sollte dann Ruhe sein. -
Alles klar ich probiere es aus danke für eure Hilfe...