]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
docs(readme): phrase coherent MeterValues docs in user-facing terms (#2060)
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 2 Aug 2026 13:18:39 +0000 (15:18 +0200)
committerGitHub <noreply@github.com>
Sun, 2 Aug 2026 13:18:39 +0000 (15:18 +0200)
Coherent MeterValues docs referenced simulator source symbols aimed at contributors,

not the operators/integrators the README serves. Rephrased to observable behavior:

- resolution scope: dropped getSampledValueTemplate and the random/fixed code-path reference

- OCPP 1.6 register: dropped getConfigurationKey/convertToBoolean and changelog phrasing

Documentation only; no behavior change.

README.md

index e4744b351676f96537867ec61a03449cce6e0ab2..15abb2f6aacf7a5754cea8527e986485c2548b74 100644 (file)
--- a/README.md
+++ b/README.md
@@ -488,14 +488,14 @@ The EV profile file is a JSON file referenced by the `evProfilesFile` template f
 
 A template file is available at [src/assets/ev-profiles-template.json](./src/assets/ev-profiles-template.json).
 
-**Template resolution scope.** When `coherentMeterValues` is `true`, EVSE-level `MeterValues` (when defined and non-empty) override connector-level definitions for every connector under that EVSE; connector-level `MeterValues` are used when the connector is not grouped under an EVSE (flat `Connectors` map station layout) or when the EVSE-level array is undefined or empty. Note: the coherent generator emits templates from exactly one source (EVSE-level or the queried connector) - unlike the random/fixed path's `getSampledValueTemplate`, it does not aggregate `MeterValues` across sibling connectors under the same EVSE.
+**Template resolution scope.** When `coherentMeterValues` is `true`, EVSE-level `MeterValues` (when defined and non-empty) override connector-level definitions for every connector under that EVSE; connector-level `MeterValues` are used when the connector is not grouped under an EVSE (flat `Connectors` map station layout) or when the EVSE-level array is undefined or empty. Note: each connector draws its `MeterValues` from a single source — the EVSE-level definition when it applies, otherwise the connector's own definition; definitions are never combined across sibling connectors of the same EVSE.
 
 **Phase-qualified measurands.** When a connector template carries a `phase` field, the coherent generator emits one `SampledValue` per matching template with phase-aware values:
 
 - `Voltage`: `L1-N`/`L2-N`/`L3-N` emit the sampled phase voltage; `L1-L2`/`L2-L3`/`L3-L1` emit `sqrt(phases) × sampled phase voltage` (unsupported when `phases < 2`); `N` emits 0.
 - `Power.Active.Import`: no phase emits total power; `L1-N`/`L2-N`/`L3-N` emit `P / phases`; line-to-line and `N` phases are unsupported and the template is skipped with a warning.
 - `Current.Import`: any line phase (`L1`/`L2`/`L3` or `L1-N`/`L2-N`/`L3-N`) emits `sample.currentA` (balanced 3-phase Y assumption); `N` emits 0; line-to-line phase is unsupported.
-- `Energy.Active.Import.Register`: no phase emits the aggregate register; `L1-N`/`L2-N`/`L3-N` emit `register / phases` (balanced 3-phase Y contribution per phase); line-to-line and `N` phases are unsupported. On OCPP 2.0.1 stations, when `SampledDataCtrlr.RegisterValuesWithoutPhases` is `true`, templates are grouped into identity families keyed by `(context, format, location, unit)`; within each family, per-phase L-N register templates are filtered out and, when a family has no aggregate template configured, an aggregate is synthesized from the first suppressed L-N of that family (phase cleared, other identity fields preserved) so the spec requirement "will only report the total energy over all phases" holds per family. On OCPP 1.6 stations the component-scoped configuration key is not present by default (`getConfigurationKey` returns `undefined`, `convertToBoolean(undefined) === false`), so current behavior is preserved.
+- `Energy.Active.Import.Register`: no phase emits the aggregate register; `L1-N`/`L2-N`/`L3-N` emit `register / phases` (balanced 3-phase Y contribution per phase); line-to-line and `N` phases are unsupported. On OCPP 2.0.1 stations, when `SampledDataCtrlr.RegisterValuesWithoutPhases` is `true`, templates are grouped into identity families keyed by `(context, format, location, unit)`; within each family, per-phase L-N register templates are filtered out and, when a family has no aggregate template configured, an aggregate is synthesized from the first suppressed L-N of that family (phase cleared, other identity fields preserved) so the spec requirement "will only report the total energy over all phases" holds per family. On OCPP 1.6 stations this configuration key is absent by default, so per-phase register filtering does not apply and each configured phase register is emitted as-is.
 - `SoC`: aggregate scalar; phase-qualified templates are skipped with a warning.
 
 ### Charging station configuration