OpenEMS supports several different charging stations. We are thinking of doing a rework of the EVCS handling within OpenEMS. We would like to introduce a GenericManagedEvcs component (inspired by the GenericEss component)
- different charge station implementations show different behaviour againts managing controllers.
Evcs/ManagedEvcsinterface is overloaded and holds context that is only needed by some controller components.
- Offloading functionality to abstract classes is not easy, because some chargers have to inherit from
AbstractModbusComponent, others don’t (and there is no multiple inheritance in Java).
We would like to introduce new parent generic components which implements new interfaces
GenericEvcs, new interfaces which are created by separating
Generic Interfaces.. contain everything that is independent of the concrete charging station implementation.
Evcs contain only mandatory features.
Below is a architecture diagram of the current situation following a diagram of the proposed new situation:
- more similar behavior between different charging station models
- reproducability - if a usecase works with one charging station model, it is more likely that it will work with a different charging station model as well
- more easier implementation of a concrete charging station model
- no changes to the existing UI and controller components are needed
- better testability of the generic components
- independent from EVCS-API V2 ( PR #2047) and the Evcs power object
- not backwards compatible, needs reconfiguration of productive systems
Please feel free to comment this idea. I am interested in your opinion on that. Are there any showstoppers? Ideas for improvement?