Aller au contenu principal

Intégration domotique Charger Station, gratuite et open source

Intégration Charger Station pour Gladys Assistant

Suivez vos bornes de recharge dans Gladys, en direct, grâce au protocole OCPP.

Supervision. Cette intégration observe un nombre quelconque de bornes de recharge OCPP 1.6 et affiche leur état dans Gladys (statut du connecteur, état de charge, puissance, courant, tension, énergie totale). Il n'est pas encore possible de démarrer, arrêter ou limiter une charge depuis Gladys ; la seule commande est le verrouillage permanent du câble des bornes Autel (voir « Verrouillage du câble » plus bas).

Fonctionnement​

flowchart LR
Borne(["Borne de recharge"]) <-->|OCPP, WebSocket| Relais["Relais OCPP"]
Relais <-->|OCPP, relayé| Cloud[("Cloud du fabricant")]
Relais <-.->|état et configuration, HTTP| Gladys[("Gladys")]

L'intégration embarque son propre relais OCPP. Chaque borne se connecte à la même URL — le relais les distingue grâce à l'identity que chacune annonce à la connexion. Dès qu'une borne pointe vers cette URL (voir Installation ci-dessous), le relais la supervise automatiquement, sans qu'il soit besoin de la déclarer dans Gladys au préalable : il lui répond normalement, donc la charge elle-même continue de fonctionner. Mais tant que vous ne lui avez pas associé son propre cloud d'origine, ce dernier est totalement hors circuit — rien de ce qui passe par l'application du fabricant (pilotage à distance, statut en direct, historique) ne fonctionne pendant cette période, puisque son cloud n'a plus aucune connexion à la borne. Associer le cloud d'origine change cela : le relais se met alors aussi à relayer le trafic de la borne vers ce cloud, et l'application du fabricant refonctionne exactement comme avant. Le relais se contente d'observer ce qui transite pour construire l'état affiché dans Gladys ; il n'invente ni ne retient jamais rien sur le fil, dans aucun des deux modes.

Prérequis​

Gladys 5.1.0 ou ultérieur. L'état des bornes est publié via les fonctionnalités « borne de recharge » de Gladys, et le widget de tableau de bord s'appuie sur les widgets d'intégration : les versions antérieures ne connaissent ni l'un ni l'autre.

L'application ou le portail de chaque borne doit permettre de consulter et de modifier l'URL du serveur OCPP auquel elle se connecte. Tous les fabricants ne proposent pas cette option — si le vôtre ne le fait pas, cette intégration ne peut pas être utilisée pour cette borne.

Avant de changer quoi que ce soit, notez l'URL du serveur OCPP actuellement affichée par l'application du fabricant. C'est le seul moyen de revenir au cloud d'origine pour cette borne si vous souhaitez un jour arrêter d'utiliser cette intégration.

Installation​

Cinq étapes, une fois par borne. Rien n'est perdu au passage : la borne conserve sa propre connexion au cloud du fabricant, Gladys se place simplement au milieu et observe.

  1. Notez l'URL du serveur OCPP actuellement utilisée par votre borne, dans l'application du fabricant. C'est votre seul chemin de retour vers le cloud du fabricant — gardez-la précieusement.
  2. Pointez la borne vers Gladys : dans cette même application, remplacez l'URL par celle affichée dans le guide de l'écran Configuration de l'intégration — elle est déjà complétée pour vous, adresse et port inclus. La même URL fonctionne pour toutes les bornes.
  3. Ajoutez-la à Gladys : elle se connecte immédiatement et apparaît dans l'onglet Découverte, déjà supervisée. Ajoutez-la depuis là.
  4. Rendez-lui son cloud : sur l'écran Configuration, lancez l'action "Ajouter une borne", choisissez-la dans la liste, et collez l'URL de l'étape 1 — exactement telle que l'application l'affichait, y compris une éventuelle chaîne de requête finale que certains fabricants utilisent (ex. se terminant par ?sn=).
  5. C'est tout. La borne se reconnecte toute seule en quelques secondes et continue de dialoguer avec le cloud du fabricant exactement comme avant, en passant par Gladys — qui la suit désormais en direct.

Répétez pour chaque autre borne : même URL Gladys, sa propre URL fabricant, même d'un fabricant différent.

Pour corriger une erreur ou changer l'URL du cloud d'origine d'une borne, relancez l'action pour cette même borne avec l'URL corrigée (vérifiez d'abord son URL actuelle sur sa fiche appareil). Pour détacher une borne de son cloud et la remettre en supervision locale uniquement, relancez l'action pour elle avec une URL vide — prend effet à la prochaine reconnexion de cette borne (elle continue d'être relayée via sa connexion en cours jusque-là).

Si vous supprimez de Gladys l'appareil d'une borne encore associée à un cloud d'origine, elle disparaît de la liste déroulante et l'action ne peut plus la modifier — le relais continue d'utiliser ce cloud. Ré-ajoutez l'appareil depuis Découverte pour reprendre la main.

