Electric Vehicle Charging Stations / Schnarchlader mit Handbremse

variable Elaktroauto – Ladung

Ich fahre seit ca. 3 Jahren elektrisch (E-Auto).
Ich möchte möglichst viel meiner erzeugten Energie (PV-Anlage) verbrauchen.
So war es nur eine Frage der Zeit, bis ich meine OpenEVSE irgendwie fern steuere.

Mein SMA – EM liefert mir jede Sekunde genaue Werte zu Verbrauch und Überschuss.
Was noch fehlte war eine Verbindung zur OpenEVSE. Klar kann man die OpenEVSE direkt mit einem FTDI Adapter an einen PC oder RaspberryPi anschließen und damit fern steuern.
Ich wollte aber keinen RaspberryPi im Carport platzieren, oder ein Serielles- oder USB-Kabel verlegen.

Das muss doch auch über WLAN möglich sein.
Ein ESP8266 schien mir dafür gut geeignet.

Ich habe mir dann eine kleine Platine zur Programmierung des ESP8266 gebaut.
Ein bisschen gegoogelt und recht schnell mit der Basis von (link nicht mehr verfügbar) einen Webserver am ESP8266 eingerichtet.

Nun kann ich OpenEVSE Fernzugriffskommandos in einer URL direkt an meine Ladestation senden.

JA-Quick und Diry, aber es geht.
Dafür, dass ich das erste mal einen solchen ESP-8266 verwende bin ich ganz zufrieden.

Da ich sicher öfter neue Versionen oder Features einbauen werde, musste das DING in der Ladestation einfach zu tauschen sein.

Nun kann ich mit einem kleinen Schlitzschraubendreher die Abdeckung entfernen, den ESP8266 – SOC entfernen, neu programmieren und wieder problemlos einsetzen.

Nächste Schritte: Meinem SMA-EM-Daemon eine Logik beibringen, die eine sinnvolle Autoladung ermöglicht.

Ach Ja. Sollte ich mal wollen, dass das Auto geladen wird, unabhängig davon ob ich ausreichend Energie produziere, so kann die Remote-Steuerung deaktiviert werden. Es werden danach keine Daten an OpenEVSE weitergegeben.

 

V2 braucht unbedingt zusätzliches – reconnect – feature

Leider legt sich mein Elektroauto „schlafen“, wenn ich die Ladung stoppe. (Ich habe auch schon davon gelesen, das andere Modelle das auch machen.)

Dauert ein Ladestopp länger als ca. 30 Sekunden, ignoriert das Auto spätere Informationen über Lademöglichkeiten.

V2 wird daher noch 2 Relais bekommen, welche kurz PP und Pilot unterbrechen kann. Dann glaubt das Auto, dass ich den Stecker gezogen habe und gleich wieder eingesteckt habe. Dann beginnt das Auto auch wieder zu laden…

Warum Schnarchlader mit Handbremse:
In der ELEKTRO-Auto-Szene wird eine Ladeleistung unter 11kW als Schnarchlader bezeichnet; weil es einfach lange dauert.

Wenn ich nun diese Ladeleistung noch weiter reduziere… 😉

 

Coding

SMA-Energy-Meter

Fork me on GitHubDa ich mit meinem Smart-Meter meines EVU nicht die gewünschten Daten erhalte, welche ich für eine ordentliche Eigenverbrauchsoptimierung benötige habe ich mir einen SMA-Smart-Meter zugelegt.

Datenübertragung

Der SMA-Energy-Meter gibt auf seiner Webseite keine Informationen über gemessene Größen aus.
In den Netzwerkeinstellungen gibt es einen Konfigurationspunkt, in welchem definiert werden kann, wohin die Energiedaten geschickt werden. Hier steht 239.12.255.254 in der Standardeinstellung.
Jeder der etwas mehr mit Netzwerktechnik zu tun hat, wird sofort erkennen, dass das eine Multicast – Adresse ist.
Tcpdump (oder Wireshark) verrät, dass ca. ein UDP Datenpakt (600 Byte Payload) pro Sekunde vom Energy-Meter an die Multicast-Adresse geschickt wird.
Im Internet habe ich eine sehr gute Aufbereitung der UDP-Datenpakete und deren Interpretation gefunden.
Danke Nico Treffkorn. Ohne diese Informationen hätte ich sicher sehr lange gebraucht, bis ich die Daten richtig interpretiert hätte.

Linux-Client der die Datenpakete vom SMA-Energy-Meter empfängt

Ich habe ein Python Programm erstellt, welches in einer Endlos-Schleife die empfangenen Daten vom SMA-Energy-Meter einfach ausgibt.

SMA-Energymeter - values
Python Script

Der Quellencode liegt bei GitHub

… und dann gibt’s es vielleicht auch mal Etwas das die Daten in fhem einbindet.
zu spät, da hat sich nun schon Volker darum gekümmert…

… und Rene hat teile davon in smarthomeNG integriert (zumindest im develop-branch)

Photovoltaik

