PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   HTML, CSS und JavaScript Help! (http://www.selfphp.de/forum/forumdisplay.php?f=24)
-   -   InfluxDB mit JavaScript abfragen (http://www.selfphp.de/forum/showthread.php?t=25713)

NetFritz 04.12.2015 12:11:42

InfluxDB mit JavaScript abfragen
 
Hallo
Ich habe eine InfluxDB die ich mit JavaScript abfragen möchte.
Dazu habe ich eine Abfrage erstellt:
Code:

var data = influxdb.query("select * from pv_db limit 5");
Im Firebug bekomme ich unter Netzwerk-Antwort diese Ausgabe:
Code:

[{"name":"pv_db","columns":["time","sequence_number","forecast"],"points":[[1449255600,4990001,"0"],
[1449254700,5000001,"0"],[1449253800,5010001,"0"],[1449252900,5020001,"0"],[1449252000,5030001,"0"]]
}]

Wie bekomme ich dieses Object angzeigt mit z.B. mein Versuch:
Code:

document.write(JSON.stringify(data, null, "    "));
Ich bräuchte zur Weiterverarbeitung ein Array mit "columns" und "points".
Gruß NetFritz

NetFritz 07.12.2015 18:48:41

AW: InfluxDB mit JavaScript abfragen
 
Hallo
Sarkasmus Modus Ein: Vielen Dank für die rege Mithilfe. Modus Aus:
Hier mal meine Lösung die ich nach vielen Googlen und Testen herausgefunden habe.
Es ist sicher noch verbesserungsfähig, aber es zeigt den Weg der InfluxDB Abfrage mit der Darstellung mit Dygraph.
Gruß NetFritz
Code:

<!doctype html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>InfluxDB u Dygraph</title>
    <script type="text/javascript "src="//cdnjs.cloudflare.com/ajax/libs/dygraph/1.1.1/dygraph-combined.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://get.influxdb.org/influxdb-latest.js"></script>
    <script type="text/javascript">
$(document).ready(function () {
$(function() {
  influxdb = new InfluxDB({
    "host" :"192.168.2.57",
    "port" :"8086",
    "username" :"root",
    "password" :"root",
    "database" :"pv_wetter"
  });
    // select * from pv_db WHERE time > now() - 15d GROUP BY time(1h)
  influxdb.query("select * from pv_db WHERE time > now() - 2d GROUP BY time(5h);",function(points) {
    // console.log("points1=" + typeof points)
    // console.log("points2=" + JSON.stringify(points))
        var data = "";
        data = "Date,PV_forecast W \n";
    points.map(function(p) {
      p["points"].map(function(point) {
          var ret = { x: point.time, y: point.forecast };
                  var date = new Date(point.time);
                  data += (date.getMonth() + 1) + '/' + date.getDate() + '/' +  date.getFullYear() + ' ' +  addZero(date.getHours()) + ':' +  addZero(date.getMinutes()) + ':' +  addZero(date.getSeconds()) + ',' + point.forecast + "\n";
          return ret;
      });
  });
        // console.log(typeof(data));
        // console.log(data);
  g2 = new Dygraph(
    document.getElementById("graphdiv2"),data,
    {gridLineColor:['#FFFFFF'], //['#81664B'],      // Grid Line Farbe
        legend:'always',
        title:'myForecast',
        xlabel: 'Date',
    ylabel: 'Count',
    strokeWidth: 2                                  // Linestaerke
    //colors:['#FF0000'],                          // Linefarbe
    //'sine wave':{strokePattern: [7, 2, 2, 2]}             
        }       
  );       
      function addZero(i) {
        if (i < 10) {
          i = "0" + i;
        }
        return i;
      }
  });       
});
})
</script>
</head>
<body>
  <div id="graphdiv2" style="width:1000px; height:800px;border:2px solid;border-radius:15px;background-color:Gray;"></div>
</body>
</html>



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:42:52 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.