


In der Welt der Elektrofahrzeuge (EVs) ist es für einen Elektrofahrzeugfahrer eines der magischsten Erlebnisse, in seiner mobilen App auf „Start“ zu tippen und zu beobachten, wie das Ladegerät zum Leben erwacht.
Aber wie entsteht diese Magie?
Lassen Sie uns einen Blick hinter die Kulissen werfen und erfahren, wie Ladegeräte für Elektrofahrzeuge und mobile Apps kommunizieren.
Die Spieler im Spiel
- Mobile App: Hier initiiert der Benutzer Aktionen, wie das Starten oder Stoppen des Ladevorgangs.
- Backend-Server: Der Kopf hinter dem Betrieb, der die Kommunikation zwischen der App und dem Ladegerät koordiniert.
- EV-Ladegerät: Die Hardware, die den Saft an Ihr Elektrofahrzeug liefert.
Die Kommunikation zwischen diesen Spielern folgt einem standardisierten Protokoll namens OCPP (Open Charge Point Protocol). Insbesondere verwenden die meisten Systeme OCPP über WebSocket, was eine zuverlässige Kommunikation in Echtzeit gewährleistet.
Ladevorgang starten
Schritt 1: Der Benutzer klickt in der App auf „Start“.
Der Vorgang beginnt, wenn ein Benutzer auf die Schaltfläche „Start“ tippt. Der Backend-Server bereitet einen RemoteStartTransaction-Befehl mit den folgenden Details vor:
{ "connectorId": 1, "idTag": "remote-11902", "chargingProfile": { "transactionId": 11902, "chargingProfileId": 1, "stackLevel": 1, "chargingProfilePurpose": "TxProfile", "chargingProfileKind": "Relative", "chargingSchedule": { "chargingRateUnit": "A", "chargingSchedulePeriod": [ ... ] } } }
Dieser Befehl wird über das Backend per RPC-Aufruf an das Ladegerät gesendet:
await client.call( 'RemoteStartTransaction', remoteStartTransactionBody );
Schritt 2: Ladegerät antwortet
Das Ladegerät quittiert den Befehl mit einer Antwort:
{"status": "Accepted"}
Dies zeigt an, dass das Ladegerät bereit ist, mit der Transaktion zu beginnen.
Schritt 3: Charger sendet StartTransaction
Wenn das Ladegerät vollständig vorbereitet ist, sendet es eine StartTransaction-Nachricht zurück an das Backend:
{ "connectorId": 1, "idTag": "remote-11902", "meterStart": 0, "timestamp": "2025-01-15T02:09:54.000Z" }
Überwachung der Ladesitzung
Während des Ladevorgangs sendet das Ladegerät regelmäßig MeterValues-Updates, die Messwerte wie Spannung, Strom und gelieferte Energie enthalten. Diese Aktualisierungen können so konfiguriert werden, dass sie alle 30 Sekunden oder in einem anderen Intervall erfolgen:
{ "connectorId": 1, "transactionId": 11902, "meterValue": [ { "timestamp": "2025-01-15T02:09:54.000Z", "sampledValue": [ { "value": "241.10", "measurand": "Voltage", "unit": "V" }, { "value": "0.00", "measurand": "Current.Import", "unit": "A" }, { "value": "0", "measurand": "Power.Active.Import", "unit": "W" }, { "value": "32", "measurand": "Current.Offered", "unit": "A" } ] } ] }
Stoppen des Ladevorgangs
Schritt 1: Der Benutzer klickt in der App auf „Stopp“.
Wenn der Benutzer auf „Stopp“ tippt, sendet das Backend einen RemoteStopTransaction-Befehl an das Ladegerät:
await client.call( 'RemoteStopTransaction', { transactionId: 11902 } );
Schritt 2: Ladegerät antwortet
Das Ladegerät quittiert mit:
{"status": "Accepted"}
Schritt 3: Charger sendet StopTransaction
Nach Abschluss des Herunterfahrens sendet das Ladegerät eine StopTransaction-Nachricht mit Details wie der insgesamt gelieferten Energie:
{ "connectorId": 1, "idTag": "remote-11902", "chargingProfile": { "transactionId": 11902, "chargingProfileId": 1, "stackLevel": 1, "chargingProfilePurpose": "TxProfile", "chargingProfileKind": "Relative", "chargingSchedule": { "chargingRateUnit": "A", "chargingSchedulePeriod": [ ... ] } } }
Was ist ein Connector?
So wie eine Zapfsäule verschiedene Zapfpistolen für Diesel oder Benzin haben kann, können Ladegeräte für Elektrofahrzeuge mehrere Anschlüsse haben. Zu den gängigen Typen gehören:
- CCS2: Beliebt in Europa und Nordamerika.
- CHAdeMO: In Japan häufig.
- Mennekes (Typ 2): In Europa weit verbreitet.
Jeder Anschluss funktioniert unabhängig, sodass ein Ladegerät mehrere Fahrzeuge versorgen kann.
OCPP
OCPP (Open Charge Point Protocol) ist ein offener Kommunikationsstandard, der für die Interaktion zwischen Ladestationen (Ladepunkten) für Elektrofahrzeuge (EV) und zentralen Managementsystemen (oft als Backend-Systeme oder Ladepunkt-Managementsysteme bezeichnet) entwickelt wurde.
Es ermöglicht die Interoperabilität zwischen Ladeinfrastruktur verschiedener Hersteller und Softwareanbieter.
Versionen von OCPP:
- OCPP 1.5: Frühe Version, wird in einigen älteren Systemen noch verwendet.
- OCPP 1.6: Weit verbreitet, unterstützt sowohl SOAP- als auch WebSocket-Kommunikation.
- OCPP 2.0 & 2.0.1: Erweiterte Versionen mit mehr Funktionen wie verbesserter Sicherheit (TLS), Unterstützung für intelligentes Laden, bessere Diagnose und Firmware-Verwaltung.
Wichtige Anwendungsfälle:
- Ladestationsverwaltung: Fernüberwachung, Fehlerbehebung und Firmware-Updates für Ladestationen.
- Intelligentes Laden: Ermöglicht Lastausgleich, Planung/Vorreservierung und Integration in Energienetze.
- Zahlungsintegration: Ermöglicht Ladestationen die Interaktion mit Zahlungsgateways und die Verwaltung von Benutzerkonten.
- Analysen und Berichte: Hilft Betreibern, Nutzungsmuster zu analysieren und Abläufe zu optimieren.
So funktioniert OCPP:
OCPP definiert Nachrichtenstrukturen und Kommunikationsprotokolle zwischen der Ladestation und dem zentralen System. Zum Beispiel:
- Eine Ladestation sendet Nachrichten über ihren Status, Energieverbrauch oder Fehler.
- Das zentrale System kann Befehle senden, um den Ladevorgang zu starten/stoppen, die Firmware zu aktualisieren oder Diagnosen durchzuführen.
OCPP wird von der Open Charge Alliance (OCA) verwaltet, die das Protokoll weiterentwickelt und fördert.
Pakete
- Python: Mobilityhouse/ocpp
- Javascript: mikuso/ocpp-rpc
Zum Abschluss
Jedes Mal, wenn Sie den Ladevorgang über Ihre App starten oder stoppen, werden eine Reihe präziser Echtzeitnachrichten zwischen Ihrer App, dem Backend und dem Ladegerät übertragen.
Das OCPP-Protokoll macht es möglich und stellt sicher, dass Ladegeräte und Apps verschiedener Hersteller nahtlos zusammenarbeiten können.
Wenn Sie also das nächste Mal Ihr Elektrofahrzeug anschließen und auf „Start“ tippen, erfahren Sie etwas mehr über die Magie hinter den Kulissen!
Ich habe an einem äußerst praktischen Tool namens LiveAPI gearbeitet.
Es wurde entwickelt, um die API-Dokumentation für Entwickler mühelos zu gestalten.
Mit LiveAPI können Sie schnell eine interaktive API-Dokumentation erstellen, die es Benutzern ermöglicht, APIs direkt über den Browser auszuführen.
Wenn Sie es satt haben, manuell Dokumente für Ihre APIs zu erstellen, könnte Ihnen dieses Tool das Leben erleichtern.


