Description :
Certaines intégrations externes ont besoin d’afficher à l’utilisateur une URL pointant vers Gladys lui-même. Cas concret avec l’intégration OCPP : l’utilisateur doit configurer sa borne de recharge (via l’app du constructeur) pour qu’elle se connecte au relais hébergé par l’intégration, avec une URL du type ws://<ip-de-gladys>:<port assigné>. Aujourd’hui, rien ne permet d’afficher cette URL : l’utilisateur doit trouver lui-même l’IP de son instance et le port assigné.
Le conteneur de l’intégration ne peut pas fournir cette information de manière fiable : côté serveur, on ne sait résoudre que l’adresse de Gladys vue depuis le conteneur (gateway du bridge, alias interne), et Gladys ne connaît pas sa propre IP LAN de façon certaine (multi-interfaces, reverse proxy, VPN). Exposer un getHost() dans le SDK renverrait souvent une valeur fausse. En revanche, le navigateur de l’utilisateur connaît la bonne adresse, c’est déjà comme ça que le lien « Open » des ports publiés est construit.
Proposition : supporter des placeholders dans les textes déclaratifs du manifeste (blocs section du config_schema en premier lieu), substitués par le front à l’affichage :
{{gladys_host}}: le hostname par lequel l’utilisateur accède à Gladys{{port:<nom>}}: le port hôte assigné au port déclaré<nom>dans le manifeste
L’intégration OCPP pourrait ainsi afficher un bloc du genre : « Configurez votre borne pour qu’elle pointe vers ws://{{gladys_host}}:{{port:ocpp}} », avec une URL complète et copiable. Le mécanisme reste 100 % déclaratif, aucun code injecté par l’intégration.
Limite connue et assumée (déjà vraie pour le lien « Open ») : si l’utilisateur navigue via un tunnel Gladys Plus ou un reverse proxy, le hostname affiché ne sera pas l’IP LAN. À documenter.
Contexte : retour terrain de @Sescandell sur l’intégration OCPP, voir le topic WIP borne de recharge véhicule électrique protocole OCPP.