chargelink evse
Run and inspect the EVSE (charger-side, SECC) role: dry-run, live listener, TLS/PKI diagnostics, preflight and evidence lanes.
chargelink evse
chargelink evse [OPTIONS] <COMMAND>
Subcommands
| Subcommand | Purpose |
|---|---|
start | the ISO 15118-20 TLS 1.3 named-group settings of either role. The curve profile only reorders the two ISO 15118-20 named groups (secp521r1, x448); the legacy groups are an engineering opt-in outside ISO 15118-20 |
stop | |
status | |
list-state | |
listener-policy | Show native EVSE listener and EXI-backed protocol-loop policy |
external-evcc-session-policy | Show native external EVCC session listener/profile activation policy |
protocol-loop-policy | Show native EVSE EXI-backed protocol loop policy |
iso20-setup-path | Run native ISO 15118-20 service discovery/session setup path |
iso20-auth-service-path | Run native ISO 15118-20 authorization and service-selection path |
iso20-cert-auth-negatives | Run ISO 15118-20 certificate and authorization negative-path evidence |
iso20-charge-schedule-path | Run ISO 15118-20 charge-parameter and schedule-exchange path |
iso20-dc-charge-loop-path | Run ISO 15118-20 cable-check, precharge, and DC charge-loop skeleton |
iso20-completion-pass | Run ISO 15118-20 completion pass artifacts and external EVCC syntax |
legacy-hlc-completion-pass | Run ISO 15118-2 AC/DC + DIN 70121 completion pass artifacts |
iso2-setup-path | Run ISO 15118-2 EVSE setup/service-discovery path |
din70121-dc-setup-path | Run DIN 70121 legacy DC setup path |
customer-smoke-plan | Show customer EVSE smoke launcher plan |
external-evcc-live-plan | Show live EVSE + external EVCC interoperability plan |
tls-pki-policy | Show EVSE TLS/PKI diagnostics policy |
tls-pki-doctor | Run EVSE TLS/PKI diagnostics against certificate/key/CA PEM files |
certificate-flow | Show EVSE certificate-flow foundation and evidence gates |
tls-listener-policy | Show TLS-backed EVSE live listener preflight policy |
tls-material-init | Generate engineering TLS material: a SECC identity, or with --bench-pki the complete engineering bench PKI (ENGINEERING/TEST only) |
tls-listener-preflight | Run TLS-backed EVSE live listener preflight without compliance claim |
live-preflight | Run live ISO/DIN EVSE preflight for same-PC EVCC or external EVCC supplier |
live-closure-gate | Evaluate live EVSE evidence artifacts after same-PC or external EVCC testing |
live-closure-plan | Print live ISO/DIN same-PC and external EVCC supplier validation commands |
chargelink evse certificate-flow
Show EVSE certificate-flow foundation and evidence gates
chargelink evse certificate-flow [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-cafile | <FILE> | ||
--require-ca | flag | ||
--write-artifacts | flag | ||
--protocol | <PROTOCOL> | iso15118-20 | |
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse customer-smoke-plan
Show customer EVSE smoke launcher plan
chargelink evse customer-smoke-plan [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse din70121-dc-setup-path
Run DIN 70121 legacy DC setup path
chargelink evse din70121-dc-setup-path [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse external-evcc-live-plan
Show live EVSE + external EVCC interoperability plan
chargelink evse external-evcc-live-plan [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse external-evcc-session-policy
Show native external EVCC session listener/profile activation policy
chargelink evse external-evcc-session-policy [OPTIONS]
No options besides the global options.
chargelink evse iso2-setup-path
Run ISO 15118-2 EVSE setup/service-discovery path
chargelink evse iso2-setup-path [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse iso20-auth-service-path
Run native ISO 15118-20 authorization and service-selection path
chargelink evse iso20-auth-service-path [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse iso20-cert-auth-negatives
Run ISO 15118-20 certificate and authorization negative-path evidence
chargelink evse iso20-cert-auth-negatives [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse iso20-charge-schedule-path
Run ISO 15118-20 charge-parameter and schedule-exchange path
chargelink evse iso20-charge-schedule-path [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse iso20-completion-pass
Run ISO 15118-20 completion pass artifacts and external EVCC syntax
chargelink evse iso20-completion-pass [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc | |
--peer-ipv6 | <PEER_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--tcp-port | <TCP_PORT> | 50118 |
chargelink evse iso20-dc-charge-loop-path
Run ISO 15118-20 cable-check, precharge, and DC charge-loop skeleton
chargelink evse iso20-dc-charge-loop-path [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse iso20-setup-path
Run native ISO 15118-20 service discovery/session setup path
chargelink evse iso20-setup-path [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse legacy-hlc-completion-pass
Run ISO 15118-2 AC/DC + DIN 70121 completion pass artifacts
chargelink evse legacy-hlc-completion-pass [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--write-artifacts | flag | ||
--profile-id | <PROFILE_ID> | legacy_hlc_completion | |
--protocol | <PROTOCOL> one of: all, iso15118-2, din70121 | all | |
--energy-mode | <ENERGY_MODE> one of: all, ac, dc | all | |
--peer-ipv6 | <PEER_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--tcp-port | <TCP_PORT> | 50118 |
chargelink evse list-state
chargelink evse list-state [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> |
chargelink evse listener-policy
Show native EVSE listener and EXI-backed protocol-loop policy
chargelink evse listener-policy [OPTIONS]
No options besides the global options.
chargelink evse live-closure-gate
Evaluate live EVSE evidence artifacts after same-PC or external EVCC testing
chargelink evse live-closure-gate [OPTIONS] --run-id <RUN_ID>
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> | required | |
--source | <SOURCE> | same-pc | |
--require-sdp | flag | ||
--require-tcp-peer | flag | ||
--require-tls | flag | ||
--require-v2gtp | flag | ||
--require-exi | flag | ||
--write-artifacts | flag |
chargelink evse live-closure-plan
Print live ISO/DIN same-PC and external EVCC supplier validation commands
chargelink evse live-closure-plan [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--advertise-ipv6 | <ADVERTISE_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--interface-index | <INTERFACE_INDEX> | 19 | |
--tcp-port | <TCP_PORT> | 50118 | |
--udp-port | <UDP_PORT> | 15118 |
chargelink evse live-preflight
Run live ISO/DIN EVSE preflight for same-PC EVCC or external EVCC supplier
chargelink evse live-preflight [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--source | <SOURCE> | same-pc | |
--protocol | <PROTOCOL> | iso15118-20 | |
--profile-id | <PROFILE_ID> | iso15118_20_dc | |
--host | <HOST> | :: | |
--tcp-port | <TCP_PORT> | 50118 | |
--udp-port | <UDP_PORT> | 15118 | |
--advertise-ipv6 | <ADVERTISE_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--interface-index | <INTERFACE_INDEX> | 19 | |
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-pfx | <FILE> | Windows SChannel PKCS#12/PFX server identity for external EVCC TLS preflight. | |
--tls-cafile | <FILE> | ||
--require-ca | flag | ||
--tls-adapter | <ADAPTER> | rustls-default | TLS adapter: rustls-default or windows-schannel-external-evcc |
--external-evcc-windows-tls | flag | Alias for --tls-adapter windows-schannel-external-evcc; engineering real external EVCC interop only | |
--external-evcc-iso-tls12 | flag | Legacy preflight alias for external EVCC TLS 1.2/ECDSA compatibility; now records Windows SChannel intent, not OpenSSL | |
--recover-stale | flag | ||
--allow-active-evse | flag | ||
--skip-port-check | flag |
chargelink evse protocol-loop-policy
Show native EVSE EXI-backed protocol loop policy
chargelink evse protocol-loop-policy [OPTIONS]
No options besides the global options.
chargelink evse start
the ISO 15118-20 TLS 1.3 named-group settings of either role. The curve profile only reorders the two ISO 15118-20 named groups (secp521r1, x448); the legacy groups are an engineering opt-in outside ISO 15118-20
chargelink evse start [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--dry-run | flag | ||
--iso20-curve-profile | <CURVE> | secp521r1 | ISO 15118-20 [V2G20-2320] curve setting: secp521r1 (default) or x448. Sets which ISO 15118-20 named group is preferred; both stay offered and accepted |
--allow-legacy-tls-named-groups | flag | Also offer/accept secp256r1 after the ISO 15118-20 named groups, for P-256-only test peers. Engineering interop only, outside ISO 15118-20; the SECC also needs --allow-engineering-tls-identity, and every TLS record carries the legacy claim boundary | |
--external-evcc-session | flag | Keep the EVSE listener open for external EVCC activation; defaults UDP to 15118 and runtime to operator-stopped when max-runtime-ms is not overridden | |
--run-id | <RUN_ID> | ||
--foreground | flag | ||
--protocol | <PROTOCOL> | ||
--profile-id | <PROFILE_ID> | ||
--profile | <FILE> | ||
--exi-mode | <EXI_MODE> | chargelink-exi | |
--plant-grpc-endpoint | <URI> | C3B RC2Y: canonical gRPC endpoint used by the external ISO 15118-20 DC EIM lane for live VeriStand plant command/feedback coupling. | |
--requested-power-kw | <REQUESTED_POWER_KW> | 0 | Plant-coupled ISO15118-20 runtime requested power. Required explicitly when --plant-grpc-endpoint is used; zero means unset. |
--target-voltage-v | <TARGET_VOLTAGE_V> | 0 | Plant-coupled ISO15118-20 runtime target voltage. Required explicitly when --plant-grpc-endpoint is used; zero means unset. |
--host | <HOST> | ||
--tcp-port | <TCP_PORT> | ||
--udp-port | <UDP_PORT> | ||
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-pfx | <FILE> | Windows SChannel PKCS#12/PFX server identity. Use with --external-evcc-windows-tls; --tls-cert/--tls-key may still be supplied for evidence traceability. | |
--tls-pfx-password | <PASSWORD> | "" | Password for --tls-pfx. For production, prefer --tls-pfx-password-env so the secret is not stored in shell history. |
--tls-pfx-password-env | <ENV> | Read the Windows SChannel PKCS#12/PFX password from this environment variable. Preferred for production and real EVCC validation. | |
--tls-cafile | <FILE> | ||
--require-ca | flag | ||
--allow-engineering-tls-identity | flag | Allow ChargeLink engineering TLS material (from evse tls-material-init) as the server identity. Development and test only; never production | |
--tls-sni-policy | <POLICY> | strict | TLS SNI handling policy: strict, external-evcc-dev-tolerant, external-evcc-iso-tls12, or external-evcc-windows-schannel |
--tls-adapter | <ADAPTER> | rustls-default | TLS adapter: rustls-default or windows-schannel-external-evcc |
--external-evcc-windows-tls | flag | Alias for --tls-adapter windows-schannel-external-evcc and --tls-sni-policy external-evcc-windows-schannel; engineering real external EVCC interop only | |
--external-evcc-dev-tls | flag | Alias for --tls-sni-policy external-evcc-dev-tolerant; engineering interop only, not production TLS policy | |
--external-evcc-iso-tls12 | flag | Legacy alias for external EVCC TLS 1.2/ECDSA compatibility; now maps to the Windows SChannel adapter, not OpenSSL | |
--advertise-ipv6 | <ADVERTISE_IPV6> | ||
--interface-index | <INTERFACE_INDEX> | ||
--can-backend | <CAN_BACKEND> | ||
--can-channel | <CAN_CHANNEL> | ||
--can-bitrate | <CAN_BITRATE> | ||
--role | <ROLE> | ||
--max-runtime-ms | <MAX_RUNTIME_MS> | 500 | |
--heartbeat-interval-ms | <HEARTBEAT_INTERVAL_MS> | 100 |
chargelink evse status
chargelink evse status [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> |
chargelink evse stop
chargelink evse stop [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> |
chargelink evse tls-listener-policy
Show TLS-backed EVSE live listener preflight policy
chargelink evse tls-listener-policy [OPTIONS]
No options besides the global options.
chargelink evse tls-listener-preflight
Run TLS-backed EVSE live listener preflight without compliance claim
chargelink evse tls-listener-preflight [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-cafile | <FILE> | ||
--require-ca | flag | ||
--protocol | <PROTOCOL> | iso15118-20 | |
--profile-id | <PROFILE_ID> | iso15118_20_dc | |
--host | <HOST> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--tcp-port | <TCP_PORT> | 0 | |
--rustls-mode | <RUSTLS_MODE> | rustls-prepared-not-bound | |
--write-artifacts | flag |
chargelink evse tls-material-init
Generate engineering TLS material: a SECC identity, or with --bench-pki the complete engineering bench PKI (ENGINEERING/TEST only)
chargelink evse tls-material-init [OPTIONS] --output-dir <DIR>
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--output-dir | <DIR> | required | |
--overwrite | flag | ||
--profile-id | <PROFILE_ID> | iso15118_20_dc_dev_tls | |
--protocol | <PROTOCOL> | iso15118-20 | |
--write-artifacts | flag | ||
--bench-pki | flag | PO decision 1a: generate a complete ENGINEERING/TEST PKI for the two-PC ISO 15118-20 bench (V2G root, SECC identity for PC1, vehicle identity for PC2, manifest) into --output-dir, which must not exist | |
--pfx-password-env | <ENV_VAR> | With --bench-pki: also write the SECC identity as pc1/secc-identity.pfx (Windows SChannel path), with the password read from this environment variable (never printed) |
chargelink evse tls-pki-doctor
Run EVSE TLS/PKI diagnostics against certificate/key/CA PEM files
chargelink evse tls-pki-doctor [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-cafile | <FILE> | ||
--require-ca | flag | ||
--write-artifacts | flag | ||
--protocol | <PROTOCOL> | iso15118-20 | |
--profile-id | <PROFILE_ID> | iso15118_20_dc |
chargelink evse tls-pki-policy
Show EVSE TLS/PKI diagnostics policy
chargelink evse tls-pki-policy [OPTIONS]
No options besides the global options.

