Skip to content

Conversation

@corneliusclaussen
Copy link
Contributor

  • Improve compatibility for AC ISO-2 5% w/X1 fallback
  • Fix auth before plugin to use nominal right from beginning
  • PnC: Use EF fallback to nominal if charging loop does not start after auth within timeout

Describe your changes

Issue ticket number and link

Checklist before requesting a review

  • I have performed a self-review of my code
  • I have made corresponding changes to the documentation
  • I read the contribution documentation and made sure that my changes meet its requirements

@Pietfried
Copy link
Contributor

I tested Plug&Charge in the SIL with it and I see multiple TransactionStarted events issued by the EvseManager until we reach the AC chargeloop

2025-12-05 13:34:36.343599 [INFO] auth:Auth        :: Providing authorization to evse#1
2025-12-05 13:34:36.460274 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:36.460502 [INFO] evse_manager_1:  :: EVSE ISO V2G AuthorizationRes
2025-12-05 13:34:36.461202 [INFO] auth:Auth        :: Result for token: [redacted] hash: 772A94DA47EE0039: USED_TO_START_TRANSACTION
2025-12-05 13:34:36.461574 [INFO] evse_manager_1:  :: EVSE IEC PnC Authorization received
2025-12-05 13:34:36.462528 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:36.604671 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:36.606013 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:36.606317 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:36.606346 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:36.748292 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:36.749753 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:36.750053 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:36.750086 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:36.891840 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:36.893442 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:36.893720 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:36.893745 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:36.977108 [INFO] evse_manager_1:  ::                                     CAR ISO V2G AuthorizationReq
2025-12-05 13:34:37.035219 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.036627 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.036909 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.036952 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.076422 [INFO] evse_manager_1:  :: EVSE ISO V2G AuthorizationRes
2025-12-05 13:34:37.178976 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.181271 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.181676 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.181725 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.321461 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.322982 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.323216 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.323242 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.464100 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.465952 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.466209 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.466235 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID

2025-12-05 13:34:37.581246 [INFO] iso15118_charge  :: Parameter-phase started

2025-12-05 13:34:37.582179 [INFO] iso15118_charge  :: Selected energy transfer mode: AC_three_phase_core

2025-12-05 13:34:37.582207 [INFO] iso15118_charge  :: before adjusting for departure time, max_current 32.000000, nom_voltage 230, pmax 22080, departure_duration 86400
2025-12-05 13:34:37.606675 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.608635 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.608877 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.608900 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.708122 [INFO] evse_manager_1:  ::                                     CAR ISO V2G ChargeParameterDiscoveryReq
2025-12-05 13:34:37.708280 [INFO] evse_manager_1:  :: EVSE ISO V2G ChargeParameterDiscoveryRes
2025-12-05 13:34:37.723696 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.727300 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.727664 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.727712 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.867666 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:37.869136 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:37.869372 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:37.869395 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.012244 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.013582 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.013832 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.013860 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.156000 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.157968 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.158216 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.158241 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.197573 [INFO] evse_manager_1:  ::                                     CAR IEC Event CarRequestedPower

2025-12-05 13:34:38.228719 [INFO] iso15118_charge  :: Waiting for contactor is closed
2025-12-05 13:34:38.239654 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.241586 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.241831 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.241855 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.281507 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.282127 [INFO] evse_manager_1:  ::                                     CAR IEC B->C transition before PWM is enabled at this stage violates IEC61851-1
2025-12-05 13:34:38.283369 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.283602 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.283637 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.323530 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.325032 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.325318 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.325347 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.365585 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.366218 [INFO] evse_manager_1:  ::                                     CAR ISO AC HLC Close contactor
2025-12-05 13:34:38.367110 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.367363 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.367396 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.508418 [INFO] evse_manager_1:  :: EVSE IEC Transaction Started (0 kWh)
2025-12-05 13:34:38.509071 [INFO] evse_manager_1:  :: EVSE IEC AC mode, HLC, PnC auth received. We will continue with 5percent as HLC charing loop was started.
2025-12-05 13:34:38.509186 [INFO] evse_manager_1:  :: EVSE IEC Charger state: Wait for Auth->PrepareCharging
2025-12-05 13:34:38.509461 [INFO] evse_manager_1:  :: EVSE IEC Set PWM On (5.0%) took 0 ms
2025-12-05 13:34:38.510256 [INFO] ocpp:OCPP        :: EVSE#1: Received TransactionStarted
2025-12-05 13:34:38.510886 [ERRO] ocpp:OCPP       virtual everest::db::sqlite::Statement::~Statement() :: Error finalizing statement: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.510936 [WARN] ocpp:OCPP       void ocpp::v16::ChargePointImpl::start_transaction(std::shared_ptr<ocpp::v16::Transaction>) :: Could not insert transaction with session_id 765e32d7-cc32-4a85-8e2a-f69e470e3cee into database: UNIQUE constraint failed: TRANSACTIONS.ID
2025-12-05 13:34:38.594781 [INFO] evse_manager_1:  :: EVSE IEC Charger state: PrepareCharging->Charging
2025-12-05 13:34:38.685831 [INFO] evse_manager_1:  :: EVSE IEC Event PowerOn

