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.
Modalità di rete
Sezione intitolata “Modalità di rete”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.
Installazione
Sezione intitolata “Installazione”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 host | Percorso container | Descrizione | Obbligatorio |
|---|---|---|---|
/home/user/.evcc | /root/.evcc | Directory per il database | sì |
/home/user/evcc.yaml | /etc/evcc.yaml | File 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
Sezione intitolata “Docker Compose”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-stoppedservices: evcc: container_name: evcc image: evcc/evcc:latest ports: - 7070:7070/tcp - 8887:8887/tcp volumes: - /home/user/.evcc:/root/.evcc - /home/user/evcc.yaml:/etc/evcc.yaml # optional restart: unless-stoppedQuesto esempio pubblica solo l’interfaccia web e il server OCPP. Aggiungi altre porte secondo necessità.
Avvia il container con:
sudo docker compose up -dSe serva o meno sudo dipende dal tuo sistema.
Docker CLI
Sezione intitolata “Docker CLI”In alternativa, crea e avvia il container con un unico comando:
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:latestsudo docker run -d --name evcc \ -p 7070:7070 \ -p 8887:8887 \ -v /home/user/.evcc:/root/.evcc \ -v /home/user/evcc.yaml:/etc/evcc.yaml \ --restart unless-stopped \ evcc/evcc:latestQuesto esempio pubblica solo l’interfaccia web e il server OCPP. Aggiungi altre porte secondo necessità.
Interfaccia Docker
Sezione intitolata “Interfaccia Docker”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 host | Porta container | Descrizione | Obbligatoria |
|---|---|---|---|
| 7070 | 7070/tcp | Interfaccia web, API | sì |
| 8887 | 8887/tcp | Server OCPP | no |
| 9522 | 9522/udp | SMA Sunny Home Manager | no |
| 7090 | 7090/udp | Caricabatterie KEBA | no |
| 28376 | 28376/udp | Caricabatterie EVSE Master | no |
| 5353 | 5353/udp | mDNS | no |
| 4712 | 4712/tcp | EEBUS | no |
| 8899 | 8899/udp | Modbus UDP | no |
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.
Aggiornamenti
Sezione intitolata “Aggiornamenti”Vai nella directory che contiene il file compose.yml e scarica l’immagine più recente:
sudo docker compose pullSe è disponibile una nuova immagine, il comando seguente ricrea il container. Altrimenti quello esistente continua a girare.
sudo docker compose up -dScarica l’immagine più recente, poi arresta e rimuovi il container esistente:
sudo docker pull evcc/evcc:latestsudo docker stop evccsudo docker rm evccAvvia di nuovo il container con lo stesso comando docker run usato durante l’installazione.
La procedura di aggiornamento dipende dalla tua interfaccia Docker. Consulta la documentazione del tuo sistema.
Guide della community
Sezione intitolata “Guide della community”Qui trovi guide create dagli utenti per sistemi specifici. Non possiamo garantire che siano corrette o aggiornate.
Synology NAS
Sezione intitolata “Synology NAS”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
QNAP NAS
Sezione intitolata “QNAP NAS”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)
Elenco statico dei dispositivi suggeriti
Sezione intitolata “Elenco statico dei dispositivi suggeriti”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.