What's New1.6.4 - Subscription API – 1.6.4

PlugStream Change Logs

PlugStream is continuously updated to improve reliability, security, and user experience. This page provides a transparent record of every software and firmware release, including what changed and why it matters.

Latest

OCPP Core V1.6 2.29.0

Ocpp Core V1.6 – 2.29.0

2.29.0
Tests: passed (512/512)
Service
September 27, 2026
Tags
#OCPP Core v1.6

Ocpp Core V1.6 – 2.29.0

Features

  • firmware: report superseded rollout jobs; retire a removed device's job (809d6ee)
  • authorize: decide idTokens in the backend, in shadow until enforced (46036b2)
  • shared: carry the owning tenant on a PortalRequest (429e16a)
  • firmware: hold a paused rollout's jobs; expire a job unsent after 7 days (b06d42f)

Bug Fixes

  • ocppcore: retire the legacy smart-charging consumer (a807a79)
  • ci: promote the image built from the promoted commit (e687b02)
  • ci: run the ocpp-core v16, v21 and mock-db tests, and test feature branches (5229a21)
  • firmware: fail a job the station goes silent on, and publish it (f1c582e)
  • firmware: map every firmware status explicitly so failed installs fail the job (a0bed94)
  • ocpp16: a late MeterValues or a repeated StopTransaction leaves a closed session alone (e7b0ab0)
  • ocpp16: find a transaction by station and id, not by tenant (e7d8a79)
  • ocpp16: the Ended event carries the stop register, and the session energy beside it (f22417c)
  • ocpp201: bind NotifyEVChargingNeeds under the action name the gateway publishes (c134818)
  • ocpp21: answer every station message with a schema-valid reply (497d3dd)
  • ocpp21: carry the station's reply on 2.1 command results (f1a1c75)
  • ocpp21: record 2.1 station state through the 2.0.1 persistence (3a40d1c)
  • ocpp: check for a live gateway consumer with a passive declare (8d637af)
  • ocppcore: a failed last_seen lookup no longer panics the consumer (9445188)
  • ocppcore: a panic no longer stops an OCPP queue for good (2b4d9d6)
  • ocppcore: always answer a station's CALL, and keep replies off request handlers (d17f701)
  • ocppcore: answer a repeated 1.6 StartTransaction with the transaction it already opened (b9bfff2)
  • ocppcore: bound the platform command action map (3dc0eed)
  • ocppcore: carry TransactionEvent offline and seqNo into the platform event (41cc0ce)
  • ocppcore: compile what the 2.1 core now shares with 2.0.1 (3892daf)
  • ocppcore: defer a station's messages until its tenant is known (c10f3ba)
  • ocppcore: deliver platform command results at least once (d21072b)
  • ocppcore: give every platform command an expiry; never dispatch an expired one (be701d7)
  • ocppcore: keep the 2.1 firmware status mapping as a test-only guard (1e30855)
  • ocppcore: make sea-orm's mock an opt-in feature, not a dev-dependency (92c7975)
  • ocppcore: never cache a failed tenant lookup; serve the last known tenant (e172998)
  • ocppcore: prune published outbox rows, the OCPP audit log and meter values (597c486)
  • ocppcore: report 1.6 RebootRequired and AcceptedCanceled as accepted (48564f2)
  • ocppcore: report a platform command that cannot be sent, before dropping it (c1ccc53)
  • ocppcore: stop labelling metrics by charge point (8638235)
  • ocppcore: the 1.6 DataTransfer handler ignores replies to platform commands (c416396)
  • ocpp: judge presence on the persisted last_seen and drop the online triggers nothing sent (2f33393)
  • ocpp: meter_kwh is the Outlet energy register, whatever order and unit it comes in (f93c3f4)
  • reconcile: outages no longer park stations, and one sweep runs at a time (f47e208)
  • site-control: judge the site master stale on receive time and its real cadence (d5bacd2)
  • site-control: send a changed cap on the recalculation that computes it (d048039)
  • ocppcore: SmartCharging with no managed plan yet is not runtime drift (ed3cd4b)
  • readiness: carry configuredMaxAmps and every undeclared key through to the platform (f4777f5)

Performance & SLO

SLO Targets:
P95 < 200msP99 < 500msAvailability > 99.5%