Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Daten aus SQL Lite auslesen und Mittelwert errechnen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Daten aus SQL Lite auslesen und Mittelwert errechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mariohbs last edited by

      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

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      833
      Online

      31.9k
      Users

      80.1k
      Topics

      1.3m
      Posts

      javascript
      1
      1
      420
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo