Influx DB Log Datei

Hallo zusammen,
Ich habe eine InfluxDB Datenbank auf meinem Raspberry eingerichtet und die Timedata.InfluxDB Komponente über Apache Felix konfiguriert.

Werden die Daten der InfluxDB in einer lokalen log-Datei gespeichert, die ich auslesen kann?
Oder ist es sinnvoll eine odoo Cloud einzurichten, in der die log-Daten abgespeichert werden?

Wenn ich die die IP-Adresse mit dem Port 8086 aufrufe, bekomme ich den Fehler : “404 page not found”
Gibt es eine andere Möglichkeit, das momentane Logging von Edge auszulesen als “journalctl” in Putty aufzurufen?

Desweiteren bekomme ich folgende Fehlermeldung von Backend:

Jun 25 02:18:53 raspberrypi java[1851]: 2019-06-25 02:18:53,210 [thread-4] ERROR [backend.timedata.influx.Influx] [Timedata.InfluxDB] Unable to write to InfluxDB: partial write: field type conflict: input field “SunriseSunset0/RunFailed” on measurement “data” is type integer, already exists as type boolean dropped=1 for data,edge=0 SunriseSunset0/RunFailed=0i,SunriseSunset0/State=0i,SunriseSunset0/Sunrise=309i,Sunri…

Ist es notwendig für eigens definierte Channels die Kommunkation per Backend zu implementieren?

Beste Grüße
Dominik

Hallo Dominik,

sehr gut, das wäre schon mal das richtige Vorgehen. Es gibt zwei Komponenten, die Live-Daten in die InfluxDB schreiben: eine im Backend und eine im Edge. Du verwendest vermutlich derzeit nur Edge, dann hast du mit odoo usw. nichts zu tun.

Die Timedata.InfluxDB speichert die Werte von allen Channels in der lokalen InfluxDB. Allerdings lässt sich der Port 8086 nicht über den Browser aufrufen. Um die Daten zu visualisieren, benötigst du z. B. Chronograf von InfluxData, dem Hersteller von InfluxDB, oder Grafana, damit arbeiten wir recht gerne.

Wenn dich wirklich die Logs interessieren - also das, was z. B. der DebugLogController ausgibt, dann kannst du die z. B. auch über das UI oder über Apache Felix anschauen. Diese werden allerdings nicht aufgezeichnet.

Der Fehler ist seltsam. Das Problem bei InfluxDB ist, dass der Datentyp eines Feldes (hier “SunriseSunset0/RunFailed”) beim ersten Schreiben festgelegt wird. Danach können nur noch Daten vom gleichen Typ geschrieben werden. Warum das aber einmal falsch geschrieben wurden, müsste man debuggen… das ist auf jeden Fall ein Bug.

Ansonsten musst du für eigene Channels sonst nichts implementieren. Die gesamte Kommunikation ist so generisch, dass das automatisch gehen sollte.

Gruß,
Stefan

Grafana erkennt die InfluxDB Datenbank, es werden aber keine Werte visualisiert.

Mein hauptsächliches Ziel ist es die Werte der Channels( SOC usw.) bzw. die Ausgaben des Loggers für spätere Auswertungen in einer Datei( am besten Excel) zu speichern.
Ist dies über InfluxDB und Grafana möglich?

Beste Grüße
Dominik Bauer

Ja, das wäre darüber genau so möglich. Die Daten lassen sich dann in Grafana schön visualisieren und/oder bei Bedarf in Excel exportieren. Wenn ein Influx-Timedata-Service konfiguriert ist, können die Werte sogar über das OpenEMS UI in Excel exportiert werden.

Als erstes solltest du herausfinden, ob die Daten vom OpenEMS Edge in die InfluxDB geschrieben werden. Auf einem Debian-System schaust du dir die Logs von InfluxDB so an:

journalctl -lfu influxdb

und solltest dann z. B. so eine Ausgabe sehen

Aug 16 08:54:24 fems888 influxd[1393]: [httpd] 127.0.0.1 - root [16/Aug/2019:08:54:24 +0000] "POST /write?db=db&rp=autogen&precision=n&consistency=one HTTP/1.1" 204 0 "-" "okhttp/3.13.1" 7249c55a-c003-11e9-832f-c8df84e15972 355285

