ich betreibe ein OpenEMS Edge in Kombination mit einem weiteren Edge mit Hilfe des Edge2Edge-Ess.
Dabei ist mir aufgefallen, dass die Channel ESS_ACTIVE_CHARGE_ENERGY und ESS_ACTIVE_DISCHARGE_ENERGY nicht befüllt werden - die sind einfach leer.
Wenn man in die Implementierung des Edge2EdgeEss schaut, sieht man allerdings, dass die Channel eigentlich initialisiert werden sollten, da alle Channels aus dem SymmetricEss übernommen werden.
Bei dem ursprünglichen Edge, wo das ESS eingerichtet ist, werden die Werte korrekt ermittelt und auch in die timedata exportiert.
Das liegt daran, dass die nicht in der Modbus-Tabelle der SymmetricEss sind, also von der Slave-ESS gar nicht bereitgestellt werden. Du müsstest in der Methode SymmetricEss.getModbusSlaveNatureTable(AccessMode accessMode) die Channel hinzufügen. Ich habe das vor längerer Zeit mal für MAX_APPARENT_POWER und CAPACITY gemacht, siehe hier: Two more channels added to Modbus slave table by tsicking · Pull Request #2257 · OpenEMS/openems · GitHub
Die Version mit den neuen Channels muss dann auf beiden Edges laufen, damit es funktioniert.
Beste Grüße,
Thomas
P.S. Solltest du als Datentyp Float64 verwenden, auch diesen PR beachten.
Habe einen Pullrequest gestellt um die Channel zu erweitern.
Parallel habe ich mal deinen Tipp mit CalculateEnergyFromPower getestet - klappt hervorragend! Das werde ich als Übergangslösung bei meinem Edge so installieren.