2025-12-05 13:34:38.686609 [WARN] iso15118_charge void dlog_func(dloglevel_t, const char*, int, const char*, const char*, ...) :: Response message (type 14) not configured within 98 ms (took 458 ms)
2025-12-05 13:34:38.727491 [INFO] evse_manager_1:  ::                                     CAR ISO V2G PowerDeliveryReq
2025-12-05 13:34:38.727783 [INFO] evse_manager_1:  :: EVSE ISO V2G PowerDeliveryRes
2025-12-05 13:34:39.224286 [INFO] evse_manager_1:  ::                                     CAR ISO V2G ChargingStatusReq
2025-12-05 13:34:39.322452 [INFO] evse_manager_1:  :: EVSE ISO V2G ChargingStatusRes
2025-12-05 13:34:39.860238 [INFO] evse_manager_1:  ::                                     CAR ISO V2G ChargingStatusReq

@corneliusclaussen
Copy link
Contributor Author

I tested Plug&Charge in the SIL with it and I see multiple TransactionStarted events issued by the EvseManager until we reach the AC chargeloop

Interesting, need to look into this. I tested with real vehicles but without OCPP.

@jobm-lg
Copy link

jobm-lg commented Dec 11, 2025

This is totally awesome and exactly what we need! When would this realistically be expected in a future release?

@jobm-lg
Copy link

jobm-lg commented Jan 12, 2026

Why is there no movement here for a month? Or even a reply?

@barsnick
Copy link
Contributor

Why is there no movement here for a month? Or even a reply?

Funny, just today, I am checking this PR. We (chargebyte GmbH) have been using these modifications to build our EvseManager refactoring on top of. I was checking whether it had already been merged.

We weren't aware of Piet's comment #1589 (comment) though, and haven't tested that.

Pietfried
Pietfried previously approved these changes Jan 12, 2026
Pietfried
Pietfried previously approved these changes Jan 12, 2026
barsnick pushed a commit to chargebyte/everest-core that referenced this pull request Jan 12, 2026
- Improve compatibility for AC ISO-2 5% w/X1 fallback
- Fix auth before plugin to use nominal right from beginning
- PnC: Use EF fallback to nominal if charging loop does not start after auth within timeout

Taken from EVerest#1589 (unmerged as of 2026-01-12)

Signed-off-by: Cornelius Claussen <[email protected]>
@Pietfried Pietfried force-pushed the feat/improve_ac_pnc branch from c3926f1 to 71300e4 Compare February 3, 2026 07:38
- Improve compatibility for AC ISO-2 5% w/X1 fallback
- Fix auth before plugin to use nominal right from beginning
- PnC: Use EF fallback to nominal if charging loop does not start after auth within timeout

Signed-off-by: Cornelius Claussen <[email protected]>
Co-authored-by: Piet Gömpel <[email protected]>
@corneliusclaussen corneliusclaussen added this pull request to the merge queue Feb 3, 2026
Merged via the queue into main with commit 3b8a65b Feb 3, 2026
11 of 12 checks passed
@corneliusclaussen corneliusclaussen deleted the feat/improve_ac_pnc branch February 3, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants