Support-Zugriff¶
Der Support-Zugang ist standardmäßig aus und wird immer vom Kunden ausgelöst. Die Integration steuert die Session; ein Provider öffnet den Tunnel.
Version 0.1.0
Der mitgelieferte manual-Provider protokolliert eine Session, öffnet aber
keinen Netzwerkzugang. Mit dieser Version ist kein Fernzugriff möglich.
Ablauf, Schalter, Dienste und Timeout lassen sich bereits testen.
Session starten¶
Über den Schalter Support-Zugriff oder den Dienst:
service: sg_energy_hub.start_support_session
data:
duration_hours: 4
Die Session:
- fordert optional ein temporäres Token vom konfigurierten Lizenzserver an,
- lässt den Provider den Kanal öffnen,
- startet den Countdown (Standard 4 h, maximal 24 h),
- endet automatisch oder beim Ausschalten des Schalters.
Der Sensor Verbleibende Support-Zeit zeigt die Restzeit. Der Schalter Support-Zugriff zeigt, ob eine Session aktiv ist.
Session beenden¶
Schalter ausschalten oder:
service: sg_energy_hub.end_support_session
Die Session endet sofort, das Token wird verworfen. Ein Neustart von Home Assistant beendet die Session ebenfalls; Sessions werden bewusst nicht persistiert.
Token-Anfrage¶
Wenn licence_server_url in den Optionen gesetzt ist, sendet die Integration:
POST <licence_server_url>/v1/support/token
Content-Type: application/json
{
"license_id": "…",
"ha_uuid": "…",
"purpose": "support_session"
}
Die Antwort muss {"token": "…"} enthalten. Das Token wird an den Provider
übergeben und nie geloggt oder gespeichert. Schlägt die Anfrage fehl, wird
keine Session gestartet.
Provider implementieren¶
Ein Provider implementiert zwei Methoden:
class SupportProvider(Protocol):
name: str
async def async_start(self, hass, token: str | None) -> None: ...
async def async_stop(self, hass) -> None: ...
WireGuard- und Tailscale-Provider gehören hinter diese Schnittstelle. Sie
dürfen keine Tokens persistieren, müssen idempotent sein und den Tunnel bei
async_stop schließen.