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 Typ Einheit 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 Typ Einheit 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 Typ Einheit Bedeutung
low_level_mode_enabled bool 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[2] 16-Bit ADC-Rohwerte der PE-CP- und PE-PP-Spannungen.
voltages int[3] mV Aus den ADC-Werten berechnete Spannungen: PE-CP, PE-PP und Maximalspannung von PE-EE.
resistances int[2] Ω Aus den Spannungen berechnete Widerstände: PE-CP, PE-PP.
gpio bool[5] Signal auf den GPIOs:
  1. [0] - Eingang
  2. [1] - Ausgang
  3. [2] - Motoreingangsschalter
  4. [3] - Relais
  5. [4] - Motorfehler
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 Typ Einheit 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.
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 Typ Einheit 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/current_limit
Begrenzt den Ladestrom
Name Typ Einheit 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). Manche Fahrzeuge wechseln bei einem zu kleinen Ladestrom automatisch zu einphasigem Laden.
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.

Stromzähler (Nur WARP Charger Pro)

meter/state
Der aktuelle Zählerstand.
Name Typ Einheit 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.
meter/error_counters
Fehlerzähler der Kommunikation mit dem Stromzähler.
Name Typ Einheit 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/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.

MQTT-Konfiguration

mqtt/state
Der aktuelle MQTT-Zustand
Name Typ Einheit 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 Typ Einheit 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 Typ Einheit 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 Typ Einheit 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 string 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 Typ Einheit 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.

Authentifizierung

authentication/config
Konfigurierte Zugangsdaten für Webinterface und HTTP-API. Aktualisierte Zugangsdaten werden erst nach einem Neustart des ESPs verwendet. Siehe reboot.
Name Typ Einheit 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 Typ Einheit 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 Typ Einheit 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 Typ Einheit Bedeutung
ssid string SSID des gefundenen WLANs. Leer bei versteckten Access Points.
bssid string BSSID des gefundenen WLANs
rssi int dBm 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.