Skip to content

OCPP: Make Availability/WebSocketPingInterval/ChargingProfile behavior configurable in DB‑only mode (Huawei chargers freeze otherwise) #31156

Description

@martin123schmid

Description:
In the current EVCC release (0.309.2), when running in DB‑only mode, EVCC always uses the embedded OCPP template from the binary.
During the OCPP connection handshake, EVCC automatically sends the following OCPP commands:

ChangeAvailability

SetWebSocketPingInterval

ChargingProfile updates before a valid transaction exists

These commands cannot be disabled or overridden in DB‑only mode.

Problem:
Some OCPP chargers — especially Huawei SCharger KT22‑S0 — do not support these commands or react very strictly to them.
This leads to:

failed configuring availability: Rejected

failed configuring WebSocketPingInterval: NotSupported

charger out of sync

failure to generate a valid TransactionId

OCPP state machine deadlocks

charger freeze requiring hardware reset

Root Cause:
In DB‑only mode, the following OCPP policy parameters cannot be configured or overridden:

availability

websocketpinginterval

stoptransactiononevsidedisconnect

stoptransactiononinvalidid

ChargingProfile behavior

EVCC also does not load local templates in DB‑only mode.
This makes it impossible to adjust OCPP behavior for chargers that require stricter sequencing.

Expected Behavior:
Even in DB‑only mode, EVCC should allow configuration of OCPP policy parameters, for example via:

additional keys in the configs table

a dedicated OCPP policy block in the loadpoint

or by allowing local templates to override embedded templates

Proposed Solution:
Add OCPP policy parameters to the DB configuration, such as:

availability

websocketpinginterval

stoptransactiononevsidedisconnect

stoptransactiononinvalidid

ChargingProfile handling options

Allow EVCC to load local templates even in DB‑only mode (if present).

Optionally: support a DB key to override the embedded OCPP template.

Benefits:
Full compatibility with strict OCPP chargers (Huawei, ABB, etc.)

No more charger freezes or TransactionId deadlocks

EVCC remains fully functional in DB‑only mode

No need to switch back to YAML configuration

Future‑proof, since EVCC is clearly moving toward DB‑only operation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions