OCPP Version
OCPP2.0.1
Describe the problem
Currently we must choose the evse and connector when starting a transaction even if we are authorizing first and do not necessarily need to.
If possible it would be great to add more flexibility to libocpp.
This request comes from issue #761
Describe your solution
This requires a large refactoring of the on_authorized, on_transaction_started, on_charging_state_changed. This most likely requires some additional checks for any side effects with reservations, as well as methods related to getting the transaction id from the evse id. This logic would have to be checked again.
This will probably require some changes in the EvseManager as well.
A solution would be to return the transaction id when we call on_transaction_started so that it can be used when on_authorized or on_charging_state_changed is called later on.
Additional context
No response