MQTT- und HTTP-API

Einführung

Die Varianten WARP Charger Smart und WARP Charger Pro können über MQTT und HTTP den aktuellen Zustand melden und gesteuert werden. Während die MQTT-API zunächst aktiviert und konfiguriert werden muss, kann die HTTP-API sofort verwendet werden, da sie auch vom Webinterface selbst benutzt wird.

MQTT

Konfiguration

Damit die Wallbox über MQTT kommuniziert, muss zunächst im Webinterface die Verbindung zum MQTT-Broker konfiguriert werden. Folgende Einstellungen können vorgenommen werden:

  • Broker-Hostname oder IP-Adresse: Der Hostname oder die IP-Adresse des Brokers zu dem sich die Wallbox verbinden soll.
  • Broker-Port: Der Port unter dem der Broker erreichbar ist. Der typische MQTT-Port 1883 ist voreingestellt.
  • Broker-Benutzername und Passwort: Manche Broker unterstützen eine Authentifizierung mit Benutzername und Passwort.
  • Topic-Präfix: Dieser Präfix wird allen Topics vorangestellt, die die Wallbox verwendet. Voreingestellt ist warp/ABC wobei ABC eine eindeutige Kennung pro Wallbox ist, es sind aber andere Präfixe wie z.B. garage_links möglich. Falls mehrere Wallboxen mit dem selben Broker kommunizieren müssen eindeutige Präfixe pro Box gewählt werden.
  • Client-ID: Mit dieser ID registriert sich die Wallbox beim Broker.

Nachdem die Konfiguration gesetzt und der "MQTT aktivieren"-Schalter gesetzt ist, kann die Konfiguration gespeichert werden. Der ESP startet dann neu und verbindet sich zum Broker. Auf der Status-Seite wird angezeigt, ob die Verbindung aufgebaut werden konnte.

MQTT-Konfiguration

Im Folgenden werden die mosquitto_pub und mosquitto_sub-Befehle des Mosquitto-MQTT-Brokers verwendet, um mit dem Broker zu kommunizieren.

Grundlagen

Wenn die Verbindung zum Broker erfolgreich aufgebaut wurde, sollten jetzt bereits erste Nachrichten der Wallbox eintreffen. Sämtliche Nachrichten der Wallbox sind Strings im JSON-Format. Genauso müssen alle Nachrichten, die zur Wallbox geschickt werden, das JSON-Format einhalten.

Mit mosquitto_sub -v -t "warp/ABC/#" können alle Nachrichten der Wallbox angezeigt werden. (Den Präfix warp/ABC gegebenenfalls durch den konfigurierten ersetzen) Es könnte z.B. die folgende Nachricht empfangen werden: warp/ABC/evse/max_charging_current {"max_current_configured":32000, "max_current_incoming_cable":13000, "max_current_outgoing_cable":16000} Die Nachrichten des Topics evse/max_charging_current geben an, welchen Limitierungen der Ladestrom unterliegt. Im konkreten Fall begrenzt die Software den Ladestrom auf 32 Ampere, das zur Wallbox führende Kabel ihn auf 13, das zum Fahrzeug gehende Kabel ihn auf 16 Ampere. Der maximal mögliche Ladestrom ist immer das Minimum dieser Werte, also in diesem Fall 13 Ampere.

Durch Senden der Nachricht {"current":8000} an das Topic warp/ABC/evse/current_limit kann der Ladestrom auf 8 Ampere begrenzt werden, zum Beispiel so: mosquitto_pub -t "warp/ABC/evse/current_limit" -m "{\"current\": 8000}' (Damit die Beispiele auch mit cmd.exe von Windows kompatibel sind, werden nur doppelte Anführungszeichen verwendet. Anführungszeichen in JSON-Nachrichten müssen deshalb mit \ escapt werden.) Der Ladestrom ist jetzt auf 8 Ampere begrenzt, was die Wallbox durch eine neue Nachricht anzeigt: warp/ABC/evse/max_charging_current {"max_current_configured":8000, "max_current_incoming_cable":13000, "max_current_outgoing_cable":16000}

HTTP

Konfiguration

Die HTTP-API kann ohne vorherige Konfiguration verwendet werden.

Grundlagen

Die HTTP-API funktioniert strukturell identisch wie die MQTT-API: Wenn die MQTT-API beispielsweise das Topic warp/ABC/evse/state verwendet, kann die selbe API über die URL http://[IP-Adresse oder Hostname der Wallbox]/evse/state erreicht werden. Die HTTP-API verfügt allerdings über fortgeschrittene Funktionen, die nicht über MQTT verfügbar sind. Es können zusätzlich die Server-Sent-Events (SSE) unter http://[IP-Adresse oder Hostname der Wallbox]/events verwendet werden, die von der Wallbox automatisch ausgelöst werden.

Um Analog zum MQTT-Beispiel alle von der Wallbox gesendeten Nachrichten zu empfangen, kann die Event-Verbindung genutzt werden. Hierzu und für die weiteren Beispiele wird cURL verwendet und davon ausgegangen, dass die Wallbox unter der IP-Adresse 10.0.0.1 erreichbar ist.

Mit curl -N 10.0.0.1/events könnte unter anderem folgende Nachricht empfangen werden: retry: 1000 id: 238659782 event: evse/max_charging_current data: {"max_current_configured":32000, "max_current_incoming_cable":13000, "max_current_outgoing_cable":16000} Diese Nachricht ist äquivalent zu der aus den MQTT-Grundlagen: Die Wallbox-Software begrenzt den Ladestorm auf 32 Ampere, das Anschlusskabel der Box ihn auf 13 Ampere und das zum Fahrzeug führende Kabel auf 16 Ampere. Es kann also mit 13 Ampere geladen werden.

Wenn nur eine Information abgefragt werden soll, kann mit cURL eine einzelne URL aufgerufen werden: curl -s http://10.0.0.1/evse/max_charging_current liefert die gleichen JSON-Daten: {"max_current_configured":32000, "max_current_incoming_cable":13000, "max_current_outgoing_cable":16000} Mit jq können einzelne Werte aus einem JSON-Objekt extrahiert werden. curl -s http://10.0.0.1/evse/max_charging_current | jq ".max_current_configured" gibt 32000, also den konfigurierten Ladestrom von 32 Ampere zurück.

Jetzt soll der Ladestrom auf 8 Ampere begrenzt werden. Dafür wird die Nachricht {"current":8000} an die URL http://10.0.0.1/evse/current_limit geschickt: curl -H "Content-Type: application/json" -X PUT -d "{\"current\":8000}" 10.0.0.1/evse/current_limit Wichtig ist hierbei, den Content-Type-Header auf application/json zu setzen, da die Anfrage sonst ignoriert wird. Es können sowohl PUT, POST, als auch PATCH verwendet werden, die API verhält sich in allen drei Fällen gleich.

Zur Kontrolle: curl -s http://10.0.0.1/evse/state | jq ".allowed_charging_current" liefert den erlaubten Ladestrom (also das Minimum der oben erlaubten Ströme), was jetzt 8000, also 8 Ampere sein sollten.

Authentifizierung

Die HTTP-API und das Webinterface können durch einen Benutzernamen und ein Passwort geschützt werden. Die Authentifizierung kann im System-Abschnitt des Webinterfaces unter Zugangsdaten aktiviert werden. Alle Requests müssen dann mit der Digest access authentication authentisiert werden. Nicht authentifizierte Requests werden von der Wallbox mit dem HTTP-Code 401 beantwortet. Eine Ausnahme bildet die Hauptseite des Webinterfaces, die den meisten Browsern auf einen nicht authentifizierten Request mit der Login-Seite antwortet.

Zustände, Kommandos und Konfigurationen

Die Wallbox bietet über MQTT und HTTP drei Arten von Schnittstellen: Zustände, Kommandos und Konfigurationen.

Zustände

Zustände sind Statusinformationen, die die Wallbox kontinuierlich an den Broker schickt. Zustände können nicht direkt geändert werden, es ist aber möglich, dass Kommandos und Konfigurationen auf indirekte Weise Zustände beeinflussen. So kann durch Verwenden des evse/current_limit-Kommandos der konfigurierte Ladestrom soweit gesenkt werden, dass er den erlaubten Ladestrom des evse/state-Zustands verändert. Zustände können vom Broker durch Subscriptions abgefragt werden: mosquitto_sub -v -t "warp/ABC/evse/max_charging_current" liefert beispielsweise warp/ABC/evse/max_charging_current {"max_current_configured":8000, "max_current_incoming_cable":13000, "max_current_outgoing_cable":16000} Für die HTTP-API funktioniert ein GET auf die entsprechende URL identisch: curl -s http://10.0.0.1/evse/max_charging_current

Kommandos

Kommandos können durch publishen auf das entsprechende Topic ausgelöst werden. Der MQTT-Payload eines Kommandos muss immer gültiges JSON sein. Das heißt insbesondere, dass ein Kommando, das keine Informationen benötigt, nicht mit einer leeren Nachricht aufgerufen werden darf, sondern mit null. Um einen Neustart des ESPs auszulösen kann beispielsweise folgendes Kommando verwendet werden: mosquitto_pub -t "warp/ABC/reboot" -m "null" Der analoge HTTP-Request wäre: curl -H "Content-Type: application/json" -X PUT -d "null" http://10.0.0.1/reboot Bestimmte Kommandos ändern den Zustand der Wallbox nicht direkt, sondern lösen einmalige Ereignisse aus. Ein Beispiel ist evse/stop_charging, das einen Ladevorgang abbricht. Falls ein Kommando dieser Art mit dem MQTT-Retain-Flag auf dem Broker hinterlegt wird, wird es nach einen Verbindungsaufbau von der Wallbox ignoriert. Das verhindert, dass eigentlich einmalige Ereignisse mehrfach ausgeführt werden.

Konfigurationen

Konfigurationen können sowohl gelesen, als auch geschrieben werden. Da sie im Flash des ESPs abgelegt werden, muss aber, damit eine aktualisierte Konfiguration verwendet wird, nach der Aktualisierung ein Neustart des ESPs ausgelöst werden. Konfigurationen werden unter dem jeweiligen Pfad von der Wallbox gepublisht. Aktualisierungen werden auf dem speziellen Suffix _update entgegengenommen. Es können dabei nicht zu verändernde Einträge der Konfiguration durch null ausgedrückt werden.

Wenn zum Beispiel die Access-Point-Konfiguration der Wallbox wie folgt abgefragt wird: mosquitto_sub -v -t "warp/ABC/wifi/ap_config" "warp/ABC/wifi/ap_config": {"enable_ap":true, "ap_fallback_only":false, "ssid":"warp-ABC", "hide_ssid":false, "passphrase":null, "hostname":"warp-ABC", "channel":1, "ip":[10,0,0,1], "gateway":[10,0,0,1], "subnet":[255,255,255,0]}, kann der Access Point danach folgendermaßen in den Fallback-Modus gebracht werden: mosquitto_pub -t "warp/ABC/wifi/ap_config_update" -m "{\"ap_fallback_only\": true, \"enable_ap\":null, \"ssid\":null, \"hide_ssid\":null, \"passphrase\":null, \"hostname\":null, \"channel\":null, \"ip\":null, \"gateway\":null, \"subnet\":null}" Danach muss, um die Konfiguration anzuwenden noch ein Neustart durchgeführt werden: mosquitto_pub -t "warp/ABC/reboot" -m "null" Der Access Point sollte dann ab jetzt nur noch aktiv sein, wenn die Verbindung zum konfigurierten WLAN fehlgeschlagen ist.

Mit der HTTP-API kann äquivalent die Access-Point-Konfiguration mit curl -s http://10.0.0.1/wifi/ap_config abgefragt werden, der Fallback-Modus mit curl http://10.0.0.1/wifi/ap_config_update -H "Content-Type: application/json" -X PUT -d "{\"ap_fallback_only\": true, \"enable_ap\":null, \"ssid\":null, \"hide_ssid\":null, \"passphrase\":null, \"hostname\":null, \"channel\":null, \"ip\":null, \"gateway\":null, \"subnet\":null}" aktiviert werden und danach der Neustart mit curl -H "Content-Type: application/json" -X PUT -d "null" http://10.0.0.1/reboot ausgelöst werden.

API-Referenz

Ladecontroller (EVSE)

evse/state
Der Zustand des Ladecontrollers.
Name Bedeutung
iec61851_state
int
Der aktuelle Zustand nach IEC 61851:
  1. 0 - A: Nicht verbunden (Sicht des Fahrzeugs)
  2. 1 - B: Verbunden
  3. 2 - C: Lädt
  4. 3 - D: Lädt mit Belüftung (nicht unterstützt)
  5. 4 - E/F: Fehler
vehicle_state
int
Der aktuelle Zustand, aufbereitet vom Ladecontroller:
  1. 0 - Nicht verbunden (Sicht der Wallbox)
  2. 1 - Verbunden
  3. 2 - Lädt
  4. 3 - Fehler
contactor_state
int
Schützüberwachung. Überwacht wird die Spannung vor und nach dem Schütz:
  1. 0 - Nicht stromführend vor und nach dem Schütz
  2. 1 - Nicht stromführend vor, aber stromführend nach dem Schütz
  3. 2 - Stromführend vor, aber nicht stromführend nach dem Schütz
  4. 3 - Stromführend vor und nach dem Schütz
contactor_error
int
Fehlercode der Schützüberwachung. Ein Wert ungleich 0 zeigt einen Fehler an.
charge_release
int
Ladefreigabe. Gibt an, ob automatisch, manuell oder nicht geladen werden kann.
  1. 0 - Automatisch: Sobald ein Fahrzeug angeschlossen wird, kann es mit dem Laden beginnen. Dieser Modus ist aktiv, wenn evse/auto_start_charging aktiviert ist und das Laden nicht abgebrochen wurde.
  2. 1 - Manuell: Wenn ein Fahrzeug angeschlossen wird, wird es erst geladen, wenn das Laden manuell freigegeben wird. Dieser Modus wird aktiviert, wenn evse/auto_start_charging deaktiviert, der Knopf an der Wallbox gedrückt oder evse/stop_charging aufgerufen wird. Die manuelle Freigabe kann über das Webinterface, oder durch einen API-Aufruf von evse/start_charging erfolgen.
  3. 2 - Deaktiviert: Das Laden ist blockiert, da die Wallbox entweder in einem Fehlerzustand ist, oder durch den Schlüsselschalter deaktiviert wurde.
allowed_charging_current
int (mA)
Maximal erlaubter Ladestrom, der dem Fahrzeug zur Verfügung gestellt wird. Dieser Strom ist das Minimum folgender Ströme:
  • Maximaler Strom des eingehenden Kabels
  • Maximaler Strom des ausgehenden Kabels
  • Maximaler Strom, der über MQTT oder das Webinterface konfiguriert wurde
error_state
int
Der aktuelle Fehlerzustand. Siehe Handbuch für Details.
  1. 0 - OK
  2. 1 - Schalterfehler
  3. 2 - Kalibrierungsfehler
  4. 3 - Schützfehler
  5. 4 - Kommunikationsfehler
lock_state
int
Zustand der Kabelverriegelung (nur relevant für Wallboxen mit Typ-2-Dose):
  1. 0 - Initialisierung
  2. 1 - Offen
  3. 2 - Schließend
  4. 3 - Geschlossen
  5. 4 - Öffnend
  6. 5 - Fehler
time_since_state_change
int (ms)
Zeit seit dem letzten IEC 61851 Zustandswechsel. Falls der Zustand 2 (= B: Lädt) ist, entspricht dieser Wert der Ladezeit.
uptime
int (ms)
Zeit seit Starten des Ladecontrollers.
evse/hardware_configuration
Die Hardwarekonfiguration des Ladecontrollers.
Name Bedeutung
jumper_configuration
int
Der Maximalstrom des eingehenden Kabels. Dieser Strom wird auf dem Ladecontroller durch Jumper oder eine Steckplatine mit Schaltern konfiguriert:
  1. 0 - 6 Ampere
  2. 1 - 10 Ampere
  3. 2 - 13 Ampere
  4. 3 - 16 Ampere
  5. 4 - 20 Ampere
  6. 5 - 25 Ampere
  7. 6 - 32 Ampere
  8. 7 - Kontrolliert durch Software
  9. 8 - Nicht konfiguriert
has_lock_switch
bool
Gibt an, ob die Wallbox ein festangeschlagenes Kabel (false) oder eine Typ-2-Dose mit Kabelverriegelung (true) hat.
evse/low_level_state
Der Low-Level-Zustand des Ladecontrollers.
Name Bedeutung
low_level_mode_enabled
bool
(Nur WARP 1) Zeigt an, ob der Low-Level-Modus aktiv ist. Wird derzeit nicht unterstützt.
led_state
int
Der Zustand der am Ladecontroller angeschlossenen LED:
  1. 0 - Aus
  2. 1 - An
  3. 2 - Blinkt
  4. 3 - Flackert
  5. 4 - Atmet
cp_pwm_duty_cycle
int (%/10)
Tastverhältnis der Pulsweitenmodulation auf dem CP-Signal.
adc_values
int[...]
16-Bit ADC-Rohwerte der Spannungsmessungen:
WARP 1:
  1. [0] - CP/PE
  2. [1] - PP/PE
WARP2:
  1. [0] - CP/PE vor Widerstand (PWM High)
  2. [1] - CP/PE nach Widerstand (PWM High)
  3. [2] - CP/PE vor Widerstand (PWM Low)
  4. [3] - CP/PE nach Widerstand (PWM Low)
  5. [4] - PP/PE
  6. [5] - +12V Rail
  7. [6] - -12V Rail
voltages
int[...] (mV)
Aus den ADC-Werten berechnete Spannungen:
WARP 1:
  1. [0] - CP/PE
  2. [1] - PP/PE
WARP2:
  1. [0] - CP/PE vor Widerstand (PWM High)
  2. [1] - CP/PE nach Widerstand (PWM High)
  3. [2] - CP/PE vor Widerstand (PWM Low)
  4. [3] - CP/PE nach Widerstand (PWM Low)
  5. [4] - PP/PE
  6. [5] - +12V Rail
  7. [6] - -12V Rail
resistances
int[2] (Ω)
Aus den Spannungen berechnete Widerstände: CP/PE, PP/PE.
gpio
bool[...]
Signale auf den GPIOs:
WARP 1:
  1. [0] - Eingang
  2. [1] - Ausgang
  3. [2] - Motoreingangsschalter
  4. [3] - Relais
  5. [4] - Motorfehler
WARP 2:
  1. [0] - Stromkonfiguration 0
  2. [1] - Motorfehler
  3. [2] - Gleichstromfehler
  4. [3] - Stromkonfiguration 1
  5. [4] - DC-Fehlerstromschutz-Test
  6. [5] - Abschaltung
  7. [6] - Taster
  8. [7] - CP-PWM
  9. [8] - Motoreingangsschalter
  10. [9] - Schützsteuerung
  11. [10] - Konfigurierbarer Ausgang
  12. [11] - CP-Trennung
  13. [12] - Motor aktiv
  14. [13] - Motor-Phase
  15. [14] - Schützprüfung vorher
  16. [15] - Schützprüfung nachher
  17. [16] - Konfigurierbarer Eingang
  18. [17] - DC X6
  19. [18] - DC X30
  20. [19] - LED
  21. [20] - Nicht belegt
  22. [21] - Nicht belegt
  23. [22] - Nicht belegt
  24. [23] - Nicht belegt
hardware_version
int
(Nur WARP 1) Die von der Firmware des EVSEs detektierte Hardware-Version des EVSEs.
evse/max_charging_current
Die maximalen Ladeströme des Ladecontrollers. Das Minimum dieser Ströme ist der tatsächliche maximale Ladestrom, der dem Fahrzeug bereitgestellt wird. Alle Ströme haben einen Minimalwert von 6000 (6 Ampere) und einen Maximalwert von 32000 (32 Ampere).
Name Bedeutung
max_current_configured
int (mA)
Der maximale konfigurierte Ladestrom. Kann durch evse/current_limit oder das Webinterface eingestellt werden.
max_current_incoming_cable
int (mA)
Der maximale Ladestrom des eingehenden Kabels. Siehe evse/hardware_configuration.
max_current_outgoing_cable
int (mA)
Der maximale Ladestrom des ausgehenden Kabels. Fest konfiguriert, falls das Kabel angeschlagen ist.
max_current_managed
int (mA)
Der maximale Ladestrom der vom Lastmanager zugeteilt wurde. Wird ignoriert wenn Lastmanagement (Siehe evse/managed) deaktiviert ist.
evse/auto_start_charging
Konfiguriert, ob ein angeschlossenes Fahrzeug selbstständig geladen wird. Dieser Wert kann über evse/auto_start_charging_update mit dem selben Payload aktualisiert werden. Achtung: Ein Neustart des Ladecontrollers setzt diesen Wert zurück auf true.
Name Bedeutung
auto_start_charging
bool
Konfiguriert, ob ein angeschlossenes Fahrzeug selbstständig geladen wird. Falls aktiviert, beginnt sofort, wenn das Fahrzeug angeschlossen wird der Ladevorgang. Falls deaktiviert, kann das Laden mit evse/start_charging gestartet werden.
evse/user_calibration (Nur WARP 1)
Erlaubt es, die werksseitige Kalibrierung des EVSEs auszulesen und zu überschreiben. Dieser Wert kann über evse/user_calibration_update mit dem selben Payload aktualisiert werden. Um die Kalibierung auf den Werkszustand zurückzusetzen, kann ein Payload mit user_calibration_active auf false geschickt werden. Die weiteren Werte werden dann ignoriert.
Name Bedeutung
user_calibration_active
bool
Gibt an, ob die werksseitige Kalibrierung überschrieben wurde.
voltage_diff
int
Einer der Kalibrierungsparameter.
voltage_mul
int
Einer der Kalibrierungsparameter.
voltage_div
int
Einer der Kalibrierungsparameter.
resistance_2700
int
Einer der Kalibrierungsparameter.
resistance_880
int[14]
Einer der Kalibrierungsparameter.
evse/energy_meter_state (Nur WARP 2)
Bei WARP 2 wird der Stromzähler vom Ladecontroller selbst ausgelesen. evse/energy_meter_state liefert den Zustand des Stromzählers.
Name Bedeutung
available
bool
true falls ein Stromzähler gefunden wurde, sonst false
error_count
int[6]
Fehlerzähler der Kommunikation mit dem Stromzähler:
  1. [0] - Local Timeouts
  2. [1] - Global Timeouts
  3. [2] - Illegal Function
  4. [3] - Illegal Data Access
  5. [4] - Illegal Data Value
  6. [5] - Slave Device Failure
