NEWS
Grafana Heatmap für Autofahrten
-
Hallo
Ich möchte mit einer Heatmap von Grafana meine Autofahrten darstellen.
Die Koordinaten der Fahren bekomme ich bereits über Homekit.
Dazu muss ich eine Influxdb Datenbank erstellen, die von den Feldern abweicht von dem, was iobroker über den Adapter erzeugt. Derzeit habe ich Influxdb 1.x installiert.
Im Prinzip möchte die Befehl von Influx mit Javascript absetzen.USE geolocation INSERT location,lat=48.2990 lon=11.284317
mit dem "Exec" Befehl funktioniert es leider nicht, weil ich die influxdb in einem anderen Docker laufen lasse als iobroker. Irgendwie kann man das sicherlich über http POST machen.
Ein andere Idee wäre in einem Datenpunkt ein JSON zu persistieren und dann in der Abfrage in Grafana die lat und lon zu extrahieren.
Hat jemand einen Tip für mich?
-
Damit konnte ich in dem gewünschten Format schreiben.
function persist_geo(lon,lat) { var url = 'curl -i -XPOST "http://localhost:8086/write?db=geolocation" --data-binary "location,lat=' + lat + " lon=" + lon + '"' log(url) exec(url, function (error, stdout, stderr) { log(stdout) }); }
Meine Test Heatmap mit 3 Fahrten in München und 2 Fahrten in Hamburg.
-
@marty56 In den aktuellen Versionen vom JavaScript-Adapter kannst Du auch ein httpPost direkt ausführen (ohne Umweg über exec/curl):
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost
Gern mal testen
httpPost('http://localhost:8086/write?db=geolocation', `location,lat=${lat} lon=${lon}`, { timeout: 1000 }, (error, response) => { if (error) { console.error(error); } });
-
@haus-automatisierung sagte in Grafana Heatmap für Autofahrten:
httpPost('http://localhost:8086/write?db=geolocation', `location,lat=${lat} lon=${lon}`, { timeout: 1000 }, (error, response) => { if (error) { console.error(error); } });
Danke für die Rückmeldung.
bekommeReferenceError: httpPost is not defined
Benötige ich da noch irgendein ein require("")?
Update: ich habe noch die stable Version 7.8.0 installiert. Vermutlich geht das erst mit 7.9.0
-
@marty56 Genau, ab 7.9.0
-
Ich hab es mal versucht.
mit der neusten Version gibt es keine Fehlermeldung mehr, aber es wird nichts in die Influxdb geschrieben.
Ich vermute, dass der Parameter "--data-binary" von dem curl Kommando nicht richtig "übersetzt" wurde.