Zum Inhalt

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:

  1. fordert optional ein temporäres Token vom konfigurierten Lizenzserver an,
  2. lässt den Provider den Kanal öffnen,
  3. startet den Countdown (Standard 4 h, maximal 24 h),
  4. 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.