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.
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)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 followsCurrentDemandloopChargingStatusloop carries no setpoint; changing power requires a full renegotiation (coarse, slow). The real AC limiter remains the PWMEVSETargetActivePowersetpoint, no renegotiation; BPT can command dischargeTakeaway: on AC, the real power regulation is always the IEC 61851-1 PWM duty cycle — which every AC
charger does. So "dynamic power control" is not a distinguishing benefit of the
iso15118-2/din70121tags. The only genuinely new control capability in this family is ISO 15118-20's Dynamic mode + BPT
(real-time setpoints and bidirectional charging).
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