Skip to content

OCPP: don't treat SuspendedEVSE as disabled when schedule limit is set#29861

Draft
GrimmiMeloni wants to merge 1 commit into
evcc-io:masterfrom
GrimmiMeloni:fix/ocpp-suspended-evse-enabled
Draft

OCPP: don't treat SuspendedEVSE as disabled when schedule limit is set#29861
GrimmiMeloni wants to merge 1 commit into
evcc-io:masterfrom
GrimmiMeloni:fix/ocpp-suspended-evse-enabled

Conversation

@GrimmiMeloni
Copy link
Copy Markdown
Collaborator

Some chargers (e.g. Easee in OCPP mode) remain in SuspendedEVSE for several minutes after being enabled at minimum current before actually starting to charge. The hard-coded return false for SuspendedEVSE caused the loadpoint to detect a false "out of sync" after the 60s grace period, flipping the charger state to disabled.

Remove the SuspendedEVSE short-circuit so Enabled() falls through to the schedule limit / offered measurand checks, which correctly distinguish "limit 0 = truly disabled" from "limit > 0 = enabled but waiting for EV".

@GrimmiMeloni GrimmiMeloni requested a review from premultiply May 13, 2026 18:06
@GrimmiMeloni GrimmiMeloni self-assigned this May 13, 2026
@premultiply
Copy link
Copy Markdown
Member

That would compromise compatibility with many other chargers. So I wouldn’t want to do it that way.

For some boxes, SuspendedEVSE is the only way to reliably check whether Enabled is set to false.

@GrimmiMeloni
Copy link
Copy Markdown
Collaborator Author

That would compromise compatibility with many other chargers. So I wouldn’t want to do it that way.
For some boxes, SuspendedEVSE is the only way to reliably check whether Enabled is set to false.

I had a hunch this might be the case.
I am curious though - given we control the the limit, isn't our way of enabling/disabling the charger setting the limit?

Assuming a charger has accepted a non-0 limit, isn't it then "enabled" in evcc's sense - independent of wether an actual charge is ongoing?

Some chargers (e.g. Easee in OCPP mode) remain in SuspendedEVSE for
several minutes after being enabled at minimum current before actually
starting to charge. The hard-coded return false for SuspendedEVSE
caused the loadpoint to detect a false "out of sync" after the 60s
grace period, flipping the charger state to disabled.

Remove the SuspendedEVSE short-circuit so Enabled() falls through to
the schedule limit / offered measurand checks, which correctly
distinguish "limit 0 = truly disabled" from "limit > 0 = enabled but
waiting for EV".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@GrimmiMeloni GrimmiMeloni force-pushed the fix/ocpp-suspended-evse-enabled branch from 9364b12 to ff87673 Compare May 16, 2026 06:42
@github-actions github-actions Bot added the stale Outdated and ready to close label May 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale Outdated and ready to close

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants