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>"]
Wie funktioniert das?
Abschnitt betitelt âWie funktioniert das?â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.
Einrichtung
Abschnitt betitelt âEinrichtungâRemote Access setzt ein aktives Sponsoring voraus.
-
Setze auf dem Host, auf dem evcc lÀuft, die Umgebungsvariable:
EVCC_REMOTE_ACCESS=api.evcc.cloudWie 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.
-
Aktiviere die Funktion in der OberflÀche:
- Konfiguration â Experimentell â aktivieren
- Konfiguration â Remote Access đ§Ș â aktivieren
-
Deine evcc-Instanz registriert sich beim Remote-Proxy und erhÀlt eine eigene Domain, z. B.
swift-dark-crow.evcc.cloud.
-
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"
-
-
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.
Sicherheit
Abschnitt betitelt âSicherheitâ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.
Technischer Hintergrund
Abschnitt betitelt âTechnischer Hintergrundâ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.