Salta ai contenuti
ricarica intelligente

Docker

evcc si può installare come immagine Docker. Le immagini sono disponibili per AMD64, armv6 e arm64. Tra i casi d’uso più comuni ci sono i NAS come Synology, QNAP, Unraid e TrueNAS.

Prima di creare il container devi decidere come collegarlo alla tua rete. Consigliamo la rete host. Il container condivide così la rete dell’host e si comporta come un programma installato direttamente. Questo ha diversi vantaggi:

  • Quando aggiungi un dispositivo, il campo Indirizzo IP o hostname suggerisce i dispositivi trovati nella tua rete.
  • Le funzioni basate su mDNS funzionano, ad es. EEBUS, l’SMA Sunny Home Manager e il rilevamento automatico da parte dell’app evcc.
  • I dispositivi che comunicano via UDP, ad es. i caricabatterie KEBA e i dispositivi SMA, sono raggiungibili senza ulteriori impostazioni.
  • Non c’è nessun elenco di porte da gestire. Le connessioni in entrata, come quelle dei caricabatterie OCPP, funzionano subito.

Con la rete bridge il container gira in una rete Docker separata. Va bene se non ti servono le funzioni elencate sopra o se preferisci isolare il container. In questo caso devi pubblicare tu stesso ogni porta necessaria. I dispositivi della tua rete non vengono suggeriti, quindi devi inserire i loro indirizzi a mano.

La rete host richiede un host Linux, come lo sono anche i NAS più diffusi. Con Docker Desktop su macOS e Windows il container gira in una macchina virtuale senza accesso diretto alla tua rete. In quel caso usa invece l’installazione per macOS o Windows.

Il container si può configurare tramite Docker Compose, la Docker CLI o l’interfaccia Docker del tuo sistema. Tutti e tre i metodi usano la stessa immagine e gli stessi volumi.

Sono disponibili due tag dell’immagine: evcc/evcc:latest (consigliato) e evcc/evcc:nightly (versione di sviluppo).

Percorso hostPercorso containerDescrizioneObbligatorio
/home/user/.evcc/root/.evccDirectory per il databasesì
/home/user/evcc.yaml/etc/evcc.yamlFile di configurazione (solo se ne usi uno)no

Il database contiene le tue sessioni di ricarica e tutto ciò che hai configurato nell’interfaccia web. Crea la directory sul sistema host prima del primo avvio. Questa guida usa /home/user/.evcc come esempio.

Il volume evcc.yaml serve solo se configuri la tua istanza tramite un file di configurazione invece che tramite l’interfaccia web. Se non ne usi uno, rimuovi la riga dagli esempi seguenti.

Docker Compose è il metodo consigliato, perché tutti i parametri sono salvati in un unico file. Crea un file chiamato compose.yml con una delle seguenti configurazioni:

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

Avvia il container con:

Finestra del terminale
sudo docker compose up -d

Se serva o meno sudo dipende dal tuo sistema.

In alternativa, crea e avvia il container con un unico comando:

Finestra del terminale
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

Se il tuo sistema ha un’interfaccia Docker (ad es. Synology, QNAP, Portainer, Unraid), puoi creare il container lì. Inserisci l’immagine e i volumi indicati sopra e imposta la modalità di rete su host. Se invece scegli la rete bridge, aggiungi le porte che ti servono.

Le etichette esatte dei campi variano da sistema a sistema. Tuttavia, in tutti troverai i concetti di modalità di rete, porte e volumi.

Pubblicare le porte è necessario solo con la rete bridge. Con la rete host queste porte sono disponibili direttamente sull’host.

Porta hostPorta containerDescrizioneObbligatoria
70707070/tcpInterfaccia web, APIsì
88878887/tcpServer OCPPno
95229522/udpSMA Sunny Home Managerno
70907090/udpCaricabatterie KEBAno
2837628376/udpCaricabatterie EVSE Masterno
53535353/udpmDNSno
47124712/tcpEEBUSno
88998899/udpModbus UDPno

Dopo aver avviato il container, puoi accedere all’interfaccia web all’indirizzo http://<host>:7070. <host> è l’indirizzo IP o l’hostname del computer su cui gira il container.

Al primo utilizzo ti viene chiesto di impostare una password di amministratore. Dopodiché puoi configurare i tuoi dispositivi come descritto in Configurazione.

Se non riesci a stabilire una connessione, controlla i log del container. Trovi ulteriore aiuto nelle discussioni su GitHub.

Vai nella directory che contiene il file compose.yml e scarica l’immagine più recente:

Finestra del terminale
sudo docker compose pull

Se è disponibile una nuova immagine, il comando seguente ricrea il container. Altrimenti quello esistente continua a girare.

Finestra del terminale
sudo docker compose up -d

Qui trovi guide create dagli utenti per sistemi specifici. Non possiamo garantire che siano corrette o aggiornate.

Puoi installare evcc tramite Docker sui NAS Synology usando l’interfaccia grafica, senza usare la riga di comando. Questa guida usa la rete host consigliata: Guida: Synology Docker (PDF, in tedesco)

Una guida per la rete bridge si trova qui: Guida: Synology Docker 2 (PDF, in tedesco) di at4hawo1

L’installazione di evcc sui sistemi QNAP tramite Container Station è molto simile alle istruzioni per Synology riportate sopra. Le istruzioni specifiche per QNAP si trovano qui: Guida: QNAP (PDF, in tedesco)

Questa è un’opzione avanzata per ambienti Docker controllati, in cui la rete bridge è voluta e i dispositivi sono fissi. La variabile d’ambiente EVCC_DISCOVERY_HOSTS fornisce un elenco statico di dispositivi. Il campo Indirizzo IP o hostname usa poi questo elenco per i suggerimenti, invece di cercare i dispositivi nella rete.

Il valore è un elenco JSON. Ogni voce richiede un ip. hostname e mac sono facoltativi. Servono a mostrare il produttore e a elencare sotto Corrispondenza i dispositivi adatti al tipo di dispositivo selezionato.

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"}
]

Un elenco vuoto [] disattiva i suggerimenti.