Feature: Interactive Web Dashboard, OCPP 2.1 V2G/ISO 15118, Advanced EV Simulation, and mTLS Security#32
Open
Bravos-hub wants to merge 11 commits intosolidstudiosh:mainfrom
Open
Feature: Interactive Web Dashboard, OCPP 2.1 V2G/ISO 15118, Advanced EV Simulation, and mTLS Security#32Bravos-hub wants to merge 11 commits intosolidstudiosh:mainfrom
Bravos-hub wants to merge 11 commits intosolidstudiosh:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request brings an extensive suite of enhancements to the OCPP Virtual Charge Point, transforming it into a fully-featured, interactive, and advanced testing simulator for modern EV Charging scenarios.
Major Features Included:
Added a responsive, modern React-based Admin UI running alongside the VCP (accessible via browser).
Features a Trace Viewer to monitor incoming/outgoing OCPP messages and payloads in real-time.
Allows sending Admin commands (Auth, Start, Stop) directly from the interface instead of via terminal scripts.
Dynamic Battery Curve:
MeterValues
generation now incorporates a simulated Electric Vehicle Battery (Battery Capacity, Target SoC%). Uncapped charging curves are applied automatically to mimic real-world energy draws.
Smart Charging Compatibility: Handles incoming
SetChargingProfile
requests to dynamically throttle the simulator's charging consumption based on CSMS-defined limits.
Chaos Mode: Added a toggle to simulate deterministic physical hardware faults and randomized WebSocket connection drops to test CSMS resilience and offline persistence behavior.
Mutual TLS (mTLS): Implemented full client-side certificate support to establish secure TLS connections to the CSMS.
Certificate Lifecycle Management: Added native workflows to automatically generate Certificate Signing Requests (CSR) via the
SignCertificate
and
CertificateSigned
events.
Security Events: Introduced persistent storage and transmission of anomalous network events via
SecurityEventNotification
.
Plug & Charge (ISO 15118): Deeply integrated support for simulating eMAID identity tokens and ISO15118CertificateHashData during the .Authorize and
Get15118EVCertificate
exchanges.
Vehicle-to-Grid (V2G/V2H): The EV Battery simulator now safely handles bidirectional power flows (i.e. negative charging limits) to discharge into the grid. Mapped native UI controls to negotiate complex V2G requirements via
NotifyEVChargingNeeds
.
Extended Device Model: Fully wired the
GetVariables
,
SetVariables
, and
GetBaseReport
handlers to map strictly to persistent SQLite storage representing physical controllers (e.g. AuthCtrlr, OCPPCommCtrlr).
Technical Changes
Initialized an integrated Vite/React ui/ layer built to serve statically from the main backend.
Migrated core temporary states to a local persistent better-sqlite3 data layer (
vcp.db
) to withstand hard reboots without losing transaction context, configurations, or certificates.
Extensively reworked the
TransactionManager
logic loop to be more robust.