e-Car Charger Control

Dies ist eine Android-App zur lokalen Ansteuerung diverser Wallboxen: https://play.google.com/store/apps/details?id=com.chk.go_elocal

Hinweis: um die Keba P20/30 c/x auch unter iOS anzusteuern, gibt es nun eine App (https://www.wallboxcontrol.com) im Apple AppStore: Wallbox Control

So, nun aber zu meiner App…:

Beispiel

Unterstützte Wallbox-Typen für die manuelle Ladung (*) derzeit:

  • go-eCharger (per MQTT oder direkt), V1-V3, auch WebSocket, mit automatischer oder manueller Phasenumschaltung, auch Kompatible (Q-Cells Q.HOME EDRIVE-G1, Fronius Wattpilot).
  • SimpleEVSE Wifi (im “Normal Mode” und im “Always Active” Mode)
  • SmartWB (enthält SimpleEVSE/Wifi) (mit Konten- und Abrechnungsinformationen)
  • Phoenix EV Charge Control EM-CP-PP-ETH
  • Walli Light (enthält Phoenix EV Charge Control EM-CP-PP-ETH)
  • wallbe Eco 2.0 (s) (enthält Phoenix EV Charge Control EM-CP-PP-ETH)
  • Phoenix EV Charge Control EM-CC-AC1-M3
  • Walli Pro (enthält Phoenix EV Charge Control EM-CC-AC1-M3)
  • wallbe Pro (enthält Phoenix EV Charge Control EM-CC-AC1-M3)
  • E3DC easy connect (enthält Phoenix EV Charge Control EM-CC-AC1-M3)
  • NRGkick Connect
  • Keba P20c,P20x/P30c,P30x/BMW mit oder ohne RFID-Autorisierung (mit Konten- und Abrechnungsinformationen)
  • cFos Power Brain (auch mit S0-Zähler für die Ladestrommessung, wenn er entsprechend eingebaut und konfiguriert ist)
  • openWB
  • Heidelberg Energy Control (mit Hilfsmodul wbec https://opensourcelibs.com/lib/wbec)
  • TP-Link “Kasa” Smart WiFi Plug (KP105, KP115, HS100, HS110) für Ladung über Ladeziegel.
  • Mennekes Amtron Xtra oder Premium Wallbox (“mit HCC3”)
  • Hardy Barth cPH1, cPµ1 mit eCB1, und cPH2 (die “neue”, Salia Client)

und als “Notlösung” für den Ladeziegel:

  • TP-Link Wifi Plug Kasa System
  • Shelly Plug, Shelly Switch Plus
  • Plugs with Tasmota firmware and an energy meter

Was bedeutet “lokal”? Nun, der go-eCharger zum Beispiel wird von der App des Herstellers über die Cloud, also einen Server des Herstellers, gesteuert. Meine App steuert die Wallbox lokal an, also direkt per WLAN oder über einen VPN-Tunnel.
Für die anderen Wallboxen ist es eher eine Oberfläche zur komfortablen Steuerung (mit Timer, Lademengeneinstellung (falls unterstützt), Lademengenberechnung, …) anstatt die Wallbox über eine Web-Oberfläche anzusprechen.

Unterstütze Geräte

Alle Androiden ab Version 5.1,

oder

Konfiguration

Man muß nur den Typen der Wallbox einstellen, und dessen IP-Adresse angeben oder suchen lassen (für Faule mit etwas Zeit 😉 – klappt aber nicht mit allen Wallboxen):

Das aber ein Mal pro Netz: wenn man also mal im lokalen LAN, mal per VPN verbunden ist, oder im WLAN des go-eChargers, dann muß man die Konfiguration für jedes Netz erneut machen – das spart Strom, weil die App nur dann den Charger zu nutzen sucht, wenn sie in einem Netz ist, in dem ein Charger konfiguriert wurde.

Auto-Daten und -Verbindung:

Die Batteriekapazität spielt dann eine Rolle, wenn man beim go-eCharger einen Prozentsatz (bzw. eine Lademenge) angeben möchte, die geladen werden soll, oder die Lademenge in SOC-%.

Steuerung über den Ladestand des Traktionsakkus (Nissan, Renault)

Über die App “Ladeüberwachung für Nissan” komme ich an den SoC (State of Charge)-Wert des Fahrakkus eines Nissan-Autos heran. Wenn die App installiert ist, kommt auch diese App hier an den gewünschten Wert.

Optional kann man also einstellen, dass der SoC-Wert zur Lademengenbegrenzung verwendet wird, dann wird die Ladung beendet, wenn der Akku entsprechend voll ist

Steuerung über den Ladezustand des Traktionsakkus einer Zoe (über myRenault)

Neuerdings kann man bei den Autodaten auch den myRenault-Zugang eingeben, um den SoC-Wert des Akkus auszulesen und diesen für die Zielladung zu nutzen.

Logging

die App bietet die Möglichkeit, den Ladungsprozess mitzuloggen. Hierzu muss aber die App dauernd laufen und verbraucht entsprechend mehr Strom des Smartphones als Google gerne hätte.

Widget

Es kann auch ein Widget platziert werden auf dem Screen, über die man die wichtigsten Infos sieht und den Ladeprozess beeinflussen kann. Auch hier muss dann die App einen Hintergrundprozess laufen lassen – siehe “Logging” kostet das Strom.


Aber alle meine Apps wachsen “irgendwie”…

Über ein SmartMeter ist nun eine Steuerung über den Überschuss einer Photovoltaikanlage möglich: (**)

Für die PV-Überschusssteuerung unterstützte Anlagen/APIs:

  • Sonnenspeicher (PV-Anlage mit Heimakku der Firma sonnen GmbH)
  • Fronius Symo/Galvo mit PV-Daten und ggf. Speicher.
  • RCT power (+Akku wenn vorhanden)
  • E3DC Simple Mode (+Akku wenn vorhanden)
  • Kostal Piko IQ und Plenticore (+Akku wenn vorhanden)
  • Senec Home V2 (lokaler Zugriff, nicht per Cloud) (+Akku wenn vorhanden)
  • Solarwatt, EON Auro Energy Manager (+Akku wenn vorhanden)
  • Sungrow (nur Hybrid-typen!) (+Akku wenn vorhanden)
  • Sunny Home Manager 2.0 (+Akku wenn vorhanden)
  • OpenEMS / fenecon FEMS (+Akku wenn vorhanden)
  • Huawei mit SDongleA (aktuelle Firmware!) (+Akku wenn vorhanden)
  • SMA Wechselrichter mit Modbus/TCP (+Akku wenn vorhanden)
  • SolarEdge Cloud (das läuft nicht ideal, da man nur alle 5 Minuten an die aktuellen Daten darf, aber besser als nichts)
  • SolarEdge lokal (modbus)
  • Solax / Q-Cells Cloud (das läuft nicht ideal, da man nur alle 5 Minuten an die aktuellen Daten darf, aber besser als nichts)
  • Varta Heimakkus
  • Tasmota WebRequest-compatible SmartMeter
  • BatterX Systeme
  • Tesla Powerwall

Reine Smartmeter (oder Reader für vorhandene Zähler)

  • SolarView für Linux (Telnet)
  • Solar Log (Modbus – nur Smartmeter-Info)
  • EM 300LR Energy Meter
  • Kostal Smart Energy Meter
  • SMA Energy Meter
  • Fronius Symo/Galvo (nur das SmartMeter)
  • Nedap PowerRouter (Beta – Mithilfe gesucht!)
  • ELV PowerFox (https://de.elv.com/powerfox-wlan-stromzaehlerausleser-poweropti-pa201901-inkl-smartphone-app-251535)
  • Powerfox poweropti Gridmeter Reader
  • Shelly 3EM Energy Meter
  • Emlog Gridmeter reader
  • Solarautonomie Energiemonitor
  • SolarEnergie Energie Monitor
  • smartfox.at
  • Tasmota-kompatible SmartMeter-Reader (WebRequest-JSON)

Funktionsprinzip

Die Überschussregelung nutzt den Wert des Smartmeters (das Messgerät am Übergabepunkt zwischen eigenem Stromnetz und dem externen “Grid”), um den dort ablesbaren Überschusswert (bei Stromexport der eigenen PV-Anlage), für die Steuerung der Wallbox zu nutzen, um das Elektroauto (beinahe) nur von der PV-Anlage zu laden.

Wieso “beinahe”? Nun, das Meter wird alle paar Sekunden ausgelesen und die Ladestromstärke angepaßt. Bei Bewölkung schwankt die PV-Leistung, und man kann nur “hinterherregeln”. Das führt dazu, dass immer wieder kurzzeitig Strom exportiert wird (wenn nach einer Abschattung die Sonne durchbricht) oder importiert werden muss (wenn eine Wolke Schatten wirft), bis die Regelung “nachgeregelt” hat und auch das Auto auf die Leistungsänderung reagiert.

Statistisch mittelt sich das heraus, aber da die Preise für Bezug und Export verschieden ist, ist das nicht optimal.

Das kann man leider auch nicht loswerden, auch da die Messwerte von Meter und Wallbox immer nur die Vergangenheit messen und mitteln, und auch nicht ganz synchron sind.

Um das zu umgehen, hilft ein Hausspeicher, denn er sorgt dafür, dass (je nach Leistung) weniger oder garnichts aus dem Grid bezogen werden muss.

Ebenso kann es passieren, dass der Ladungvorgang abgeschaltet wird, wenn die PV-Leistung für eine Ladung zu gering wird. In der App kann man einen Überbrückungszeitraum angeben, in dem die Ladung mit dem minimalen Ladestrom aufrecht erhalten wird. Hier hilft die Hausbatterie, den Stromimport zu vermeiden. Die Entnahme aus der Hausbatterie fällt nicht ins Gewicht, da diese das nachladen kann, wenn die PV-Leistung generell zu niedrig wird für die Auto-Ladung.

Wenn der Speicher nicht über die API abfragbar ist, dann wird zuerst der Speicher geladen und dann erst das Auto (oder vom Überschuß, wenn die PV-Leistung größer ist als die Speicheraufnahme). Das läßt sich nicht umgehen, weil die Speicher-Aufladung natürlich nicht bei der Grid-Messung auftaucht und daher nicht berücksichtigt werden kann.

Wenn der Speicher abfragbar ist, kann man sich aussuchen, ob man zuerst den Hausspeicher, dann den Autoakku laden möchte oder umgekehrt. Da der Heimspeicher aber mit jedem bisschen Ladestrom zurechtkommt, kann er auch die “Reste” aufsammeln und man dem Auto die Priorität geben.

Wenn kein SmartMeter vorhanden ist, wird die PV-Leistung als Basis genommen, und indem man in der App einen Schätzwert als Reserve einträgt, der abgezogen wird, kann man auch eine grobe, ungefähre Überschussladung erreichen.

Installation

Natürlich muss dazu das Smartphone andauernd im WLAN laufen, und wegen des Stromverbrauchs am Besten am Ladegerät hängen. Am besten ist, man besorgt sich ein eigenes Smartphone oder Tablet dazu.

Tip: Mit etwas Einsatz (z.B. Zeitsteuerung der Steckdose) kann man den Energieverbrauch etwas verringern, und mit Programmen wie Tasker oder AutomateIt weiter über den Flugmodus oder CPU-Governor den Smartphone-Verbrauch verringern.

Die App hat eine “Fernsteuerung“, bei der das im WLAN laufende Steuer-Smartphone der “Server” ist und die Daten mit einem “Client”, den man bei sich hat, austauschen kann und ferngesteuert wird. Dies geschieht über eine Google-Datenbank (“Firebase Realtime”) in der EU (Belgien).

Bildschirmschoner:

Da die App oft (PV-Steuerung, SoC-Wert-Steuerung, Abbruch bei Ladestromdifferenz, …) dauernd durchlaufen sollte, wird auf Dauer der Bildschirm an Qualität nachlassen. Und bei OLED wird dadurch auch etwas Strom gespart.

Um das zu minimieren, habe ich einen Bildschirmschoner mit den wichtigsten Informationen eingebaut, dessen Daten über den Bildschirm laufen.

Bildschirmschoner

Kosten

Ja, die App kostet Geld. Aber wenig. Ich investiere viel Zeit und Mühe, um eine gute App zu bieten:

  • Die App hat einen Einmal-Kaufpreis
  • Die PV-Überschussregelung benötigt eine kleine monatliche oder jährliche Zahlung mit 14 Tage kostenloser Schnupperzeit, oder einen lebenslangen Zugriff.

Die Preise dazu stehen im Eintrag des Play Stores.

Tasker, Llama, …

Man kann die App auch fernsteuern.

Package “com.chk.go_elocal”
Receiver Type: BroadcastReceiver

  • Intent 1: “com.chk.go_elocal.START_CHARGING”
    – Extra (optional) “PowerA” (float),
    z.B. “PowerA:16”
    – Extra (optional) “MaxEnergyKWh” (float)
    z.B. “MaxEnergyKWh:20”
  • Intent 2: “com.chk.go_elocal.STOP_CHARGING”

Beschreibung der Lade-Optionen

Oberfläche

Seid mir nicht böse, wenn ich das nach und nach ergänze… Die Programmierung und Beantwortung von Mails braucht viel Zeit.

Lade-Ziel (nur verfügbar, wenn der Akkustand des Autos abgefragt werden kann):

hier gibt man an, bis zu welchem Ladezustand des Autoakkus geladen werden soll. Dadurch wird der Akku nicht ganz voll geladen, wenn man möchte, um ihn etwas zu schonen.

Lade-Minimum (nur verfügbar, wenn der Akkustand des Autos abgefragt werden kann):

Wenn man den Akku möglichst auf einem Minimalwert halten möchte, z.B. um immer genug Reserve für eine wichtige ungeplante Fahrt zu haben, kann diesen Wert einstellen. Befindet sich der Auto-Akku unterhalb dieses Ladezustands, wird mit maximaler Leistung geladen, bis der Wert erreicht ist.

Boost per Heimspeicher (nur einstellbar in PV-Überschussladung, wenn Heimakku vorhanden ist)

Mit diesen zwei Parametern kann man wählen, dass für eine schnelle Ladung Energie aus dem Heimspeicher entnommen werden darf zur Ladung. Sowohl der minimale SoC des Heimspeichers als auch die Leistung sind einstellbar, unterhalb dieses SoC findet keine Unterstützung statt. Diese Option wird bei Abstöpseln des Autos automatisch zurückgesetzt (bei Wallboxen, die diese Information liefern), ansonsten bei Tageswechsel.

Soll-Lademenge (nur verfügbar, wenn die Wallbox das unterstützt, und der Akkustand der Autos nicht verfügbar ist)

Hier stellt man ein, bis zu welcher geladenen Energiemenge das Auto aufgeladen werden soll.

Soll-Ladestrom (nur im manuellen Modus verfügbar)

Hier stellt man den gewünschten Ladestrom ein, klar.

Reserve oder PV-Unterstzg. (nur einstellbar in PV-Überschussladung)

Dieser Parameter besteht aus drei logischen Gruppen.

  • positiver Wert: dieser Wert wird von dem für die Ladung verfügbaren Überschuss abgezogen, z.B. für den Hausverbrauch (wichtig, wenn man nur die PV-Daten hat zur Überschussberechnung, denn dann muss man einen mittleren Verbrauch des Hauses hier angeben)
  • negativer Wert mit “fester erlaubter Bezug”: dieser Wert wird – als positiver Wert – fest zum Überschuss hinzugerechnet, d.h. was vom Netz zusätzlich bezogen werden darf bei der Ladung. Dies ist bei kleinen Anlagen nett, denn dann kann man auch schon laden, wenn nicht genug PV-Leistung vorhanden ist.
  • negativer Wert mit “max. erlaubter Bezug”: dieser Wert wird – als positiver Wert – zum Überschuss hinzugerechnet, um eine Ladung zu ermöglichen. Es wird hier aber nur die zur Ladung nötige Leistung aus dem Netz genommen, d.h. je mehr die PV an Leistung bringt, desto weniger wird dieser Zuschuss aus dem Netz genommen – wenn überhaupt.