Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Liste der letzten x SQL Einträge von Datenpunkt

    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

    Liste der letzten x SQL Einträge von Datenpunkt

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

      Hallo,

      Ich würde mir gerne eine HTML Tabelle vom Verlauf einiger Datenpunkte erstellen.

      Dafür würde ich gerne die letzten x Werte mit Uhrzeit aus dem SQL Adapter auslesen.

      In einem anderem Thread hat @liv-in-sky schonmal folgendes gepostst um einen Zeitraum abzufragen:

       
      var end = new Date().getTime();
      getHistory('sql.0', {
       
              id:         'tankerkoenig.0.stations.0.diesel.short',
              start:      end - 49766400000,
              end:        end,
            //  aggregate:  'm4',
              timeout:    2000
          }, function (err, result) {
              if (err) console.error(err);
              if (result) {
                  log(JSON.stringify(result))
                  for (var i = 0; i < result.length; i++) {
                  console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString());
                  }
              }
          });
      

      Evtl ist das etwas worauf man aufbauen kann.

      Wichtig ist für mich nur, dass es eine Liste in Blockly gibt mit den Werten.
      Diese kann ich dann schön in einer Schleife abarbeiten.

      1 Reply Last reply Reply Quote 0
      • B
        Bertman2000 last edited by

        Es geht mit sicherheit eleganter aber eine Lösung wäre z.B.

        WICHTIG: Hier müsstest du noch das SQL-Statement anpassen wie du es brauchst. Dies kannst du mit jeder MySQL-DB nutzen. Dafür brauchst du nicht unbedingt die DB vom IOBroker.

        JavaScript Fuktion mit Ergebnis

            var Werte = [];
            sendTo('sql.0', 'query', 'SELECT ParaName As Name, ParaValue as Wert, ParaUnit as Einheit, LastChange as Zeitstempel FROM IchBinDieTabelle LIMIT 100;', 
            function (result) {
                if (result.error) {
                    console.error(result.error);
                } 
                else {
                    for (var i = 0; i < result.result.length; i++)
                    {
                        var ParaName = "";
                        var ParaWert = "";
                        try{
                            var Zeile = result.result[i];
                            ParaName = Zeile.Name;
                            ParaWert = Zeile.Wert;
                            ParaEinheit = Zeile.Einheit;
                            ParaZeit = Zeile.Zeitstempel
        
                            var Text = ParaName + ' (' + ParaZeit + '): ' +  ParaWert + ParaEinheit;
                            Werte.push(Text);
                            console.log(Text); //diese Zeile ist nur zum testen da (Ausgabe)
                        }
                        catch(error) {
                            console.error(error.message);
                        }
                    }
                }
            });
            return Werte;
        

        Dann weiter...

        8fde766e-5204-4464-8199-1c4f7561c047-grafik.png

        So könntest du auf die schnelle was zusammen zimmern.
        die Pause muss sein, da funktion asyncron läuft.

        Wie gesagt nicht unbedingt elegant aber funktionstüchtig.

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

        Support us

        ioBroker
        Community Adapters
        Donate

        938
        Online

        31.9k
        Users

        80.1k
        Topics

        1.3m
        Posts

        2
        2
        208
        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