evse/energy_meter_values (Nur WARP 2)
Bei WARP 2 wird der Stromzähler vom Ladecontroller selbst ausgelesen. evse/energy_meter_values liefert die zuletzt gelesenen Werte.
Name Bedeutung
power
float (W)
Die aktuelle Ladeleistung.
energy_rel
float (kWh)
Die geladene Energie seit dem letzten Reset.
energy_abs
float (kWh)
Die geladene Energie seit der Herstellung des Stromzählers.
phases_active
bool[3]
Die derzeit aktiven Phasen
phases_connected
bool[3]
Die angeschlossenen Phasen
evse/dc_fault_current_state (Nur WARP 2)
Der Zustand des DC-Fehlerstrom-Schutzmoduls. Falls ein Gleichstromfehler auftritt, kann nicht mehr geladen werden, bis das Schutzmodul zurückgesetzt wurde. Vor dem Zurücksetzen muss der Grund des Fehlers unbedingt behoben werden! evse/reset_dc_fault_current setzt das Modul zurück.
Name Bedeutung
state
int
  1. 0 - Kein Fehler
  2. 1 - 6 mA Fehlerstrom detektiert
  3. 2 - Systemfehler
  4. 3 - Unbekannter fehler
  5. 4 - Kalibrierungsfehler
evse/gpio_configuration (Nur WARP 2)
Die Konfiguration der konfigurierbaren Ein- und Ausgänge. Diese kann über evse/gpio_configuration_update mit dem selben Payload aktualisiert werden.
Name Bedeutung
shutdown_input
int
Die Konfiguration des Abschalteingangs.
  1. 0 - Nicht konfiguriert
  2. 1 - Abschalten wenn geöffnet
  3. 2 - Abschalten wenn geschlossen
input
int
Die Konfiguration des konfigurierbaren Eingangs.
  1. 0 - Nicht konfiguriert
output
int
Die Konfiguration des konfigurierbaren Ausgangs.
  1. 0 - Verbunden mit Masse
  2. 1 - Hochohmig
evse/button_configuration (Nur WARP 2)
Die Konfiguration des Tasters in der Frontblende. Diese kann über evse/button_configuration_update mit dem selben Payload aktualisiert werden. Das NFC-Modul kann diese Konfiguration ändern und sperren, um sicherzustellen, dass ein NFC-Tag zum Starten/Stoppen einer Ladung notwendig ist!
Name Bedeutung
button
int
Die Konfiguration des Buttons.
  1. 0 - Deaktiviert
  2. 1 - Ladestart wenn gedrückt
  3. 2 - Ladestop wenn gedrückt
  4. 3 - Ladestart/stop wenn gedrückt
evse/managed
Legt fest, ob max_current_managed in die Berechnung des maximalen Ladestroms eingeht (siehe evse/max_charging_current). Damit das Lastmanagement zwischen WARP Chargern funktioniert, muss dies aktiviert sein. Der Wert kann über evse/managed_update aktualisiert werden. evse/managed_update verlangt den zusätzlichen Wert "password": 0x00363702 zum aktivieren, bzw. "password": 0x036370FF zum deaktivieren.
Name Bedeutung
managed
bool
true wenn Lastmanagement aktiviert ist, sonst false
evse/current_limit
Begrenzt den Ladestrom
Name Bedeutung
current
int (mA)
Begrenzt den Ladestrom auf den übergebenen Wert. Der Strom hat einen Minimalwert von 6000 (6 Ampere) und einen Maximalwert von 32000 (32 Ampere).
evse/stop_charging
Beendet den laufenden Ladevorgang. Ein Ladevorgang kann mit evse/start_charging wieder gestartet werden. Leerer Payload. Es muss null übergeben werden. Löst eine einmalige Aktion aus. Nachrichten, die über den Broker retained wurden, werden ignoriert.
evse/start_charging
Startet einen Ladevorgang. Ein Ladevorgang kann mit evse/stop_charging wieder gestoppt werden. Leerer Payload. Es muss null übergeben werden. Löst eine einmalige Aktion aus. Nachrichten, die über den Broker retained wurden, werden ignoriert.
evse/reset_dc_fault_current
Setzt das DC-Fehlerstrom-Schutzmodul zurück. Vor dem Zurücksetzen muss der Grund des Fehlers unbedingt behoben werden!
Name Bedeutung
password
int
Passwort, das zum Zurücksetzen benötigt wird. Das Passwort lautet 0xDC42FA23.
evse/managed_current_update
Setzt eine neue Strombegrenzung des Lastmanagements. Diese Funktion muss vom Lastmanager periodisch aufgerufen werden, selbst wenn sich die Strombegrenzung nicht ändert. Anderenfalls setzt der Ladecontroller den Lastmanagement-Strom nach 30 Sekunden auf 0 Ampere.
Name Bedeutung
current
int (mA)
Der Strom hat einen Minimalwert von 6000 (6 Ampere) und einen Maximalwert von 32000 (32 Ampere). Dieser Strom kann zusätzlich auf 0 gesetzt werden, um das Laden zu verbieten.

Stromzähler (Nur WARP Charger Pro)

