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

- 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]>
Signed-off-by: Cornelius Claussen <[email protected]>
@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?

"t_step_X1 and disable 5 percent.");
internal_context.t_step_X1_return_state = target_state;
internal_context.t_step_X1_return_pwm = 0.;
internal_context.t_step_EF_return_ampere = 0.;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
internal_context.t_step_EF_return_ampere = 0.;
internal_context.t_step_X1_return_ampere = 0.;

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.

4 participants