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
PlugStream Firmware 1.71.1
PlugStream Firmware 1.71.1
1.71.1Stable
Recommended for production deployments.
Tests: passed (1240/1240)Coverage: 78.4%
Firmware
September 27, 2026
Supported devices
#PlugStream 7
#PlugStream 22
PlugStream Firmware 1.71.1
Bug Fixes
auth: keep a token's 2.1 type, and never default a session token to Central (ccc4e3e)
audit: follow long calls, and audit the WebSocket client task (6099bc3)
auth: a pending RemoteStart wins over the auto token in every mode (4013e7a)
auth: a reset hold lapses if the reboot never comes (30bf1ad)
auth: admit a group's members to a group reservation (de2601c)
auth: keep the station's auto token when SendLocalList replaces the list (c34c573)
auth: report a session's idToken with the type it was authorised as (0b4436c)
evse: a network drop no longer ends a running start-of-session wait (8471d70)
evse: Charge now after a stop resumes the open transaction (d66d4ef)
evse: EVConnectionTimeOut defaults to 120 s (d931abc)
evse: hold authorisation from a reset's end of session until the reboot (15873ca)
evse: hold the connector after an unlock only if it released (9a0048f)
evse: time out a remote start whose EV never connects, and clear it whole (8dfe3c1)
hal: the WiFi scan worker no longer stops the radio from its PSRAM stack (6df2b5c)
ocpp16: a CSMS transactionId of -1 is a transaction, not a given-up start (4b18ce3)
ocpp16: a failed routing read no longer closes a session that is still charging (c36101a)
ocpp16: deliver every transaction record, once, whatever the CSMS answers (1de588f)
ocpp16: keep the transaction id of a StartTransaction.conf with no usable status (bddb199)
ocpp16: record nothing a given-up start can never send, and drop the rest at once (2cf4f96)
ocpp21: apply an AuthorizeResponse to the session it answers (01e50fe)
ocpp21: keep 2.1 profiles enforced on older links, and say so (fafbc37)
ocpp21: let a dynamic schedule update raise its profile's limit (134a6ab)
ocpp21: measure charging-profile offline time on the monotonic clock (1871876)
ocpp21: measure transaction limits and session time on one monotonic clock (c4f46fd)
ocpp21: only pull dynamic schedule updates on a 2.1 link (1eed514)
ocpp: a broken 1.6 store no longer disables the 2.x journal or blocks 1.6 for good (a9a387e)
ocpp: a remote start never re-points a running session (b948402)
ocpp: a transaction event carried as its frame keeps its place in line (0b3ac3c)
ocpp: accept a 1.6 Charge now on a running session, as 2.x does (9581378)
ocpp: an exception in a journal divert no longer taints later sends (c1ffc36)
ocpp: deliver the transaction events older firmware parked for ever (b07bc4f)
ocpp: end transactions with a stoppedReason the schemas define (dfec9b5)
ocpp: journal transaction events when they happen, not when sent (8d794e4)
ocpp: never spend transaction delivery attempts on a dead link (b9d0971)
ocpp: report authorisation and charging-state changes truthfully; end a session before a reset (7976afd)
ocpp: report remote starts and stops as RemoteStart and RemoteStop again (b828414)
ocpp: report the AuthCtrlr behaviour the station actually has (394901d)
ocpp: report this boot's reason only until a CSMS accepts it (7100c50)
smartcharging: a CSMS TxDefaultProfile can only lower the UK default in RegulationCompliance (8e1cf0f)
smartcharging: an expired profile no longer conflicts with its successor (def362c)
smartcharging: apply CSMS TxDefaultProfiles at stack levels the product does not own (3cd7aa6)
smartcharging: clear only the purpose asked for in the shared station-limit bucket (75fc6bc)
smartcharging: convert watt limits with the phases this station draws on (3f97e44)
smartcharging: delete a transaction's TxProfiles when it ends (909d11f)
smartcharging: fall through to the next stack level when a profile is not running (86c4e55)
smartcharging: hold the SQLite gate across charging-profile transactions (0ff0770)
smartcharging: include the station's own ceiling in GetCompositeSchedule (8cbc042)
smartcharging: keep a station-wide TxDefaultProfile at evseId 0 (2df0d70)
smartcharging: let an accepted Charge Now start the session it was sent into (24c0082)
smartcharging: re-evaluate the start-of-session profile wait while waiting (d90203e)
smartcharging: stop accepting profiles the station would mis-apply (fc8952d)
system-monitor: websocket_task's stack is in PSRAM (e14ce95)
websocket: a deliberate client teardown takes the link down (0f21746)
websocket: divert to the journal under the queue-ops lock, not across flash (a61adea)
websocket: keep command replies across a reconnect to the same CSMS (7b15dfc)
websocket: keep failover usable and register with each new CSMS (c287db1)
ocpp16: count an unanswered transaction record, and return one the queue drops (a397032)
ocpp16: name the session in readiness by the id the CSMS stops it by (6eeb08b)
ocpp21: report a transactionLimit stop as the limit, and end it with the limit's reason (c820fa7)
ocpp21: resume a transaction when the CSMS raises the limit that suspended it (e2a9968)
smartcharging: never report an expired charging profile (08f2baf)
websocket: answer a CSMS CALL only on the CSMS that sent it (8ae0ab9)
websocket: hold the station's own messages at the Pending gate (def20ee)
smartcharging: apply the UK default in SmartCharging until a managed plan is valid (38a92d0)
Features
ocpp16: expose the charging mode as the ChargingMode configuration key (b276426)
ocpp: accept the CSMS's rotated claim code (SetClaimCredentials) (a4c13c7)