Split ISO/DIN capabilities#31468
Conversation
|
As #31446 has been merged, the WARP4 template has to be changed now as well. |
|
@copilot resolve the merge conflicts in this pull request |
Resolved in |
| - `iso151182`: The device supports communicating via ISO 15118-2. | ||
| - `iso15118-2`: The device supports communicating via ISO 15118-2. | ||
| - `iso15118-20`: The device supports communicating via ISO 15118-20. | ||
| - `din70121`: The device supports communicating via DIN 70121. |
There was a problem hiding this comment.
@premultiply can you phrase this from a user/feature perspective (identify, soc, ...).
There was a problem hiding this comment.
Wofür brauchen wir das denn überhaupt also was würde ein Anwender mit der Information machen? Für evcc relevant ist das m.E. nur, wenn wir daraus evcc Fähigkeiten ableiten. Welche wären das jeweils (also z.B. SoC auslesen)?
There was a problem hiding this comment.
Ausgangspunkt: "iso151182" als einziges Capability-Tag ist sehr ungenau bzw. unzureichend.
Zu diskutieren ist natürlich ob man dies wie hier vorgeschlagen (weiter) anhand der gewählten aber nicht weniger für den gemeinen Anwender nicht so geläufigen Spec-Namen oder anderer Tags macht.
Ich habe Claude mal gezielt recherchieren lassen und die PR-Beschreibung aktualisiert.
Durchaus lesenswert als die gewünschte technische Hintergrundinformation über die jeweiligen Fähigkeiten der Protokolle/Spezifikationen.
There was a problem hiding this comment.
Important AC/DC nuance: ISO 15118-2 transmits SoC only for DC charging — the standard defines no SoC
field for AC sessions. Therefore a plain AC wallbox speaking ISO 15118-2 gets no SoC. Some AC wallboxes
(e.g. openWB Pro, using Bender CC613 / chargebyte / Hardy Barth controllers) work around this with a DC
handshake trick: at plug-in they briefly signal a DIN 70121 DC connection, read the SoC (and whatever battery
fields the car exposes) over that channel, tear it down, and then charge normally via IEC 61851-1 AC PWM. This
yields a one-time SoC at plug-in, not a continuously updated value.
Interesting. Hier passiert ja auch ein Mix an Standards. Spricht für mich auf jeden Fall dafür, dass wir hier auf die Feature-Ebene bei den Capabilities gehen sollten. Also sowas wie initialSoc, continuousSoc ...
Mit welchem Verfahren die Wallbox das dann mit dem Fahrzeug rausbekommt ist aus Nutzersicht (vmtl. sogar aus evcc-Sicht) ja Nebensache.
There was a problem hiding this comment.
Ausgangspunkt: "iso151182" als einziges Capability-Tag ist sehr ungenau bzw. unzureichend.
Aber unzureichend wofür? Warum sollte uns das interessieren? Wir spezifizieren hier ja kein WB Datasheet? ich würde gerne nur Dinge dokumentieren, die wirklich für uns relevant sind.
and
are not correct. During HLC, the PWM is set to 5% and stops encoding a limit — the current limit in ChargingStatusRes replaces it, enabling per-phase limits and sub-second updates without touching the PWM. ISO 15118-2's AC control is strictly finer than PWM: PWM encodes one scalar value for all phases, while the V2G message can express per-phase limits and change them every response cycle without interrupting the session. |
|
Thanks — you're right on the main point, and I've corrected the PR description.
<!-- V2G_CI_MsgBody.xsd, ChargingStatusResType -->
<xs:element name="EVSEMaxCurrent" type="v2gci_t:PhysicalValueType" minOccurs="0"/>So the EVSE can vary On three of the supporting points I'd push back, though: Per-phase limits — I did not find yet how ISO 15118-2 supports them.
5 % duty cycle — mandatory for AC PnC and for DC, but for AC + EIM Sub-second updates — Net: ISO 15118-2 AC control is finer in value resolution and adjustable without touching the PWM — a real |
So in form of capabilities, -2 only provides a basis which some vendors extend using VAS (e.g. Porsche and VW to different degrees) |
Refs #31807
What & why
The single
iso151182device capability lumped three distinct EV charging communication protocols into onetag. This PR splits it into three explicit tags and reframes the capability documentation from wire-protocol
names to the features evcc actually derives from each protocol:
iso15118-2— ISO 15118-2iso15118-20— ISO 15118-20din70121— DIN 70121Motivation (from review feedback): a user doesn't care which protocol a charger speaks on the wire — they care
what evcc gains from it (reading SoC, identifying the vehicle, …). The three protocols genuinely derive
different evcc-relevant capabilities, so keeping them separate is meaningful, and the docs should describe the
derived capability rather than the acronym.
This description doubles as background material so the capability docs / external documentation can be written
from it.
Background: the three protocols
All three are High-Level Communication (HLC) protocols that run as HomePlug Green PHY power-line
communication over the Control Pilot line, on top of the basic IEC 61851-1 signalling. They differ in scope and
in what vehicle data they expose.
They coexist via dual-stack: the shared
SupportedAppProtocolhandshake negotiates the highest protocol bothsides support and falls back (−20 → −2 → DIN 70121).
Derived evcc capabilities (what each tag actually means)
EVRESSSOC)DisplayParameters.PresentSOC)EVEnergyCapacity(optional)BatteryEnergyCapacity+ Min/Target/Max SoCEVCCID/ MAC (Autocharge)EVCCID/ MAC (Autocharge)EVCCID/ MAC (Autocharge)EVSEMaxCurrent(single scalar)1. State of charge (the primary evcc benefit)
The charger obtains the connected vehicle's SoC and hands it to evcc — no vehicle/cloud integration needed. It
is transmitted continuously during the session (in the repeating charge-loop message), as an integer percentage.
Important AC/DC nuance: ISO 15118-2 transmits SoC only for DC charging — the standard defines no SoC
field for AC sessions. Therefore a plain AC wallbox speaking ISO 15118-2 gets no SoC. Some AC wallboxes
(e.g. openWB Pro, using Bender CC613 / chargebyte / Hardy Barth controllers) work around this with a DC
handshake trick: at plug-in they briefly signal a DIN 70121 DC connection, read the SoC (and whatever battery
fields the car exposes) over that channel, tear it down, and then charge normally via IEC 61851-1 AC PWM. This
yields a one-time SoC at plug-in, not a continuously updated value. ISO 15118-20 fixes this — it carries SoC
natively over AC.
2. Vehicle identification — via EVCCID / MAC (Autocharge)
All three protocols carry the
EVCCID(the EV communication controller's MAC address) inSessionSetupReq.This is the practically usable vehicle identifier — exactly what "Autocharge" uses — and it works the same
across DIN 70121, ISO 15118-2 and ISO 15118-20.
non-duplicated MAC). Vehicles that randomise their MAC for privacy cannot be identified this way.
billing/contract identity (
eMAID), not a vehicle identity, and requires a full V2G-PKI backend withprovisioned certificates (rare in the field). It is an authorization/billing mechanism with no practical
vehicle-identification use for evcc, so it is intentionally left out of the "identify" framing.
3. Power / current control loop during charging
Whether the protocol offers a practically usable closed-loop power/current regulation during the session:
CurrentDemandloop, EVSE sets the max current/power limit each ~150–200 ms; the EV followsCurrentDemandloopChargingStatusRescarries an optionalEVSEMaxCurrent(PhysicalValueType) that the EVSE may vary on every response cycle without renegotiation. Single scalar (no per-phase); SECC response budget 1,5 sEVSETargetActivePowersetpoint, no renegotiation; genuine per-phase limits (_L2/_L3); BPT can command dischargeTwo distinct mechanisms must not be confused:
EVSEMaxCurrentinChargingStatusRes— an instantaneous physical ceiling, freely changeable per cycle,no renegotiation, session not interrupted.
EVSENotification = ReNegotiation— the schedule/tariff path (newSAScheduleList/PMaxScheduleviaChargeParameterDiscovery). Only this one is the "coarse, slow" route.Takeaway: ISO 15118-2 does provide a usable dynamic AC current limit — finer in value resolution than
the PWM duty cycle and adjustable without touching it. Two caveats keep it from being categorically superior:
it is a single scalar applied per phase, exactly like the PWM (ISO 15118-2 has no per-phase fields —
per-phase
_L2/_L3arrive only with ISO 15118-20), and the standard mandates no minimum cadence (the SECCis allowed 1,5 s to answer
ChargingStatusRes, versus 25 ms for DCCurrentDemandRes), nor any deadline forthe EV to comply. Note also that PWM does not necessarily disappear: 5 % duty cycle is required for AC
Plug & Charge and for DC, but per
[V2G2-853]"if an EVSE receives positive authorization information from anEIM the EVSE shall apply a nominal duty cycle" — in AC + EIM the EV applies the smaller of the PWM and
EVSEMaxCurrentlimits.4. Battery capacity / energy
Optional fields (
EVEnergyCapacity,EVEnergyRequest,FullSOC,BulkSOCin −2/DIN;BatteryEnergyCapacityand Min/Target/Max-SoC in −20). In −2/DIN these are optional and frequently left empty by real vehicles, so a
charger cannot rely on them. −20 makes these first-class and reference-clear.
5. Bidirectional charging (V2X)
Only ISO 15118-20 supports bidirectional power transfer (BPT) — AC-BPT and DC-BPT enabling V2G/V2H/V2L, with
Scheduled and Dynamic control modes. DIN 70121 and ISO 15118-2 are charge-only. This is −20's headline addition
and is forward-looking for evcc.
References
Standards/technical sources used to compile the background above:
ISO 15118-2,
ISO 15118-20
EVgo — vehicle OEM interoperability best practices (EVCCID = fixed MAC)
evcc — ISO 15118 docs