Blog

Neue Features und Änderungen in WARP(2) Firmware 2.0.0

Die frisch veröffentlichten Firmwares WARP 2.0.0 und WARP2 2.0.0 fügen dem WARP Charger einen Ladetracker hinzu.
Außerdem haben wir Teile des Webinterfaces überarbeitet, Netzwerk-Zeitsynchronisierung per NTP und eine Benutzerverwaltung hinzugefügt und die Steuerungslogik des Ladecontrollers verbessert.

Im Zuge der Umbauarbeiten mussten wir die HTTP- und MQTT-API an einigen Stellen brechen. Software, die die API verwendet muss deshalb auf die Änderungen angepasst werden.
Für EVCC
wird in Kürze Version 0.90 bereitstehen, die die neue API als Wallbox-Typ "warp-fw2" unterstützt.

Ladetracker

Alle WARP Charger können jetzt Ladevorgänge persistent aufzeichnen. Pro Ladevorgang werden folgende Daten aufgezeichnet:

  • Benutzer, der die Ladung gestartet hat
  • Startzeitpunkt des Ladevorgangs
  • Dauer des Ladevorgangs
  • Zählerstand beim Start des Ladevorgangs
  • Zählerstand beim Ende des Ladevorgangs

Ladevorgänge können auch bei fehlenden Daten aufgezeichnet werden: Auf einer WARP(2) Smart werden mangels Zähler nur der Benutzer und die Zeitinformationen aufgezeichnet. Falls keine Netzwerk-Zeitsynchronsierung besteht, wird der Startzeitpunkt der Ladung nicht aufgezeichnet, falls kein NFC-Tag zum Laden notwendig ist, wird der Ladevorgang keinem Benutzer zugeordnet.

Die aufgezeichneten Ladevorgänge können auf der Ladetracker-Unterseite als eine CSV-Datei vom WARP Charger heruntergeladen werden. Dabei kann nach Benutzern und Zeiträumen gefiltert werden. Ein WARP Charger kann bis zu 7680 Ladevorgänge speichern.

Benutzerverwaltung

Um für den Ladetracker, EVCC und weitere (zum Teil kommende) Features mehr Flexibilität zu schaffen, können jetzt im Webinterface
des WARP Chargers Benutzer angelegt werden. Bisher angelegte NFC-Tags werden neu angelegten Benutzern zugeordnet.

Jedem Benutzer kann ein Passwort vergeben werden. Falls ein Benutzer ein Passwort konfiguriert hat und die Anmeldung aktiviert ist, kann sich dieser Benutzer auf dem Webinterface anmelden. Benutzer ohne Passwort können nicht auf das Webinterface zugreifen, falls die Anmeldung aktiviert ist. Ladevorgänge können für diese Benutzer aber dennoch aufgezeichnet werden, falls ihnen ein NFC-Tag zugeordnet ist.

In einer kommenden Firmware-Version wird es möglich sein, über das Webinterface Ladevorgänge für den jeweils gerade angemeldeten Benutzer zu starten.

Netzwerk-Zeitsynchronisierung

Um den Startzeitpunkt eines Ladevorgangs aufzuzeichnen, kann der WARP Charger jetzt die aktuelle Uhrzeit über das Netzwerk abfragen (NTP). Anstelle der zwei vorkonfigurierten Zeitserver der Physikalisch-Technischen Bundesanstalt können eigene Zeitserver konfiguriert werden, außerdem können per DHCP vorgegebene Zeitserver verwendet werden.

Die synchronisierte Zeit wird neben dem Ladetracker auch für das Ereignislog verwendet: Sobald eine Zeit empfangen wurde, werden alle Einträge nicht mehr mit der (relativen) Zeit seit Start der Wallbox, sondern mit einem absoluten Datums- und Zeitwert ausgegeben.

Überarbeitete Ladelogik

Um die NFC-Freigabe und andere Möglichkeiten zur Ladesteuerung von einander zu entkoppeln haben wir die Logik des Ladecontrollers komplett überarbeitet. Durch die Änderungen werden jetzt beispielsweise die Autostart-Einstellung, sowie der im Webinterface konfigurierte Ladestrom auch über Neustarts der Wallbox hinweg gespeichert. Außerdem kann die NFC-Freigabe jetzt mit einer externen Steuerung (wie zum Beispiel EVCC) zusammen verwendet werden.

