Skip to content

Step by step on how to integrate Everest based EV Charger with CSMS such as Steve , Open E-Mobility , CitrineOS and many more Open Source CSMS. Please change to different branches for different CSMS

Notifications You must be signed in to change notification settings

Anmirazik/Open-Source-Ev-charger-End-to-End-Solution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 

Repository files navigation

shutterstock_1864450102-scaled

EV-Charger End to End Solutions

So you might be wondering how can you create end-to-end EV Charging Software using open source.

Good for us, there are genius developers out there who have published their solutions on Github, we just need to find and use it only. However, in this article, I will focus on integrating Everest Software In The Loop with Open E Mobility Backend and FrontEnd

What do you need?

Everest

  1. You can refer to the Everest documentation on how to install Everest here

Open E - Mobility

  1. You can refer how to install the Open E-Mobility Backend Server here
  2. You can refer how to install Open E-Mobility FrontEnd Server here

What you need to configure at Open E - Mobility

Click ONBOARD NEW STATION and create Charging Station Registration Tokens and then copy the JSON token like this image The output should look something like this

/OCPP16/63c937b82b1ed7174101f323/6569e25a32a12adfd538d383

What you need to configure at Everest

First of all SSH into your Linux system, as for me, I use Ubuntu 22.04 and then change the directory into everest-core, As for me once I log in I need to run this

sudo nano ~/checkout/everest-workspace/everest-core/build/dist/share/everest/modules/OCPP/ocpp.json

my "ocpp.json" contents looks like this

{
    "Internal": {
        "ChargePointId": "Everest-AC-Charger",
        "CentralSystemURI": "localhost:8001/OCPP16/63c937b82b1ed7174101f323/6569e25a32a12adfd538d383/Everest-AC-Charger",
        "ChargeBoxSerialNumber": "Everest-AC-Charger",
        "ChargePointModel": "Yeti",
        "ChargePointVendor": "Pionix",
        "FirmwareVersion": "0.1",
        "AllowChargingProfileWithoutStartSchedule": false
    },
    "Core": {
        "AuthorizeRemoteTxRequests": false,
        "ClockAlignedDataInterval": 900,
        "ConnectionTimeOut": 30,
        "ConnectorPhaseRotation": "0.RST,1.RST",
        "GetConfigurationMaxKeys": 100,
        "HeartbeatInterval": 86400,
        "LocalAuthorizeOffline": false,
        "LocalPreAuthorize": false,
        "MeterValuesAlignedData": "Energy.Active.Import.Register",
        "MeterValuesSampledData": "Current.Import,Energy.Active.Import.Register,Energy.Active.Import.Interval,Power.Active.Import,SoC,Energy.Active.Import.Interval,Voltage,Energy.Active.Export.Register,Energy.Reactive.Export.Register,Power.Active.Export",
        "MeterValueSampleInterval": 10,
        "NumberOfConnectors": 1,
        "ResetRetries": 1,
        "StopTransactionOnEVSideDisconnect": true,
        "StopTransactionOnInvalidId": true,
        "StopTxnAlignedData": "Energy.Active.Import.Register",
        "StopTxnSampledData": "Energy.Active.Import.Register",
        "SupportedFeatureProfiles": "Core,FirmwareManagement,RemoteTrigger,Reservation,LocalAuthListManagement,SmartCharging",
        "TransactionMessageAttempts": 1,
        "TransactionMessageRetryInterval": 10,
        "UnlockConnectorOnEVSideDisconnect": true,
        "WebsocketPingInterval": 0
    },
    "FirmwareManagement": {
        "SupportedFileTransferProtocols": "FTP"
    },
    "Security": {
        "CpoName": "Pionix",
        "AuthorizationKey": "AABBCCDDEEFFGGHH",
        "SecurityProfile": 1
    },
    "LocalAuthListManagement": {
        "LocalAuthListEnabled": true,
        "LocalAuthListMaxLength": 42,
        "SendLocalListMaxLength": 42
    },
    "SmartCharging": {
        "ChargeProfileMaxStackLevel": 42,
        "ChargingScheduleAllowedChargingRateUnit": "Current,Power",
        "ChargingScheduleMaxPeriods": 42,
        "MaxChargingProfilesInstalled": 42
    },
    "PnC": {
        "ISO15118PnCEnabled": true,
        "ContractValidationOffline": true
    },
    "Custom": {
        "ExampleConfigurationKey": "example"
    }
}
sudo nano ~/checkout/everest-workspace/everest-core/config/config-sil-ocpp.yaml

and then changed your ChargePointConfigPath as for me, I changed my ChargePointConfigPath name is "ocpp.json" but yours might be different , it depends on you what you want to name it

ChargePointConfigPath: ocpp.json

After That run

cmake ..
make install

and then run the SIL using

sh run-sil-ocpp.sh

What will happen after you run Everest

Charger should pop up on your dashboard like this

image

You need to configure your charger , mine looks like this

image

This is My Node-Red dashboard for the Everest SIL

image

and then plug in the charger and then you will see on Open E-Mobility dashboard shows preparing status in yellow color like this

image

You need to add the RFID tags in the Open E-Mobility

image

like this

image

If you don't add the RFID tags on Open E-Mobility then the RFID tags will be rejected by the charger, this is because we don't want unregistered RFID tags to authorized for any sessions :)

After the sessions is authorized, the charging session should start and you will see the data displayed like this

image

Now you have an End to End EV charging solution with only Open Source ! Congratulations

About

Step by step on how to integrate Everest based EV Charger with CSMS such as Steve , Open E-Mobility , CitrineOS and many more Open Source CSMS. Please change to different branches for different CSMS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published