chargelink evcc
Run and inspect the EVCC (vehicle-side) role: dry-run, direct TCP or SDP sessions, loopback smoke, battery models and TLS probe.
chargelink evcc
chargelink evcc [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 | |
profiles | |
backends | |
battery-models | |
loopback-policy | Show native EVCC loopback and direct TCP policy |
external-smoke-policy | Show external EVCC simulator smoke harness policy |
external-smoke | Run external EVCC simulator smoke harness |
activate-profile | Activate a selected EVCC profile against a running native EVSE listener using direct TCP |
external-regression-policy | Show standards-oriented IPv6 external EVCC regression pack policy |
external-regression-pack | Run standards-oriented IPv6 external EVCC regression pack |
local-loopback-policy | Show local EVCC-to-EVSE executable loopback smoke policy |
local-loopback-smoke | Run local EVCC-to-EVSE executable loopback smoke |
customer-smoke-plan | Show the EVCC customer workflow plan |
external-simulator-plan | Show external EVCC simulator connection contract plan |
tls-handshake-probe | Probe transport and mutual TLS against an external SECC. No SDP, no V2GTP, no EXI, no session. |
chargelink evcc activate-profile
Activate a selected EVCC profile against a running native EVSE listener using direct TCP
chargelink evcc activate-profile [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--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 | |
--protocol | <PROTOCOL> | ||
--profile-id | <PROFILE_ID> | ||
--profile | <FILE> | ||
--peer-ipv6 | <PEER_IPV6> | Direct/no-SDP peer IPv6. Optional with --use-sdp because production SDP discovers the EVSE endpoint. | |
--tcp-port | <TCP_PORT> | Direct/no-SDP TCP port. Optional with --use-sdp because production SDP discovers the EVSE port. | |
--interface-index | <INTERFACE_INDEX> | Interface index used as the IPv6 link-local multicast scope for production SDP discovery. | |
--use-sdp | flag | Use real IPv6 SDP multicast over UDP 15118 before TCP/TLS/V2GTP. With this flag --peer-ipv6 is not required. | |
--probe-peer | flag | ||
--connect-timeout-ms | <CONNECT_TIMEOUT_MS> | 250 | |
--exi-mode | <EXI_MODE> | chargelink-exi | |
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-cafile | <FILE> | ||
--tls-server-name | <TLS_SERVER_NAME> | chargelink-secc.local | Expected EVSE certificate DNS identity/SNI used by the native TLS client. TCP still connects to the SDP-discovered IPv6 endpoint. |
--require-ca | flag | ||
--max-steps | <MAX_STEPS> | 14 | |
--battery-model | <BATTERY_MODEL> | constant_power_reference | |
--battery-capacity-kwh | <BATTERY_CAPACITY_KWH> | 77 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 32 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--requested-power-kw | <REQUESTED_POWER_KW> | 150 | |
--battery-step-seconds | <BATTERY_STEP_SECONDS> | 30 |
chargelink evcc backends
chargelink evcc backends [OPTIONS]
No options besides the global options.
chargelink evcc battery-models
chargelink evcc battery-models [OPTIONS]
No options besides the global options.
chargelink evcc customer-smoke-plan
Show the EVCC customer workflow plan
chargelink evcc 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 evcc external-regression-pack
Run standards-oriented IPv6 external EVCC regression pack
chargelink evcc external-regression-pack [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--profile-set | <PROFILE_SET> | standards-ipv6-core | |
--peer-ipv6 | <PEER_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--tcp-port | <TCP_PORT> | 55000 | |
--include-optional-mcs | flag | ||
--include-optional-nacs | flag | ||
--include-diagnostic-ipv4-case | flag |
chargelink evcc external-regression-policy
Show standards-oriented IPv6 external EVCC regression pack policy
chargelink evcc external-regression-policy [OPTIONS]
No options besides the global options.
chargelink evcc external-simulator-plan
Show external EVCC simulator connection contract plan
chargelink evcc external-simulator-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 evcc external-smoke
Run external EVCC simulator smoke harness
chargelink evcc external-smoke [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--simulator-id | <SIMULATOR_ID> | external-evcc | |
--protocol | <PROTOCOL> | iso15118-20 | |
--peer-ipv6 | <PEER_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--tcp-port | <TCP_PORT> | 55000 | |
--probe-peer | flag | ||
--connect-timeout-ms | <CONNECT_TIMEOUT_MS> | 250 | |
--simulator-command | <SIMULATOR_COMMAND> | ||
--simulator-arg | <SIMULATOR_ARGS> | ||
--working-dir | <DIR> | ||
--timeout-ms | <TIMEOUT_MS> | 1500 | |
--allow-nonstandard-ipv4 | flag |
chargelink evcc external-smoke-policy
Show external EVCC simulator smoke harness policy
chargelink evcc external-smoke-policy [OPTIONS]
No options besides the global options.
chargelink evcc list-state
chargelink evcc 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 evcc local-loopback-policy
Show local EVCC-to-EVSE executable loopback smoke policy
chargelink evcc local-loopback-policy [OPTIONS]
No options besides the global options.
chargelink evcc local-loopback-smoke
Run local EVCC-to-EVSE executable loopback smoke
chargelink evcc local-loopback-smoke [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--protocol | <PROTOCOL> | iso15118-20 | |
--profile-id | <PROFILE_ID> | iso15118_20_dc | |
--peer-ipv6 | <PEER_IPV6> | fe80::640b:3f3d:c4fe:3d9f%19 | |
--tcp-port | <TCP_PORT> | 50118 | |
--exi-mode | <EXI_MODE> | chargelink-exi | |
--max-steps | <MAX_STEPS> | 6 | |
--battery-model | <BATTERY_MODEL> | constant_power_reference | |
--battery-capacity-kwh | <BATTERY_CAPACITY_KWH> | 77 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 32 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--requested-power-kw | <REQUESTED_POWER_KW> | 150 | |
--battery-step-seconds | <BATTERY_STEP_SECONDS> | 30 |
chargelink evcc loopback-policy
Show native EVCC loopback and direct TCP policy
chargelink evcc loopback-policy [OPTIONS]
No options besides the global options.
chargelink evcc profiles
chargelink evcc profiles [OPTIONS]
No options besides the global options.
chargelink evcc 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 evcc 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 | |
--protocol | <PROTOCOL> | ||
--backend | <BACKEND> | ||
--profile-id | <PROFILE_ID> | ||
--profile | <FILE> | ||
--no-sdp | flag | ||
--peer-ipv6 | <PEER_IPV6> | ||
--tcp-port | <TCP_PORT> | ||
--interface-index | <INTERFACE_INDEX> | Windows/Linux interface index used for IPv6 link-local SDP multicast scope. Required for production --use-sdp discovery without --peer-ipv6. | |
--exi-mode | <EXI_MODE> | chargelink-exi | |
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-cafile | <FILE> | ||
--tls-server-name | <TLS_SERVER_NAME> | chargelink-secc.local | Expected EVSE certificate DNS identity/SNI used by the native TLS client. TCP still connects to the SDP-discovered IPv6 endpoint. |
--require-ca | flag | ||
--max-steps | <MAX_STEPS> | 6 | |
--probe-peer | flag | ||
--connect-timeout-ms | <CONNECT_TIMEOUT_MS> | 250 | |
--battery-model | <BATTERY_MODEL> | constant_power_reference | |
--battery-capacity-kwh | <BATTERY_CAPACITY_KWH> | 77 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 32 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--requested-power-kw | <REQUESTED_POWER_KW> | 150 | |
--battery-step-seconds | <BATTERY_STEP_SECONDS> | 30 |
chargelink evcc status
chargelink evcc 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 evcc stop
chargelink evcc 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 evcc tls-handshake-probe
Arguments for the transport/TLS-only probe. Deliberately carries no session arguments (no --use-sdp, --max-steps, --exi-mode or battery options): this command performs no ISO 15118-20 session, so accepting those flags would imply a capability it does not have.
chargelink evcc tls-handshake-probe [OPTIONS] --peer-ipv6 <PEER_IPV6>
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--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 | |
--protocol | <PROTOCOL> | iso15118-20 | |
--profile-id | <PROFILE_ID> | iso15118_20_dc_evcc_reference | |
--peer-ipv6 | <PEER_IPV6> | required | SECC IPv6 address. A link-local address must carry THIS machine's zone index. |
--tcp-port | <TCP_PORT> | 50118 | |
--connect-timeout-ms | <CONNECT_TIMEOUT_MS> | 250 | |
--tls | flag | ||
--tls-cert | <FILE> | ||
--tls-key | <FILE> | ||
--tls-cafile | <FILE> | ||
--tls-server-name | <TLS_SERVER_NAME> | chargelink-secc.local | Expected SECC certificate DNS identity/SNI. |
--require-ca | flag |