Von Lama2 zu LiveAPI: Erstellen einer äußerst praktischen API-Dokumentation (Teil II)
Athreya alias Maneshwar für Wie Entwickler die Kommunikation von Ladegeräten für Elektrofahrzeuge mit mobilen Apps ermöglichen ・ 14. Dezember 2024
Das obige ist der detaillierte Inhalt vonWie Entwickler die Kommunikation von Ladegeräten für Elektrofahrzeuge mit mobilen Apps ermöglichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PythonlistscanstoreanyDatatype, ArrayModulearraysStoreOnetype und NumpyarraysarefornumericalComputations.1) listet dieArversatile-memory-effizient.2) Arraymodulenarraysalememory-effizientforhomogeneData.3) Numpharraysareoptional-EffictionhomogenInData.3) nummodulenarraysoptionalinformanceIntata.3) nummodulearraysoptionalinformanceIntata.3) NumpharraysareoPresopplowancalinScesDataa.3) NumpharraysoePerformance

Wenn SietostoreavalueOfThewrongdatatypeinapythonarray, touencounteratypeerror.Thissisdustuetothearraymodules -SstrictTypeNeen -Forcortion, welche

PythonlistsarePartThestandardlibrary, whilearraysarenot.listarebuilt-in, vielseitig und UNDUSEDFORSPORINGECollections, während dieArrayRay-thearrayModulei und loses und loses und losesaluseduetolimitedFunctionality.

ThescriptisrunningwithTheWrongPythonversionDuetoincorrectDefaultinterpretersettings.tofixthis: 1) checkHedEfaultpythonversionusingPython-Versionorpython3-Version.2) Verwenden von VirtualenVirmentsByCreatingonewithpython3.9-mvenvmyenv, und -Averifikation und -Averifikation

PythonarraysSupportvariousoperationen: 1) SlicicingExtractsSubsets, 2) Anhang/Erweiterungen, 3) Einfügen von PlaceSelementsatspezifischePositionen, 4) Entfernen von Delettel, 5) Sortieren/ReversingChangesorder und 6) compredewlistenwlists basierte basierte, basierte Zonexistin

NumpyarraysaresessentialForApplicationsRequeeFoughnumericalComputations und Datamanipulation

UseanArray.ArrayoveralistinpythonwhendealingwithhomogenousData, Performance-CriticalCode, OrInterfacingwithCcode.1) HomogenousData: ArraysSavemoryWithtypedElements.2) Performance-CriticalCode: ArraySaveMoryWithtypedElements.2) Performance-CriticalCode: ArraysFerbetterPerPterPerProrMtorChorescomeChormericalcoricalomancomeChormericalicalomentorMentumscritorcorements.3) Interf

Nein, NOTALLLISTOPERATIONSARESURDEDBYARAYS UNDVICEVERSA.1) ArraysDonotsupportdynamicoperationslikeAppendorinStResizing, die impactSperformance.2) listsDonotguaranteConstantTimeComplexityfordirectAccesslikearraysDo.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
