NEWS
Blockly Frage Schleife
-
Moin,
kann mir jemand erklären warum ich mir hiermit den iobroker abschieße?
Ist erstmal nur ein Test, der ausgelöste Datenpunkt ist ein Bewegungsmelder. Bei setzen auf "true" gehen die Hue-Lampen auf 20%
Ich würde jetzt gerne bei nichttriggern jede Sekunde den Level um einen % verringern. Mein Blockly sieht so aus und schießt mir den iobroker ab.
Any Ideas?
Gruß
Matze
3514_iobroker.png -
Ich bin jetzt nicht der Profi, aber ich glaube, dass deine Wiederholung mit die "falls"-Klammer gehört, unter der eigentlichen Aktion. Hst du das schon mal probiert?
Enrico
-
Hi Enrico,
nein, dass klappt auch nicht. Die Frage ist, wie muss das aussehen?
Ich mach jetzt erstmal ein Backup, der Raspy war nach dem letzten Kill ein wenig beleidigt.
Gruß
Matze
-
Hallo Matzebhv
Dein Trigger löst bei "Aktualisierung" aus.
Also nicht nur bei Änderung von "wahr" auf "unwahr".
Aktoren aktualisieren häufiger ihren Zustand.
Keine Ahnung wie häufig Deiner das macht.
Aber jedesmal wird dann Deine Schleife ausgeführt.
Die Schleife startet jedesmal einen "Timer" von 1 Sek.
Im Bild kann man leider nicht sehen ob "löschen falls läuft" aktiviert ist.
Wenn nicht dann solltest Du das tun!!!
So ein Script läuft schnell, sehr schnell!
Da ist 1 Sek. schon eine kleine Ewigkeit.
Jetzt ist ioBroker kein Echtzeitsystem.
Kommunikation mit den Aktoren dauert.
Deine Schleife kann mehrere zigtausenmal ausgeführt werden.
Und das JEDESMAL wenn Dein Trigger "Aktualisiert" wird.
Und wenn der Timer dann nicht gestoppt wird, sind zigtausend Timer aktiv!
Da bricht jedes System zusammen.
Wie man jetzt am besten triggert hängt von Deinem BM ab.
Wenn Deiner immer nur "true" liefert wird es komplizierter.
Aber erstmal das Script NICHT aktivieren!!!!
Grüße
-
So kann ich schonmal runterzählen (natürlich nur dann, wenn meine Testvariable auf 20 steht):
Das "stop timeout" ist drin, weil die Rechnung ja immer weiter läuft, auch wenn der kleinste Wert (bei mir 0) errreicht war. Ich hatte vorher auch mir dem Schleifenbaustein probiert, da ist der JS-Adapter abgestürzt. Vielleicht hilft dir mein Beispiel weiter.
Enrico
-
So kann ich schonmal runterzählen (natürlich nur dann, wenn meine Testvariable auf 20 steht):
Das "stop timeout" ist drin, weil die Rechnung ja immer weiter läuft, auch wenn der kleinste Wert (bei mir 0) errreicht war. Ich hatte vorher auch mir dem Schleifenbaustein probiert, da ist der JS-Adapter abgestürzt. Vielleicht hilft dir mein Beispiel weiter.
Enrico `
Auch ganz gefährlich!Schleifen mit Timern sind brandgefährlich.
Soetwas IMMER in einer zusätzlichen Javascript Instanz testen.
Die kann man stoppen wenn etwas schief läuft.
Vielleicht finde ich morgen etwas Zeit mir etwas auszudenken.
Grüße
-
Auch ganz gefährlich!
Schleifen mit Timern sind brandgefährlich. `
Auch wenn das, wie von dir beschrieben, in relativ großen Abständen
@rantanplan:Da ist 1 Sek. schon eine kleine Ewigkeit. ` passiert
Edit: Kann ich mir jetzt auch selbst beantworten: Ja auch dann, hab grad ne lange Liste Fehlermeldungen gehabt, wegen JS-Adapter Absturz und Neustart! Also meine Beispiele bitte <u>nicht</u> ausprobieren! :oops:
Enrico