Externe Integrationen: Platzhalter werden vom Frontend in den Manifesttexten aufgelöst ({{gladys_host}}, {{port:xxx}})

Beschreibung:

Manche externen Integrationen müssen dem Benutzer eine URL anzeigen, die auf Gladys selbst verweist. Ein konkretes Beispiel ist die OCPP-Integration: Der Benutzer muss seine Ladesäule (über die App des Herstellers) so konfigurieren, dass sie sich mit dem Relais verbindet, das von der Integration gehostet wird, mit einer URL wie ws://<gladys-ip>:<zugewiesener-port>. Heute gibt es keine Möglichkeit, diese URL anzuzeigen: Der Benutzer muss selbst die IP seiner Instanz und den zugewiesenen Port herausfinden.

Der Container der Integration kann diese Information nicht zuverlässig bereitstellen: Auf Serverseite kann nur die von Gladys aus dem Container sichtbare Adresse (Gateway der Bridge, interner Alias) aufgelöst werden, und Gladys kennt seine eigene LAN-IP nicht sicher (Multi-Interfaces, Reverse-Proxy, VPN). Ein getHost() im SDK würde oft einen falschen Wert zurückgeben. Der Browser des Benutzers kennt jedoch die richtige Adresse, so wird bereits der « Open »-Link der veröffentlichten Ports aufgebaut.

Vorschlag: Platzhalter in den deklarativen Texten des Manifests unterstützen (zunächst Blöcke section des config_schema), die vom Frontend bei der Anzeige ersetzt werden:

  • {{gladys_host}}: Der Hostname, über den der Benutzer auf Gladys zugreift
  • {{port:<name>}}: Der Host-Port, der dem im Manifest deklarierten Port <name> zugewiesen ist

Die OCPP-Integration könnte somit einen Block wie « Konfigurieren Sie Ihre Ladesäule, damit sie auf ws://{{gladys_host}}:{{port:ocpp}} verweist » anzeigen, mit einer vollständigen und kopierbaren URL. Der Mechanismus bleibt 100 % deklarativ, kein von der Integration injizierter Code.

Bekannte und akzeptierte Grenze (bereits für den « Open »-Link zutreffend): Wenn der Benutzer über einen Gladys Plus-Tunnel oder einen Reverse-Proxy navigiert, wird der angezeigte Hostname nicht die LAN-IP sein. Dies muss dokumentiert werden.

Kontext: Rückmeldung aus dem Feld von @Sescandell zur OCPP-Integration, siehe das Thema WIP Ladesäule für Elektrofahrzeuge, Protokoll OCPP.

Das ist in Gladys Assistant 4.85 verfügbar: