keine aktuellen Messwerte

Ich betreibe OpenEMS Edge & UI über einen Raspberry PI (mit Docker).

Nachdem ich für erste Tests eine Modbus-TCP Bridge hinzugefügt und eine UMD97-Instanz darauf gemapped habe, erhalte ich leider keine aktuellen Messwerte.

Wenn ich z.B. eine 40W Glimmlampe einschalte dauert es über 20 Minuten bis sich der angezeigte Messwert im Dashboard einpendelt (er steigt nur sehr langsam in 1W-Schritten). Beim Ausschalten analog.

Auslesen des Modbus-Registers für die Leistung unmittelbar nach dem Ausschalten der Lampe liefert den korrekten Wert von 0W. Das Problem muss also irgendwo bei OpenEMS liegen. Die Zyclus-Zeit beträgt 3s. Ohne in den Code geschaut zu haben, sehe ich keine weiteren Konfigurationsparameter, die relevant sein könnten.

Hat jemand eine Idee, wo das Problem liegen könnte?

Hallo und herzlich Willkommen,

leider kann dir, ohne den Code des Meters zu haben hier schlecht jemand helfen, da es auch an dem liegen kann.

Kannst du mir mal sagen, was in deinem cycle genau steht?

Grüße!

Hallo Sn0w3y,

Es handelt sich um den unveränderten UMD97-Treiber, der bereits im Code des “pre-builts”-Edge-Release vorhanden ist. Habe diesbezüglich auch mal pq-plus kontaktiert. Sie meinten, dass es daran liegen könnte, dass FC3-Register (anstatt FC4) ausgelesen werden. Werde das mal bei meinem nächsten Termin im Labor mit Modpoll prüfen und dann hier berichten, ob die Werte deckungsgleich sind.

Hier der Pfad zum Code:

PS:

Ich muss ehrlicherweise gestehen, dass es sich hardwareseitig um ein Netzanalysator vom Typ “UMD98” handelt. Die Modbus-Register sind allerdings identisch (eine Tabelle für beide Geräte).

Hallo @cgn-nv ,

wir haben produktive Projekte im Einsatz, bei denen der UMD97 stabil und schnell als Zähler für Netzanschlusspunkt und PV-Anlage läuft. Grundsätzlich sollte das also funktionieren.

Update zur Problematik:

Ich habe mir den Java-Code des Treibers angeschaut und die abgerufenen Registeradressen mit den Herstellerangaben abgeglichen.

Man sieht, dass die 3P-Wirkleistung über das FC3(Holding)-Register mit der Adresse “19026” abgerufen wird. Dies ist laut Herstellerangaben ein Durchschnittswert, sofern es als FC3 abgerufen wird. Wenn man es allerdings als FC4 abruft handelt es sich beim selben Register um einen 200ms-IST-Wert.

Ich denke das ist die Ursache für das untypische Verhalten der Wirkleistung im Dashboard. Mir stellt sich nun die Frage, wie ich das möglichst effizient anpassen kann. Kann ich so eine Änderung bei OpenEMS Edge Apache vornehmen oder muss dafür der Code angepasst werden?
Falls Code angepasst werden muss:
Ersetze ich einfach in Zeile 122 “FC3ReadRegistersTask” durch “FC4ReadInputRegistersTask” und kompiliere das ganze, oder gäbe es da mehr zu beachten?