Um zu entscheiden, ob ein angeschlossenes Fahrzeug laden darf und falls ja, welcher Ladestrom vorgegeben wird, werden jetzt Ladestromgrenzen bzw. Ladeslots verwendet. Jeder Ladeslot kann aktiviert oder deaktiviert sein und eine Stromgrenze von 0 Ampere zum Blockieren des Ladevorgangs oder 6 bis 32 Ampere vorgeben. 32 Ampere ist ein komplett "unbegrenzes" Freigeben des Ladevorgangs. Der Ladecontroller bildet das Minimum über die aktivierten Ladeslots und, falls dieses größer als 0 ist, wird einem Fahrzeug das Laden erlaubt. Der Ladestrom ist dann das berechnete Minimum.

Der aktuelle Zustand der Ladeslots wird auf der Ladecontroller-Unterseite des Webinterfaces angezeigt. Die Farbmarkierung neben einer Grenze haben folgende
Bedeutung:

  • Grau Diese Ladestromgrenze ist nicht aktiv. Sie kann die Ladung nicht blockieren und geht nicht in Berechnung des erlaubten Ladestroms ein.
  • Grün Diese Ladestromgrenze ist aktiv, beschränkt den erlaubten Ladestrom aber nicht.
  • Blau Diese Ladestromgrenze ist aktiv und gibt ein Ladestromlimit vor. Es gibt aber andere aktive Grenzen, die den Ladestrom stärker limitieren.
  • Gelb Diese Ladestromgrenze ist aktiv, blockiert die Ladung nicht, gibt aber die aktuell stärkste Limitierung des Ladestroms vor.
  • Rot Diese Ladestromgrenze ist aktiv und blockiert die Ladung.

Ladeslot Beschreibung Ladestromwerte Wird zurückgesetzt wenn Fahrzeug getrennt
Zuleitung Der Maximalstrom der Zuleitung. Wird beim Anschließen über die Schiebeschalter in der Wallbox konfiguriert. blockiert, 6 A, 10 A 13 A, 16 A, 20 A, 25 A, 32 A nein
Typ-2-Ladekabel Der Maximalstrom des Ladekabels. Wird über einen festen Widerstand im Kabel vorgegeben. 20 A, 32 A nein
Abschalteingang Kann im Webinterface konfiguriert werden. Anzuschließen in der Wallbox. 0 A, 32 A nein
Konfigurierbarer Eingang Hat noch keine Funktion 0 A, 32 A nein
Autostart bzw. Taster Bildet die alte Autostart-Logik ab: Wenn Autostart aktiv ist, gibt dieser Slot immer frei (32 A), wenn nicht blockiert er, bis ein Ladestart angefordert wird. Ein Druck des Tasters blockiert diesen Slot. 0 A, 32 A ja, falls Autostart deaktiviert ist, sonst nein
Konfiguration Die auf der Statusseite des Webinterfaces konfigurierte Ladestromgrenze 6A bis 32 A nein
Benutzer Der für den aktuellen Benutzer erlaubte Ladestrom. 0 A (blockiert) falls sich kein Nutzer autorisiert hat. 0 A, 6 A bis 32 A ja
Lastmanagement Der vom Lastmanager vorgegebene Strom. 0 A, 6 A bis 32 A ja
Externe Steuerung Der Strom der über die API von einer externen Steuerung (z.B. EVCC) vorgegeben wird 0 A, 6 A bis 32 A kann von externer Steuerung konfiguriert werden

Änderungen bei einem Update von einer älteren Firmware auf 2.0.0

NFC und Webinterface-Login

Für jedes bisher angelegte NFC-Tag wird ein Benutzer erstellt und das Tag dem Benutzer zugeordnet. Falls bisher ein Ladevorgang nur mit einem Tag gestartet werden durfte, ist jetzt die Benutzerfreigabe aktiv. Ebenso wird jetzt die Stop-Funktion des Tasters deaktiviert, falls bisher Ladevorgänge nur mit Tag gestoppt werden durften. Falls der Login des Webinterfaces aktiviert ist, wird ein zusätzlicher Benutzer erstellt, als der sich eingeloggt werden kann.

Netzwerkeinstellungen

Alle Netzwerkverbindungen verwenden den selben Hostnamen. Falls mit einer älteren Firmware von der Voreinstellung (warp-AbC bzw. warp2-xyZ) abweichende Hostnamen konfiguriert wurden, wird der erste abweichende Hostname verwendet. Die Priorisierung ist hierbei:

  • LAN-Verbindung (nur WARP 2)
  • WLAN-Verbindung
  • WLAN-Access-Point

