Zum Hauptinhalt springen

Docker

evcc kann auch als Docker Image installiert werden. Das funktioniert auch mit verbreiteten NAS-Systemen wie etwa Synology.

important

Die Verwendung von Docker erfordert fortgeschrittene System-Kenntnisse (Linux, macOS UND Docker)! Für Einsteiger ist es wirklich nicht empfehlenswert mit einer Installation in einer Docker-Umgebung zu starten!

warning

Manche Geräte und Kommunikationswege werden ohne spezielle Docker-Konfigurationsoptionen nicht fehlerfrei funktionieren.

tip

Es ist sinnvoll die gesamte Konfiguration zunächst ohne Docker-Umgebung nativ auf dem Zielsystem zu testen, um grundlegende Fehler in der evcc-Konfiguration und Probleme mit der angebundenen Infrastruktur auszuschließen.

note

Momentan werden nur die CPU Architekturen AMD64, armv6 und arm64 in Docker Images unterstützt!

Diese Dokumentation ist für Docker und Synology. Bei Verwendung anderer Systeme können sich Details unterscheiden.

Konfiguration

  1. Es wird eine funktionierende evcc Konfiguration benötigt. Führe dazu die Schritte auf einem der folgende Systeme durch:

    note

    Wir empfehlen dies, wenn möglich, auf dem gleichen System durchzuführen auf welchem evcc später auch im Docker Container laufen soll

  2. Kopiere die damit erzeugte Datei evcc.yaml in das Verzeichnis /etc auf dem System, auf welchem Docker läuft.

  3. Erstelle ein lokales Verzeichnis (bspw. ~/.evcc) in dem evcc's interne SQLite Datenbank /root/.evcc abgelegt werden kann.

Docker Installation

Der Docker Container kann entweder manuell über einen Befehl in der Kommandozeile erstellt werden, oder über eine docker-compose Datei. Wem letzteres nichts sagt, führt die Schritte unter Manuell aus.

Manuell

Installiere den Docker Container der zu deiner Komponenten-Konstellation passt mit einem der folgenden Befehle:

sudo docker run \
-d \
--name evcc \
-v $(pwd)/evcc.yaml:/etc/evcc.yaml \
-v $(pwd)/.evcc:/root/.evcc \
-p 7070:7070 \
-p 8887:8887 \
-p 7090:7090/udp \
-p 9522:9522/udp \
evcc/evcc:latest
note

Mit evcc/evcc:latest bekommt man die jeweils aktuelle Version. (Empfohlen)
Mit evcc/evcc:nightly bekommt man einen täglich aktualisierten Build, der nicht so gut getestet sein kann.

note

Unter Linux ist es evtl. notwendig den Befehl mit sudo zu beginnen!

note

Durch die -d-Option wird der evcc Container beim Stoppen automatisch gelöscht und muss danach durch einen der docker run ... Befehle oben wieder angelegt/gestartet werden.

warning

Mounte nicht das lokale Verzeichnis /etc als Volume in Docker!

Mit docker-compose

docker-compose hat einige Vorteile gegenüber der direkten Ausführung in der Kommandozeile, z.B. falls man weitere Programme wie Traefik in Verbindung mit evcc nutzen möchte.
Im aktiven Verzeichnis legt man dazu einfach eine Konfigurationsdatei mit dem Namen docker-compose.yml an.
Entsprechend der passenden Komponenten-Konstellation kopiert man eine der folgenden Konfigurationen in die docker-compose.yml und speichert diese ab:

version: "3"
services:
evcc:
command:
- evcc
container_name: evcc
image: evcc/evcc:latest
ports:
- 7070:7070/tcp
- 8887:8887/tcp
- 7090:7090/udp
- 9522:9522/udp
volumes:
- /etc/evcc.yaml:/etc/evcc.yaml
- /home/[user]/.evcc:/root/.evcc
restart: unless-stopped

Starte den Container mit:

sudo docker-compose up -d

Testen

Prüfe die Docker Installation

  • Zeige die laufenden docker Container an:

    sudo docker ps -a
  • Prüfe die log Ausgaben des evcc Containers:

    sudo docker logs evcc
  • Prüfe die evcc Meter-Konfiguration des evcc Containers:

    sudo docker exec evcc evcc -l debug meter
  • Prüfe die evcc Charger-Konfiguration des evcc Containers:

    sudo docker exec evcc evcc -l debug charger
  • Prüfe die evcc Vehicle-Konfiguration des evcc Containers:

    sudo docker exec evcc evcc -l debug vehicle

Öffne einen Browser und gib die folgende URL ein: http://127.0.0.1:7070

note

Ersetze 127.0.0.1 mit der IP Adresse oder dem Hostnamen des Computers, falls der Browser nicht auf dem gleichen Computer geöffnet wurde.

Aktualisierung

Um auf eine neue Version von evcc zu aktualisieren, führe folgende Schritte durch:

  • Öffne ein Terminal/Eingabeaufforderung

  • Aktualisiere auf das neuste evcc Image:

    sudo docker pull evcc/evcc:latest
  • Stoppe den evcc Container:

    sudo docker stop evcc
  • Lösche den evcc Container:

    sudo docker rm evcc
  • Starte den evcc Container mit dem aktualisierten Image:

    sudo docker-compose up -d

Synology NAS

Die Einrichtung von evcc über Docker auf einem Synology NAS-System ist über dessen grafische Benutzeroberfläche ohne Verwendung der Kommandozeile möglich. Hierbei sind zwei Netzwerkmodi wählbar: Host oder Bridge. Ob der Bridge-Modus anwendbar ist, hängt von den verwendeten Komponenten ab. Im Zweifelsfall ist immer der Host-Mode zu wählen. Hier die Anleitung dazu: Anleitung: Synology Docker (PDF)

Für den Bridge-Mode ist nach dieser Anleitung zu verfahren: Anleitung: Synology Docker 2 (PDF) (erstellt von at4hawo1)

QNAP NAS

Auch auf der QNAP NAS kann man über die Container Station evcc in einem Container laufen lassen. Ganz ohne Kommandozeile habe ich hier nicht gearbeitet. Wie auch bei der Synology ist es die Nutzung des Netzwerkmodus abhängig von den verwendeten Komponenten. Insbesondere beim SMA Sunny Home Manager 2.0 ist der "Host-Modus" zu wählen, um den Multicast zu joinen. Hier die Anleitung für das Erstellen des Containers mit der QNAP NAS und der Container Station 2/3: Anleitung: QNAP (PDF)