[Beta Modul] NRG-Stack OCPPHub - Wallboxen per OCPP 1.6J anbinden, mit PV-Überschussladen und Kundenverwaltung

Hallo zusammen,

wie im Teaser zum NRG-Stack (Vorankündigung) angekündigt, stelle ich die Module einzeln vor - hier OCPPHub: das OCPP-1.6J-Gegenstück zu ChargerHub (Modbus TCP). Beide binden Wallboxen an, aber über unterschiedliche Protokolle - je nachdem, was die eigene Wallbox kann.

Worum geht es?

OCPPHub ist das OCPP-„Central System" für IP-Symcon: Die Wallbox verbindet sich per WebSocket zu Symcon (nicht umgekehrt) - Symcon übernimmt Handshake und Nachrichtenverkehr komplett selbst über seinen eingebauten Hook-Mechanismus, es läuft kein separater Prozess, kein externer Port. Eine Splitter-Instanz nimmt beliebig viele Wallbox-Verbindungen gleichzeitig entgegen; je Wallbox/Connector gibt es eine eigene Ladepunkt-Instanz mit den sichtbaren Messwerten und Steuervariablen.

Wozu braucht man das, wenn die Wallbox schon eine App hat?

Weil die Wallbox-App nicht weiß, was gerade an PV-Überschuss da ist, was ein Energiemanagement-System vorgibt, oder wer laut eigener Kundenverwaltung laden darf:

  • Ladefreigabe/Stromlimit aus Symcon heraus setzen - für eigene Automationen oder ein Energiemanagement-System (EMS).
  • Eigenständiges PV-Überschussladen als Fallback, auch ganz ohne EMS installiert.
  • Zentrale RFID-Autorisierung mit Kundenverwaltung und Verbrauchslimits (Kunde → Zugang (Karte) → optional Fahrzeug/Gruppe) - für den Fall „mehrere Nutzer, eine Wallbox", mit eigener Konfigurationskachel fürs WebFront.
  • Reservierung einzelner Zeitfenster für einen bestimmten Zugang.

Funktionsumfang heute

Kernprotokoll: BootNotification/Heartbeat/StatusNotification/Authorize/ StartTransaction/StopTransaction/MeterValues - vollständig, live verifiziert.

Betriebsarten (am Splitter wählbar):

  • ① Einzelnutzer - kein RFID-Zwang, jede Karte wird angenommen.
  • ② Mehrere Nutzer - zentrale Autorisierung über die neue „OCPPHub Abrechnung"-Instanz (wird automatisch angelegt): Kunde → Zugang (RFID-Karte) → optional Fahrzeug/Gruppe, mit Verbrauchslimits (Woche/Monat/Jahr) und optionalen Zeitfenstern je Zugang.

Für Skripte/andere Module: OHUB_GetFunctions($id) - feldgleich zu ChargerHubs CHUB_GetFunctions, damit ein Konsument (EMS, Dashboard) nicht unterscheiden muss, ob eine Wallbox per Modbus oder OCPP angebunden ist.

:crystal_ball: Ausblick: das Abrechnungssystem (in Arbeit)

