NEWS
[solved] Übernahme einer Liste aus JS-funktion in Blockly?
-
Hallo zusammen,
aus dem Topic https://forum.iobroker.net/topic/15041/gelöst-zugriff-per-script-auf-history-daten würde ich gern die history-daten in einem Blockly weiterverwenden, habe aber keinerlei Idee, wie man dieses JAVA script eine entsprechende Liste für Blockly zurückgeben lässt.
könnte mir da jemand einen Tipp geben? I kann leider kein JS...var end = Date.now(); sendTo('history.0', 'getHistory', { id: 'system.adapter.admin.0.memRss', options: { start: end - 3600000, end: end, aggregate: 'onchange' } }, function (result) { for (var i = 0; i < result.result.length; i++) { console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString()); } });
-
@chris299 sagte: eine entsprechende Liste für Blockly zurückgeben lässt.
Modifizierte Javascript-Funktion
history1h(id)
:var end = Date.now(); sendTo('history.0', 'getHistory', { id: id, options: { start: end - 3600000, end: end, aggregate: 'onchange' } }, function (result) { for (var i = 0; i < result.result.length; i++) { Liste.push(result.result[i].val); } });
-
Habe neulich (auch mit Hilfe von @paul53 )was für eine SQL Abfrage gebaut.
Dort kannst du auch alles aus Blockly übergeben (start, Ende und den DP).Ist jetzt einiges drumherum gebaut......
Aber so sieht man ggf wie man noch mit arbeiten kann.
Die SQL Funktion fragt val und ts ab.
Im Beispiel verwende ich ts aber nicht.Die Funktion kann ich später senden. Am Handy klappt das c&p nicht....
Das Script sendet folgende Telegramm (falls es interessiert):
-
@paul53 vielen Dank für Deine Hilfe! Verstehe ich aber richtig aus dem Post von @David-G (ebenfalls vielen Dank), dass es 1000ms Pause danach braucht, weil es etwas zeit braucht bis die Liste befüllt ist und der Rest des Blockly asynchron weiter läuft?
(Es ging jedenfalls bei mir nur mit einer Pause danach die Werte weiter zu verarbeiten....) -
Ja, so ist es.
Ob es wirklich eine ganze Sekunde braucht ist die andere Sache. Sicher ist sicher. -
@chris299 sagte: es etwas zeit braucht bis die Liste befüllt ist und der Rest des Blockly asynchron weiter läuft?
Ja.