Good afternoon, could you help me with a demo or simulation of the OCPP protocol I am new to this, what you want is to simulate how the charging is done with the protocol, but when adding it, the charging station for electric cars with its controller shows an error

1 Like


the OpenEMS implementation of the OCPP protocol relies on the following library:

The driver you found (EVCS OCPP IES KeyWatt) is explicitely optimized for charging stations by IES - it might not be suitable for a simulation environment:

How does your test-setup look like?
Do you have access to actual OCPP charging station hardware or are you trying a pure software simulation?
Which error does ‘the Controller’ show?


A pure simulation is carried out, because the hardware is not available, it could be done this way or you will have to use the hardware

The EVCS OCPP IES KeyWatt Component starts an OCPP-Server and waits for a OCPP-Client - real hardware or simulator - to connect. How are you simulating the OCPP Client?

What I am trying to do is first a simulation with OCPP, the truth has been working and recently reviewing the OCPP client I was not very clear about what I want is to integrate a different EVCS that I have to do that as I should do it

Hi Raiza,

All the chargers have a configuration like this:


Example: IES Keywatt

Keep in mind that the current implementation of our OCPP Server is only a local Server that is acting like a Backend to be able to set power limits to the charger and get the current values.

The Component you are using requires now the Charger ID of the charger


and a separate OcppServer Component that is gathering all the chargers.


The “OCPP Backend Address” of the Charger is the IP-Address of the Device OpenEMS is running on and the configured port - e.g. ws://

Like this, the charger should be able to connect to the internal Backend. If the Charger ID is then the same as one of your configured Evcs Components - it will be mapped to that.

Anyways, if the charger provides a separate API like Modbus TCP or Rest, we suggest to use this, for reading current data and writing necessary setpoints/maximum limits.

1 Like

I have this type of charger 60-160kW
DC FAST CHARGER what I want is to implement this device inside the BackEnd, that would be possible

What I want to implement is a simulation of EVS with OCPP communication, but in this case all pure software, for this I must implement a device within the OpenEMS Edge in this case it would also be to integrate a Center system where it would be controlled, if you can help me with that information please

I think I’m still having trouble understanding what your current state is and what you want to do.

  • You wrote that you want to implement a new charger in the backend:

    • What Backend do you mean - I assume the current local implementation of OpenEMS Ocpp Backend or “EVCS OCPP Server”
    • Does the charger already support an OCPP version - at least 1.6?
      • If not - I don’t know if this is the right way/order to implement it - Maybe have a look in the OCPP Community first
      • If yes I would suggest to put “your” EVCS in the same network as the OpenEMS Device and try to match all the parameters like I wrote before (Backend-Address, … see last Post), activate the Debug Mode for the “Evcs OCPP Server” (it could/should be renamed) and have a look into the log if a charger want’s to register.
  • Afterwards you are writing to implement a simulation of EVS

    • Why you have to or want to simulate it?

What I try to integrate is the simulation with OCPP and then be able to do it with the physical device, because within the simulations that I observe within the OpenEMS a simulation of EVCS but without using the protocol.

Currently there is no evcs simulation for OCPP - i would look at similar devices like IES KeyWatt or ABL and implement it like this if it has already OCPP 1.6 implemented. If not, I would suggest to have a look into the OCPP Community, as I told you before.

If the charger I want to implement is “60-160kw CCS2 EV DC Charger Station” specifically it works with the OCPP protocol, then what you should do is create a new device and add the different characteristics depending on the other devices that have been implemented like the IES KeyWatt. or ABL

Yes, a new device has to be added for this.
I’m currently working on further improvements in the evcs structure, to make it a little bit easier to implement it. But there are not that many changes in the OCPP structure, as it is already generalized a lot. The important features like setting the charge power needs to be adopted to your charger openems/IesKeywattSingleCcs.java at 9585a222e6fda87c60452b4c0f1b2ae273d9eec6 · OpenEMS/openems · GitHub

Good evening sorry, I have already integrated my model of the electric vehicle charger now could you help me how can I build a simulator of an OCPP customer?

you could use a simple simulator written in the browser.

i improved it a bit.

but of course this will not help you to simulate the power limitation. because this is by many chargeboxes different.

Thank you very much and excuse me could you connect the simulation that you sent me in the URL
With the OpenEMS because I deployed it inside an instance.
The instance is in the following URL

hi raiza,
you can just change the url on your own?! :slight_smile: its just running javascript on your local device
best regards paul

Good afternoon,
I have already added the different components to the OCPP device, and I also implemented the charging point but the simulation does not connect, I don’t know if you could help me.

I use it with this different simulation, it connects but to simulate the load is not done I don’t know if you could help me with that.

Hi raiza,

the simulator just simulates an chargingstation WITHOUT simulating power. so just connect, authorize, start and stop, metervalues are support.

but it is javascript, so just download the source and edit it locally to what you need.
I even dont know how you implement to get the chargepower? over metervalues? that should be easy. rightnow it just send the metervalue “counter” over this request.

best regards


hello Pablo
the connection is done but at the moment of sending the load it shows me an error and the load is not done, I don’t know if you can help me with that.
The URLs
Upload Simulator