Repository navigation
Solves a timing problem when the vehicle is plugged in and the RFID tag has not yet been recognized. - #3229
Conversation
the transaction remains traceable even after the websocket performs a reconnect
… set check if the chargebox ID is set in the backend and if the rfid tag or the vehicle ID has been detected
There was a problem hiding this comment.
Pull request overview
This PR adjusts the OCPP flow to avoid starting/sending OCPP data too early (e.g., when a vehicle is plugged in but the RFID/vehicle ID is not yet available), and ensures MeterValues are associated with the active OCPP transaction.
Changes:
- Pass
transaction_idinto OCPPMeterValuescalls (transfer_values) so meter data is tied to the correct transaction. - Gate
StartTransactionso it is only triggered once a chargebox ID and an RFID/vehicle ID are present (to address the timing issue described in the PR title).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
packages/control/optional.py |
Updates OCPP meter value transfer call to include ocpp_transaction_id. |
packages/control/ocpp.py |
Extends transfer_values to include and forward transaction_id into call.MeterValues. |
packages/control/chargepoint/chargepoint.py |
Changes when start_transaction() is invoked, requiring chargebox ID and RFID/vehicle ID. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
copilot suggestions gepushed |
LKuemmel
left a comment
There was a problem hiding this comment.
Bitte noch die Flake8 Meldung beseitigen, der Rest passt so.
|
Danke, erledigt |
|
Haben wir jetzt noch eine Möglichkeit, OCPP-Transaktionen zu starten, wenn keine Identifikation möglich ist (kein RFID-Reader und kein Plug-and-Charge)? Wir nutzen ein Selbstgebautes OCPP Backend für die Abrechnung von Wallboxen(openWB) der Mitarbeiter. Es ist kein Identifikationsmodul verbaut, heißt für mich aktuell: "Update auf die 2.2.0 darf nicht erfolgen" |
|
Wie wurden denn bis jetzt die Fahrzeuge in eurem Backend identifiziert? |
|
Bei den Mitarbeitern, die nur einen Elektro‑Dienstwagen besitzen, habe ich lediglich über die gelieferte Chargebox‑ID unterschieden. In den Fällen, in denen auch private Fahrzeuge an der Wallbox geladen werden, ist die Nutzung eines Tags erforderlich gewesen. Im Backend gibt es dann eine Whitelist von „erstattungsfähigen Tags“. Dass jetzt ohne Tag keine OCPP‑Transaktion mehr gestartet wird und dies auch nirgends beschrieben ist, halte ich für sehr ungünstig. Wenn das nun als korrekt angesehen wird, sollten die OCPP‑Optionen in der GUI meiner Meinung nach ausgeblendet bzw. deaktiviert werden, wenn die openWB über kein Identifikationsmodul verfügt. Das wirkt sonst sehr „gebastelt“. Mein Workaround für meine eigene Wallbox ist sehr unkonventionell: Ich frage den Plug‑State per MQTT als Trigger ab und setze ebenfalls per MQTT den Token. Nicht schön, aber so funktioniert es auch mit der Version 2.2.0. |
|
Laut OCPP Spezifikation muss eine Ladestation immer ein Token/Tag an das Backend senden. Das Protokoll erfordert dies. Wir sollten die Abhängigkeit von OCPP und Identifikation vermutlich klarer dokumentieren. |
Solves a timing problem when the vehicle is plugged in and the RFID tag has not yet been recognized.
More information is available here:
https://forum.openwb.de/viewtopic.php?t=11971