diff --git a/packages/control/chargepoint/chargepoint.py b/packages/control/chargepoint/chargepoint.py index ac94d529e5..656e33960a 100644 --- a/packages/control/chargepoint/chargepoint.py +++ b/packages/control/chargepoint/chargepoint.py @@ -702,12 +702,18 @@ def update(self, ev_list: Dict[str, Ev]) -> None: # OCPP Start Transaction nach Anstecken if ((self.data.get.plug_state and self.data.set.plug_state_prev is False) or (self.data.set.ocpp_transaction_id is None and self.data.get.charge_state)): - self.data.set.ocpp_transaction_id = data.data.optional_data.start_transaction( - self.data.config.ocpp_chargebox_id, - self.chargepoint_module.fault_state, - self.num, - self.data.set.rfid or self.data.get.rfid or self.data.get.vehicle_id, - self.data.get.imported) + + # only start OCPP transaction if chargebox ID is not none + if (self.data.config.ocpp_chargebox_id is not None): + # only start OCPP transaction if rfid tag or vehicle ID is set + if (self.data.set.rfid or self.data.get.rfid or self.data.get.vehicle_id): + + self.data.set.ocpp_transaction_id = data.data.optional_data.start_transaction( + self.data.config.ocpp_chargebox_id, + self.chargepoint_module.fault_state, + self.num, + self.data.set.rfid or self.data.get.rfid or self.data.get.vehicle_id, + self.data.get.imported) if self.data.get.plug_state and self.data.set.plug_state_prev is False: self.data.control_parameter.timestamp_chargemode_changed = create_timestamp() # SoC nach Anstecken aktualisieren diff --git a/packages/control/ocpp.py b/packages/control/ocpp.py index 71f46c0212..352357cffd 100644 --- a/packages/control/ocpp.py +++ b/packages/control/ocpp.py @@ -87,10 +87,12 @@ def transfer_values(self: OptionalProtocol, chargebox_id: str, fault_state: FaultState, connector_id: int, + transaction_id: int, imported: int) -> None: try: self._process_call(chargebox_id, fault_state, call.MeterValues( connector_id=connector_id, + transaction_id=transaction_id, meter_value=[{"timestamp": self._get_formatted_time(), "sampledValue": [ { diff --git a/packages/control/optional.py b/packages/control/optional.py index b65b161751..d679633224 100644 --- a/packages/control/optional.py +++ b/packages/control/optional.py @@ -284,6 +284,6 @@ def _transfer_meter_values(self): if cp.data.set.ocpp_transaction_id is not None: self.send_heart_beat(cp.data.config.ocpp_chargebox_id, cp.chargepoint_module.fault_state) self.transfer_values(cp.data.config.ocpp_chargebox_id, - cp.chargepoint_module.fault_state, cp.num, int(cp.data.get.imported)) + cp.chargepoint_module.fault_state, cp.num, cp.data.set.ocpp_transaction_id, int(cp.data.get.imported)) except Exception: log.exception("Fehler im OCPP-Optional-Modul")