Flexibilité et codes réseau

OCPP pour les réseaux de recharge de véhicules électriques

Rôle d’OCPP entre bornes et système de gestion, différences entre 1.6, 2.0.1 et 2.1, combinaison des profils de charge et réaction si la limite n’arrive plus.

Deux bornes de recharge de véhicules électriques avec leurs câbles branchés.

Un exploitant peut gérer sur une même plateforme des bornes de plusieurs fabricants parce que les deux extrémités de la liaison parlent l'Open Charge Point Protocol (OCPP). OCPP 1.6 appelle le système de gestion « Central System » ; OCPP 2.0.1 l'appelle CSMS. L'Open Charge Alliance (OCA) publie OCPP, et OCPP 2.0.1 est également la norme internationale IEC 63584:2024.

Versions

VersionParutionApports
OCPP 1.62015JSON sur WebSocket (OCPP-J) à côté de SOAP ; profils de recharge intelligente ; TriggerMessage ; autres états du connecteur, comme SuspendedEV et Finishing
OCPP 2.0.12020Modèle d'appareil pour configuration et suivi ; trois profils de sécurité ; TransactionEvent ; limites de recharge externes ; prise en charge d'ISO 15118-2, dont Plug and Charge. Approuvé comme IEC 63584 en 2024
OCPP 2.12025Transfert bidirectionnel d'énergie avec ISO 15118-20 (V2X) ; commande de ressources énergétiques distribuées ; échange de batterie ; nouveaux moyens de paiement

OCPP 2.0 a été publié en 2018 puis remplacé par 2.0.1 en 2020. Si une fiche indique « OCPP 2.0 », demandez au fabricant la version réellement implémentée par le micrologiciel.

La version est convenue à l'ouverture de la connexion. La borne propose un sous-protocole WebSocket (ocpp1.6, ocpp2.0.1 ou ocpp2.1) lors de l'établissement de la liaison et le CSMS en accepte un. OCPP 2.0.1 n'est pas une extension de 1.6 : une borne 1.6 ne peut pas se connecter à un CSMS qui n'accepte que 2.0.1. De nombreuses bornes installées utilisent encore 1.6, et la plupart des plateformes prennent en charge plusieurs versions simultanément. OCPP 2.1 conserve les fonctionnalités de 2.0.1.

Messages transportés par OCPP

La borne ouvre la connexion WebSocket vers le CSMS et échange des messages JSON.

GroupeExemplesRôle
Mise en serviceBootNotification, HeartbeatLa borne s'enregistre et maintient la liaison
ÉtatStatusNotificationÉtat du connecteur
AutorisationAuthorize, SendLocalListCette carte ou application a-t-elle le droit de charger ?
TransactionsStartTransaction et StopTransaction (1.6) ; TransactionEvent (2.0.1)Sessions, pour la facturation
MesureMeterValuesÉnergie, puissance et courant pendant une session
Recharge intelligenteSetChargingProfile, ClearChargingProfile, GetCompositeScheduleLimiter puissance ou courant dans le temps
GestionReset, UpdateFirmware, configurationExploiter le parc à distance

Le CSMS fixe l'intervalle des signaux de vie dans sa réponse BootNotification. L'intervalle des relevés est un réglage de la borne (MeterValueSampleInterval en 1.6). Les deux sont définis pour chaque installation : lisez-les dans la borne plutôt que de supposer une valeur.

Les états des connecteurs diffèrent selon la version. OCPP 1.6 signale notamment Charging, SuspendedEV et SuspendedEVSE. OCPP 2.0.1 ne signale que Available, Occupied, Reserved, Unavailable ou Faulted ; l'état de recharge passe dans TransactionEvent.

Recharge intelligente

Le CSMS transmet un profil de recharge à une borne avec SetChargingProfile. Ce profil contient un calendrier : chargingRateUnit en A ou W, une liste d'entrées chargingSchedulePeriod et éventuellement validFrom et validTo. En recharge CA, numberPhases indique le nombre de phases et vaut 3 par défaut. Une limite en ampères s'applique à chaque phase. Un report tarifaire est un calendrier avec une limite basse pendant les heures chères et plus haute ensuite.

Chaque profil possède une finalité qui détermine ce qu'il limite :

FinalitéPortéeUsage
ChargePointMaxProfile (1.6), ChargingStationMaxProfile (2.0.1)Toute la borne (connecteur 0 seulement)Plafond de la somme de ses connecteurs
TxDefaultProfileNouvelles transactions sur un connecteur ou tous les connecteursLimite en l'absence de profil propre à la transaction
TxProfileUne transaction en coursLimite de cette session ; remplace son TxDefaultProfile
ChargingStationExternalConstraints (2.0.1)Toute la borneLimite imposée par une source externe, telle qu'un EMS local ou un gestionnaire de distribution

Pour une même finalité, le profil valide au stackLevel le plus élevé prévaut. Entre finalités, la borne applique la plus basse des limites suivantes : maximum de la station, contrainte externe et limite de transaction. Cette dernière vient du TxProfile ou, en son absence, du TxDefaultProfile. Après l'installation des profils, demandez GetCompositeSchedule. La réponse indique le programme combiné calculé, sans prouver par une mesure que la borne ou le véhicule l’applique.

En OCPP 2.0.1, une borne peut recevoir une limite externe par une interface locale. Elle la signale alors au CSMS avec NotifyChargingLimit, puis signale son retrait avec ClearedChargingLimit.

Les profils agissent borne par borne. OCPP n'a pas de message qui plafonne un site entier. Le CSMS répartit la limite du site entre les bornes et transmet à chacune son profil.

Sur une borne 1.6, lisez ces clés avec GetConfiguration lors de la mise en service :

  • ChargeProfileMaxStackLevel : plus haut stackLevel accepté par la borne.
  • ChargingScheduleAllowedChargingRateUnit : Current, Power ou les deux. Une borne qui n'accepte que Current exige de convertir une limite en kW en ampères par phase. Le calculateur kW en ampères effectue cette conversion.
  • ChargingScheduleMaxPeriods : nombre maximal de périodes d'un calendrier.
  • MaxChargingProfilesInstalled : nombre maximal de profils conservés par la borne.

Une borne CA transmet sa limite à la voiture par le signal pilote IEC 61851-1. Le courant minimal que ce signal peut annoncer est 6 A. À 230 V, 6 A représentent 4,14 kW en triphasé et 1,38 kW en monophasé. Sous cette limite, le CSMS doit interrompre des sessions au lieu de continuer à réduire le courant.

Le calculateur de capacité de recharge VE part du même site et des mêmes bornes, avec une journée type atteignant 420 kW. Il calcule, pour chaque intervalle, la marge et le nombre de bornes pouvant fonctionner à pleine puissance :

Calculez aussi la marge phase par phase. Une voiture monophasée raccordée à une borne triphasée ne charge qu'une phase. Si la plupart prennent leur courant sur L1, cette phase atteint sa limite alors que le total triphasé montre encore de la marge. Retenez la phase la plus chargée.

Une allocation en kW change également le temps nécessaire pour recharger un véhicule. Comparez les limites de la borne, de la voiture et du site sur une même base d'entrée CA ou CC, puis prévoyez explicitement les pertes de conversion et la baisse de puissance moyenne au cours de la charge.

Quand la limite n'arrive plus

La régulation de la marge comporte trois liaisons : du compteur du site au calcul de marge, de ce calcul au CSMS, et du CSMS aux bornes. OCPP ne voit que la dernière.

Si une borne 1.6 perd sa liaison CSMS, les profils stockés restent soumis à leurs périodes de validité, à la durée des programmes et au périmètre de la transaction. Un TxProfile applicable prévaut sur TxDefaultProfile ; ChargePointMaxProfile continue de plafonner la borne. Sans profil applicable, OCPP n’impose aucune limite de profil, mais les limites du véhicule et du matériel local restent applicables. Dans l’exemple, supposons que la liaison tombe à 06:00 avec douze voitures à 14,2 kW et que ces limites restent applicables. Si la charge du matin monte à 420 kW, le site importe 590 kW.

Si l'alimentation du CSMS en données de marge s'interrompt, OCPP ne signale aucune panne. Le CSMS continue de répartir la dernière valeur reçue, sauf s'il rejette les valeurs trop anciennes.

Prévoyez un repli aux deux extrémités :

  1. Un repli possible utilise un TxDefaultProfile approuvé pour le site à faible stackLevel et un TxDefaultProfile dynamique à stackLevel plus élevé avec un validTo proche. Cela ne fonctionne que si aucun TxProfile applicable ne prévaut sur ces profils par défaut. Vérifiez validité, durée des programmes et priorité des profils, y compris pour les transactions actives, lors d’un essai hors ligne approuvé et délimité. La seule expiration ne prouve pas que la limite est sûre pour le site.
  2. Dans le CSMS, fixez un âge maximal de la valeur de marge et un repli quand elle le dépasse. Dans l'exemple, répartir également les 30 kW disponibles à la pointe donne 2,5 kW par borne, sous le minimum de 6 A. Le repli doit donc limiter le nombre de sessions, pas seulement la puissance par borne.

La durée de la boucle est la somme de l'intervalle de mesure, du calcul de marge, de la répartition par le CSMS, de l'aller-retour SetChargingProfile et de la réaction de la voiture au nouveau signal pilote. Mesurez-la à la mise en service : abaissez par échelon la limite publiée et chronométrez la chute de puissance au compteur de la borne. La réserve doit couvrir la plus grande hausse de charge possible sur le site pendant ce délai. Par exemple, si la boucle prend 60 s et qu'un groupe froid de 40 kW peut démarrer en 60 s, la réserve doit être d'au moins 40 kW.

Sécurité

OCPP 2.0.1 définit trois profils de sécurité. Le livre blanc OCPP 1.6 Security Whitepaper de l'OCA les étend à OCPP 1.6-J ; la borne indique son profil dans la clé de configuration SecurityProfile.

ProfilAuthentification de la borneTransport
1Identifiant et mot de passeNon chiffré ; uniquement sur un réseau privé de confiance
2Identifiant et mot de passeTLS, avec certificat d'authentification du CSMS
3Certificat clientTLS, avec authentification des deux extrémités par certificat

Le profil 1 transmet le mot de passe en clair. Utilisez le profil 2 ou 3 sur tout réseau que vous ne contrôlez pas, y compris un réseau mobile public. Avec le profil 3, le certificat de la borne expire. Celle-ci en demande un nouveau par SignCertificate et le reçoit par CertificateSigned. Testez le renouvellement avant la première expiration. Une borne incapable de renouveler son certificat se déconnecte et revient à ses profils stockés. Les deux versions signalent les événements de sécurité, tels que les échecs de connexion et les changements de micrologiciel, avec SecurityEventNotification.

Ce qu'OCPP ne fait pas

Les MeterValues d'une borne ne portent que sur cette borne. OCPP n'a aucune visibilité sur les autres charges du bâtiment : la marge doit donc provenir d'un compteur au point de raccordement du site.

OCPP ne communique pas avec le véhicule. C'est le rôle d'ISO 15118 ; OCPP 2.0.1 peut transmettre certaines de ses données au CSMS, telles que l'énergie requise et l'heure de départ annoncées par une voiture dans NotifyEVChargingNeeds.

OCPP ne définit pas les services réseau. Un programme de flexibilité ou un gestionnaire de distribution transmet ses signaux par d'autres protocoles, comme OpenADR, ou par l'interface propre à la plateforme. Le CSMS les traduit en profils de recharge.

Chaque borne et chaque plateforme n'implémentent qu'une partie d'OCPP. Avant de dépendre d'une fonction, confirmez aux deux extrémités les finalités des profils, les unités de limite, le profil de sécurité et les éventuelles fonctions 2.x.

Bornes, site et EpiSensor

Un système EpiSensor mesure le site partagé par les bornes. Un moniteur d'électricité ZEM placé à l'arrivée relève courant et puissance par phase. Un deuxième ZEM sur le tableau des bornes sépare leur charge de celle du reste du site. Edge, sur la Gateway, calcule la marge selon la phase la plus chargée et la publie avec son ancienneté par MQTT, HTTP ou Modbus TCP.

Edge n'utilise pas OCPP et ne commande pas les bornes. Le CSMS lit la marge par sa propre API et l'applique avec des profils de recharge. Avant de choisir une plateforme, vérifiez auprès de son fournisseur :

  1. Elle accepte une limite externe pour le site et précise si elle est en kW ou en ampères par phase.
  2. Elle indique à quelle fréquence elle lit la limite et sous quel délai elle transmet les nouveaux profils.
  3. Elle précise l'âge maximal accepté pour une valeur et le repli appliqué quand elle est trop ancienne.
  4. Elle précise son action si la marge est inférieure au minimum de 6 A pour toutes les voitures en attente : suspension des sessions, rotation ou mise en file.

La page d'application sur la gestion de charge des VE détaille compteurs, calcul et repli.

Questions fréquentes

Qu’est-ce qu’OCPP ?

L’Open Charge Point Protocol, publié par l’Open Charge Alliance. C’est le standard ouvert des messages entre une borne VE et le système central qui la gère : autorisation, sessions, mesures, état, configuration, mises à jour du micrologiciel et limites de recharge.

Quelle différence entre OCPP 1.6 et 2.0.1 ?

OCPP 2.0.1 remplace les clés de configuration de 1.6 par un modèle d’appareil, et StartTransaction et StopTransaction par TransactionEvent. Il définit trois profils de sécurité, ajoute les limites externes avec NotifyChargingLimit et prend en charge ISO 15118-2 Plug and Charge. Borne et CSMS conviennent d’une version à l’ouverture de WebSocket : une borne 1.6 ne peut pas rejoindre un CSMS qui n’accepte que 2.0.1.

OCPP prend-il en charge le V2G ?

OCPP 2.1, publié en 2025, prend en charge le transfert bidirectionnel d’énergie avec ISO 15118-20 et la commande de ressources énergétiques distribuées. OCPP 1.6 et 2.0.1 ne peuvent pas commander à un véhicule d’injecter de l’énergie dans le réseau.

OCPP est-il sûr ?

OCPP 2.0.1 définit trois profils de sécurité : authentification de base sans chiffrement, authentification de base sur TLS, et TLS avec certificat client. Le livre blanc OCPP 1.6 Security Whitepaper de l’OCA étend ces profils à OCPP 1.6-J. Le profil 1 transmet le mot de passe en clair : utilisez le profil 2 ou 3 sur tout réseau non maîtrisé.