Repartir de zéro​

Désinstaller l'intégration supprime tout ce qu'elle a créé : ses appareils, sa configuration stockée, ainsi que le conteneur et les données du relais. Rien n'est laissé derrière, une réinstallation repart donc vraiment de zéro.

Pour revenir directement au cloud de votre fabricant, remettez l'URL notée à l'étape 1 dans l'application de la borne — elle cesse de passer par Gladys à sa prochaine reconnexion.

Ce que vous voyez sur une borne​

Chaque connecteur remonte deux fonctionnalités d'état, en plus de ses mesures (puissance, courant, tension, énergie totale) :

  • Statut — ce que fait le connecteur lui-même : Disponible, Occupé, Réservé, Indisponible, En défaut.
  • État de charge — ce que fait la session : En charge, Véhicule connecté, En pause (véhicule), En pause (borne), Inactif.

Les bornes OCPP 1.6 rapportent un statut unique, plus détaillé, qui est réparti entre ces deux fonctionnalités : Preparing et Finishing deviennent tous les deux « Occupé / Véhicule connecté » (un véhicule est physiquement branché dans les deux cas), Charging devient « Occupé / En charge », et SuspendedEV/SuspendedEVSE deviennent « Occupé / En pause (véhicule) »/« Occupé / En pause (borne) ». Quand aucune session n'est en cours, l'état de charge affiche Inactif. Les deux fonctionnalités restent vides tant que la borne n'a pas rapporté son statut au moins une fois.

Les valeurs se mettent à jour au fil de l'eau, en quelques secondes : le relais signale à l'intégration chaque changement qu'il observe, au lieu d'être interrogé à intervalles réguliers. Une borne qui se connecte pour la première fois apparaît elle aussi toute seule dans Découverte, sans attendre un rafraîchissement.

Verrouillage du câble (Autel)​

Les bornes Autel peuvent garder leur câble verrouillé en permanence dans le connecteur (fonction du constructeur, hors OCPP standard). Sur ces bornes, chaque connecteur reçoit un interrupteur Verrouillage du câble, utilisable dans Gladys (tableau de bord, scènes…) et dans le widget. Il n'apparaît qu'une fois que la borne a confirmé disposer de la fonction : peu après sa connexion, le relais lui demande sa liste de fonctions prises en charge (une requête OCPP standard, le cloud du constructeur fait la même).

  • La borne ne signale jamais cet état d'elle-même. L'intégration l'apprend en voyant passer les commandes de verrouillage et de déverrouillage — qu'elles viennent de Gladys ou de l'application du constructeur (celles de l'application transitent par le relais une fois la borne associée à son cloud d'origine, voir Installation). L'interrupteur n'affiche donc aucune valeur avant la première commande, et le widget propose « Verrouiller » et « Déverrouiller » en attendant.
  • Une commande faite avec l'application du constructeur sans passer par le relais (Bluetooth, Wi-Fi direct) est invisible : l'interrupteur garde alors la dernière commande qu'il connaissait.
  • Le relais oublie cet état quand il redémarre : plus de valeur jusqu'à la commande suivante.
  • Si la borne a été créée avant cette version, cliquez sur Mettre à jour sur sa fiche appareil pour faire apparaître l'interrupteur.

Widget de tableau de bord​

Ajoutez une boîte Borne de recharge à un tableau de bord et choisissez la borne. Un widget affiche un connecteur (le 1 par défaut) : pour une borne à plusieurs connecteurs, ajoutez un widget par connecteur.

En haut, le widget dit toujours ce que fait le connecteur en ce moment, en clair, avec la durée de la session pendant une charge. Le reste se règle dans les réglages du widget :

RéglagePar défautEffet
Connecteur1Le connecteur affiché.
TuilesPuissance, Énergie, Durée de la session, CoûtAu choix parmi : puissance en direct, énergie et durée de la session en cours (ou de la dernière hors charge), coût, puissance max offerte par la borne, énergie totale du compteur.
GraphiqueAutomatiqueAutomatique : courbe de puissance pendant une charge, énergie des sessions récentes sinon. Ou toujours l'un des deux, ou aucun.
Période de la courbe12 dernières heuresDe la dernière heure à la dernière semaine.
Prix du kWh (€)videVoir « Coût » ci-dessous.
Afficher les détails de la borneouiStatut du connecteur, limite offerte par la borne, code d'erreur s'il y en a un, dernier échange avec le relais, fabricant et modèle.
Afficher les commandes de la borneouiDes boutons pour ce qu'on peut demander à la borne, s'il y en a (voir « Verrouillage du câble ») : le bouton fait l'inverse de l'état connu, les deux boutons tant qu'il est inconnu.

Une tuile qui n'a encore rien à afficher (pas de session, par exemple) est masquée. Un widget a une place limitée : avec le graphique et les détails, seules les 5 premières tuiles cochées sont affichées.

Coût​

  • Si l'écran Énergie de Gladys est configuré (borne rattachée à votre compteur électrique, contrat renseigné), la tuile affiche le coût de la dernière demi-heure, calculé par Gladys avec votre contrat (heures pleines / creuses, Tempo…). Gladys calcule ces coûts en tâche de fond : la tuile apparaît après le premier calcul et peut avoir jusqu'à une demi-heure de retard. Si la borne a été créée avant cette version, cliquez d'abord sur Mettre à jour sur sa fiche appareil.
  • Sinon, si vous avez saisi un prix du kWh, la tuile affiche le coût de la session (énergie de la session × ce prix fixe, sans heures pleines / creuses).
  • Sinon, pas de tuile coût.

Les sessions récentes sont conservées en mémoire par le relais : la liste repart de zéro au redémarrage de l'intégration.

Connecteurs multiples​

Une borne est un seul appareil dans Gladys, quel que soit son nombre de connecteurs physiques. Elle démarre avec les fonctionnalités d'un seul connecteur (statut, état de charge, puissance, courant, tension, énergie) ; si elle possède plusieurs connecteurs physiques, les supplémentaires apparaissent comme fonctionnalités additionnelles ("Connecteur 2 - ...", etc.) une fois que le relais les a réellement vus rapporter leur statut au moins une fois. Si vous avez déjà créé l'appareil, Gladys affiche un bouton Mettre à jour dès que de nouveaux connecteurs sont détectés — rien n'est ajouté silencieusement à un appareil déjà créé. Si un connecteur n'apparaît pas encore, essayez Relancer un scan depuis l'onglet Découverte après avoir utilisé ce connecteur.

Note de sécurité​

Exposer le port OCPP du relais le rend joignable par tout appareil de votre réseau local, sans authentification — c'est inhérent à la façon dont les bornes OCPP se connectent à un serveur. Le relais se contente d'observer ce qui transite et ne prend jamais de décision de lui-même (il n'invente jamais de transaction, n'autorise jamais une charge) : au pire, un appareil malveillant de votre réseau local pourrait injecter des données trompeuses dans la vue de cette intégration, mais il ne peut pas affecter une borne réelle, qui garde sa propre connexion indépendante au cloud de son fabricant via le relais. Gardez cela à l'esprit sur un réseau partagé ou non fiable.

Limitations connues (cette version)​

  • L'état du relais est réinitialisé à chaque redémarrage (redémarrage de l'hôte, plantage) : il ne se souvient que de ce qu'il a vu depuis son dernier démarrage, y compris quelles bornes sont configurées — l'intégration renvoie l'ensemble complet des bornes configurées dès qu'elle se reconnecte à Gladys, donc ça se répare tout seul en quelques secondes, sans avoir à relancer l'action. Juste après un redémarrage, des bornes déjà connues disparaissent brièvement jusqu'à leur reconnexion (généralement quelques secondes) ; cela ne supprime jamais un appareil déjà créé dans Gladys.
  • Démarrer une charge pendant qu'une borne est encore supervisée localement (pas de cloud d'origine associé), puis associer un cloud en cours de session : la borne peut continuer de référencer la session démarrée localement une fois reconnectée en mode relais, que le vrai cloud d'origine n'a jamais vue. Un chevauchement rare en pratique (associer un cloud se fait généralement une seule fois, juste après la première connexion) — si cela arrive, les données de cette session peuvent ne pas remonter correctement au cloud d'origine ; la session suivante n'est pas affectée.
  • Presque aucun pilotage depuis Gladys. Démarrer, arrêter ou limiter une charge n'est pas possible dans cette version ; le verrouillage du câble des bornes Autel est la seule commande.

Dépannage​

Consultez les logs de l'intégration depuis l'interface Gladys (bloc de supervision → sélecteur de conteneur), pour le conteneur principal et, séparément, pour le sous-conteneur gateway — c'est là que le relais OCPP lui-même journalise chaque connexion, déconnexion et message relayé (payload complet, dans les deux sens) pour chaque borne.

Paramètres de configuration​

Voici les paramètres demandés par Charger Station dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Raccorder une bornesectionNonDans l'application de votre borne, notez son URL OCPP actuelle et conservez toutes les informations de configuration qui s'y trouvent : c'est ce qui vous permettra de revenir à un fonctionnement normal en cas de problème. Remplacez cette URL par ws://{{gladys_host}}:{{port:ocpp}}/ - la même pour toutes vos bornes. Votre borne s'y reconnecte aussitôt et apparaît dans l'onglet Découverte : ajoutez-la à Gladys. Revenez ensuite ici, dans la zone Action ci-dessous, sélectionnez votre borne et saisissez l'URL OCPP notée à la première étape - c'est elle qui permet à votre borne de continuer à dialoguer avec le cloud de son fabricant, désormais relayé par Gladys.

Comment installer Charger Station dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Charger Station apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/sescandell/gladys-ocpp-integration:1.2.0), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/sescandell/gladys-ocpp-integration.

Charger Station nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Charger Station est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par sescandell, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