Heim > Backend-Entwicklung > Python-Tutorial > Wie Entwickler die Kommunikation von Ladegeräten für Elektrofahrzeuge mit mobilen Apps ermöglichen

Wie Entwickler die Kommunikation von Ladegeräten für Elektrofahrzeuge mit mobilen Apps ermöglichen

Susan Sarandon
Freigeben: 2025-01-16 14:09:59
Original
507 Leute haben es durchsucht

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

  1. Mobile App: Hier initiiert der Benutzer Aktionen, wie das Starten oder Stoppen des Ladevorgangs.
  2. Backend-Server: Der Kopf hinter dem Betrieb, der die Kommunikation zwischen der App und dem Ladegerät koordiniert.
  3. 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.

Image description

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": [ ... ]
    }
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Befehl wird über das Backend per RPC-Aufruf an das Ladegerät gesendet:

await client.call(
  'RemoteStartTransaction',
  remoteStartTransactionBody
);
Nach dem Login kopieren

Schritt 2: Ladegerät antwortet

Das Ladegerät quittiert den Befehl mit einer Antwort:

{"status": "Accepted"}
Nach dem Login kopieren
Nach dem Login kopieren

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"
}
Nach dem Login kopieren

Ü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" }
      ]
    }
  ]
}
Nach dem Login kopieren

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 }
);
Nach dem Login kopieren

Schritt 2: Ladegerät antwortet

Das Ladegerät quittiert mit:

{"status": "Accepted"}
Nach dem Login kopieren
Nach dem Login kopieren

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": [ ... ]
    }
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

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.

Image description

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:

  1. Ladestationsverwaltung: Fernüberwachung, Fehlerbehebung und Firmware-Updates für Ladestationen.
  2. Intelligentes Laden: Ermöglicht Lastausgleich, Planung/Vorreservierung und Integration in Energienetze.
  3. Zahlungsintegration: Ermöglicht Ladestationen die Interaktion mit Zahlungsgateways und die Verwaltung von Benutzerkonten.
  4. 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

  1. Python: Mobilityhouse/ocpp
  2. 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.

Image description

Wenn Sie es satt haben, manuell Dokumente für Ihre APIs zu erstellen, könnte Ihnen dieses Tool das Leben erleichtern.

Wie Entwickler die Kommunikation von Ladegeräten für Elektrofahrzeuge mit mobilen Apps ermöglichen

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

#webdev #javascript #Programmierung #Anfänger

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage