Open Source
    MIT License
    TypeScript

    OCPP Proxy / Splitter

    Routeer het OCPP-verkeer van je laadpaal naar meerdere backends tegelijk. Behoud je originele CSMS en verbind daarnaast met Joulo — of elk ander platform.

    // Architectuur

    Eén proxy, meerdere backends

    De proxy zit tussen je laadpaal en de backend(s). Je primaire CSMS behoudt volledige controle — inclusief commando's terugsturen. Secondaire backends ontvangen een read-only kopie van alle berichten.

    ⚡ Charger (OCPP)
    🔀 Joulo OCPP Proxy
    Primary CSMS
    volledige controle
    Secondary CSMS
    read-only mirror
    CSMS N…
    read-only mirror

    Charger → CSMS

    Berichten worden doorgestuurd naar de primaire CSMS en gespiegeld naar alle secondaire backends.

    CSMS → Charger

    Alleen de primaire CSMS kan commando's terugsturen naar de laadpaal. Antwoorden van secondaire backends worden genegeerd.

    // Kenmerken

    Alles wat je nodig hebt

    Split & Mirror

    Eén inkomende verbinding, meerdere backends. Primaire CSMS heeft volledige controle, secondaire ontvangt read-only kopieën.

    Auth forwarding

    HTTP Basic Auth credentials worden automatisch doorgestuurd naar alle upstream backends.

    Sub-protocol negotiation

    Automatische onderhandeling van OCPP 1.6, 2.0 en 2.0.1 sub-protocollen.

    Docker-ready

    Pre-built images op GitHub Container Registry. Eén commando om te starten.

    Lichtgewicht

    TypeScript/Node.js, minimale footprint. Draait als non-root user in Docker.

    Structured logging

    JSON-logs naar stdout/stderr. Stel LOG_LEVEL=debug in om individuele OCPP-berichten te zien.

    // Quick Start

    In 3 stappen draaien

    Docker (aanbevolen)

    docker run -d \
      -p 9000:9000 \
      -e PRIMARY_CSMS_URL=wss://your-primary-csms.example.com/ocpp \
      -e SECONDARY_CSMS_URLS=wss://analytics.example.com/ocpp \
      ghcr.io/joulo-nl/joulo-ocpp-proxy:main

    Docker Compose

    git clone https://github.com/joulo-nl/joulo-ocpp-proxy.git
    cd joulo-ocpp-proxy
    cp .env.example .env
    # Edit .env with your CSMS URLs
    docker compose up -d

    Vanaf broncode

    git clone https://github.com/joulo-nl/joulo-ocpp-proxy.git
    cd joulo-ocpp-proxy
    npm install
    npm run build
    PRIMARY_CSMS_URL=wss://your-csms.example.com/ocpp npm start

    // Configuratie

    Omgevingsvariabelen

    VariableVerplichtDefaultBeschrijving
    PORTNee9000Poort waarop de proxy luistert
    PRIMARY_CSMS_URL
    Ja
    WebSocket URL van je primaire CSMS
    SECONDARY_CSMS_URLSNeeKomma-gescheiden lijst van secondaire CSMS URLs
    LOG_LEVELNeeinfodebug, info, warn of error

    // Laadpaal instellen

    Wijs je laadpaal naar de proxy

    Verander de OCPP backend URL in de instellingen van je laadpaal:

    Was:wss://your-csms.example.com/ocpp/CHARGER-001
    Wordt:ws://proxy-host:9000/CHARGER-001

    De proxy voegt het charge point ID automatisch toe aan elke upstream CSMS URL.

    // Toepassingen

    Wanneer gebruik je dit?

    Multi-backend monitoring

    Stuur laaddata naar je primaire platform én naar je eigen analytics of energiemanagementsysteem.

    Platform migratie

    Mirror verkeer naar een nieuw platform en verifieer dat alles correct werkt voordat je overschakelt.

    Development & debugging

    Mirror productie-laadverkeer naar een lokale development-omgeving zonder het live systeem te beïnvloeden.

    Compliance & auditing

    Stuur een kopie van alle OCPP-berichten naar een audit-systeem voor regelgevende compliance.

    Klaar om te starten?

    Maak een gratis account aan en verbind je laadpaal. Je API-token vind je direct in het dashboard.