NEWS
SQL History Query per Blockly?
-
Hi
gerade etwas theoretisch bei mir, aber evaluiere meine Möglichkeiten die SQL History Datenbank des IOBroker auszulesen für einzelne Datenpunkte, draus ggf. Berechnungen zu erstellen und dies z.B. wieder in neue Datenpunkte zu schreiben...theoretisch.Da ich kein JS und allgemein kaum Programmiererfahrung habe, bin ich recht "steinig" unterwegs und würde mir das Query über einen Visual Builder bauen, bis es das macht was ich mir vorstelle und die Frage ist, ob sich ein Query (Export aus Visual Builder) in ein Blockly einbauen lässt.
Als Kompromiss könnte ich mir noch vorstellen, dass Query in eine sql Datei auf meinem RPI zu speichern und dies dann mittels blockly und execute Befehl/Block auszuführen.
Kann man so machen, wenn man den RPI nicht dabei abschießt oder was sagt ihr dazu?
Thx
-
@Pete0815 Man muß ein kleines Programm schreiben in javascript. Schon den SQL-Adapter installiert, ja wird ja benutzt für die History? Um welche Daten handelt es sich, vielleicht ein Paar Bilder mit den Echtdaten, damit man die Struktur evtl vorbereiten kann.
Als Funktion Javascript
Vielleicht hilft dir dies Beispiel:
S_ON=""; var DEV_BAD = "javascript.0.HAUS.SQL.HEIZUNG."+S_ORT+"_AN"; //console.log("Genutzte Zeit: " + S_TIME + " Genutzter Ort: " + S_ORT); e_ORT = 'SELECT heizung.ON FROM iobroker.heizung WHERE heizung.ZEIT <= ' + '' + S_TIME + ' and heizung.ORT = "' + S_ORT + '" order by heizung.ZEIT DESC LIMIT 1'; sendTo('sql.0', 'query', e_ORT, function (result) { if (result.error) { console.error(result.error); //S_DATA=0; } else { // show result //console.log('Rows: ' + JSON.stringify(result.result)); S_ON = JSON.stringify(result.result); //S_ON = 'Rows: ' + JSON.stringify(result.result); //console.log(S_ON + " Substr: " + S_ON.substr(7,1) ); if (S_ON.substr(7,1) == 1) { setState(DEV_BAD, true); } else { setState(DEV_BAD, false); } console.log(DEV_BAD + ": " + getState(DEV_BAD).val); } });
Hier ist auch so etwas versucht worden:
https://forum.iobroker.net/topic/36557/sql-abfrage-mit-variable -
@MCU
Vielen Dank, das gibt mir schon mal einen guten Eindruck und ich habe "Futter" zum Testen fürs Wochenende. Die SQL Abfrage denke ich dort zu sehen, aber der JS-Teil ist mir halt sehr fremd.Möchte auch erst nochmal mit ein paar Datenbankanbfragen testen, ob das überhaupt möglich/sinnvoll ist. Wenn ich mir z.B. für Datenpunkte, der alle 3 Sekunden einen Wert in der DB hat, eine Tagesbetrachtung erstelle, werden das ~28000 Werte. Unüberlegte Dinge legen da sicher flott den Raspberry aufs Kreuz.