Docker, Synology
evcc kann auch als Docker Image installiert werden.
important
Die Verwendung von Docker erfordert fortgeschrittene System (Linux, macOS, Docker) Kenntnisse!
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 System können sich Details unterscheiden.
Konfiguration
Es wird eine funktionierende evcc Konfiguration benötigt. Für dazu die Schritte auf der folgende Systeme durch:
note
wir empfehlen das wenn möglich auf dem gleichen System durchzuführen auf welchem evcc später auch im Docker Container laufen soll
Kopiere die damit erzeugte Datei
evcc.yaml
in das Verzeichnis/etc
auf dem System auf welchem Docker läuft.
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:
- Standard
- SMA Geräte
- UDP Geräte (z.b. KEBA)
sudo docker run \
-d \
--name evcc \
-v $(pwd)/evcc.yaml:/etc/evcc.yaml \
-p 7070:7070 \
andig/evcc:latest
sudo docker run \
-d \
--name evcc \
-v $(pwd)/evcc.yaml:/etc/evcc.yaml \
-v /etc/machine-id:/etc/machine-id \
-v /var/lib/dbus/machine-id:/var/lib/dbus/machine-id \
--network host \
andig/evcc:latest
sudo docker run \
-d \
--name evcc \
-v $(pwd)/evcc.yaml:/etc/evcc.yaml \
-p 7070:7070 \
-p 7090:7090/udp \
andig/evcc:latest
note
Mit andig/evcc:latest
bekommt man die jeweils aktuelle Version. (Empfohlen)
Mit andig/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:
- Standard
- SMA Geräte
- UDP Geräte (z.b. KEBA)
version: "3"
services:
evcc:
command:
- evcc
container_name: evcc
entrypoint:
- /app/entrypoint.sh
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- TZ=Europe/Berlin
image: andig/evcc:latest
ipc: private
logging:
driver: json-file
options: {}
ports:
- 7070:7070/tcp
volumes:
- /etc/evcc.yaml:/etc/evcc.yaml
restart: unless-stopped
working_dir: /app
networks: {}
version: "3"
services:
evcc:
command:
- evcc
container_name: evcc
entrypoint:
- /app/entrypoint.sh
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- TZ=Europe/Berlin
image: andig/evcc:latest
ipc: private
logging:
driver: json-file
options: {}
network_mode: host
volumes:
- /etc/evcc.yaml:/etc/evcc.yaml
- /etc/machine-id:/etc/machine-id
- /var/lib/dbus/machine-id:/var/lib/dbus/machine-id
restart: unless-stopped
working_dir: /app
networks: {}
version: "3"
services:
evcc:
command:
- evcc
container_name: evcc
entrypoint:
- /app/entrypoint.sh
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- TZ=Europe/Berlin
image: andig/evcc:latest
ipc: private
logging:
driver: json-file
options: {}
ports:
- 7070:7070/tcp
- 7090:7090/udp
volumes:
- /etc/evcc.yaml:/etc/evcc.yaml
restart: unless-stopped
working_dir: /app
networks: {}
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 gibt 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 andig/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 aktualiserten Image:
sudo docker-compose up -d