falls also bisher kein abweichender Hostname für die LAN-Verbindung, aber ein abweichender Hostname für die WLAN-Verbindung konfiguriert war, wird dieser Hostname für alle Netzwerkverbindungen verwendet.

Ladecontroller

Bei älteren Firmware-Versionen ging die Autostart-Einstellung, sowie der im Webinterface konfigurierte Ladestrom bei einem Neustart der Wallbox verloren. Beide Einstellungen werden jetzt persistent gespeichert. Außerdem ist jetzt die Verwendung von NFC parallel zu einer externen Steuerung des Ladecontrollers möglich.

API-Änderungen

Aufgrund der umfassenden Änderungen mussten wir die HTTP- und MQTT-API in Teilen brechen. Im Zuge dessen haben wir die API vereinfacht und zwischen WARP1 und WARP2 vereinheitlicht. Die Versionsnummer der Firmware haben wir deshalb, im Geiste des Semantic Versioning auf 2.0.0 erhöht.
Folgende Änderungen haben wir vorgenommen:

  • IP-Adressen und NFC-Tag-IDs werden jetzt als Strings, nicht mehr als Array von Zahlen gespeichert. Das betrifft
    • ethernet/config
    • wifi/sta_config
    • wifi_ap_config
    • wifi/state
    • nfc/config
    • nfc/seen_tags
  • Da nur noch ein Hostname pro Wallbox verwendet wird, wurde das hostname-Feld folgenden Konfigurationen entfernt:
    • ethernet/config
    • wifi/sta_config
    • wifi/ap_config
  • Folgende Änderungen wurden an der EVSE-API durchgeführt:
    • evse/state
      • uptime und time_since_state_change wurden in evse/low_level_state verschoben
      • vehicle_state wurde entfernt
      • charge_release wurde entfernt
      • charger_state wurde hinzugefügt
      • dc_fault_current_state wurde bei WARP 2 hierher verschoben
    • evse/hardware_configuration
      • evse_version und bei WARP 2 energy_meter_type wurden hinzugefügt
    • evse/low_level_state
      • (WARP 1) low_level_mode_enabled entfernt. Dieser Modus wurde nie implementiert.
      • (WARP 1) hardware_version entfernt. Siehe evse/hardware_configuration["evse_version"]
      • led_state: Wert 5 (API) hinzugefügt
    • API wurde auf Verwendung der Ladeslots umgestellt. Hierzu wurde
      • entfernt
        • evse/max_charging_current
        • evse/managed
        • evse/current_limit
      • hinzugefügt
        • evse/slots
        • evse/global_current
        • evse/user_current
        • evse/user_enabled
        • evse/management_current
        • evse/management_enabled
        • evse/external_current
        • evse/external_enabled
        • evse/external_clear_on_disconnect
        • evse/external_defaults
    • (WARP 2) evse/reset_dc_fault_current umbenannt in evse/reset_dc_fault_current_state
    • (WARP 2) evse/dc_fault_current_state in evse/state verschoben
    • (WARP 2) evse/energy_meter_values und evse/energy_meter_state wurden entfernt
  • Die API des Stromzählers wurde zwischen WARP 1 und WARP 2 vereinheitlicht:
    • meter/state ist jetzt immer vorhanden (auch bei WARP Charger Smart!) und gibt Zustand und Typ des Stromzählers an
    • meter/values beinhaltet nur noch power, energy_rel und energy_abs
    • (WARP 2) meter/phases beinhaltet Phaseninformationen
    • meter/error_counters beinhaltet die zähler und ansteuerungsspezifischen Fehlerzähler
    • (WARP 2) meter/detailed_values wurde in meter/all_values umbenannt
  • flash_spiffs entfernt
  • uptime entfernt
  • version und modules wurden nach info/version und info/modules verschoben
  • info/features hinzugefügt. Gibt verfügbare Features dieser Wallbox an. Siehe Feature-Dokumentation
  • info/name hinzugefügt
  • info/display_name hinzugefügt
  • interval zu mqtt/config hinzugefügt
  • nfc/config["require_tag_to_start"] und ["require_tag_to_stop"] entfernt
  • nfc/inject_tag hinzugefügt
  • API für folgende neue Module hinzugefügt: charge_tracker, info, network, ntp, und users