All Projects → RWTH-i5-IDSG → Steve

RWTH-i5-IDSG / Steve

Licence: other
SteVe - OCPP server implementation in Java

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Steve

Home Assistant Config
My Home Assistant configuration & documentation.
Stars: ✭ 99 (-47.06%)
Mutual labels:  smarthome
Gladys
A privacy-first, open-source home assistant
Stars: ✭ 1,874 (+902.14%)
Mutual labels:  smarthome
Homebridge Homematic
Homematic plugin for homebridge: https://github.com/nfarina/homebridge
Stars: ✭ 163 (-12.83%)
Mutual labels:  smarthome
Awesome Mqtt
A curated list of MQTT related stuff. ✨
Stars: ✭ 1,667 (+791.44%)
Mutual labels:  smarthome
Ct Smart Home
A ready-to-use Node-RED setup for home automation
Stars: ✭ 132 (-29.41%)
Mutual labels:  smarthome
Homematic Manager
Homematic Device Configuration and Administration
Stars: ✭ 149 (-20.32%)
Mutual labels:  smarthome
Smarthome
Device integration platform for your smart home
Stars: ✭ 92 (-50.8%)
Mutual labels:  smarthome
Valetudo
Cloud-free control webinterface for vacuum robots
Stars: ✭ 2,738 (+1364.17%)
Mutual labels:  smarthome
Iobroker.docker
Official Docker Image for ioBroker
Stars: ✭ 133 (-28.88%)
Mutual labels:  smarthome
Hubitat
Apps for use with Hubitat Elevation
Stars: ✭ 155 (-17.11%)
Mutual labels:  smarthome
Awesome Homematic
A curated list of Homematic related links ✨
Stars: ✭ 117 (-37.43%)
Mutual labels:  smarthome
Alexa Ip Cam
Use Alexa's Smart Home Skill API with standalone IP cameras without needing cloud service.
Stars: ✭ 121 (-35.29%)
Mutual labels:  smarthome
Volkszaehler.org
Open Source Smart Meter with focus on privacy - you remain the master of your data.
Stars: ✭ 150 (-19.79%)
Mutual labels:  smarthome
Homebridge Fritz Platform
AiO Homebridge dynamic platform plugin for AVM hardware like Fritz!Box, Fritz!Repeater etc.
Stars: ✭ 101 (-45.99%)
Mutual labels:  smarthome
Templates
Tasmota Device Templates Repository. Your one stop shop to get templates for devices running Tasmota!
Stars: ✭ 162 (-13.37%)
Mutual labels:  smarthome
Rgb
Offline smart home - esp8266 and WS2811/WS2812/NeoPixel LEDs Smart home / Gudra māja / Умны дом
Stars: ✭ 99 (-47.06%)
Mutual labels:  smarthome
Device Type.myecobee
SmartThings-ecobee integration
Stars: ✭ 139 (-25.67%)
Mutual labels:  smarthome
Wirehome.core
Wirehome.Core is a home automation system written in C# targeting .NET Core. It runs on Linux, Windows and macOS.
Stars: ✭ 180 (-3.74%)
Mutual labels:  smarthome
Ha client
It was the first Home Assistant fully native Android client from the times when there was no any official alternatives
Stars: ✭ 166 (-11.23%)
Mutual labels:  smarthome
Gbridge
gBridge.io allows you to control (almost) anything with Google Assistant, by translating voice commands to MQTT messages.
Stars: ✭ 152 (-18.72%)
Mutual labels:  smarthome

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

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:

    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.

    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).

    • For MySQL 5.7 (and MariaDB):

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

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

      Note: The statement GRANT SUPER [...] is only necessary to execute some of the previous migration files and is only needed for the initial database setup. Afterwards, you can remove this privilege by executing

      REVOKE SUPER ON *.* FROM 'steve'@'localhost';
      
  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

Kubernetes

First build your image, and push it to a registry your K8S cluster can access. Make sure the build args in the docker build command are set with the same database configuration that the main deployment will use.

docker build --build-arg DB_HOST= --build-arg DB_PORT= --build-arg DB_USERNAME= --build-arg DB_PASSWORD= --build-arg DB_DATABASE= -f k8s/docker/Dockerfile -t <IMAGE_NAME> .

docker push <IMAGE_NAME>

Then go to k8s/yaml/Deployment.yaml and change ### YOUR BUILT IMAGE HERE ### to your image tag, and fill in the environment variables with the same database connection that you used at build time.

After this, create the namespace using kubectl create ns steve and apply your yaml with kubectl apply -f k8s/yaml/Deployment.yaml followed by kubectl apply -f k8s/yaml/Service.yaml

To access this publicaly, you'll also have to setup an ingress using something like nginx or traefik.

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

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].