Zum Inhalt springen
EN | DE

Remote Access đŸ§Ș

Mit Remote Access erreichst du deine lokale evcc-Instanz von unterwegs. Jede Instanz bekommt dafĂŒr ihre eigene Domain auf evcc.cloud. Du brauchst weder DynDNS noch eine Portfreigabe in deinem Router.

flowchart LR
  subgraph internet [Internet]
    app["evcc App"]
    browser["Browser"]
    proxy["Remote-Proxy<br/><code>___.evcc.cloud</code>"]
  end
  app <-- HTTPS --> proxy
  browser <-- HTTPS --> proxy
  proxy <-->|"secure websocket<br/><i>permanent</i>"| evcc["evcc-Instanz<br/><code>evcc.local</code>"]

Deine App oder dein Browser verbindet sich mit deiner persönlichen Domain unter evcc.cloud. Der Remote-Proxy leitet die Anfragen durch einen WebSocket-Tunnel an deine lokale evcc-Instanz weiter. Den Tunnel baut deine evcc-Instanz selbst nach außen auf, daher ist kein offener Port in deinem Netzwerk nötig.

Remote Access setzt ein aktives Sponsoring voraus.

  1. Setze auf dem Host, auf dem evcc lÀuft, die Umgebungsvariable:

    EVCC_REMOTE_ACCESS=api.evcc.cloud

    Wie du Umgebungsvariablen dauerhaft setzt, hĂ€ngt von deiner Installation ab. Unter Linux geschieht das ĂŒber ein systemd-Drop-in mit systemctl edit evcc, siehe Umgebungsvariablen & CLI-Optionen.

    Starte evcc anschließend neu.

  2. Aktiviere die Funktion in der OberflÀche:

    • Konfiguration → Experimentell → aktivieren
    • Konfiguration → Remote Access đŸ§Ș → aktivieren
    Integrations-Übersicht mit aktivem Remote Access
  3. Deine evcc-Instanz registriert sich beim Remote-Proxy und erhÀlt eine eigene Domain, z. B. swift-dark-crow.evcc.cloud.

    Remote-Access-Verwaltung mit Domain und Client-Liste
  4. Lege fĂŒr jedes GerĂ€t, das Zugriff bekommen soll, einen eigenen Client an. Du bekommst Benutzername, Passwort und einen QR-Code mit beiden Daten.

    • App: Scanne den QR-Code mit der Kamera deines Smartphones. Die evcc-App öffnet sich und ist sofort verbunden.

    • Browser: Öffne deine persönliche Domain und melde dich mit Benutzername und Passwort an (Basic Auth ĂŒber HTTPS).

    • API-Clients: Greife mit Benutzername und Passwort programmatisch auf die API zu.

      curl example
      curl --user Macbook:7IIGKZGP-MV0PJKSE "https://swift-dark-crow.evcc.cloud/api/state?jq=.pvPower"
    Neuer Client mit QR-Code und Zugangsdaten
  5. In derselben Ansicht siehst du, welche Clients zuletzt aktiv waren, und kannst einzelne GerÀte jederzeit wieder entfernen. Optional kannst du den Zugriff auch zeitlich befristen.

Transport. Der Zugriff auf deine Domain lĂ€uft ĂŒber HTTPS mit dem Wildcard-Zertifikat von *.evcc.cloud. Die Verbindung zwischen Remote-Proxy und deiner lokalen Instanz lĂ€uft ĂŒber einen WebSocket-Tunnel.

Was der Remote-Proxy sieht. Der Remote-Proxy reicht Anfragen nur durch. Inhalte werden weder gespeichert noch ausgewertet. Pro Registrierung werden lediglich die Domain, ein Hash des Verbindungstokens, der zugehörige Sponsor sowie Zeitstempel hinterlegt, damit der Tunnel beim Neuverbinden wieder zugeordnet werden kann.

Lokale Autorisierung. Du legst fĂŒr jedes GerĂ€t eigene Zugangsdaten an. Diese werden ausschließlich auf deiner evcc-Instanz gespeichert und geprĂŒft. Auf dem Remote-Proxy werden keine Zugangsdaten gespeichert. Das Passwort wird nur einmal beim Anlegen angezeigt. Wird ein GerĂ€t entfernt, verliert nur dieses GerĂ€t den Zugriff. Alle anderen bleiben verbunden. Wiederholte Fehlversuche bei der Anmeldung werden automatisch ausgebremst.

Umfang des Zugriffs. Die Remote-Access-Zugangsdaten bestehen parallel zu den Sicherheitsmechanismen in evcc selbst. Sie gewĂ€hren ausschließlich Netzwerkzugang zu deiner Instanz, vergleichbar mit dem Zugriff aus deinem lokalen Netzwerk. FĂŒr Änderungen an der Konfiguration, Backups, Logs oder einen Neustart ist weiterhin das Administrator-Passwort erforderlich.

Bindung an den Sponsor-Token. Die Registrierung wird gegen sponsor.evcc.io geprĂŒft. Jeder Sponsor erhĂ€lt genau eine Domain, die fest mit ihm verknĂŒpft bleibt und nicht erneut vergeben wird.

Beim ersten Aktivieren registriert sich die lokale evcc-Instanz beim Remote-Proxy. Im Tausch gegen den Sponsor-Token erhÀlt sie ein Verbindungstoken und eine zufÀllig vergebene Domain. Beide werden lokal gespeichert und beim nÀchsten Start wiederverwendet, um den Tunnel ohne neue Registrierung wieder aufzubauen.

Beim Start öffnet die lokale evcc-Instanz dann eine dauerhafte, TLS-verschlĂŒsselte WebSocket-Verbindung (WSS) zum Remote-Proxy. Diese Verbindung dient als Tunnel fĂŒr alle nachfolgenden Zugriffe und wird ausgehend aufgebaut, deswegen ist keine Portfreigabe nötig.

Auf dieser Verbindung lĂ€uft hashicorp/yamux als Multiplexer. Jeder eingehende HTTP-Request am Remote-Proxy wird zu einem eigenen yamux-Stream auf der bestehenden WebSocket-Verbindung. So laufen mehrere parallele Anfragen ĂŒber eine einzige Verbindung, ohne fĂŒr jeden Request einen neuen TCP- oder TLS-Handshake auszuhandeln.

WebSocket-Upgrades ĂŒber den Tunnel funktionieren ebenfalls. Das ist wichtig, weil die evcc-OberflĂ€che Echtzeitdaten selbst ĂŒber WebSocket bezieht.

Bricht der Tunnel ab, verbindet sich die lokale Instanz automatisch neu. Solange die Verbindung steht, ist die Domain erreichbar, sonst antwortet der Remote-Proxy mit einem Fehler.

Der Quellcode des Remote-Proxys wird zu einem spÀteren Zeitpunkt veröffentlicht. Details zum Datenschutz findest du in unserer DatenschutzerklÀrung.