
EVCS Simulator
Der EVCS Simulator ist ein schlanker, praxisnaher Ladestationssimulator für Entwicklung, Integration und technische Validierung von OCPP-basierten Backend-Systemen. Er hilft dabei, typische Ladepunkt-Szenarien lokal und reproduzierbar zu testen, ohne echte Hardware auf dem Schreibtisch betreiben zu müssen.
Im Fokus steht kein hübsches Demo-Spielzeug, sondern ein Werkzeug aus echter Integrationsarbeit: Verbindungen aufbauen, BootNotification senden, Heartbeats prüfen, Autorisierung testen, Ladevorgänge simulieren und dabei nachvollziehbare Logs sehen.
Besonders stark ist der Simulator dort, wo einzelne Testladestationen nicht mehr reichen: Er kann sehr schnell viele virtuelle Ladestationen erzeugen und hohes Nachrichtenaufkommen produzieren. Damit eignet er sich auch für Last- und Stabilitätstests von CPMS-Systemen, WebSocket-Infrastruktur, Routing, Persistenz und Monitoring.
Wofür der Simulator gedacht ist
Lokale Entwicklung und Debugging von OCPP-basierten Backend-Systemen
Integrationstests gegen lokale oder entfernte CPMS-Instanzen
Simulation typischer Abläufe wie BootNotification, Heartbeat, Authorize und Charging Routine
Tests von WebSocket- und WSS/TLS-Verbindungen
Last- und Stabilitätstests mit vielen simulierten Ladestationen
Reproduzierbare Smoke Tests und technische Validierung vor echten Hardwaretests
Was der Simulator kann
Mehrere simulierte Ladestationen erzeugen und verwalten
OCPP-Kommunikation über WebSocket und WSS/TLS aufbauen
BootNotification, Heartbeat und Autorisierung simulieren
Ladevorgänge starten, laufen lassen und beenden
Konfigurationen über eine Admin UI sichtbar machen und ändern
Services neu starten und Verbindungszustände beobachten
Logs zentral anzeigen und technische Abläufe nachvollziehen
Hohe Stationsanzahl und viel Traffic für Belastungstests erzeugen
Technischer Aufbau
Der Simulator ist als lokaler Stack aufgebaut und kann per Docker Compose betrieben werden. Die Architektur trennt Admin-Oberfläche, Steuerlogik, Simulator-Runtime und Persistenz, damit Tests reproduzierbar und nachvollziehbar bleiben.
Admin UI: Oberfläche für Konfiguration, Runtime-Steuerung, Status und Logs
Simulator Runtime: erzeugt virtuelle Ladestationen und OCPP-Kommunikation
Backend/Admin Service: verwaltet Konfiguration, Neustarts und Steuerbefehle
MongoDB: speichert Konfigurationen, Stationsdaten und Runtime-nahe Informationen
Docker Compose: reproduzierbarer lokaler Betrieb des gesamten Stacks
Repository
Der Quellcode liegt auf GitHub:
https://github.com/arcz-engineering/EVCS-Simulator
Docker Image
Das Simulator-Image kann über die GitHub Container Registry bezogen werden:
ghcr.io/arcz-engineering/evcs-simulator:latest
oder für die Neuigierigen
ghcr.io/arcz-engineering/evcs-simulator:dev-latest
Minimaler Start
#Ein typischer lokaler Start erfolgt über Docker Compose:
docker compose up -d
# Logs können direkt über Docker Compose verfolgt werden:
docker compose logs -f
# Zum Stoppen des lokalen Stacks:
docker compose down
Minimales Docker-Compose-Beispiel
name: evcs-simulator
services:
evcs-admin:
image: ${EVCS_SIMULATOR_IMAGE:-ghcr.io/arcz-engineering/evcs-simulator:dev-latest}
restart: unless-stopped
environment:
ADMIN_UI_TAKEOVER_PORTS: "false"
MONGO_URI: mongodb://evcs-mongo:27017/evcs_simulator
ports:
- "8088:8080"
depends_on:
evcs-mongo:
condition: service_healthy
volumes:
- evcs-runs:/app/.runs
- evcs-logs:/app/.run-logs
evcs-mongo:
image: mongo:7
restart: unless-stopped
volumes:
- evcs-mongo-data:/data/db
volumes:
evcs-mongo-data:
evcs-runs:
evcs-logs:
Simulator-Konfiguration
Die Simulator-Konfiguration wird in der Admin UI gepflegt und in MongoDB persistiert. Dazu gehören Ziel-Endpoints, Stationsanzahl, Authentifizierungsmodus, TLS-Verhalten, Heartbeat-Fallbacks und Ladeverhalten.
Admin UI: http://localhost:8088
Beispiel: API Checks
Für technische Prüfungen können einfache API- oder Health-Checks genutzt werden.
curl http://localhost:3000/health
curl http://localhost:3000/api/status
Beispiel: Lasttest-Szenario
Für Lasttests kann die Anzahl der simulierten Ladestationen erhöht werden. Damit lassen sich viele parallele Verbindungen, Heartbeats und OCPP-Nachrichten erzeugen.
Beispielhafte Konfigurationswerte:
SIMULATOR_STATION_COUNT=500
SIMULATOR_CONNECTORS_PER_STATION=2
SIMULATOR_HEARTBEAT_INTERVAL_SECONDS=30
Lizenz und Nutzung
Der EVCS Simulator steht unter der PolyForm Noncommercial License 1.0.0. Die Nutzung ist für nicht-kommerzielle Zwecke erlaubt. Für andere Nutzungsarten ist eine gesonderte Abstimmung erforderlich.
Owner: Mike Kunze
