Keine historischen Daten über Influx

Hi,

Ich schreibe Daten vom EMS nach InfluxDB - was auch funktioniert. Nur bei der Anzeige der Historie erscheint im Log immer eine Fehlermeldung

[ctrlApiWebsocket0] JSON-RPC Error Response "JSON [timezone:-3600] is not a String" for Request....

Ich bin nicht sicher an welcher Stelle ich suchen muss.

Gruß
Klinki

Hallo,

ich denke das ist ein Versionsproblem. Das UI ist möglicherweise nicht geupdated worden, denn mit dem neuesten develop-stand werden für die Abweichung von der UTC- Zeitzone (timezoneoffset) keine Sekunden vom UI mehr mitgeschickt.

Gruß
Lukas

1 Like

Hallo Lukas,

Danke für den Tipp!

UI gestern aktualisiert. Der Fehler besteht aber noch.
Ich habe OpenEMS mal in eine andere InfluxDB schreiben lassen. Dann funktioniert es. Es liegt also an meiner Influx-Installation. Allerdings ist mir nich klar was man falsch machen kann wenn openEMS doch in die Datenbank schreiben kann. Version lokal ist 1.8.10; im funkionierenden System 1.8.3.
Ich könnte natürlich downgraden - wüsste aber dennoch gerne wo das Problem liegt.
Die Thematik ist mir aktuell nicht sonderlich wichtig. Die Auswertung mache ich mit Grafana.

Gruß,
Klinki

Hallo Klinki,

genau wie Lukas beschrieben hat, wurde die Angabe der Zeitzone und die Auflösung (Resolution) über die jeweils aggregiert wird, als Integer vom UI an Edge/Backend übertragen. Mit dem aktuellen develop-Stand wurde das geändert. Wenn aber die Versionen von UI und Edge/Backend nicht zusammenpassen, kommt es zu dem von dir geschilderten Fehler. Das kann oft schon daran liegen, dass das UI noch im Browser-Cache war - dann hilft ein String+F5 um den Cache der Seite zu aktualisieren.

Zwischenzeitlich haben wir aber eine Fallback-Lösung eingebaut, die die alte und die neue Variante erlauben: Add fallback for Resolution and Timezone for older UI versions

Gruß,
Stefan

Hi Stefan,

Nach dem letzten Update ist dieser Fehler weg. Ich bekomme leider immer noch keine hist. Daten. Es werden die Fehlermeldung:

30.3.2022, 14:16:42
WARN
io.openems.common.websocket.OnRequestHandler
[ctrlApiWebsocket0] JSON-RPC Error Response "panic: runtime error: invalid memory address or nil pointer dereference" for Request {"method":"edgeRpc","params":{"edgeId":"0","payload":{"method":"queryHistoricTimeseriesData","params":{"timezone":"Europe/Berlin","fromDate":"2022-03-30","toDate":"2022-03-30","channels":["_sum/EssSoc","_sum/EssActivePower","_sum/GridActivePower","_sum/ProductionActivePower","_sum/ProductionDcActualPower","_sum/ConsumptionActivePower"],"resolution":{"value":5,"unit":"Minutes"}}}}}
30.3.2022, 14:16:42
ERROR
io.openems.shared.influxdb.InfluxConnector
InfluxDB query runtime error. Query: from(bucket:"ems") |> range(start:2022-03-29T21:55:00.000000000Z, stop:2022-03-30T22:00:00.000000000Z) |> filter(fn: (r) => r["_measurement"] == "data") |> filter(fn: (r) => (r["_field"] == "_sum/ConsumptionActivePower" or r["_field"] == "_sum/EssActivePower" or r["_field"] == "_sum/EssSoc" or r["_field"] == "_sum/GridActivePower" or r["_field"] == "_sum/ProductionActivePower" or r["_field"] == "_sum/ProductionDcActualPower")) |> aggregateWindow(every:5m, fn:mean), Error: panic: runtime error: invalid memory address or nil pointer dereference

geloggt.

Sieht nicht so aus, als wenn dies mit dem anderen Problem zu hatte - macht die Sache aber nich besser.
Der Query sieht ja eigentlich nicht verkehrt aus.

Ich weiß nicht, wo ich noch suchen soll…

Gruß
Klinki

Hallo Klinki,

der Fehler kommt anscheinend direkt von InfluxDB:

Beachte bitte, dass sich in den letzten Tagen die Konfiguration für die InfluxDB-Komponente geändert hat, um auch mit Influx Cloud und InfluxDB 2.0 kompatibel zu sein. Vielleicht ist das das Problem?

Für das nächste Release werde ich dazu eine “Breaking-Change”-Notiz schreiben.

Gruß,
Stefan

Moin Stefan,

Die Änderungen in der Config hab ich gesehen und beachtet. Auch das Device neu angelegt. Aber das Problem bleibt weiterhin bestehen.
Ich gehe auch eher davon aus, dass es an meiner InfluxDB liegt. Mit einer anderen DB-Instanz funktioniert es ja auch.
Es wundert mich, dass ich zwar schreiben kann, aber die Queries besagten Fehler produzieren.
Für Die Auswertung nutzte ich Grafana, es wäre aber praktisch die hist. Daten über OpenEMS auf einen Klick zu sehen.
Leider kann ich auch nicht auf Influx 2 updaten. Mein Raspi hat ein 32Bit-System.

Werde mal weiterforschen…

Gruß
klinki

Moin nochmal,

Ich habe es geschafft InfluxDB v2 zu installieren. Ging nur per Hand, da noch nicht in den offiziellen Repos von Raspbian Bullseye.
Die Änderung auf ein 64Bit-System war tatsächlich ziemlich einfach. https://www.bastianoso.de/tipps-tricks/raspberry-pi/raspberry-pi-os-auf-64-bit-umstellen.html
Aber jetzt läuft es!

Danke für die Tipps.

Gruß
klinki

1 Like

Ich bin zusätzlich über ein weiteren Punkt gestolpert. Siehe PR.

Ich habe bei mir auf dem Raspberry auch die InfluxDB 1.x installiert und openEMS schreibt da rein. Die daten kann ich auch mit Grafana visualisieren Im OpenEMS UI werden allerdings keine historischen Daten angezeigt. Im Log taucht kein Fehler auf nur die Diagramme sind leer! :face_exhaling: