GithubHelp home page GithubHelp logo

canonip / steve Goto Github PK

View Code? Open in Web Editor NEW

This project forked from steve-community/steve

0.0 1.0 0.0 6.33 MB

SteVe - OCPP server implementation in Java

License: GNU General Public License v3.0

Java 97.02% JavaScript 0.47% CSS 0.86% PLSQL 0.01% TSQL 1.58% Dockerfile 0.06%

steve's Introduction

SteVe

Build Status

Introduction

SteVe was developed at the RWTH Aachen University and means Steckdosenverwaltung, namely socket administration in German. The aim of SteVe is to support the deployment and popularity of electric mobility, so it is easy to install and to use. SteVe provides basic functions for the administration of charge points, user data, and RFID cards for user authentication and was tested successfully in operation.

SteVe is considered as an open platform to implement, test and evaluate novel ideas for electric mobility, like authentication protocols, reservation mechanisms for charge points, and business models for electric mobility. SteVe is distributed under GPL and is free to use. If you are going to deploy SteVe we are happy to see the logo on a charge point.

Charge Point Support

Electric charge points using the following OCPP versions are supported:

  • OCPP1.2S
  • OCPP1.2J
  • OCPP1.5S
  • OCPP1.5J
  • OCPP1.6S
  • OCPP1.6J

For Charging Station compatibility please check: https://github.com/RWTH-i5-IDSG/steve/wiki/Charging-Station-Compatibility

System Requirements

SteVe requires

  • JDK 11 (both Oracle JDK and OpenJDK are supported)
  • Maven
  • At least MySQL 5.7.7 (MariaDB 10.2.1 or later works as well) as database (Note: MySQL 8.x is not supported yet)

to build and run.

SteVe is designed to run standalone, a java servlet container / web server (e.g. Apache Tomcat), is not required.

Configuration and Installation

  1. Database preparation:

    Make sure MySQL is reachable via TCP (e.g., remove skip-networking from my.cnf). The following MySQL statements can be used as database initialization (adjust database name and credentials according to your setup):

    CREATE DATABASE stevedb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
    GRANT ALL PRIVILEGES ON stevedb.* TO 'steve'@'localhost' IDENTIFIED BY 'changeme';
    GRANT SELECT ON mysql.proc TO 'steve'@'localhost' IDENTIFIED BY 'changeme';
    

    Important: Make sure that the time zone of the MySQL server is the same as the time zone of SteVe. Since UTC is strongly recommended by OCPP, it is the default in SteVe and you should set it in MySQL, accordingly.

  2. Download and extract tarball:

    You can download and extract the SteVe releases using the following commands (replace X.X.X with the desired version number):

    wget https://github.com/RWTH-i5-IDSG/steve/archive/steve-X.X.X.tar.gz
    tar xzvf steve-X.X.X.tar.gz
    cd steve-X.X.X
    
  3. Configure SteVe before building:

    The basic configuration is defined in main.properties:

    For advanced configuration please see the Configuration wiki

  4. Build SteVe:

    To compile SteVe simply use Maven. A runnable jar file containing the application and configuration will be created in the subdirectory steve/target.

    # mvn package
    
  5. Run SteVe:

    To start the application run (please do not run SteVe as root):

    # java -jar target/steve.jar
    

Docker

If you prefer to build and start this project via docker (you can skip the steps 1 and 3, 4, 5 above), this can be done as follows: docker-compose up -d

The web interface will be accessible at: http://localhost:8180

Ubuntu

You'll find a tutorial how to prepare Ubuntu for SteVe here: https://github.com/RWTH-i5-IDSG/steve/wiki/Prepare-Ubuntu-VM-for-SteVe

AWS

You'll find a tutorial how to setup SteVe in AWS using Lightsail here: https://github.com/RWTH-i5-IDSG/steve/wiki/Create-SteVe-Instance-in-AWS-Lightsail

First Steps

After SteVe has successfully started, you can access the web interface using the configured credentials under:

http://<your-server-ip>:<port>/steve/manager

The default port number is 8080.

Add a charge point

  1. In order for SteVe to accept messages from a charge point, the charge point must first be registered. To add a charge point to SteVe select Data Management >> Charge Points >> Add. Enter the ChargeBox ID configured in the charge point and confirm.

  2. The charge points must be configured to communicate with following addresses. Depending on the OCPP version of the charge point, SteVe will automatically route messages to the version-specific implementation.

    • SOAP: http://<your-server-ip>:<port>/steve/services/CentralSystemService
    • WebSocket/JSON: ws://<your-server-ip>:<port>/steve/websocket/CentralSystemService/<chargeBoxId>

As soon as a heartbeat is received, you should see the status of the charge point in the SteVe Dashboard.

Have fun!

Screenshots

  1. Home
  2. Connector Status
  3. Data Management - Charge Points
  4. Data Management - Users
  5. Data Management - OCPP Tags
  6. Data Management - Reservations
  7. Data Management - Transactions
  8. Operations - OCPP v1.2
  9. Operations - OCPP v1.5
  10. Settings

GDPR

If you are in the EU and offer vehicle charging to other people using SteVe, keep in mind that you have to comply to the General Data Protection Regulation (GDPR) as SteVe processes charging transactions, which can be considered personal data.

Are you having issues?

See the FAQ

steve's People

Contributors

goekay avatar dependabot-preview[bot] avatar csamsel avatar aheuvels avatar javaisjavascript avatar canonip avatar muued avatar gregorschatz avatar chuck-h avatar redhell avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.