Dans les documents techniques de l'époque OCPP 1.5 et 1.6, on rencontre souvent les termes « OCPP-J » et « OCPP-S ». Ce sont deux méthodes de transport différentes pour le même protocole. Le choix de l'une ou de l'autre influence directement les paramètres réseau de la borne, les règles du pare-feu et les logiciels avec lesquels elle peut fonctionner.

Qu'est-ce que l'OCPP-S ?

Le « S » d'OCPP-S signifie SOAP. Les messages sont encodés en XML et transportés dans des requêtes HTTP. Les premières versions d'OCPP (1.2 et 1.5) utilisaient uniquement SOAP. Dans ce modèle, les deux parties se comportent comme des services web : la borne envoie des requêtes au système central, et le système central joint la borne par ses propres requêtes HTTP.

Le problème de fond est que, pour que le système central puisse envoyer des requêtes à la borne, celle-ci doit disposer d'une adresse joignable depuis internet. Pour une borne sur réseau mobile ou derrière un NAT, c'est souvent impossible sans mesures supplémentaires comme une redirection de port ou un VPN.

Qu'est-ce que l'OCPP-J ?

Le « J » d'OCPP-J signifie JSON. Les messages sont encodés sous forme de tableaux JSON légers et transportés sur une seule connexion WebSocket permanente. C'est toujours la borne qui ouvre la connexion. Une fois celle-ci établie, les deux parties peuvent envoyer des messages sur le même canal quand elles le souhaitent.

Les conséquences de cette approche :

  • La borne n'a besoin ni d'IP fixe ni de redirection de port ; elle fonctionne même derrière un modem 4G.
  • Les messages sont bien plus légers que le XML, ce qui réduit la consommation de données mobiles.
  • Le système central peut transmettre instantanément des commandes comme un démarrage à distance ou un redémarrage.
  • Le chiffrement s'ajoute facilement avec WSS (TLS).

Comparaison

  • Format : l'OCPP-S utilise XML, l'OCPP-J utilise JSON.
  • Transport : l'OCPP-S utilise une requête HTTP par message ; l'OCPP-J une seule connexion WebSocket permanente.
  • Sens de connexion : en OCPP-S, chaque partie se connecte à l'autre ; en OCPP-J, seule la borne ouvre la connexion.
  • Exigences réseau : l'OCPP-S nécessite généralement une IP joignable ou un VPN ; l'OCPP-J fonctionne derrière un NAT.
  • Consommation de données : nettement plus faible avec l'OCPP-J.
  • Usage actuel : l'OCPP 2.0.1 et 2.1 ne définissent que JSON sur WebSocket. SOAP n'existe que dans les versions 1.x.

Quelle version utilise quel transport ?

  • OCPP 1.2 : SOAP uniquement.
  • OCPP 1.5 : SOAP ; JSON a été utilisé plus tard sous forme de brouillon.
  • OCPP 1.6 : 1.6S et 1.6J. Le marché a massivement choisi la 1.6J.
  • OCPP 2.0.1 et 2.1 : JSON sur WebSocket uniquement.

Pour plus de détails, consultez notre article Qu'est-ce que l'OCPP 1.6J.

Et si vous avez des bornes OCPP-S ?

Des installations anciennes peuvent comporter des bornes utilisant SOAP. Plusieurs options s'offrent à vous :

  1. Mise à jour du firmware : de nombreux fabricants ont publié des mises à jour qui ajoutent la 1.6J au même matériel. Interrogez d'abord le fabricant.
  2. Convertisseur de protocole (proxy) : une couche intermédiaire qui traduit les messages SOAP en JSON peut être utilisée. C'est une solution temporaire qui alourdit la maintenance.
  3. Remplacement de la borne : si le matériel est ancien et qu'aucune mise à jour n'existe, c'est la solution la plus propre à long terme.

De nombreux CSMS modernes ont totalement abandonné SOAP. Üreticy utilise lui aussi l'OCPP-J (WS/WSS) pour la connexion des bornes.

La différence en matière de sécurité

Dans les installations basées sur SOAP, la borne expose un port vers l'extérieur afin que le système central puisse la joindre. Ce port se repère facilement lors de scans sur internet et augmente le risque d'accès non autorisé. Avec l'OCPP-J, aucun service n'est exposé vers l'extérieur ; la borne établit uniquement une connexion sortante. Lorsque le chiffrement WSS est combiné à un identifiant/mot de passe ou à un certificat client, la connexion est à la fois confidentielle et authentifiée. C'est une raison au moins aussi importante que les économies de données pour choisir l'OCPP-J.

Conclusion

L'OCPP-S est un transport basé sur XML et HTTP hérité des premières années du protocole. L'OCPP-J utilise JSON et WebSocket pour offrir une solution plus légère, plus sûre et adaptée aux réseaux mobiles. Si vous achetez une nouvelle borne, recherchez la prise en charge de l'OCPP-J (1.6J, 2.0.1 ou 2.1). Notre guide pour connecter une borne à un serveur OCPP vous accompagne pas à pas lors de la première mise en service.