Dokumentation EVSE-WiFi 1.0

Einleitung

EVSE-WiFi erweitert deine EVSE WB oder EVSE DIN um eine WLAN-Schnittstelle. Damit kannst du deine Wallbox sehr einfach von der Ferne aus steuern. Das WLAN-Modul basiert auf einem ESP8266 Mikrocontroller und kommuniziert über ModBus (UART) mit dem Ladecontroller (EVSE WB/DIN). EVSE-WiFi stellt ein Webinterface bereit, das viele Einstellungsmöglichkeiten bietet. Optional, aber dringend empfohlen, kann ein S0- oder Modbus-Zähler angesteuert werden, um die Ladeaktivitäten zu dokumentieren. Für Modbus-Zähler ist ein RS485-TTL Adapter notwendig. Mit einem zusätzlich erhältlichen RFID-Modul kann eine Freischaltung per RFID Karte erzwungen werden. Eine HTTP-API lässt eine Steuerung auch von anderen Geräten zu.

Funktionsumfang

  • WLAN-Schnittstelle (Als Access Point oder als WLAN-Client)
  • Aktivieren und Deaktivieren des EVSE WB/DIN Ladecontrollers über
    • Webinterface
    • Taster
    • RFID-Tags
    • API
  • „Always Active“ Modus -> keine Aktivierung nötig. Die Wallbox ist immer freigeschaltet
  • HTTP-API: Lässt zu, dass EVSE-WiFi von anderen Geräten ferngesteuert wird
  • Einstellen des Ladestroms
  • Anzeige der aktuellen Ladedaten
    • Eingestellter Ladestrom (A)
    • Leistung (kW)
    • Ladedauer
    • Geladene Energiemenge (kWh)
    • Kosten des Ladevorgangs (€)
    • Errechnete geladene Reichweite (km)
  • Benutzerverwaltung von RFID-Tags
  • Dokumentation der letzten 100 Ladevorgänge (Username bei RFID-Freischaltung, Ladedauer, geladene Energiemenge, Kosten des Ladevorgangs)
  • Konfigurationsmöglichkeiten:
    • WLAN-Einstellungen
    • Zählerkonfiguration
    • RFID-Konfiguration
    • Einstellung des Lademodus
    • Manuelle Konfiguration und Übersicht der EVSE-Register
    • NTP-Einstellungen
  • Ansteuerung einer LED

Voraussetzungen

Hardware

  • Eine Wallbox, die auf dem EVSE Wallbox oder EVSE DIN Ladecontroller aufgebaut ist (min. Software Revision 8 (2017-10-31) – Kontaktiere uns, falls Du noch eine ältere Software im Einsatz haben solltest) Achtung: Software Revision 9 funktioniert aufgrund eines Bugs in der Firmware nicht (diese wurde nur für eine kurze Zeit im Jahr 2018 verkauft)
  • Das EVSE-WiFi WLAN-Modul
  • Ein 5V-Netzteil (min. 1A)
  • Stromzähler mit S0 oder RS485/Modbus-Schnittstelle. Derzeit werden ausschließlich SDM120 und SDM630 Zähler mit Modbus unterstützt. Bei S0-Zählern, gibt es keine bekannten Einschränkungen. (optional, aber empfohlen)
  • Taster mit LED (optional, aber empfohlen)
  • (optional) RFID Modul (PN532 und Wiegand RFID-Reader werden noch nicht unterstützt)
  • (optional) RFID Karten abhängig der Anzahl der Nutzer

Verkabelung

EVSE-WiFi kann auch ohne Authentifizierung betrieben werden. Dann sind weder ein Taster, noch ein RFID-Reader nötig. Mit einem entsprechenden Stromzähler wird die geladene Energiemenge je Ladevorgng mitgeloggt.

Die Mindestvoraussetzung für den Betrieb von EVSE-WiFi ist die Verkabelung mit dem EVSE WB/DIN Ladecontroller.

5V Netzteil (notwendig)

WLAN-ModulNetzteil
5V+ / 5V
G– / GND

EVSE WB/DIN (notwendig)

WLAN-ModulESP8266-GPIOEVSE WB/DIN
D1GPIO5TX
D2GPIO4RX
G GND

Die entsprechenden Anschlüsse am jeweiligen Ladecontroller (klicken, um das Bild zu vergrößern):

Taster (optional, aber empfohlen)

WLAN-Modul ESP8266-GPIOTaster
D4GPIO2Pin 1
GNDPin 2

Bei der Verkablung des Tasters spielt die Polarität keine Rolle

S0-Stromzähler (optional, aber empfohlen)*

WLAN-Modul ESP8266-GPIOStromzähler
D3GPIO0S0+
GNDS0-

LED (optional)

WLAN-Modul ESP8266-GPIOLED
D0GPIO16Anode (+)
GNDKathode (-)

Modbus-Stromzähler (optional als Alternative zum S0-Zähler)**

TTL->RS485 WLAN-Modul
RXRX
TXTX
VCC5V
GNDGND
TTL->RS485Modbus Meter
A+A
B-B

RFID-Reader (optional, aber notwendig, wenn Authentifizierung gewünscht ist)

WLAN-Modul ESP8266-GPIORFID-Modul
D5GPIO14SCK
D6GPIO12MISO
D7GPIO13MOSI
D8GPIO15SDA
GNDGND
3.3V3.3V

Es wird ein geeignetes Netzteil für das WLAN-Modul benötigt. Mindestens 700 mA werden für einen stabilen Betrieb empfohlen.
* Wenn Sie einen Stromzähler mit S0-Schnittstelle verwenden, achten Sie darauf, dass die S0-Schnittstelle auf GND schaltet. Verwenden Sie nicht den 3,3 V oder 5 V Pin des WLAN-Moduls!
** Zum Betrieb eines Modbus-Stromzähler über RS485, wird zusätzliche Hardware benötigt, um UART in RS485 zu übersetzen. Für EVSE-WiFi empfiehlt sich dieses Modul: RS485->TTL Modul. Der Modbus-Zähler muss auf Baudrate = 9600, Parity = none, Stopbit = 1 und die Slave-ID auf „002“ gesetzt werden. Derzeit werden nur die Modbus-Zähler SDM120 und SDM630 unterstützt! Andere Modelle, können aber in der Regel über die S0-Schnittstelle verwendet werden.

Vorbereitung der EVSE WB/DIN

Für die Nutzung von EVSE-WiFi wird die Modbus-Schnittstelle der EVSE WB / DIN benötigt! Standardmäßig ist diese aber deaktiviert. Um Sie zu aktivieren, schließen Sie einen Taster zwischen den AN-Eingang und GND am EVSE WB/DIN Ladecontroller. Drücken Sie dann innerhalb von 3 Sekunden fünfmal den Taster, unmittelbar nachdem der Ladecontroller mit Strom versorgt wurde. Das Modbus-Register 2001 wird dadurch auf 1 gesetzt (Modbus ist aktiv). Achtung: Diese Änderung wird nicht gespeichert und ist nach dem nächsten Neustart des Ladecontrollers wieder zurückgesetzt! Um die Einstellungen zu speichern, müssen Sie eine Schreib-Operation an einem Register >= 2000 auf der EVSE WB/DIN durchführen. Der einfachste Weg, dies zu tun, ist das Aktivieren und Deaktivieren über die WebUI auf der Seite „EVSE Control“. Alternativ kann auf der Seite „Settings“ auch manuell ein Modbus-Register (>= 2000) geschrieben werden.

PP-Widerstand

Der PP-Widerstand dient sowohl der Wallbox, als auch dem Fahrzeug zur Erkennung, mit welcher Stromstärke das verwendete Ladekabel maximal belastbar ist. In der Regel findet sich auf beiden Seiten des Ladekabels im Ladestecker zwischen dem PP-Kontakt und PE (Schutzleiter) je ein PP-Widerstand. Bei fest angeschlagenen Kabeln wird der Widerstand direkt am Ladecontroller installiert.
Ob ein Kabel für ein- oder mehrphasige Ladung ausgelegt ist, kann vorerst weder vom Fahrzeug, noch von der Wallbox erkannt werden.

WiderstandswertStrombelastbarkeitKabelquerschnitt
1500 Ω13 A1,5 mm²
680 Ω20 A2,5 mm²
220 Ω32 A6 mm²
100 Ω63 A16 mm²

Software

Sollten Sie das WLAN-Modul bei uns im Shop erworben haben, müssen ist die entsprechende Firmware bereits in der jeweils aktuellen Version aufgespielt. Updates können manuell über das Webinterface installiert werden.

Erste Schritte

Beim ersten Start von EVSE-WiFi wird ein WLAN-Zugangspunkt mit dem Namen „evse-wifi“ eingerichtet. Sie können eine Verbindung mit Ihrem WLAN-Endgerät (Smartphone, Tablet, PC, …) ohne Passwort herstellen. Um die Konfiguration vorzunehmen, öffnen Sie die Adresse http://192.168.4.1/ in Ihrem Browser. Das initiale Passwort lautet adminadmin. Sie sollten zuerst die Einstellungen überprüfen, um das WLAN-Modul in den Client-Modus zu versetzen und eine Verbindung zu Ihrem lokalen WLAN-Netzwerk herzustellen. Das WLAN-Modul wird danach neu gestartet. Wenn es nicht neu startet, drücken Sie einmal die Taste ‚RST‘ an der Seite des Moduls.

HTTP API

EVSE-WiFi lässt sich mithilfe einer HTTP API von anderen Geräten fernsteuern. Dies ermöglicht gesteuerte Ladevorgänge und Anpassungen des Ladestroms durch andere Geräte. Die folgenden Aufrufe sind möglich:

getParameters()

gibt die folgenden Parameter im JSON-Format zurück:

Parameter Beschreibung Datentyp
vehicleStateFahrzeugstatus (1: bereit | 2: Fahrzeug angeschlossen | 3: Fahrzeug lädt)integer
evseStateEVSE Status (true: EVSE freigeschaltet | false: EVSE gesperrt)boolean
maxCurrentMaximaler Ladestrom (abhängig vom PP-Widerstand und dem konfigurierten maximalen Ladestrom in EVSE-WiFi – je nachdem welcher Wert niedriger ist)integer
actualCurrentAktueller Ladestrom in A (z.B. 20)integer
actualPowerAktuelle Ladeleistung (nur wenn Stromzähler angeschlossen ist)float
durationcharging duration in millisecondsinteger
alwaysActiveAlways Active Mode enabled (true/false)boolean
lastActionUserThe user name of the user who performed the last action (activate/deactivate)String
lastActionUIDThe UID of the user who performed the last action (activate/deactivate)String
energycharged energy of the current charging process in kWhfloat
mileagecharged energy in kmfloat
meterReadingactual meter reading in kWhfloat
currentP1actual current in A (phase 1)float
currentP2actual current in A (phase 2)float
currentP3actual current in A (phase 3)float

Beispiel

GET http://192.168.4.1/getParameters

Antwort im JSON-Format:

{
  "type": "parameters",
  "list": [{
    "vehicleState": 2,
    "evseState": false,
    "maxCurrent": 32,
    "actualCurrent": 32,
    "actualPower": 5.79,
    "duration": 1821561,
    "alwaysActive": false,
    "lastActionUser": "GUI",
    "lastActionUID": "GUI",
    "energy": 9.52,
    "mileage": 82.3,
    "meterReading": 54.35,
    "currentP1": 8.54,
    "currentP2": 8.54,
    "currentP3": 8.54
  }]
}

getLog()

gibt die folgenden Parameter im JSON-Format zurück:

Parameter Beschreibung Datentyp
uidUID des RFID Tags mit dem der Ladevorgang freigeschalten wurde
„GUI“: Der Ladevorgang wurde über die Weboberfläche freigegeben
„API“: Der Ladevorgang wurde über die HTTP API freigegeben
„Button“: Der Ladevorgang wurde über den Taster freigegeben
String
usernameDer zugehörige Benutzername, bei RFID-Freischaltung, ansonsten analog Parameter „uid“String
timestampUnix-Zeitstempel in Sekunden an dem der Ladevorgang gestartet wurde integer
durationLadedauer in Millisekundeninteger
energyGeladene Energiemenge in kWhfloat
priceZum Zeitpunkt des Ladevorgangs konfigurierter Preis in ct/kWhfloat (bis v.0.3.1: integer)

Beispiel

GET http://192.168.4.1/getLog

Antwort im JSON-Format:

{
  "type": "latestlog",
  "list": [{
    "uid": "ABCD1234",
    "username": "GUI",
    "timestamp": 1523295915,
    "duration": 7504266,
    "energy": 10.32,
    "price": 21
  }, {
    "uid": "-",
    "username": "GUI",
    "timestamp": 1523568920,
    "duration": 1152251,
    "energy": 2.17,
    "price": 23
  }]
}

setCurrent()

mit dem Aufruf setCurrent() wird der zulässige Ladestrom gesetzt (z.B. 18A)

ParameterBeschreibungDatentyp
currentZu setzender maximaler Ladestrominteger

Beispiel

GET http://192.168.4.1/setCurrent?current=8

… setzt den zulässigen Ladestrom auf 8A und gibt zurück:

S0_set current to 8A

Im Fehlerfall werden folgende Meldungen zurückgegeben

AntwortBeschreibung
E0_could not set current – internal errorInterner Fehler (unspezifiziert)
E1_could not set current – give a value between x and yFalscher Wert angegeben
E2_could not set current – wrong parameterFalscher Parameter angegeben

setStatus()

Aktiviert/Deaktiviert die EVSE WB/DIN

Parameter BeschreibungDatentyp
activetrue: EVSE Aktivieren
false: EVSE Deaktivieren
boolean

Beispiel

GET http://192.168.4.1/setStatus?active=true

… gibt den Ladevorgang frei und gibt zurück

S0_EVSE successfully activated

Im Fehlerfall werden folgende Meldungen zurückgegeben:

AntwortBeschreibung
E0_could not activate EVSE – internal errorInterner Fehler (unspezifiziert)
E0_could not deactivate EVSE – internal errorInterner Fehler (unspezifiziert)
E1_could not process – give a valid value (true/false)Falscher Wert angegeben
E2_could not process – wrong parameterFalscher Parameter angegeben
E3_could not activate EVSE – EVSE already activated!EVSE ist bereits aktiviert
E3_could not deactivate EVSE – EVSE already deactivated!EVSE ist bereits deaktiviert

doReboot()

startet EVSE-WiFi neu

ParameterBeschreibungDatentp
reboottrue: Startet EVSE-WiFi neuboolean

Beispiel

GET http://192.168.4.1/doReboot?reboot=true

gibt zurück

S0_EVSE-WiFi is going to reboot now...

Im Fehlerfall werden folgende Meldungen zurückgegeben

AntwortBeschreibung
E1_could not do reboot – wrong valueFalscher Wert angegeben
E2_could not do reboot – wrong parameterFalscher Parameter angegeben