NEWS
Optimierung von Blockly Scripts
-
moin gemeinde,
ich habe in einem script mehrere schreibbefehle.
ich bin überzeugt, das läßt sich eleganter lösen.
danke im voraus
-
@medoc sagte: ich bin überzeugt, das läßt sich eleganter lösen.
Ja, verwende Variablen - auch für Werte, die mehr als einmal verwendet werden. Zum Schluss:
-
@paul53
danke schon mal, aber ich verstehe gerade nur bahnhof.
könnten sie mir bitte das mal komplett zeigen?
wie variablen angelegt werden weis ich.dreimal nachgedacht und ich glaube ich habs begriffen
-
@paul53
da es sich um reine schreibbefehle handelt, klappt das mit den variabelen nicht. ich konvertiere ja nur die ausgabe eines datenpunktes ins deutsche ohne irgendwelche befehle auszuführen.dennoch hast du mir geholfen.
-
@medoc Ist der Datentyp von "An/Aus" (erste Abfrage) ein Boolean? Dann brauchst Du nicht "= wahr",
sondern kannst "Falls Nicht Wert von An/Aus"
Und wie und wann wird in den DP "action" geschrieben? Warum dort nicht gleich die Werte
"Stop", "Läuft", usw.?
Dann könntest Du eine einfache Zuweisung machen statt der vielen "Falls":
aktualisiere Status 1 mit Wert von action -
-
-
@simplyclever
zu 1. nein, kein Boolean.
zu 2. die werte kommen so von einem timer, daran kann ich nichst ändern -
@codierknecht
genau soetwas habe ich gesucht, ich werde es testen -
@medoc
Die Funktionsweise ist eigentlich die Gleiche wie bei @paul53 .
Es ist lediglich etwas kompakter formuliert.Ich benutze Blockly mittlerweile nur noch für Prototypen.
Wenn's läuft wie gewünscht, nehme ich mir den JS-Code und packe den in das endgültige Script.
Das ist dann nochmal etwas kompakter:var wert; var action = getState("ID auswählen").val; switch (action) { case 'stop': wert = 'Stop'; break; case 'pause': wert = 'Pause'; break; case 'end': wert = 'Fertig'; break; } setState("Object ID", wert, true);
-
@medoc Ich komme zwar aus der NodeRed Ecke - aber nachdem Blockly nun schon mal JSONATA anbietet, ist es traurig wie wenig es genutzt wird.
Hier das Arbeiten mit einer Übersetzungstabelle als Objekt.
[ { "alt": "stop", "neu": "Stop"}, { "alt": "pause", "neu": "Pause"}, { "alt": "end", "neu": "Fertig"} ]
Schaut zwar im Blockly hässlich aus, einen JSONATA Ausdruck mit Variablen zu konstruieren - aber ist halt das Tool.
-
@mickym sagte: traurig wie wenig es genutzt wird.
Das Problem ist auch die mangelhafte Unterstützung von Objekten, die man sich erst als JSON basteln und dann wandeln muss.
-
@Codierknecht
funktioniert tadellos.
bei weiteren fragen - und die werden kommen - melde ich mich.