NEWS
[gelöst] Skript - JS und SQL Abfrage - Erg undifined
-
@paul53 ah ok, also es wartet nicht ab... ok, wäre es besser wenn ich nicht blockly nehme dann?
Ich habs mal versucht so umzusetzen... Ergebnis ist nun aber "leer"...

@michl75
Wie man mit dem Blockly-sendTo eine query-Abfrage macht, weiß ich auch nicht. Das Ergebnis steht jedenfalls nicht in Wert, sondern in einer Variable result.Versuche es mal so:

Funktion abfrage(t):
let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")"; sendTo('sql.0', 'query', _sql, auswertung); -
@michl75
Wie man mit dem Blockly-sendTo eine query-Abfrage macht, weiß ich auch nicht. Das Ergebnis steht jedenfalls nicht in Wert, sondern in einer Variable result.Versuche es mal so:

Funktion abfrage(t):
let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")"; sendTo('sql.0', 'query', _sql, auswertung);@paul53 Erstmal danke für deine Mühe... Habe erst mal meins verworfen und NEU wie deins aufgebaut....

Der Code dazu... genau so...
let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")"; sendTo('sql.0', 'query', _sql, auswertung); {1}und Ergebnis:

Hätte ich nur mehr Ahnung davon...
EDIT .. das Doppelte {1} ... keine ahnugn woher das kommt, steht aber nicht so in meinem Code...
-
@paul53 Erstmal danke für deine Mühe... Habe erst mal meins verworfen und NEU wie deins aufgebaut....

Der Code dazu... genau so...
let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")"; sendTo('sql.0', 'query', _sql, auswertung); {1}und Ergebnis:

Hätte ich nur mehr Ahnung davon...
EDIT .. das Doppelte {1} ... keine ahnugn woher das kommt, steht aber nicht so in meinem Code...
-
@michl75 sagte: Hätte ich nur mehr Ahnung davon...
Ich hatte anfangs noch einen Fehler drin, den ich nachträglich korrigiert habe: Die Funktion auswertung(result) muss den Parameter result erhalten.

-
@paul53 ok moment ich teste
EDIT: Es tut sich was auch wenn noch kein Ergebnis... aber ... so sieht die Ausgabe nun aus:

...und so versucht er es auch mit setState in die Variable zu schreiben - klar bleibt 0 ist ja text und keine Zahl
@michl75 sagte:
so sieht die Ausgabe nun aus:
Das sieht schon gut aus. Mach mal weiter:

Nun müsste noch obj['AVG(val)'] ermittelt werden, was wohl so wegen der Klammern in Blockly nicht funktioniert.
Dann besser gleich eine JS-Funktion mit Ergebnis:
return res.result[0]['AVG(val)'];
-
@michl75 sagte:
so sieht die Ausgabe nun aus:
Das sieht schon gut aus. Mach mal weiter:

Nun müsste noch obj['AVG(val)'] ermittelt werden, was wohl so wegen der Klammern in Blockly nicht funktioniert.
Dann besser gleich eine JS-Funktion mit Ergebnis:
return res.result[0]['AVG(val)'];
-
@paul53 sieht nun so aus...

glaub wir kommen dem ergebnis näher :)
das AVG muss noch weg iwie -
@paul53 sieht nun so aus...

glaub wir kommen dem ergebnis näher :)
das AVG muss noch weg iwie@michl75
Man kann die Aufschlüsselung des Abfrageergebnisses auch gleich in die Funktion abfrage(t) packen:let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")"; sendTo('sql.0', 'query', _sql, function(res) { if(!res.error) auswertung(res.result[0]['AVG(val)']); });
-
@michl75
Man kann die Aufschlüsselung des Abfrageergebnisses auch gleich in die Funktion abfrage(t) packen:let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")"; sendTo('sql.0', 'query', _sql, function(res) { if(!res.error) auswertung(res.result[0]['AVG(val)']); });
-
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

