DBLog mittels HTTP Command im JSON Format auslesen

Begonnen von axel.mohnen, 09 Juni 2016, 07:01:24

Vorheriges Thema - Nächstes Thema

axel.mohnen

Hallo Fhem'ler,

ich möchte meine Stromzählerdaten die ich im DBLog (SQLITE) abgespeichert habe mittels HTTP Command im JSON Format auslesen.
Dazu habe ich gedacht könnte ich doch die "GET WEBCHART" Methode aus dem DBLog Modul nutzen.
Mit dem normalen "GET" Befehl funktioniert es, ist aber nicht im JSON Format (z.b.:get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature)

Ich möchte gerne die "History" Table zu einem bestimmten DEVICE auslesen.
Kann mir jemand ein Beispiel geben wie der Befehl aussehen muss? Leider komme ich mit der Hilfe in der FHEM reference nicht weiter.
Im meinem Fall bekomme ich nur ein leeres JSON "Data" tag zurück.

-----------
z.B.:get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e timerange TIMESTAMP day_kwh
-----------

Vielen Dank im Voraus.

Viele Grüsse
Axel

MarcP

#1
Hi,

ich habe den Thread auf der Suche nach einer Lösung für das gleiche Problem gefunden.

Ich habe mir nun eine Javascript-Funktion gebaut, was das für mich macht, eventuell hilft Dir das ja weiter.



function getData(callback) {
  var ret = [];
  var logrep ="logrep"; //DbRep device name
  var sql = encodeURI("select * from current;");
  var cmd = encodeURI("get " + logrep + " dbValue ") + sql;

  fetch('/fhem?cmd=' + cmd)
  .then(response => {
    return response.text();
  })
  .then(data => {
    var parser = new DOMParser();
    var htmlDoc = parser.parseFromString(data, 'text/html');
    var result = htmlDoc.getElementById('content').firstElementChild.innerHTML;
    var lines  = result.split("\n");
    var ret = [];
    lines.forEach(line => {
      var tokens = line.split("|");
      ret.push(tokens);
    });
    callback(ret);
  })
  .catch(err => {
    callback(err);
  })
}

function printme(p) {
  console.log(p);
}




<button type="button" onClick="getData(printme)">go!</button>


VG
Marc
Javascript Charts für FHEM mit Chart.js: https://git.io/JeoJV