EVCC
Einführung
Dein WARP Charger ist mit EVCC kompatibel. EVCC ist eine Open-Source-Lösung, mit der du auf einfache Weise den Überschuss deiner Photovoltaik-Anlage zum Laden deines Elektroautos benutzen kannst. EVCC implementiert zudem weitere APIs, mit denen du zum Beispiel eine Hausbatterie bevorzugt, oder dein Elektroauto bis zu einem gewünschten Ladestand laden kannst. Weitere Informationen zu EVCC findest du auf evcc.io, detaillierte Dokumentation, ein Support-Forum und den Quellcode im GitHub-Repository.
Diese Anleitung zeigt dir, wie du EVCC aufsetzt, deinen WARP Charger mit EVCC verknüpfst und wie weitere Komponenten, beispielhaft ein Elektroauto eingebunden werden können. Hierfür benötigst du neben deinem WARP Charger nur einen Rechner, auf dem EVCC ausgeführt werden soll. Wir verwenden im Folgenden einen Raspberry Pi. EVCC kann auch auf anderen Plattformen installiert werden, aber da die Steuerung des WARP Chargers möglichst robust sein soll, bietet es sich an ein System nur für diesen Einsatzzweck abzustellen. Die notwendigen Zähler, die die Stromerzeugung einer PV-Anlage, sowie den Gesamtverbrauch des Hauses messen, kannst du direkt in EVCC konfigurieren, oder zunächst simulieren.
Ladesteuerung mit EVCC
Vorbereitung des Raspberry Pis
Zunächst musst du eine SD-Karte mit dem Betriebssystem für den Raspberry Pi vorbereiten. Am einfachsten ist das mit dem Raspberry Pi Imager. Der RPi-Imager lädt das ausgewählte Betriebssystem herunter und flasht es auf eine angeschlossene Micro-SD-Karte. Wenn du mit der Benutzung einer Linux-Konsole vertraut bist, empfehlen wir das Raspberry Pi OS Lite, das im Imager unter OS auswählen
-> Raspberry Pi OS (other)
zu finden ist. Falls du mit einer graphischen Oberfläche arbeiten möchtest, kannst du das normale Raspberry Pi OS verwenden. Mit der Tastenkombination STRG+SHIFT+X kannst du die erweiterten Optionen öffnen um z.B. den SSH-Server zu aktivieren, oder ein WLAN-Netzwerk, die Spracheinstellungen und einen Hostnamen zu konfigurieren. Der Imager flasht nach Auswahl der SD-Karte und klicken auf Schreiben
das Betriebssystem auf die Micro-SD-Karte.
Raspberry Pi Imager
Du kannst jetzt die Micro-SD-Karte in den Raspberry Pi einlegen und ihn booten. Nachdem du dich gegebenenfalls eingeloggt hast (per SSH auf pi@raspberry
, oder in der Textkonsole als pi
; Passwort ist jeweils raspberrypi
), solltest du zunächst, falls du die graphische Oberfläche gebootet hast, dem Einrichtungs-Wizard folgen. In beiden Fällen solltest du danach in der Konsole mit sudo apt update
und sudo apt upgrade
das System aktualisieren. Danach kannst du den Pi mit sudo reboot
neustarten.
Installation des MQTT-Brokers
Die Kommunikation zwischen dem WARP Charger und EVCC erfordert den Einsatz eines MQTT-Brokers. Auf dem Raspberry Pi kann mit sudo apt install mosquitto mosquitto-clients
der Mosquitto-MQTT-Broker installiert werden. Mosquitto startet sofort und bei jedem Start des Systems automatisch.
Seit Mosquitto 2.0.0 muss explizit erlaubt werden, dass Mosquitto auf Netzwerk-Interfaces Verbindungen annimmt. Hierzu musst du eine neue Konfigurationsdatei namens /etc/mosquitto/conf.d/default.conf
mit einem Texteditor deiner Wahl, auf der Konsole zum Beispiel mit nano
* anlegen und folgenden Inhalt einfügen:
listener 1883
Außerdem erlaubt Mosquitto 2.0.0 standardmäßig nur Verbindungen konfigurierter Benutzer. Einen Benutzer kannst du mit mosquitto_passwd
anlegen. Alternativ kannst du in /etc/mosquitto/conf.d/default.conf
zusätzlich
allow_anonymous true
einfügen, um Verbindungen ohne Benutzername und Kennwort zu erlauben.
Damit die geänderte Konfiguration verwendet wird, musst du Mosquitto danach mit sudo systemctl restart mosquitto
neustarten, bzw. falls du Mosquitto manuell, also nicht über den systemd-Service, starten möchtest, musst du mosquitto -c /etc/mosquitto/mosquitto.conf
verwenden.
Verknüpfen des WARP Chargers
Mehr Informationen zur MQTT-Konfiguration findest du in der API-Dokumentation.
Im Webinterface des WARP Chargers kannst du jetzt die Verbindung zum MQTT-Broker konfigurieren. Hierzu musst du unter Schnittstellen -> MQTT
die Verbindung aktivieren und den Host eintragen (raspberrypi
falls du ihn nicht geändert hast). Alternativ kannst du die IP-Adresse des Pis verwenden. Diese kannst du in der Konsole mit ip -brief a
auslesen: unter eth0 die der LAN-Verbindung, oder unter wlan0 die der WLAN-Verbindung. Danach kannst du die Konfigurationsänderung durch Klicken auf Speichern anwenden. Das Webinterface startet dann neu.
Um zu Testen, ob die Verbindung zum MQTT-Broker funktioniert, kannst du zunächst die Status-Seite des Webinterfaces prüfen. Der Status der MQTT-Verbindung sollte auf Verbunden stehen. Falls das nicht der Fall ist, kannst du im Ereignislog nachsehen, was das Problem ist. Als weiteren Test kannst du in der Konsole des Pis die empfangenen Nachrichten mitlesen: mosquitto_sub -v -t 'warp/#'
bzw. bei einem WARP2 Charger mosquitto_sub -v -t 'warp2/#'
und bei einem WARP3 Charger mosquitto_sub -v -t 'warp3/#'
liefert empfangene Nachrichten aller Wallboxen, die mit dem Broker verbunden sind.
Damit EVCC später den WARP Charger steuern darf, musst du unter Wallbox -> Ladeeinstellungen
die externe Steuerung erlauben.
MQTT-Konfiguration
Verknüpfen des WARP Energy Managers (optional)
Falls du einen WARP Energy Manager und das zugehörige Schütz zur Phasenumschaltung installiert hast, kannst du EVCC die Phasenumschaltung steuern lassen, um deinen PV-Überschuss besser auszunutzen.
Hierzu musst du zuerst, analog zum WARP Charger, die MQTT-Verbindung des Energy Managers konfigurieren. Die Verbindung kannst du wieder in der Konsole des Pis testen: mosquitto_sub -v -t 'wem/#'
liefert empfangene Nachrichten aller Energy Manager, die mit dem Broker verbunden sind.
Damit EVCC später den WARP Energy Manager steuern darf, musst du unter Energiemanager -> Einstellungen
den Umschaltungsmodus auf externe Steuerung (EVCC) ändern. Das PV-Überschussladen des Energy Managers wird dann deaktiviert, da EVCC diese Aufgabe übernehmen soll.
Energy-Manager-Konfiguration
Installation und Konfiguration von EVCC
Die Installation und Konfiguration von EVCC auf einem Raspberry Pi wird in der EVCC-Dokumentation erklärt. Alternativ kann EVCC wie hier beschrieben als Docker-Container installiert werden. Falls du die Verbindung von EVCC und dem WARP Charger testen willst ohne die notwendigen Zähler einzurichten kannst du diese simulieren, wie im nächsten Abschnitt beschrieben.
Bei der Ausführung von evcc configure
kannst du als Wallbox TinkerForge WARP Charger Smart
bzw. TinkerForge WARP Charger Pro
auswählen und folgende Hinweise beachten:
- Als IP-Adresse oder Hostname musst du nicht den entsprechenden Wert der Wallbox, sondern den in vorherigen Abschnitt konfigurierten Broker-Hostname oder dessen IP-Adresse eintragen.
- Das Topic ist der in der MQTT-Konfiguration gesetzte Topic-Präfix, z.B. warp/ABC. Mit diesem beginnt das Topic jeder Nachricht, die du mit
mosquitto_sub -v -t 'warp/#'
odermosquitto_sub -v -t 'warp2/#'
odermosquitto_sub -v -t 'warp3/#'
sehen kannst. - Wenn du wie oben beschrieben einen WARP Energy Manager zur Phasenumschaltung verwenden möchtest, musst du den MQTT-Topic-Präfix des Energy Managers (z.B. wem/XYZ) angeben, wenn
evcc configure
nach energymanager fragt.
Simulation von Stromzählern
evcc configure
unterstützt derzeit nur die Konfiguration "echter" Zähler. Simulierte Zähler können aber von Hand in die von evcc configure
erstellte evcc.yaml-Datei eingetragen werden.
Hierzu musst du die angelegte Konfigurationsdatei (/etc/evcc.yaml
) mit einem Texteditor deiner Wahl, auf der Konsole zum Beispiel mit nano
* editieren. Falls du bei der Konfiguration keine Zähler konfiguriert hast, sollte der site-Block der Konfigurationsdatei bis auf den Titel leer sein:
site:
title: Mein Zuhause
meters:
Über dem site-Block fügen wir jetzt zwei simulierte Stromzähler hinzu. Der erste Zähler (gridmeter) misst den aktuellen Netzbezug bzw. die Netzeinspeisung am Hausanschluss, der zweite misst die aktuelle Einspeisung der Solaranlage (pvmeter). Wir simulieren eine dauerhafte Einspeisung von 10 kW und eine Netzeinspeisung von 9 kW:
meters:
- name: gridmeter
type: custom
power:
source: script
cmd: /bin/sh -c 'echo -9000'
- name: pvmeter
type: custom
power:
source: script
cmd: /bin/sh -c 'echo 10000'
Die hinzugefügten Stromzähler müssen dann im site-Block registriert werden:
site:
title: Mein Zuhause
meters:
grid: gridmeter
pv: pvmeter
Nach einem Neustart durch sudo systemctl restart evcc
sollte die EVCC-Seite die simulierten Zähler anzeigen. Mit evcc configure
können später echte Stromzähler hinzugefügt werden.
Hier die vollständige Konfigurationsdatei (getestet mit EVCC Version 0.95):
# open evcc at http://evcc.local:7070
network:
schema: http
host: evcc.local # .local suffix announces the hostname on MDNS
port: 7070
log: info
levels:
cache: error
interval: 10s # control cycle interval
chargers:
- type: template
template: tinkerforge-warp
host: 192.168.178.72
port: 1883
topic: warp/ABC
timeout: 30s
energymanager: wem/XYZ # EnergyManager MQTT Topic (falls installiert) (optional)
name: wallbox1
loadpoints:
- title: Garage
charger: wallbox1
mode: off
phases: 3
mincurrent: 6
maxcurrent: 16
resetOnDisconnect: false
meters:
- name: gridmeter
type: custom
power:
source: script
cmd: /bin/sh -c 'echo -9000'
- name: pvmeter
type: custom
power:
source: script
cmd: /bin/sh -c 'echo 10000'
site:
title: Mein Zuhause
meters:
grid: gridmeter
pv: pvmeter