NEWS

Daten aus SQL Lite auslesen und Mittelwert errechnen



  • Hallo Leute,

    normal mache ich all meine Scripte mit Blockly, da mir Java sowas von gar nicht liegt. Nun habe ich aber eine "Aufgabenstellung", welche sich wohl nur mit Java abbilden lässt. Leider reicht mein Wissen da aber nicht ansatzweise für die Umsetzung.

    Hintergrund ist, dass ich Daten einer Pegelsonde in die SQLLite DB des SQL Adapters logge. Da diese Daten einige Toleranzen haben, würde ich nun gerne die Daten auslesen welche z.B. in den letzten 5min geloggt wurden und darüber einen Mittelwert errechnen.

    Ein bisserl rumgespielt habe ich bereits mit dem Demo aus der Readme vom SQL Adapter aber so wirklich weit bin ich nicht gekommen. Hoffe da mal auf eure Hilfe....

    Das habe ich schon:

    sendTo('sql.0', 'query', 'SELECT id FROM datapoints WHERE name="mqtt.0.Wasserstand.Pegelsonde.Pegel"', function (result) {
        if (result.error) {
            console.error(result.error);
        } else {
            // show result
            console.log('Rows: ' + JSON.stringify(result.result));
            var now = new Date();
            now.setUTCMinutes(-5);
            sendTo('sql.0', 'query', 'SELECT val FROM ts_string WHERE ts >= ' + now.getTime() + ' AND id=' + result.result[0].id, function (result) {
                console.log('Rows: ' + JSON.stringify(result.result));
            });
        }
    });
    

    Die Daten die ich erhalte sehen dann so aus:

    Rows: [{"val":"22962"},{"val":"23002"},{"val":"22673"},{"val":"22980"},{"val":"22983"},{"val":"22981"},{"val":"22658"},{"val":"23042"},{"val":"22999"},{"val":"23003"},{"val":"22668"},{"val":"22973"},{"val":"22980"},{"val":"22986"},{"val":"22970"},{"val":"23025"},{"val":"22995"},{"val":"22707"},{"val":"22984"},{"val":"22984"},{"val":"22683"},{"val":"22982"},{"val":"22710"},{"val":"23015"},{"val":"22684"},{"val":"22701"},{"val":"22697"},{"val":"22830"}]
    

    Also vom Prinzip her sollten dies die Daten der letzten 5min darstellen aber da fängt das Problem schon an. Da nur alle 30sek. ein Eintrag erstellt wird, dürften nur 10 Daten kommen aber es sind deutlich mehr. Grundsätzlich würde es mir reichen bzw. würde ich es sogar besser finden, wenn ich einfach nur die letzten 10 Datensätze auslesen könnte.

    Davon abgesehen habe ich nun keine Idee mehr, wie ich diese Daten nun weiterverarbeiten kann und einen Mittelwert erzeugen kann.

    Danke schon mal für eure Hilfe!!
    Viele Grüße
    Mario


Log in to reply
 

Suggested Topics

1.9k
Online

32.2k
Users

38.9k
Topics

526.7k
Posts