Update 10.01.2023: Dieser Beitrag hat nur noch historischen Wert. Die offizielle "Docker Anleitung" ist heute der bessere Weg.
https://github.com/steve-community/steve
Angeregt durch einen Beitrag auf Goingelectric habe ich ein Raspbian Image von dem wunderbaren SteVe OCPP Server erstellt.
Sinn dahinter ist es eine "out of the box" Lösung für weniger IT versierte private Ladestationbesitzer anzubieten. Einfach damit man etwas mit seiner Keba Station (oder eine andere OCPP fähige Ladestation) spielen kann.
Es ist von mir nicht geplant hier weitere Updates zu fahren. Es soll einfach nur ein Image zum privaten rumspielen bleiben.
Update 15.07.2021: Es gibt immer mal wieder freundliche und verständliche Nachfragen nach einer Aktualisierung, aber ein neues Raspi Image ist von mir nicht geplant. Sorry.
Kurzdokumentation - SteVe 3.0.2 auf Raspbian 9 – 30.09.2018
SteVe ist ein Open Source OCPP Server. Damit können z.B. Keba Ladestationen für Elektrofahrzeuge kommunizieren. Der SteVe Server kann z.B. Ladelogs erstellen, Ladevorgänge steuern und Ladestationen remote neu starten.
https://github.com/RWTH-i5-IDSG/steve
Raspbian ist das Debian Linux Betriebssystem für den Mini-Computer „Raspberry Pi“.
https://www.raspberrypi.org/downloads/raspbian/
Das hier dokumentierte System benutzt Raspbian Lite 9 ohne grafische Umgebung. Als Hardware wird ein „Raspberry Pi 3 Model B“ mit einer 16 GB SD Karte verwendet.
1. Installation
Zur Installation muss das komprimierte Image steve_raspi_image270918.gz unten heruntergeladen werden. Dann kann die Datei unter einem Linux System als „root“ mit dem Befehl
gzip -dc /pfad_zum_ordner/steve_raspi_image270918.gz | dd bs=4M of=/dev/sdb
auf die 16 GB (zwingende Größe) SD Karte eingerichtet werden. Vorausgesetzt die SD Karte ist /dev/sdb.
Unbedingt vorher prüfen, ob die SD Karte wirklich /dev/sdb ist, mit dem Befehl „lsblk“, ansonsten kann es zu dramatischen Datenverlusten führen!
Alternativ kann die steve_raspi_image270918.gz auch entpackt werden (unter Windows z.B. mit der freien Software 7zip) und dann herkömmlich auf die SD Karte installiert werden: https://www.raspberrypi.org/documentation/installation/installing-images/
Nach der Installation dann die SD Karte in das Raspberry Pi stecken.
2. Starten des Systems
Das Raspberry Pi sollte mit einem Netzwerkkabel an einem Switch angeschlossen sein. Ein Anschluss des HDMI Kabels oder eine Tastatur sind nicht erforderlich Das Netzteil muss mit dem Pi verbunden werden. Dann einfach das Netzteil in eine Steckdose stecken und das Pi bootet. Das Pi selber bootet zügig hoch. Der automatische Start des SteVe Servers benötigt etwas Zeit. Spätestens 1 Minute nach dem Start des Systems sollte der SteVe Server erreichbar sein.
3. Administration vom SteVe Server
Zum administrativen Zugang zum SteVe Server muss man in einem Browser auf einem Rechner im selben Netzwerk des Pi (192.168.1.x) diese URL eingeben
http://192.168.1.69:8080/steve/manager/home
Benutzername ist admin. Passwort ist keba12
Um einen Ladepunkt mit dem SteVe Server zu verbinden schreibt die SteVe Dokumentation:
Ladepunkt hinzufügen
Damit SteVe Nachrichten von einem Ladepunkt empfangen kann, muss dieser zuerst registriert werden. Dazu unter Data Management >> Charge Points >> Add die ChargeBox ID des Ladepunkts eingeben und bestätigen.
Die Ladepunkte müssen so eingerichtet werden, dass sie über die IP Adresse von SteVe mit SteVe kommunizieren können. SteVe ermittelt automatisch die vom Ladepunkt verwendete OCPP Version.
SOAP: http://<your-server-ip>:<port>/steve/services/CentralSystemService
WebSocket/JSON: ws://<your-serverip>:<port>/steve/websocket/CentralSystemService/<chargeBoxId>
Sobald der SteVe Server einen heartbeat empfängt sollte der Status im SteVe Dashboard sichtbar sein.
Das bedeutet für unser System, dass in einer Keba Ladestation folgende Einträge vorgenommen werden können:
Chargepoint Identity: ChargeBox ID, wie bei der Registrierung beim SteVe Data Management angegeben.
Central System Address: http://192.168.1.69:8080/steve/services/CentralSystemService
Es kann in einer Keba auch eine verschlüsselte Kommunikation eingetragen werden. Das System ist darauf vorbereitet. Es muss dazu in der Keba das Zertifikat vom SteVe Server installiert werden. Die Datei steve.crt (download unten) ist dafür gedacht. Das ist aber nicht getestet., da ich selber keine Keba besitze. Rückmeldungen dazu sind herzlich willkommen. Die Keba’s können auch ganz normal unverschlüsselt mit dem SteVe Server kommunizieren.
Der SteVe Server selbst nennt folgende Zugangsmöglichkeiten:
Access the web interface using:
- http://192.168.1.69:8080/steve/manager/home
- https://192.168.1.69:8443/steve/manager/home
SOAP endpoint for OCPP:
- http://192.168.1.69:8080/steve/services/CentralSystemService
- https://192.168.1.69:8443/steve/services/CentralSystemServiceWebSocket/
JSON endpoint for OCPP:
- ws://192.168.1.69:8080/steve/websocket/CentralSystemService/<chargeBoxId>
- wss://192.168.1.69:8443/steve/websocket/CentralSystemService/<chargeBoxId>
Es empfiehlt sich vor dem ersten Anschluss einer realen Ladestation das System simuliert zu testen.
Dazu bietet sich eine einfache HTML Datei namens „simple simulator1.6.html“ an (download auch unten):
https://github.com/victormunoz/OCPP-1.6-Chargebox-Simulator
Hat man im SteVe Server einen Ladepunkt mit der Charge ID „test“ angelegt, lautet die URL in der HTML Datei unter „Central Station“
ws://192.168.1.69:8080/steve/websocket/CentralSystemService/test
Bei einer Charge ID „meinebox“
ws://192.168.1.69:8080/steve/websocket/CentralSystemService/meinebox
Mit diesem Simulator können u.a. Vorgänge wie „Connect“, „Start Transaction“ und „Stop Transaction“ am SteVe Server getestet werden.
4. Administration des Systems
Die Installation funktioniert "out of the box" und braucht normalerweise nicht administriert werden.
Wer es dennoch versuchen will, für den sind folgenden Tools empfehlenswert:
https://www.putty.org/ (SSH Remote Konsolenzugriff auf das Raspi, Zeichenkodierung UTF8)
https://www.heidisql.com/download.php (Datenbankfrontend, Port 3306)
https://winscp.net/eng/download.php (SCP Dateitransfer vom und zum Raspi)
http://www.pspad.com/de/download.htm (Ein Editor)
In den Tools (außer dem Editor) muss nur die IP Adresse des PI eingeben werden (192.168.1.69) und ein Benutzername (root) sowie ein Passwort (keba12).
Benutzer auf dem Pi sind:
pi
root
„root“ ist der Systemadministrator mit Vollzugriff. „pi“ ist ein eingeschränkter User und wird wohl nicht verwendet werden.
Für die MySQL/MariaDB Datenbank:
root
steve
Beim Webzugang zum SteVe Server:
admin
Alle Benutzer verfügen über dasselbe Passwort:
keba12
Auch der Java Keystore in dem Ordner /works/ benutzt dieses Passwort.
Linux ist case sensitive, also bitte immer die Groß-/Kleinschriebung beachten.
Die default (kabelgebundenen) Netzwerkeinstellung sind:
IP 192.168.1.69 (netmask 255.255.255.0)
DNS 192.168.1.1
Gateway 192.168.1.1
DHCP wird nicht verwendet. Geändert werden können diese Einstellungen in der Datei
/etc/dhcpcd.conf
Alle für das System relevante Dateien liegen als Backup in dem Ordner /works/. Dort liegen auch der SteVe Server selbst und der Java Keystore. Die Einstellungen von SteVe Server erfolgen in der Datei
/works/steve-steve-3.0.3/src/main/resources/config/prod/main.properties
Eine Veränderung der Einstellungen ist für den default Betrieb nicht notwendig. Sollten doch mal Anpassungen gemacht werden, muss der SteVe Server neu kompiliert werden. Dazu in der Konsole (putty) in dem Ordner /works/steve-steve-3.02/ den Befehl
mvn package
eingeben.
Update 04.02.2021
{
"Günther" hat geschrieben, dass er nach einer Änderung der IP noch den Befehl "# java -jar target/steve.jar“ ausführen musste. Merci!
}
Der automatische Startvorgang beim Systemstart des SteVe Servers wird durch die Datei
/etc/init.d/steve
geregelt. Sollte der Pfad zum SteVe Server verändert werden (z.B. durch Neukompilieren einer neuen SteVe Version), so muss der Pfad in der Datei /etc/init.d/steve angepasst werden. Der SteVe Server kann manuell mit den Befehlen
/etc/init.d/steve start
/etc/init.d/steve stop
/etc/init.d/steve restart
gesteuert werden.
Ein gutes allgemeines Tool auf der Linux Konsole (im putty) ist der Midnight Commander. Er wird aufgerufen mit dem Befehl
mc
Das gesamte System inklusive Datenbank benutzt als Zeichensatz UTF8. Die Tastatur ist auf Deutsch – CH eingestellt.
System Updates können bei Internetzugang des Pi’s mit den Befehlen
apt-get update
apt-get dist-upgrade
durchführt werden. Dies ist aber bei einem rein lokalen System nicht notwendig und birgt die Gefahr, dass der SteVe Server nicht mehr funktioniert und ebenfalls aktualisiert werden muss.
5. Systemwiederherstellung
Ein Backup des Systems erfolgt nicht. Datenbankbackups können z.B. unter Windows mit der Software HeidiSQL erstellt werden (Rechte Maustaste auf die Datenbank -> Datenbank SQL Export).
Sollte das System komplett zurückgesetzt werden müssen, oder auf eine neue SD-Karte (16GB) wiederhergestellt / kopiert werden müssen, wie unter Punkt 1. Installation vorgehen.
6. Dateien
Das Image: steve_raspi_image270918.gz (1,1 GB)
Die HTML Testdatei: simple simulator1.6.html (Rechte Maustaste -> Ziel speichern unter ...)
Das Zertifikat: steve.crt (Rechte Maustaste -> Ziel speichern unter ...)
Hier noch ein weiterer Goingelectric Beitrag zu dem Image: https://www.goingelectric.de/forum/private-ladeinfrastruktur/ladelog-mit-keba-zu-hause-lokaler-ocpp-server-t35340.html
Have fun ...