Codes d’erreur OCPP
OCPP 1.6 définit 16 valeurs pour le champ errorCode de StatusNotification. Quinze décrivent des défauts ; une dit que tout va bien.
Un code d’erreur OCPP arrive dans le champ errorCode d’une StatusNotification. C’est une énumération fermée — une borne n’a pas le droit d’inventer des valeurs — et c’est précisément ce qui rend possible un suivi des défauts à l’échelle d’un parc.
L’ensemble est délibérément restreint, et c’est sa principale limite. Seize codes ne peuvent pas décrire toutes les façons dont une borne tombe en panne : les fabricants mettent donc le vrai détail dans vendorErrorCode, un champ libre placé à côté. Lisez les deux. Le code standard vous donne la catégorie ; le code fabricant vous dit ce qui s’est réellement passé.
| Code d’erreur | Signification | Cause habituelle | Réponse habituelle |
|---|---|---|---|
NoError | Aucun défaut. Envoyé avec les changements d’état normaux. | Fonctionnement normal. Envoyé avec les changements de statut ordinaires. | Aucune |
ConnectorLockFailure | Échec du verrouillage ou du déverrouillage du connecteur. | Verrou mécanique bloqué, débris dans la prise, ou actionneur de verrouillage défaillant. | Déplacement sur site |
EVCommunicationError | La communication avec le véhicule a échoué. Souvent un problème de Control Pilot. | Échec de la signalisation Control Pilot. Souvent le véhicule ou le câble, pas la borne. | Réessayer, puis déplacement sur site |
GroundFailure | Le disjoncteur différentiel s’est déclenché. | Le dispositif différentiel a déclenché. Traité comme un défaut de sécurité. | Déplacement sur site |
HighTemperature | Température interne trop élevée. | Chaleur ambiante, ventilation obstruée, ou délivrance prolongée d’un courant élevé. | Se résorbe souvent seul |
InternalError | Défaut dans un composant matériel ou logiciel interne. | Un composant matériel ou logiciel a échoué. Le détail se trouve dans le code d’erreur fabricant. | Réinitialisation à distance, puis déplacement sur site |
LocalListConflict | Conflit de version de la liste d’autorisation locale pendant une mise à jour. | Une mise à jour SendLocalList est entrée en conflit avec la version détenue par la borne. | Correction à distance |
OverCurrentFailure | La protection contre les surintensités s’est déclenchée. | La protection contre les surintensités a déclenché, généralement un défaut du véhicule ou du câble. | Se résorbe souvent seul |
OverVoltage | Tension d’alimentation au-dessus de la plage autorisée. | Tension d’alimentation au-dessus de la plage autorisée. Problème côté réseau. | Gestionnaire de réseau |
PowerMeterFailure | Le compteur d’énergie est en panne. | Le compteur d’énergie ne répond plus. Les données de facturation à partir de ce point sont suspectes. | Déplacement sur site |
PowerSwitchFailure | L’interrupteur de puissance ou le contacteur est en panne. | Le contacteur n’a pas réussi à s’ouvrir ou à se fermer. | Déplacement sur site |
ReaderFailure | Le lecteur RFID est en panne. | Le lecteur RFID est en panne. La borne peut encore fonctionner par démarrage à distance. | Déplacement sur site |
ResetFailure | Une réinitialisation demandée a échoué. | Une réinitialisation demandée n’est pas allée à son terme. | Réinitialisation à distance, puis déplacement sur site |
UnderVoltage | Tension d’alimentation en dessous de la plage autorisée. | Tension d’alimentation en dessous de la plage autorisée. Problème côté réseau. | Gestionnaire de réseau |
WeakSignal | Signal de communication sans fil trop faible. | Signal cellulaire ou Wi-Fi trop faible pour maintenir une connexion fiable. | Déplacement sur site |
OtherError | Un défaut qu’aucun des autres codes ne décrit. | Un défaut qu’aucun des autres codes ne décrit. Consultez vendorErrorCode. | Dépend du fabricant |
NoError n’est pas l’absence de message
NoError est envoyé en permanence, car chaque changement de statut ordinaire porte un errorCode et les transitions saines utilisent cette valeur. Une chaîne de supervision qui compte les StatusNotification porteuses d’un code d’erreur, sans filtrer NoError, rapportera un taux de défaut d’essentiellement 100 %.
Les défauts qui touchent la station sont rapportés sur le connecteur 0
Un défaut du matériel partagé — le compteur, le modem, le contacteur principal — appartient au connectorId: 0, qui désigne la borne elle-même. Un défaut sur une prise précise appartient à ce connecteur. Les bornes qui rapportent tout sur le connecteur 1 rendent impossible de distinguer une prise morte d’une station morte.
Le code d’erreur ne s’efface pas tout seul
Il n’existe pas de message « défaut résolu ». Un défaut est effacé par une StatusNotification ultérieure portant NoError, et si la borne n’en envoie jamais, votre tableau de bord affiche le défaut indéfiniment. Pour réconcilier l’état après une reconnexion, TriggerMessage avec StatusNotification est la façon de demander la vérité du moment.
OCPP 2.0.1 n’a pas de codes d’erreur
Cette table est une table OCPP 1.6, et il n’existe pas d’équivalent en 2.0.1. StatusNotification en 2.0.1 n’a aucun champ errorCode — les défauts sont rapportés via NotifyEvent, levés sur un composant et une variable du modèle d’équipement, avec une sévérité de 0 à 9.
Le résultat est plus expressif et bien moins commode : il n’y a pas de liste figée de seize valeurs sur laquelle brancher un switch, puisque ce qu’une station rapporte dépend de son propre modèle d’équipement. Toute gestion de défauts 1.6 portée vers 2.0.1 doit être reconstruite plutôt que transposée.
Codes d’erreur fabricant
vendorErrorCode est du texte libre, associé à vendorId pour indiquer à quel espace de noms il appartient. Il n’est pas normalisé, pas documenté dans OCPP, et c’est fréquemment la seule chose qui identifie la panne réelle. Collectez-le dès le premier jour — le rétro-ajouter dans l’historique d’un parc n’est pas possible.