ioBroker.javascript icon indicating copy to clipboard operation
ioBroker.javascript copied to clipboard

Blockly Variablen

Open paul53 opened this issue 4 years ago • 6 comments

Bei Einfügen eines Datenpunkt-Triggers sollten die Variablen value und oldValue unter Variablen verfügbar sein. Das Gleiche sollte für die Timer-Variablen bei Einfügen von "Ausführen timeout" und "Ausführen Intervall" gelten.

paul53 avatar Jul 13 '19 15:07 paul53

Schön wäre auch, wenn sich die Farbe der Variablen von der Farbe der Trigger unterscheiden würde (Variablenfarbe z.B. wie Timer).

paul53 avatar Jul 22 '19 12:07 paul53

EIn paar Bilder werden helfen. Ich verstehe nicht was "Datenpunkt-Triggers" ist. Nicht das ? image

GermanBluefox avatar Aug 24 '19 21:08 GermanBluefox

Ja, das (im Gegensatz zum Schedule-Trigger). Bei Verwendung des Trigger-Blockes werden automatisch die lokalen Variablen value und oldValue erstellt, sind aber in Blockly nicht sichtbar, sondern müssen erst als globale Variablen erstellt werden, damit man sie (lokal) verwenden kann.

paul53 avatar Aug 24 '19 21:08 paul53

Schedule-Trigger

Schedule-Trigger hat kein value/oldValue

GermanBluefox avatar Aug 26 '19 21:08 GermanBluefox

Ich glaub was hier gemeint ist, dass die Variablen value/oldValue die für den Trigger Block gesetzt werden auch ausserhalb des Blocks erreichbar sind?

Hier als Bild was gemeint ist, innerhalb des Triggers kann man die variablen verwenden aber ausserhalb nicht.

Bildschirmfoto 2021-05-20 um 02 19 04

Schaut man sich dazu den Javascript Code an, wird einem sehr schnell bewusst warum...

on({id: 'default', change: "ne"}, async function (obj) {
  var value = obj.state.val;
  var oldValue = obj.oldState.val;
  console.log((obj.state ? obj.state.val : ""));
  console.log((obj.oldState ? obj.oldState.val : ""));
});

(obj.state ? obj.state.val : "");

Es werden zwar die Variablen value und oldValue innerhalb des Blocks erstellt aber zu keiner Zeit verwendet, sondern wird bei der Verwendung vom Trigger Object "Variablen" zu "obj.state..." und "obj.oldState..." gegriffen. Man könnte sich daher die Erstellung der 2 lokalen Variablen sparen um weniger Verwirrung zu generieren!? Oder werden die an einer anderen Stelle verwendet die ich bislang noch nicht gesichtet habe?

TDCroPower avatar May 20 '21 00:05 TDCroPower

Die Timer-Variablen sind seit Version 5.8.10 verfügbar.

paul53 avatar Aug 13 '22 17:08 paul53

Hier ist alles gelöst, oder?

klein0r avatar Jan 11 '24 20:01 klein0r