Aller au contenu
recharge intelligente

Docker

evcc peut être installé sous forme d’image Docker. Des images sont disponibles pour AMD64, armv6 et arm64. Les cas d’usage courants sont les NAS comme Synology, QNAP, Unraid et TrueNAS.

Avant de créer le conteneur, vous devez décider comment il est relié à votre réseau. Nous recommandons le réseau hôte. Le conteneur partage alors le réseau de l’hôte et se comporte comme un programme installé directement. Cela présente plusieurs avantages :

  • Lorsque vous ajoutez un appareil, le champ Adresse IP ou nom d’hôte propose les appareils trouvés sur votre réseau.
  • Les fonctions basées sur mDNS fonctionnent, p. ex. EEBUS, le SMA Sunny Home Manager et la détection automatique par l’app evcc.
  • Les appareils qui communiquent via UDP, p. ex. les chargeurs KEBA et les appareils SMA, sont joignables sans configuration supplémentaire.
  • Il n’y a pas de liste de ports à maintenir. Les connexions entrantes, comme celles des chargeurs OCPP, fonctionnent immédiatement.

Avec le réseau bridge, le conteneur tourne dans un réseau Docker séparé. C’est suffisant si vous n’avez pas besoin des fonctions ci-dessus ou si vous préférez isoler le conteneur. Vous devez alors publier vous-même chaque port nécessaire. Les appareils de votre réseau ne sont pas proposés : vous devez donc saisir leurs adresses manuellement.

Le réseau hôte nécessite un hôte Linux, ce qui inclut les NAS courants. Avec Docker Desktop sous macOS et Windows, le conteneur tourne dans une machine virtuelle sans accès direct à votre réseau. Utilisez dans ce cas l’installation pour macOS ou Windows.

Le conteneur peut être configuré via Docker Compose, la CLI Docker ou l’interface Docker de votre système. Les trois utilisent la même image et les mêmes volumes.

Deux tags d’image sont disponibles : evcc/evcc:latest (recommandé) et evcc/evcc:nightly (version de développement).

Chemin sur l’hôteChemin dans le conteneurDescriptionRequis
/home/user/.evcc/root/.evccRépertoire de la base de donnéesoui
/home/user/evcc.yaml/etc/evcc.yamlFichier de configuration (seulement si vous en utilisez un)non

La base de données contient vos sessions de charge et tout ce que vous avez configuré dans l’interface web. Créez le répertoire sur votre système hôte avant le premier démarrage. Ce guide utilise /home/user/.evcc comme exemple.

Le volume evcc.yaml n’est nécessaire que si vous configurez votre instance via un fichier de configuration plutôt que via l’interface web. Supprimez la ligne des exemples ci-dessous si vous n’en utilisez pas.

Docker Compose est la méthode recommandée, car tous les paramètres sont regroupés dans un seul fichier. Créez un fichier nommé compose.yml avec l’une des configurations suivantes :

services:
evcc:
container_name: evcc
image: evcc/evcc:latest
network_mode: host
volumes:
- /home/user/.evcc:/root/.evcc
- /home/user/evcc.yaml:/etc/evcc.yaml # optional
restart: unless-stopped

Démarrez le conteneur avec :

Fenêtre de terminal
sudo docker compose up -d

Selon votre système, sudo est nécessaire ou non.

Vous pouvez aussi créer et démarrer le conteneur avec une seule commande :

Fenêtre de terminal
sudo docker run -d --name evcc \
--network host \
-v /home/user/.evcc:/root/.evcc \
-v /home/user/evcc.yaml:/etc/evcc.yaml \
--restart unless-stopped \
evcc/evcc:latest

Si votre système dispose d’une interface Docker (p. ex. Synology, QNAP, Portainer, Unraid), vous pouvez y créer le conteneur. Saisissez l’image et les volumes indiqués plus haut et réglez le mode réseau sur host. Si vous choisissez plutôt le réseau bridge, ajoutez les ports dont vous avez besoin.

Les libellés exacts des champs varient d’un système à l’autre. Vous y retrouverez toutefois partout les notions de mode réseau, de ports et de volumes.

La publication des ports n’est nécessaire qu’avec le réseau bridge. Avec le réseau hôte, ces ports sont directement disponibles sur l’hôte.

Port hôtePort du conteneurDescriptionRequis
70707070/tcpInterface web, APIoui
88878887/tcpServeur OCPPnon
95229522/udpSMA Sunny Home Managernon
70907090/udpChargeurs KEBAnon
2837628376/udpChargeurs EVSE Masternon
53535353/udpmDNSnon
47124712/tcpEEBUSnon
88998899/udpModbus UDPnon

Une fois le conteneur démarré, vous pouvez accéder à l’interface web à l’adresse http://<host>:7070. <host> est l’adresse IP ou le nom d’hôte de l’ordinateur sur lequel tourne le conteneur.

Lors de la première utilisation, vous êtes invité à définir un mot de passe administrateur. Vous pouvez ensuite configurer vos appareils comme décrit dans Configuration.

Si vous ne parvenez pas à établir de connexion, consultez les journaux du conteneur. Vous trouverez de l’aide supplémentaire dans les discussions GitHub.

Placez-vous dans le répertoire contenant le fichier compose.yml et récupérez la dernière image :

Fenêtre de terminal
sudo docker compose pull

Si une nouvelle image est disponible, la commande suivante recrée le conteneur. Sinon, le conteneur existant continue de tourner.

Fenêtre de terminal
sudo docker compose up -d

Vous trouverez ici des guides rédigés par des utilisateurs pour des systèmes spécifiques. Nous ne pouvons pas garantir qu’ils soient exacts ou à jour.

Vous pouvez installer evcc via Docker sur les NAS Synology à l’aide de leur interface graphique, sans passer par la ligne de commande. Ce guide utilise le réseau hôte recommandé : Anleitung: Synology Docker (PDF / DE)

Un guide pour le réseau bridge est disponible ici : Anleitung: Synology Docker 2 (PDF / DE) par at4hawo1

L’installation d’evcc sur les systèmes QNAP via Container Station est très proche des instructions Synology ci-dessus. Des instructions spécifiques à QNAP sont disponibles ici : Anleitung: QNAP (PDF / DE)

Il s’agit d’une option avancée pour les environnements Docker maîtrisés, où le réseau bridge est voulu et où les appareils sont fixes. La variable d’environnement EVCC_DISCOVERY_HOSTS fournit une liste statique d’appareils. Cette liste est alors utilisée pour les suggestions du champ Adresse IP ou nom d’hôte, au lieu de rechercher sur le réseau.

La valeur est une liste JSON. Chaque entrée nécessite une ip. hostname et mac sont facultatifs. Ils servent à afficher le fabricant et à lister sous Correspondance les appareils qui conviennent au type d’appareil sélectionné.

services:
evcc:
environment:
EVCC_DISCOVERY_HOSTS: >-
[
{"ip": "192.168.1.10", "hostname": "sma3009876543", "mac": "00:15:BB:12:34:56"},
{"ip": "192.168.1.20", "hostname": "go-echarger_123456"}
]

Une liste vide [] désactive les suggestions.