meter/state
Der aktuelle Zählerstand. Bei WARP 2 identisch zu evse/energy_meter_values.
Name Bedeutung
power
float (W)
Die aktuelle Ladeleistung.
energy_rel
float (kWh)
Die geladene Energie seit dem letzten Reset.
energy_abs
float (kWh)
Die geladene Energie seit der Herstellung des Stromzählers.
phases_active
bool[3] (Nur WARP 2)
Die derzeit aktiven Phasen
meter/error_counters (Nur WARP 1)
Fehlerzähler der Kommunikation mit dem Stromzähler.
Name Bedeutung
meter
int
Kommunikationsfehler zwischen RS485 Bricklet und Stromzähler
bricklet
int
Kommunikationsfehler zwischen ESP Brick und RS485 Bricklet.
bricklet_reset
int
Unerwartete Resets des RS485 Bricklets.
meter/detailed_values (Nur WARP 2)
Alle Messwerte, die vom eingebauten Stromzähler gemessen werden. Hintereinanderliegende Werte die mit .. gekennzeichnet sind, beziehen sich auf die drei Phasen L1, L2 und L3.
Index Bedeutung
[0..2] float (V) Spannung gegen Neutral
[3..5] float (A) Strom
[6..8] float (W) Wirkleistung
[9..11] float (VA) Scheinleistung
[12..14] float (var) Blindleistung
[15..17] float Leistungsfaktor; Das Vorzeichen des Leistungsfaktors gibt die Richtung des Stromflusses an.
[18..20] float (°) relative Phasenverschiebung
[21] float (V) Durchschnittliche Spannung gegen Neutral
[22] float (A) Durchschnittlicher Strom
[23] float (A) Summe der Phasenströme
[24] float (W) Gesamtwirkleistung
[25] float (VA) Gesamtscheinleistung
[26] float (var) Gesamtblindleistung
[27] float Gesamtleistungsfaktor
[28] float (°) Gesamtphasenverschiebung
[29] float (Hz) Frequenz der Versorgungsspannung
[30] float (kWh) Wirkenergie (Import; vom Fahrzeug aufgenommen)
[31] float (kWh) Wirkenergie (Export; vom Fahrzeug abgegeben)
[32] float (kvarh) Blindenergie (Import; vom Fahrzeug aufgenommen)
[33] float (kvarh) Blindenergie (Export; vom Fahrzeug abgegeben)
[34] float (kVAh) Gesamtscheinenergie
[35] float (Ah) Transportierte elektrische Ladung
[36] float (W) Bezogene Wirkleistung; Entspricht Import-Export-Differenz
[37] float (W) Max. bezogene Wirkleistung; Höchster gemessener Wert
[38] float (VA) Bezogene Scheinleistung; Entspricht Import-Export-Differenz
[39] float (VA) Max. bezogene Scheinleistung; Höchster gemessener Wert
[40] float (A) Bezogener Neutralleiterstrom
[41] float (A) Max. bezogener Neutralleiterstrom; Höchster gemessener Wert
[42] float (V) Spannung L1 zu L2
[43] float (V) Spannung L2 zu L3
[44] float (V) Spannung L3 zu L1
[45] float (V) Durchschnittliche Spannung zwischen Phasen
[46] float (A) Neutralleiterstrom
[47..49] float (%) Total Harmonic Distortion (THD) der Spannung
[50..52] float (%) Total Harmonic Distortion (THD) des Stroms
[53] float (%) Durchschnittliche Spannungs-THD
[54..56] float (A) Bezogener Strom
[57..59] float (A) Max. bezogener Strom; Höchster gemessener Wert
[60] float (%) Spannungs-THD L1 zu L2
[61] float (%) Spannungs-THD L2 zu L3
[62] float (%) Spannungs-THD L3 zu L1
[63] float (%) Durchschnittliche Spannungs-THD zwischen Phasen
[64] float (kWh) Summe der Gesamtwirkenergien; Import-Export-Summe aller Phasen
[65] float (kvarh) Summe der Gesamtblindenergien; Import-Export-Summe aller Phasen
[66..68] float (kWh) Wirkenergie (Import; vom Fahrzeug aufgenommen)
[69..71] float (kWh) Wirkenergie (Export; vom Fahrzeug abgegeben)
[72..74] float (kWh) Gesamtwirkenergie; Import-Export-Summe
[75..77] float (kvarh) Blindenergie (Import; vom Fahrzeug aufgenommen)
[78..80] float (kvarh) Blindenergie (Export; vom Fahrzeug abgegeben)
[81..83] float (kvarh) Gesamtblindenergie; Import-Export-Summe
meter/reset
Setzt den Energiezähler zurück. Leerer Payload. Es muss null übergeben werden. Löst eine einmalige Aktion aus. Nachrichten, die über den Broker retained wurden, werden ignoriert.

NFC-Freischaltung

nfc/seen_tags
Liste der zuletzt von der Wallbox gesehenen NFC-Tags. Jeder Eintrag hat das folgende Format:
Name Bedeutung
tag_type
int
Typ des Tags
  1. 0 - Mifare Classic
  2. 1 - NFC Forum Typ 1
  3. 2 - NFC Forum Typ 2
  4. 3 - NFC Forum Typ 3
  5. 4 - NFC Forum Typ 4
tag_id
int[...]
ID des Tags. Je nach Tag-Typ bis zu 10 Byte.
last_seen
int (ms)
Zeit in Millisekunden vor der das Tag zuletzt gesehen wurde.
nfc/config
Die NFC-Konfiguration. Diese kann über nfc/config_update mit dem selben Payload aktualisiert werden. Eine aktualisierte NFC-Konfiguration wird erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Bedeutung
require_tag_to_start
bool
true wenn eine Ladung nur mit einem NFC-Tag, oder über das Webinterface/die APi freigegeben werden kann, ansonsten false.
require_tag_to_stop
bool
true wenn eine Ladung nur mit einem NFC-Tag, oder über das Webinterface/die APi gestoppt werden kann, ansonsten false. Wenn aktiviert, wird die Stop-Funktion des Buttons an der Frontplatte deaktiviert, sowie evse/button_configuration_update blockiert!
authorized_tags
object[...]
Eine Liste authorisierter Tags.

MQTT-Konfiguration

mqtt/state
Der aktuelle MQTT-Zustand
Name Bedeutung
connection_state
int
Zustand der Verbindung zum MQTT-Broker:
  1. 0 - Nicht konfiguriert
  2. 1 - Nicht verbunden
  3. 2 - Verbunden
  4. 3 - Fehler