Wenn du das bekommst (also POST mit Status 204), dann werden die Daten geschrieben. Dann wäre der nächste Schritt, dass Grafana evtl. noch falsch konfiguriert ist.

Gruß,
Stefan

Hallo Stefan,

Ich bekomme folgende Ausgabe:

Aug 20 13:25:55 raspberrypi influxd[28466]: [httpd] 192.168.0.XX - root [20/Aug/2019:13:25:55 +0200] “POST /write?db=db&rp=autogen&precision=n&consistency=one HTTP/1.1” 204 0 “-” “okhttp/3.13.1” 46b129f7-c33d-11e9-b73f-b827eb9cd1b2 43244

Zusätzlich habe ich noch telegraf installiert:
Aug 20 14:07:20 raspberrypi influxd[585]: [httpd] 127.0.0.1 - root [20/Aug/2019:14:07:20 +0200] “POST /write?db=db HTTP/1.1” 204 0 “-” “Telegraf/1.11.0” 0f7279db-c343-11e9-8161-b827eb9cd1b2 141266

In Telegraf ist folgende Fehlermeldung zu sehen:

Aug 20 13:40:05 raspberrypi telegraf[574]: 2019-08-20T11:40:05Z E! [agent] Error writing to output [influxdb]: could not write any address

In Grafana wird nach der Konfiguration “Data Source is working” ausgegeben.

Leider werden nach erstellen eines Dashboards keine Daten übertragen.

Beste Grüße
Dominik Bauer

Telegraf ist ja erstmal unabhängig von OpenEMS + InfluxDB + Grafana. Die Logs von InfluxDB sehen soweit gut aus. Demnach werden die Daten in die Datenbank geschrieben.

Die Data Source scheint ja schon zu funktioniert - hier aber nochmal zur Sicherheit ein Beispiel:

Und dann kannst du ein neues Dashboard erstellen - hier auch ein funktionierendes Beispiel:

In den InfluxDB-Logs sieht man dann auch die Abfragen von Grafana:

Aug 21 07:44:28 fems888 influxd[1269]: ts=2019-08-21T07:44:28.715009Z lvl=info msg="Executing query" log_id=0HNUtjb0000 service=query query="SELECT mean(\"_sum/GridActivePower\") FROM db.autogen.data WHERE time >= now() - 3h GROUP BY time(5s)"
Aug 21 07:44:29 fems888 influxd[1269]: [httpd] 127.0.0.1, 127.0.0.1,::1 - - [21/Aug/2019:07:44:28 +0000] "GET /query?db=db&epoch=ms&q=SELECT+mean%28%22_sum%2FGridActivePower%22%29+FROM+%22data%22+WHERE+time+%3E%3D+now%28%29+-+3h+GROUP+BY+time%285s%29+fill%28null%29 HTTP/1.1" 200 11150 "-" "Grafana/5.4.3" 815c4231-c3e7-11e9-be7b-c8df84e15972 603206

Ich hoffe damit kommst du weiter.
Gruß,
Stefan

Funktioniert nun alles wie erwünscht.

Vielen Dank
Grüße

Ich würde gerne die Zustände der Digitalausgänge graphisch darstellen.
Der Channel io0/DigitalInputM1C1 beispielsweise liefert aber keine Daten.
Liegt das daran, dass Grafana die boolean’schen Werte (true/false) nicht in Zahlenwerte umrechnen kann?

Grüße

Ja, genau das ist das Problem - deshalb haben wir das vor zwei Wochen so abgeändert, dass stattdessen “1” oder “0” in die Datenbank geschrieben werden. Damit funktioniert die Darstellung in Grafana:

Hallo Stefan,
Ich hänge meine Frage einfach hier an, gehört zum gleichen Thema:
Wie kann ich mit Grafana einen OpenEMS bzw. FEMS aus der Ferne auslesen, sprich was ist die richtige URL (anstatt localhost:8086 oder 192.168…) oder der entsprechende “Umweg” dafür?
danke