NEWS
Blockly : Schleife mit Solange oder Bis warum geht die Nicht?
-
Hallo Liebe Gemeinde,
mein erster Post und gleich eine Frage. So isses manchmal. Danke vorab für Hilfe durch euch.
Ich habe eien Variable Die heißt "Volume_Valdown"
Diese ist vom Typ Zahl und hat den Wert 25. Nun habe ich eine Schleife gebaut und egal mit welchem Paramter ich versuche innerhalb des Schleifendurchlaufs diese zu reduzieren, bringt das meinen Raspi zum Absturz.
Also Frage 1: Warum funktioniert unteres Bild nicht?
Frage 2: Was is solange und was ist bis? Solange= While? Bis= until oder for?
Mit einer Zählschleife funtioniert es im übrigen auch nicht.
Diese habe ich beispielhaft auch mal gebaut. Logisch finde ich alles richtig. Aber es geht nicht also muss ich irgendwo was falsch machen. Hüüüülfe!
Gruß
-
Ich habe eien Variable Die heißt "Volume_Valdown"
Diese ist vom Typ Zahl und hat den Wert 25. Nun habe ich eine Schleife gebaut und egal mit welchem Paramter ich versuche innerhalb des Schleifendurchlaufs diese zu reduzieren, bringt das meinen Raspi zum Absturz.
Also Frage 1: Warum funktioniert unteres Bild nicht?
Frage 2: Was is solange und was ist bis? Solange= While? Bis= until oder for?
Mit einer Zählschleife funtioniert es im übrigen auch nicht.
Diese habe ich beispielhaft auch mal gebaut. Logisch finde ich alles richtig. Aber es geht nicht also muss ich irgendwo was falsch machen. Hüüüülfe! `
Hallo SevensinsIn so einem Thread eine Umfrage zu starten finde ich etwas…... :roll:
Meine Antworten
1. Eine Zahl muss man nicht in eine Zahl konvertieren.
2. So eine Schleife läuft rasend schnell.
3. Variablen kann man auch mit "aktualisiere" ändern (ist schneller)
4. Du änderst den Schleifenzähler INNERHALB der Schleife!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5. Deine Umfrage kannst Du Dir jetzt selbst beantworten
Grüße
-
Hallo Danke für die Tipps,
nur leider bringt mich das nicht weiter. Wo soll ich denn die Rechenoperation hin machen?
Die Umfrage war ja mehr als Spaß, denn wirklich ernst gemeint. Habe Sie entfernt, damit es nicht negativ auffällt.
-
Wo soll ich denn die Rechenoperation hin machen? `
Für jede Schleife an sich stehen die richtig.Nur wenn beide aktiv sind, wird's problematisch.
Und wenn Du jetzt noch den Datenpunkt "Volume_VALDOWN" gleichzeitig Triggers, gibt die Rechenleistung schnell auf.
Jetzt geht es etwas tiefer.
JavaScript arbeitet asynchron.
Das heißt ein Folgebefehl kann abgearbeitet werden BEVOR der vorherige Befehl komplett abgearbeitet wurde.
(lässt sich mit Blockly auch leider nicht umgehen)
Grundsätzlich lassen sich ALLE (beschreibbaren) Datenpunkte mit dem Steuere-Baustein ändern.
Um keine Verwirrung zu stiften, empfehle ich dies auch immer bei Blockly-Einsteigern.
Datenpunkte die als Variablen dienen, kann man auch mit "aktualisieren" ändern.
Wenn das schnell hintereinander passieren soll ist "aktualisieren" zu empfehlen.
Noch besser ist, mit einer lokalen Variablen zu arbeiten und nur das Endergebnis in den Datenpunkt zu schreiben.
Beispiele Schleifen
Ausgabe:21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 19 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 18 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 17 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 16 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 15 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 14 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 13 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 12 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 11 21:23:17.308 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 10
Ausgabe:21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 19 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 18 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 17 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 16 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 15 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 14 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 13 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 12 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 11 21:27:21.339 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 10
Ausgabe:21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 20 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 19 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 18 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 17 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 16 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 15 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 14 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 13 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 12 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 11 21:30:47.106 [info] javascript.0 script.js.Test_Forum_0.Schleifen: 10
Grüße
-
Hammer gut erklärt. Ich danke dir für die zeit beim basteln. Das finde ich super. Vielen Dank.
-
Habe es dann gestern per Trial and Error gestern bereits so gelöst….
5183_2018-01-16_18_12_27-iobroker.admin.png -
Für mich sieht das aus als willst du die Lautstärke langsam runterfahren. Tut es das auch oder wirds nach 300ms schlagartig leise?
Dimmen kannst du per Schleife eigentlich nicht, das geht am besten per Intervall
Gesendet von iPhone mit Tapatalk