last_error
int
Der zuletzt aufgetretene MQTT-Fehler. -1, wenn kein Fehler aufgetreten ist.
mqtt/config
Die MQTT-Konfiguration. Diese kann über mqtt/config_update mit dem selben Payload aktualisiert werden. Eine aktualisierte MQTT-Konfiguration wird erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Bedeutung
enable_mqtt
bool
true wenn MQTT aktiviert ist, ansonsten false.
broker_host
string
Hostname oder IP-Adresse des MQTT-Brokers zu dem sich die Wallbox verbinden soll.
broker_port
int
Port des MQTT-Brokers zu dem sich die Wallbox verbinden soll. Typischerweise 1883.
broker_username
string
Username mit dem sich zum Broker verbunden werden soll. Leer falls keine Authentifizierung verwendet wird.
broker_password
string
Passwort mit dem sich zum Broker verbunden werden soll. Leer falls keine Authentisierung verwendet wird. Die Wallbox gibt gespeicherte Passwörter nicht zurück. Stattdessen wird null zurückgegeben.
global_topic_prefix
string
Präfix der allen MQTT-Topics vorangestellt wird. Normalerweise warp/[UID der Wallbox]
client_name
string
Name unter dem sich die Wallbox beim Broker registriert. Das ist nicht der Username zur Authentisierung.

WLAN-Konfiguration

wifi/state
Der aktuelle WLAN-Zustand.
Name Bedeutung
connection_state
int
Zustand der Verbindung zu einem WLAN:
  1. 0 - Nicht konfiguriert
  2. 1 - Nicht verbunden
  3. 2 - Verbinde
  4. 3 - Verbunden
ap_state
int
Zustand des WLAN-Access-Points:
  1. 0 - Deaktiviert
  2. 1 - Aktiviert
  3. 2 - Fallback inaktiv
  4. 3 - Fallback aktiv
ap_bssid
string
BSSID des WLAN-Access-Points.
sta_ip
int[4]
Aktuelle IP der Wallbox im konfigurierten Netz. 0.0.0.0 falls keine Verbindung besteht.
sta_rssi
int
Die aktuelle Empfangsqualität. 0 falls keine Verbindung besteht, sonst negativ. Werte näher 0 entsprechen einem besseren Empfang.
sta_bssid
string
Die BSSID der Gegenstelle zu der die Wallbox verbunden ist.
wifi/scan
Löst einen Scan nach WLANs aus. Die Scan-Ergebnisse können derzeit nur über HTTP abgefragt werden. Leerer Payload. Es muss null übergeben werden. Löst eine einmalige Aktion aus. Nachrichten, die über den Broker retained wurden, werden ignoriert.
wifi/sta_config
Die WLAN-Verbindungskonfiguration. Diese kann über wifi/sta_config_update mit dem selben Payload aktualisiert werden. Eine aktualisierte WLAN-Verbindungskonfiguration wird erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Bedeutung
enable_sta
bool
true wenn eine WLAN-Verbindung aufgebaut werden soll, ansonsten false.
ssid
string
SSID zu der sich verbunden werden soll. Maximal 32 Byte.
bssid
int[6]
BSSID zu der sich verbunden werden soll. Dieser Eintrag ist optional und kann leer übergeben werden, wird aber für das bssid_lock benötigt.
bssid_lock
bool
Verbindet sich nur zum WLAN mit der übergebenen BSSID. Deaktiviert lassen, falls Repeater o.Ä. verwendet werden sollen.
passphrase
string
Die WLAN-Passphrase. Maximal 63 Byte. Dieser Eintrag ist optional und kann leer übergeben werden, falls sich zu einem unverschlüsselten WLAN verbunden werden soll. Die Wallbox gibt gespeicherte Passwörter nicht zurück. Stattdessen wird null zurückgegeben.
hostname
string
Hostname den die Wallbox im konfigurierten Netz verwenden soll.
ip
int[4]
IP-Adresse, die die Wallbox im konfigurierten Netz verwenden soll. Dieser Eintrag und die folgenden sind optional und können als [0, 0, 0, 0] übergeben werden, falls die automatische IP-Adressvergabe (DHCP) verwendet werden soll.
gateway
int[4]
Gateway-Adresse, die die Wallbox im konfigurierten Netz verwenden soll.
subnet
int[4]
Subnetzmaske, die die Wallbox im konfigurierten Netz verwenden soll.
dns
int[4]
DNS-Server-Adresse, die die Wallbox im konfigurierten Netz verwenden soll.
dns2
int[4]
Alternative DNS-Server-Adresse, die die Wallbox im konfigurierten Netz verwenden soll.
wifi/ap_config
Die WLAN-Access-Point-Konfiguration. Diese kann über wifi/ap_config_update mit dem selben Payload aktualisiert werden. Achtung! Wenn sowohl Access Point, als auch WLAN-Verbindung deaktiviert werden, kann der ESP nur noch durch einen Factory-Reset erreicht werden! Wir empfehlen, den Access Point immer im Fallback-Modus zu belassen. Eine aktualisierte WLAN-Access-Point-Konfiguration wird erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Bedeutung
enable_ap
bool
true wenn der Access Point aktiviert werden soll, ansonsten false.
ap_fallback_only
bool
true wenn der Access Point nur aktiviert werden soll, falls die WLAN-Verbindung fehlschlägt, ansonsten false.
ssid
string
SSID des Access Points. Maximal 32 Byte.
hide_ssid
bool
true falls die SSID versteckt werden soll, ansonsten false.
passphrase
string
Die WLAN-Passphrase. Maximal 63 Byte. Die Wallbox gibt gespeicherte Passwörter nicht zurück. Stattdessen wird null zurückgegeben.
hostname
string
Hostname den die Wallbox verwenden soll.
channel
int
Channel, auf dem der Access Point erreichbar sein soll. Gültige Werte sind 1 bis 13.
ip
int[4]
IP-Adresse, die die Wallbox verwenden soll.
gateway
int[4]
Gateway-Adresse, die die Wallbox verwenden soll.
subnet
int[4]
Subnetzmaske, die die Wallbox verwenden soll.

LAN-Konfiguration Nur WARP 2

ethernet/state
Der aktuelle LAN-Zustand.
Name Bedeutung
connection_state
int
Zustand der Verbindung zu einem LAN:
  1. 0 - Nicht konfiguriert
  2. 1 - Nicht verbunden
  3. 2 - Verbinde
  4. 3 - Verbunden
