top of page

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

bottom of page