Evcc

open source Energie-Management-System homepage siehe: https://evcc.io/

Idee

aktuell als "prove of concept" gedacht. Ziel sollte es sein später die Überschussleistung der PV-Anlage ohne zusätzlichen Komponenten in die Autos zu laden.

Im PoC sollen folgende Fragen geklärt werden:

  • Einbindung des Smartmeters
  • Einbindung der Fahrzeuge
    • Tesla Model S
    • Cupra Born

da ich nur über Stecker-Ladegeräte verfüge liegt die Herausforderung darin, das Überschussladen via die Fahrzeug APIs zu steuern.

Zukünftig sollen natürlich auch die Wärmepumpe und der Wechselrichter integriert werden.

Konfiguration

PV-System

keines

Netz-Stromzähler

DSMR

ich verfüge über einen Zähler mit einem Schnittstellen-Modul gemäss Semax AS3000

evcc erwartet jedoch einen Hostname. Physikalisch greife ich die DSMR Schnittstelle mit einem RS485 zu USB Dongle ab, welcher am gleichen Raspberry angeschlossen ist. Die Lösung mit einem Serial to Network Proxy erscheint mir recht universell, da ich damit evcc auf irgend einem Device hosten kann. (Auch wenn ich das wohl auf diesem Raspberry lassen werde.) Die Idee habe ich von hier: https://dev.to/badgerbadgerbadgerbadger/setting-up-dsmr-meter-readings-via-a-raspberry-pi-4idl Ich übernehme auch diese Umsetzung.

Installation von ser2net:

sudo apt update
sudo apt upgrade -y
sudo apt install ser2net -y

Ports finden: dmesg | grep tty

bei mir:
usb 1-1.1.2: FTDI USB Serial Device converter now attached to ttyUSB0

damit die ser2net.yaml um diese Verbindung ergänzt:

connection: &rs485
    accepter: tcp,0.0.0.0,4001
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyUSB0,
              115200n81,local

Mit 0.0.0.0 sind die zugreifenden IPs beliebig offen. Prinzipiell gibt es keine Authentifizierung und damit hat jeder der auf das interne Netzwerk Zugriff hat auch auf die Daten des Stromzählers Zugriff. (Als Hinweis, für den Fall, dass Security ein Thema ist.) Eventuell einschränken auf die IP des evcc Servers oder mit iptable dediziert auf das lokale Netzwerk einschränken.

Prinzipiell funktioniert das, nur ist das Protokoll wohl nicht DSMR, sondern DLMS/COSEM. Gemäss Datenblatt: Protocol Description The protocol is based on NEN-EN-IEC 62056-21 Mode D. Data transfer is requested with request line and automatically initiated every 10 seconds until request line is released. The information in the P1 telegram must be updated every 10 seconds.

Das wird zumindestens im Konfiguration-Assistent von evcc nicht unterstützt und muss ich manuell ergänzen.

Fahrzeuge

Tesla

Info in der Konfiguration: Das Gerät hat die folgenden Voraussetzungen: Tesla bietet eine offizielle, aber kostenpflichtige Fahrzeug-API an. Für private Nutzung kannst du dir einen Tesla Developer Account erstellen und erhältst ein monatliches API-Guthaben von 10$. Das ist für die gängigen evcc-Anwendungsfälle in der Regel ausreichend.

Die Anleitung von myteslamate.com erklärt den Prozess und generiert dir kostenfrei die für evcc benötigten Access- und Refresh-Token. Mit diesem Tokenpaar und deiner im Tesla Developer Account erstellten Client ID kann evcc direkt mit der Tesla API kommunizieren. Dein verbrauchtes Guthaben kannst du bei Tesla einsehen.

Für die Nutzung des "Tesla Wall Connectors" benötigst du einen öffentlichen Command-Proxy-Server. myteslamate.com stellt diesen Dienst für 12$/Jahr bereit. Konfiguriere dafür bei myteslamate.com die Command-Berechtigungen und trage das Proxy-Token hier ein. Start-, Stopp- und Stromstärken-Kommandos werden über diesen Proxy an Tesla geschickt.

Netterweise unterstützt evcc TeslaLogger. Aus irgend einem Grund muss beim Port statt den dokumentierten 5000, der Port 5010 eingegeben werden. Dann scheint es recht schmerzlos zu funktionieren.

Cupra