ip
int[4]
Aktuelle IP der Wallbox im konfigurierten Netz. 0.0.0.0 falls keine Verbindung besteht.
full_duplex
bool
true bei einer Full-Duplex-Verbindung, sonst false
link_speed
int (Mbit/s)
Ausgehandelte Verbindungsgeschwindigkeit.
ethernet/config
Die LAN-Verbindungskonfiguration. Diese kann über ethernet/config_update mit dem selben Payload aktualisiert werden. Eine aktualisierte LAN-Verbindungskonfiguration wird erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Bedeutung
enable_ethernet
bool
true wenn eine LAN-Verbindung aufgebaut werden soll, ansonsten false.
hostname
string
Hostname den die Wallbox im konfigurierten Netz verwenden soll.
ip
int[4]
IP-Adresse, die die Wallbox im konfigurierten Netz verwenden soll. Dieser Eintrag und die folgenden sind optional und können als [0, 0, 0, 0] übergeben werden, falls die automatische IP-Adressvergabe (DHCP) verwendet werden soll.
gateway
int[4]
Gateway-Adresse, die die Wallbox im konfigurierten Netz verwenden soll.
subnet
int[4]
Subnetzmaske, die die Wallbox im konfigurierten Netz verwenden soll.
dns
int[4]
DNS-Server-Adresse, die die Wallbox im konfigurierten Netz verwenden soll.
dns2
int[4]
Alternative DNS-Server-Adresse, die die Wallbox im konfigurierten Netz verwenden soll.

Authentifizierung

authentication/config
Konfigurierte Zugangsdaten für Webinterface und HTTP-API. Aktualisierte Zugangsdaten werden erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Bedeutung
enable_auth
bool
true, falls für Webinterface und HTTP-API Zugangsdaten abgefragt werden sollen, sonst false.
username
string
Der Benutzername, dem Zugriff auf Webinterface und HTTP-API gewährt werden.
password
string
Das Passwort, dem Zugriff auf Webinterface und HTTP-API gewährt werden. Die Wallbox gibt gespeicherte Passwörter nicht zurück. Stattdessen wird null zurückgegeben.

Sonstiges

version
Version der ESP-Firmware.
Name Bedeutung
firmware
string
Die Firmware-Version, die aktuell ausgeführt wird.
spiffs
string
Die Version der Konfiguration, die aktuell verwendet wird.
modules
Initialisierungszustand der Firmware-Module.
reboot
Startet den ESP neu um Konfigurationsänderungen anzuwenden. Leerer Payload. Es muss null übergeben werden. Löst eine einmalige Aktion aus. Nachrichten, die über den Broker retained wurden, werden ignoriert.

HTTP-Spezifisch

Zusätzlich zur eigentlichen API, die sowohl über MQTT, als auch HTTP, verwendet werden kann, werden die folgenden HTTP-Schnittstellen zur Verfügung gestellt. Diese passen nicht in das bisher verwendete Schema von Zuständen, Kommandos und Konfigurationen, und können deshalb nur über HTTP verwendet werden.

meter/history
(nur WARP Charger Pro) Eine 48-Stunden-Historie der Ladeleistung in Watt. Bisher fehlende Werte werden durch null angezeigt. Die Historie wird von hinten nach vorne gefüllt, sodass null-Werte nur geschlossen am Anfang des Arrays auftreten, falls der ESP innerhalb der letzten 48 Stunden neugestartet wurde. Es werden bis zu 720 Werte ausgegeben, das entspricht einem Messwert alle 4 Minuten. Diese Messwerte sind der jeweilige Durchschnitt dieser 4 Minuten.
meter/live
(nur WARP Charger Pro) Die letzten Ladeleistungs-Messwerte. Auf Basis dieser Werte wird einer der Durchschnittswerte für meter/history generiert.
Name Bedeutung
samples_per_second
float (Hz)
Die Anzahl der gemessenen Werte pro Sekunde.
samples
int[...] (W)
Die gemessenen Werte. Abhängig von der Länge des Arrays und dem samples_per_second-Wert kann ermittelt werden, wie weit in die Vergangenheit die Messwerte reichen.
wifi/scan_results
Die WLANs, die aufgrund einer durch wifi/scan ausgelösten Suche gefunden wurden. Ein Array aus Objekten des folgenden Formats:
Name Bedeutung
ssid
string
SSID des gefundenen WLANs. Leer bei versteckten Access Points.
bssid
string
BSSID des gefundenen WLANs
rssi
int
Die Empfangsqualität des gefundenen WLANs. Immer ein negativer Wert, wobei Werte nahe 0 eine bessere Empfangsqualität bedeuten. Siehe hier für Details
channel
int
Kanal des gefundenen WLANs
encryption
int
Verschlüsselungsstandard des gefundenen WLANs
  1. 0 - Unverschlüsselt
  2. 1 - WEP
  3. 2 - WPA-PSK
  4. 3 - WPA2-PSK
  5. 4 - WPA/WPA2-PSK
  6. 5 - WPA2-Enterprise
  7. 6 - Unbekannt
uptime
Die Laufzeit des ESPs seit dem letzten Neustart in Millisekunden.
debug_report
Generiert einen Debug-Report. Dieser besteht aus allen Zuständen und Konfigurationen, sowie den letzten empfangenen Kommandos und Konfigurationsupdates. Passwörter werden, genau wie bei Konfigurationsabfragen, zensiert.
force_reboot
Erzwingt einen sofortigen Neustart des ESPs. Nützlich, falls reboot aus irgendwelchen Gründen hängt.
update
Notfall-Update-Seite mit der eine Firmware-Aktualisierung eingespielt werden kann, auch wenn das normale Webinterface nicht funktioniert.
flash_firmware
Nimmt ein Firmware-Update als POST entgegen, dass dann geflasht wird.
flash_spiffs
Nimmt ein Update der Konfigurationspartition als POST entgegen, dass dann geflasht wird.