Fehlende Channel in Influx DB

Hallo zusammen,

Ich habe ein funktionierendes Openems (Backend + Edge ) System mit mehreren Zählern.
Es gibt keinen Netzanschlusszähler daher ist das Setup:

  • Jeder Zähler ist als CONSUMPTION_METERED eingestellt
  • Es gibt einen “Virtual Meter Add”, der alle anderen Zähler als Grid Zähler zusammenfasst.

Nun füge ich im Moment InfluxDB für die Historischen Daten hinzu.
Der Einfachheit halber nutze ich im Moment die gehostete Version (also V2).
Mein Problem ist, dass sämtliche Zählerwerte nicht an InfluxDB übertragen werden (was sie aber sollten, weil die UI ja auch die einzelnen Channels abfragt).
Ich sehe keine Fehlermeldungen oder Ähnliches im OpenEMS Backend Log.

Ich benutze Telegraf lokal, um die (etwas vielen) Felder zu begrenzen, da die gehostete Version nur 200 Spalten unterstützt. Im Moment schließe ich aus:

  fieldexclude = ["_appManager*", "_cycle*", "_meta*", "_host*", "edgewebsocket*", "uiwebsocket*", "_*predictorManager*", "scheduler0"]

Ich wäre über Tipps dankbar, wie ich auch die Zählerwerte reinbekomme oder Ansätze zum debugging.
Nach einer Historien Abfrage bekomme ich den Fehler:

May 29 11:48:13 ems java[23558]: 2024-05-29T11:48:13,608 [socket-7] WARN  [mon.websocket.OnRequestHandler] [Ui.Websocket] JSON-RPC Error "null" for Request {"method":"edgeRpc","params":{"edgeId":"edge0","payload":{"method":"queryHistoricTimeseriesData","params":{"timezone":"Europe/Berlin","fromDate":"2024-05-29","toDate":"2024-05-29","channels":["_sum...

In der InfluxDB kommen sämtliche “_sum/" sowie "meter0/” Werte zuverlässig an.

Hallo @2Stuffy,

ich habe leider keine direkte Lösung parat. Der Fehler wird hier geloggt: openems/io.openems.common/src/io/openems/common/websocket/OnRequestHandler.java at develop · OpenEMS/openems · GitHub

Kannst du an der Stelle einen Stacktrace ausgeben mit t.printStackTrace()?

1 Like

Ich kümmere mich um den StackTrace.
Ich gehe aber stark davon aus, dass der Fehler daher kommt, dass channels abgefragt werden die nicht in der InfluxDB gespeichert werden.
Beispiel:
Der virtuelle Zähler (meter0) setzt sich aus den Zählern “tiefgarage” und “büro” zusammen. Die UI sucht nach den Werten für alle 3 Channels. Wenn ich aber manuell schaue, was in der InfluxDB landet, sind dort nur die Werte für den virtuellen “meter0”.