Kundenverwaltung und Verbrauchslimits gibt es also schon - was noch fehlt, ist die eigentliche Kostenberechnung. Daran arbeite ich als Nächstes, deshalb schon mal der Ausblick, wohin die Reise geht:

  • Mehrere benannte Grundtarife statt einem festen ct/kWh-Preis. Jeder Grundtarif setzt sich aus zwei unabhängigen Teilen zusammen: einer Preisstruktur (fix, dynamisch über Tibber Grid Rewards, gestaffelt nach Verbrauchsmenge, optional plus Grundgebühr) und einer Gültigkeitsbedingung (Zeitfenster, Saison, Preisschwelle, oder eine beliebige externe Symcon-Variable als Freischalter - z. B. eine künftige §14a-Steuerung). Kunde, Gruppe und ein Standardtarif bilden eine Kaskade, und die Preisermittlung läuft je 15-Minuten-Scheibe, nicht nur einmal pro Ladevorgang - ändert sich während einer Ladung die Bedingung, wechselt der Tarif mitten in der Rechnung sauber mit.
  • Ein Formel-Fluchtweg für alles, was die vordefinierten Bausteine nicht abdecken - sowohl Preisstruktur als auch Gültigkeitsbedingung lassen sich wahlweise durch einen freien, sicher ausgewerteten Ausdruck ersetzen. Kein Sonderfall soll je einen Architektur-Umbau nötig machen.
  • Berichte je Kunde (Monat/Jahr) mit CSV-Export - für den Dienstwagen-Nachweis, die WG-Abrechnung oder einfach den eigenen Überblick.
  • Bewusst weiterhin kein Eichrecht, kein OCPI/Roaming, kein Bezahlterminal - OCPPHub bleibt eine privatrechtliche Abrechnung fürs eigene Haus/die eigene Familie/den eigenen Fuhrpark, kein öffentlicher Stromverkauf.

Wer schon jetzt eine konkrete Tarifidee hat, die oben nicht reinpasst - gerne melden, bevor ich mit dem Bau anfange.

Getestete Hardware

Referenz-/Testhardware ist go-e Gemini/HOME+ (OCPP 1.6J ab Firmware 56.1, besser ≥56.8) - dort live über mehrere echte Ladevorgänge inkl. Stopp/Neustart verifiziert. Gegen andere OCPP-1.6J-Wallboxen (KEBA P30 x-series, Alfen Eve) ist das Modul bisher ungetestet - Rückmeldungen sind ausdrücklich willkommen, falls etwas nicht passt (Measurand-Namen/Einheiten in MeterValues, ChargingRateUnit bei SetChargingProfile). Kann eine Wallbox kein OCPP (z. B. Heidelberg Energy Control, KEBA c-series), ist ChargerHub das passende Geschwistermodul.

Abgrenzung zu Symcons eigenem OCPP-Modul

Symcons offizielles symcon/OCPP ist ein guter, protokollnaher Einstieg. OCPPHub setzt den Schwerpunkt auf den kompletten Betrieb rund um eine Wallbox: eigenständiges PV-Überschussladen, Kundenverwaltung mit Verbrauchslimits, Reservierung, einen feldgleichen Vertrag zum Modbus-Geschwistermodul ChargerHub, und - siehe oben - eine richtige Kostenabrechnung.

Voraussetzungen

  • IP-Symcon 9.0 oder neuer
  • Eine OCPP-1.6J-fähige Wallbox im eigenen Netz
  • Optional: ChargerHub, EMS, Dashboard, Tessie, Tibber Grid Rewards für Zusatzfunktionen - OCPPHub funktioniert auch komplett eigenständig

Einrichtung in Kürze

  1. Modul hinzufügen: Modulverwaltung → Symcon Module Store → nach „NRG-Stack OCPPHub" suchen, Kanal Beta wählen.
  2. Instanz „OCPPHub Splitter" anlegen, Wallbox in deren eigener OCPP-Konfiguration auf den angezeigten WebSocket-Endpunkt einstellen.
  3. Sobald sich die Wallbox gemeldet hat: „OCPPHub Konfigurator" anlegen - zeigt sie zum Ein-Klick-Erstellen der Ladepunkt-Instanz an.

Lizenz

Lizenz: PolyForm Noncommercial 1.0.0 - private/nicht-kommerzielle Nutzung ist frei, gewerbliche Nutzung erfordert eine gesonderte Lizenz vom Rechteinhaber (DG65). Der vollständige Lizenztext liegt im Repo (LICENSE). Spenden sind willkommen: paypal.me/DietmarGureth.

Feedback

Das Modul ist früher Beta-Stand - über Rückmeldungen, Fehler oder Wünsche (weitere Hersteller, Funktionen, Tarifideen fürs Abrechnungssystem) freue ich mich hier im Thread.

Viele Grüße Dietmar