github SAP/e-mobility-charging-stations-simulator simulator@v4.11.0
simulator: v4.11.0

latest releases: v4.12, v4, ocpp-server@v4.12.0...
one month ago

4.11.0 (2026-07-27)

๐Ÿš€ Features

  • meter-values: coherent MeterValues generator (issue #40) (#1935) (b907992)
  • meter-values: evse-level MeterValues template fallback in coherent path (issue #1936 g) (#1944) (a0cdcfc)
  • meter-values: honor RegisterValuesWithoutPhases in coherent path (issue #1936 k) (#1942) (2cbd92d)
  • ocpp16: wire signed meter values into trigger + broadcast paths (issue #1936 d) (#1945) (4b421f2)
  • ui-server: add opt-in HSTS response header (#1980) (#2039) (74fae39)
  • worker: terminate a deleted station's worker once it hosts zero elements (#2027) (#2038) (75897eb)

๐Ÿž Bug Fixes

  • atg: invalidate configurationValidationResult on ChargingStationEvents.updated (#1977) (56479e4)
  • charging-station: cancel a pending reset when the station is deleted (#2027) (#2031) (2b48cf8)
  • charging-station: re-dial after a server-initiated connection close (#2021) (6f7bcb6)
  • charging-station: retain creation options so a reset keeps station identity (#2019) (723aab3)
  • deps: update all non-major dependencies (#1933) (f50a68e)
  • deps: update all non-major dependencies (#1996) (9b1b8e8)
  • deps: update all non-major dependencies (#2007) (1703e73)
  • deps: update all non-major dependencies (#2030) (1945ea3)
  • deps: update all non-major dependencies (#2034) (ee3db96)
  • deps: update all non-major dependencies (#2042) (f08aae5)
  • deps: update all non-major dependencies (#2045) (250e359)
  • meter-values: physics refinements - 3-phase-only L-L voltage guard + energyRegisterWh docstring (issue #1936 h) (#1941) (c471bd9)
  • ocpp20: trigger meterValues path emits MeterValuesRequest per F06.FR.06 (issue #1936 j) (#1943) (66890b0)
  • ocpp: cancel deferred OCPP 1.6 firmware setTimeout on stop() (#1984) (2e69125), closes #1972
  • ocpp: cross-check OCPP 1.6 lifecycle flags in trigger, re-entry, and simulation entry (#1987) (0ed90b1), closes #1973
  • ocpp: drive FirmwareStatusNotification trigger from last-sent notification (L01.FR.26) (#1981) (e406ab2), closes #1979
  • ocpp: from-zero audit โ€” Critical + High spec conformance and safety fixes (#1961) (6da3e6f)
  • ocpp: guard OCPP 1.6 UpdateFirmware deferred-timer schedule against sealed state writes (#1994) (247fef2)
  • ocpp: guard post-stop() handler dispatch against WeakMap resurrection (#1992) (4fce19a)
  • ocpp: implement OCPP 1.6 GetDiagnostics supersession via AbortController (#1991) (4d1d2d8)
  • ocpp: reject charging profiles by EVSE existence and isolate non-persistent station configuration (#2022, #2024) (#2025) (aba5375)
  • ocpp: reset stationInfo.firmwareStatus on abort/exception in simulateFirmwareUpdateLifecycle (#1976) (4f959e9), closes #1969
  • ocpp: support TriggerMessage(TransactionEvent) per F06.FR.07 (#2013) (22dcb31), closes #2012
  • ui-server: dedup duplicate station identity on add (#2026) (#2032) (44c2a0a)
  • ui-server: defer HTTP broadcast responses until worker replies aggregate (#2028) (#2037) (d8fb33b)
  • ui-server: make UI broadcast-channel commands complete reliably (#2018) (#2020) (6119452)
  • ui-server: reconcile evses wire type so /metrics works on OCPP 2.0.x (#2048) (afdf433)
  • ui-server: reject reused in-flight WebSocket request ids (#2029) (#2033) (de0e86f)
  • utils: clamp computeExponentialBackOffDelay output to setTimeout-safe range (#1951) (a91880a)

โœจ Polish

  • audit backlog cleanup โ€” JSDoc gaps, physics warning, ATG robustness, comment sweep (#1962) (040ddb3)
  • audit-driven cleanup โ€” OCPP conformance fixes, physics, harmonization (#1960) (f8d8e03)
  • audit-driven cleanup (OCPP 2.0 spec conformance + 5 low-risk refactors) (#1959) (22cb25f)
  • charging-station,meter-values: close #1936 (M-08 + f-2..f-5 + M-09) (#1949) (9c8261e)
  • charging-station: extract reservation helpers from Helpers.ts (issue #1936 f Phase 1) (#1946) (f03e7f3)
  • close barrel gaps for ui-server, broadcast-channel, DEFAULT_PERSIST_STATE (#1952) (a7a3ee2)
  • code-quality cleanup โ€” utils usage, logic consolidation, export hygiene (#2036) (2bee489)
  • complete barrel-gap scope โ€” extract host-parsing utilities and expose AbstractUIServer (daad8a9)
  • complete barrel-gap scope โ€” extract host-parsing utilities and expose AbstractUIServer (#1954) (daad8a9)
  • convention alignment โ€” helpers, constants, imports, tests (#1950) (0b0352f)
  • convention alignment round 2 โ€” canonical defaults, helpers, dead exports, tests (#1956) (e0a50c5)
  • meter-values: extract CoherentMeterValuesManager, shrink ICoherentContext, split OCPP16 begin helper (issue #1936 items a, b, e) (#1937) (1986b39)
  • meter-values: rename Prng.ts to PRNG.ts (issue #1936 c) (#1940) (11cc0a3)
  • meter-values: split CoherentMeterValuesGenerator into three modules (issue #1936 item i) (#1938) (53b747b)
  • migrate external deep imports to ui-server and broadcast-channel barrels (#1953) (b4b5a5e)
  • ocpp20: rewrite H9/H10/H11 + C10/C12 audit markers as descriptive comments (issue #1936 l) (#1939) (a68ca80)
  • ocpp: extract per-station state plumbing into shared OCPPIncomingRequestService base (#1983) (0fff8b2)
  • ocpp: remove as-unknown-as double-casts from request/response dispatch (#2003) (4dd00ce), closes #1968
  • ocpp: use iterateConnectors() in OCPP 1.6 incoming request service (#2015) (27093f1), closes #2014
  • utils: swap getRandomFloat(Rounded) params to (min, max) for consistency (#1998) (bc003cc), closes #1967

๐Ÿงช Tests

  • ocpp-server: add OCPP 1.6 mock server and extend reservation coverage (#2047) (82ae6d1)
  • ocpp: cover OCPP 2.0.1 log/firmware lifecycle supersession and cleanup paths (#1997) (aa8e402)
  • use shared constants and enums instead of hardcoded literals (#2040) (503d71c)

Don't miss a new e-mobility-charging-stations-simulator release

NewReleases is sending notifications on new releases.