Seit November 2013 bin ich nun auch stolzer Besitzer einer Photovoltaik-Anlage
Installierte Leistung: 2,86 kW peak (DC)
Wechselrichter: Kostal PIKO 3.0 (1~)

Nach der Installation der PV-Anlage wurde mein Zähler wurde durch einen Zweirichtungs-„Smart“-Zähler ausgewechselt. Ein Elster AS 1440 zählt nun meinen Verbrauch bzw. meinen Energie-Überschuss.
Meine Erfahrungen zu diesem Zähler habe ich hier aufgeführt.
Da der Elster AS 1440 nicht meinen Anforderungen für die Eigenverbrauchoptimierung erfüllte versuche ich nun mein Glück mit dem SMA Energy Meter

Kostal Wechselrichter
Kostal Wechselrichter
Carport mit "stinker" Autos
Carport mit PV-Modulen
Carport mit PV-Modulen und E-Autos
Carport mit PV-Modulen und E-Autos

Smart Meter / Zweirichtungszähler Elter AS 1440

Mit der Inbetriebnahme meiner PV-Anlage wurde auch mein alter Zähler durch einen SmartMeter (Intelligenter Zweirichtungs-Zähler) ausgewechselt.

Natürlich waren meine ersten Gedanken: „Wie kann man das Ding automatisiert auslesen.“
Es gibt offenbar verschieden „auskunftsfreudige“ Versionen dieses SmartMeters.
Bei Volkszähler.org habe ich viele (benötigte) Informationen über diesen Zähler gefunden. Ich habe mir auch gleich einen USB-IR-Schreib-Lesekopf besorgt.
(Herzlichen Dank an Udo)

Seither hängt ein RaspberryPI in meinem Verteilerschrank und saugt alle 15 Minuten Daten aus dem SmartMeter.
Leider liefert mein Elster AS1440 nur die Zählerstände der beiden Tarife (Bezug/Einspeisen).
Die aktuellen Spannungen und Ströme der einzelnen Phasen können auch via IR ausgelesen werden. Leider kann man an Hand dieser Werte nicht erkennen ob überschüssige Energie ins Netz eingespeist wird, oder diese Leistung gerade vom Netz bezogen wird.
Da die Zählerstände nur in ganzen kWh ausgegeben werden, sind diese Werte für eine Eigenverbrauchsoptimierung zu träge.

So liest mein RaspberryPi den Zähler ab.

#!/bin/bash
echo -e "\nInitialisierung senden:"
# Initialisierung senden (Hexadezimal)
echo $'\x2f\x3f\x21\x0d\x0a' | socat -T 1 - /dev/ttyUSB0,raw,echo=0,b300,parenb=1,parodd=0,cs7,cstopb=0
sleep 1
echo -e "\nÃœbertragungsrate auf 4800 Baud hochsetzen"
# Bestätigung senden und Datenrate des Zählers erhöhen
echo $'\x06\x30\x34\x30\x0d\x0a' | socat -T 1 - /dev/ttyUSB0,raw,echo=0,b300,parenb=1,parodd=0,cs7,cstopb=0
echo -e "\nDaten ausgeben:"
# Daten direkt ausgeben
socat -T 1 - /dev/ttyUSB0,raw,echo=0,b4800,parenb=1,parodd=0,cs7,cstopb=0

so sieht dann die Ausgabe aus

 
...
0.1.2*09(1409010000) => Datum des Register 09 => 01.09.2014 00:00 Uhr
0.1.2*08(1408010000) => damit kann man nachträglich die Zählerstände
0.1.2*07(1407010000) zum Monatswechsel nachlesen.
...
0.9.1(195938) => aktuelle Zeit 19:59:38 Uhr
0.9.2(140913) => aktuelles Datum 2014.09.13
...
1.8.0(00002857*kWh) => aktueller Zählerstand
1.8.0*09(00002690) => Zählerstand Register 09
1.8.0*08(00002336)

Die OIDs 1.8.1 bis 2.8.2 sind gleich wie 1.8.0 aber für andere Tarife (Bezug/Einspeisung)
Weitere OIDs und deren Bedeutung

31.7.0(0.542*A) => aktueller Strom L1
51.7.0(1.471*A) => aktueller Strom L2
71.7.0(0.175*A) => aktueller Strom L3
32.7.0(230.9*V) => aktuelle Spannung L1-N
52.7.0(230.8*V) => aktuelle Spannung L2-N
72.7.0(234.0*V) => aktuelle Spannung L3-N

Ich habe beim EVU nachgefragt, ob sie diesen Zähler um konfigurieren können, um auch die OIDs für aktuelle Bezugsleistung und Einspeiseleistung via IR auslesen zu können.
Als Antwort habe ich leider nur eine simple Bedienungsanleitung für diesen Zähler bekommen. (Alles Andere hätte mich ehrlich gesagt auch gewundert).

Dann werde ich mir noch einen eigenen Zähler zusätzlich einbauen.
Ich habe mich für einen SMA-Energy-Meter entschieden.
Hier habe ich meine Infos und Ideen zu diesem Messgerät zusammengetragen.