NEWS
zählen i von 6 bis 1 geht nicht - gelöst!
-
Hallo Welt - das Blockly
soll eigentlich meinen Leuchten am Gartenweg "rückwärts" aus- bzw. ein-schalten. Jedoch gehen die Leuchten stets von 1 nach 6 an/aus! Was mache ich falsch?Die Verzögerung wars!
-
@wagner Zeig mal bitte den generierten JavaScript Code
-
@wagner In einem ersten Schritt könntest Du Dir das Javascript anschauen, was da generiert wird
wird zu:
for (i = 6; i >= 1; i--) { }
Der Blockly Javascript Generator "weiß" wohl selber dass es "abwärts" geht, und nimmt "--"
EDIT: Das führt zum selben Code:
Da sitzt der Hase im Pfeffer:
Nummer sechs wird als estes durNummer 6 wird zwar als Erster durchlaufen, aber durch die längste Verzögerung als Letzter geschaltet....
3000 * (5-i) wäre die bessere Wahl
-
@wagner sagte: von 1 nach 6 an/aus!
Bei mir (JS 8.7.6) stimmt die Reihenfolge.
-
@wagner sagte in zählen i von 6 bis 1 geht nicht:
gehen die Leuchten stets von 1 nach 6 an/aus! Was mache ich falsch?
Naja 1x3000 ist halt auch der kleinste Wert und somit geht der Kanal mit der 1 als erstes an/aus mit dem Code
Egal wie rum die Schleife läuft
-
- var i;
- console.warn('LampenAus');
- for (i = 6; i >= 1; i--) {
- setStateDelayed(('alias.0.EigeneGeräte.Lichtschalter.GartenWeg.GartenwegPower' + String(i)), { val: false, ack: false }, parseInt((((3000 * i)) || '').toString(), 10), false);
- console.error(i);
- }
-
-
@martinp sagte: 3000 * (5-i) wäre die bessere Wahl
3000 * (6 - i) - keine negativen Werte.
Oder anstelle der variablen Verzögerung eine Pause von 3 s. -
@paul53 mit Pause gehts
-
@paul53 Mit (6-i) "feuert" der erste sofort, mit (7-i) würde der erste mit 1 Sekunde Verzögerung feuern....
War abgelenkt, und habe in die falsche Richtung gedacht
-
@wagner sagte in zählen i von 6 bis 1 geht nicht - gelöst!:
@paul53 mit Pause gehts
Mit pause geht es. Schlecht ist es trotzdem.
Besser so:
Diese Anordnung von Blöcken kannst du in einen Trigger einbauen und musst dich nicht darum kümmern was passiert wenn der innerhalb von weniger als 18 Sekunden 2 mal aufgerufen wird.A.
p.s. da ich dein Objekt LichtAn nicht hab habe ich da einfach ein wahr stehen lassen - die Transferleistung das anzupassen traue ich aber jedem zu.