test(ocpp-server): add TransactionEvent handler
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 11 Jun 2024 19:29:49 +0000 (21:29 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 11 Jun 2024 19:29:49 +0000 (21:29 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
tests/ocpp-server/server.py

index db438259b38c623369d0609278a0b698bcbf0ce9..c8748763129300dbe54de6980f159ad784a57952 100644 (file)
@@ -7,6 +7,7 @@ import ocpp.v201
 import websockets
 from ocpp.routing import on
 from ocpp.v201.enums import RegistrationStatusType, ClearCacheStatusType, AuthorizationStatusType, \
+    TransactionEventType, \
     Action
 
 # Setting up the logging configuration to display debug level messages.
@@ -53,6 +54,22 @@ class ChargePoint(ocpp.v201.ChargePoint):
         return ocpp.v201.call_result.Authorize(
             id_token_info={'status': AuthorizationStatusType.accepted})
 
+    @on(Action.TransactionEvent)
+    async def on_transaction_event(self, event_type, timestamp, trigger_reason, seq_no,
+                                   transaction_info, **kwargs):
+        match event_type:
+            case TransactionEventType.started:
+                logging.info("Received TransactionEvent Started")
+                return ocpp.v201.call_result.TransactionEvent(
+                    id_token_info={'status': AuthorizationStatusType.accepted})
+            case TransactionEventType.updated:
+                logging.info("Received TransactionEvent Updated")
+                return ocpp.v201.call_result.TransactionEvent(
+                    total_cost=10)
+            case TransactionEventType.ended:
+                logging.info("Received TransactionEvent Ended")
+                return ocpp.v201.call_result.TransactionEvent()
+
     @on(Action.MeterValues)
     async def on_meter_values(self, evse_id, meter_value, **kwargs):
         logging.info("Received MeterValues")