@@ -190,12 +190,10 @@ void OCPP::process_session_event(int32_t evse_id, const types::evse_manager::Ses
190190 if (session_event.event == types::evse_manager::SessionEventEnum::Enabled) {
191191 this ->charge_point ->on_enabled (evse_id);
192192 } else if (session_event.event == types::evse_manager::SessionEventEnum::Disabled) {
193- EVLOG_debug << " EVSE#" << evse_id << " : "
194- << " Received Disabled" ;
193+ EVLOG_debug << " EVSE#" << evse_id << " : " << " Received Disabled" ;
195194 this ->charge_point ->on_disabled (evse_id);
196195 } else if (session_event.event == types::evse_manager::SessionEventEnum::TransactionStarted) {
197- EVLOG_info << " EVSE#" << evse_id << " : "
198- << " Received TransactionStarted" ;
196+ EVLOG_info << " EVSE#" << evse_id << " : " << " Received TransactionStarted" ;
199197 const auto transaction_started = session_event.transaction_started .value ();
200198
201199 const auto timestamp = ocpp_conversions::to_ocpp_datetime_or_now (session_event.timestamp );
@@ -216,26 +214,21 @@ void OCPP::process_session_event(int32_t evse_id, const types::evse_manager::Ses
216214 this ->charge_point ->on_transaction_started (ocpp_connector_id, session_event.uuid , id_token, energy_Wh_import,
217215 reservation_id_opt, timestamp, signed_meter_data);
218216 } else if (session_event.event == types::evse_manager::SessionEventEnum::ChargingPausedEV) {
219- EVLOG_debug << " Connector#" << ocpp_connector_id << " : "
220- << " Received ChargingPausedEV" ;
217+ EVLOG_debug << " Connector#" << ocpp_connector_id << " : " << " Received ChargingPausedEV" ;
221218 this ->charge_point ->on_suspend_charging_ev (ocpp_connector_id);
222219 } else if (session_event.event == types::evse_manager::SessionEventEnum::ChargingPausedEVSE or
223220 session_event.event == types::evse_manager::SessionEventEnum::WaitingForEnergy) {
224- EVLOG_debug << " Connector#" << ocpp_connector_id << " : "
225- << " Received ChargingPausedEVSE" ;
221+ EVLOG_debug << " Connector#" << ocpp_connector_id << " : " << " Received ChargingPausedEVSE" ;
226222 this ->charge_point ->on_suspend_charging_evse (ocpp_connector_id);
227223 } else if (session_event.event == types::evse_manager::SessionEventEnum::SwitchingPhases) {
228- EVLOG_debug << " Connector#" << ocpp_connector_id << " : "
229- << " Received SwitchingPhases" ;
224+ EVLOG_debug << " Connector#" << ocpp_connector_id << " : " << " Received SwitchingPhases" ;
230225 this ->charge_point ->on_suspend_charging_evse (ocpp_connector_id, SWITCHING_PHASES_REASON);
231226 } else if (session_event.event == types::evse_manager::SessionEventEnum::ChargingStarted ||
232227 session_event.event == types::evse_manager::SessionEventEnum::ChargingResumed) {
233- EVLOG_debug << " Connector#" << ocpp_connector_id << " : "
234- << " Received ChargingResumed" ;
228+ EVLOG_debug << " Connector#" << ocpp_connector_id << " : " << " Received ChargingResumed" ;
235229 this ->charge_point ->on_resume_charging (ocpp_connector_id);
236230 } else if (session_event.event == types::evse_manager::SessionEventEnum::TransactionFinished) {
237- EVLOG_debug << " Connector#" << ocpp_connector_id << " : "
238- << " Received TransactionFinished" ;
231+ EVLOG_debug << " Connector#" << ocpp_connector_id << " : " << " Received TransactionFinished" ;
239232
240233 const auto transaction_finished = session_event.transaction_finished .value ();
241234 const auto timestamp = ocpp_conversions::to_ocpp_datetime_or_now (session_event.timestamp );
@@ -262,16 +255,14 @@ void OCPP::process_session_event(int32_t evse_id, const types::evse_manager::Ses
262255 energy_Wh_import, id_tag_opt, signed_meter_data);
263256 // always triggered by libocpp
264257 } else if (session_event.event == types::evse_manager::SessionEventEnum::SessionStarted) {
265- EVLOG_info << " Connector#" << ocpp_connector_id << " : "
266- << " Received SessionStarted" ;
258+ EVLOG_info << " Connector#" << ocpp_connector_id << " : " << " Received SessionStarted" ;
267259 // ev side disconnect
268260 auto session_started = session_event.session_started .value ();
269261 this ->charge_point ->on_session_started (ocpp_connector_id, session_event.uuid ,
270262 conversions::to_ocpp_session_started_reason (session_started.reason ),
271263 session_started.logging_path );
272264 } else if (session_event.event == types::evse_manager::SessionEventEnum::SessionFinished) {
273- EVLOG_debug << " Connector#" << ocpp_connector_id << " : "
274- << " Received SessionFinished" ;
265+ EVLOG_debug << " Connector#" << ocpp_connector_id << " : " << " Received SessionFinished" ;
275266 // ev side disconnect
276267 this ->evse_soc_map [evse_id].reset ();
277268 this ->charge_point ->on_session_stopped (ocpp_connector_id, session_event.uuid );
@@ -338,6 +329,18 @@ void OCPP::init_evse_subscriptions() {
338329
339330 this ->process_session_event (evse_id, session_event);
340331 });
332+
333+ evse->subscribe_powermeter_public_key_ocmf ([this , evse_id](std::string public_key_ocmf) {
334+ if (!this ->started ) {
335+ this ->event_queue .emplace (evse_id, PowermeterPublicKey{public_key_ocmf});
336+ return ;
337+ }
338+
339+ if (!this ->charge_point ->set_powermeter_public_key (evse_id, public_key_ocmf)) {
340+ EVLOG_error << " Failed to set powermeter public key for evse_id: " << evse_id;
341+ }
342+ });
343+
341344 evse_id++;
342345 }
343346
@@ -1077,6 +1080,9 @@ void OCPP::ready() {
10771080 [&](const types::system::FirmwareUpdateStatus& fw) {
10781081 charge_point->on_firmware_update_status_notification (
10791082 fw.request_id , conversions::to_ocpp_firmware_status_notification (fw.firmware_update_status ));
1083+ },
1084+ [&](const PowermeterPublicKey public_key) {
1085+ this ->charge_point ->set_powermeter_public_key (queued_event.evse_id , public_key.value );
10801086 }},
10811087 queued_event.data );
10821088 }
0 commit comments