Jump to content

Beta-Version des Lastmanagements


rtrbt
 Share

Recommended Posts

Moin,

tl;dr: Nach langem Warten gibt es (im Anhang) endlich die Beta-Version der Firmware mit Lastmanagement zwischen WARP Chargern. Das Lastmanagement stellt sicher, dass mehrere Wallboxen an einem Anschluss einen konfigurierten Ladestrom nicht überschreiten.

Screenshot 2021-07-20 at 15-39-21 WARP Charger Web Interface.png

Weitere Neuerungen

Neben dem Lastmanagement habe ich die komplette Web-Server-Implementierung ausgetauscht. Der neue Web-Server läuft deutlich robuster als der alte, vorallem wenn noch weiterer Netzwerk-Traffic (wie das Lastmanagement oder MQTT) läuft.

Durch ein Update der verwendeten Bibliotheken beinhaltet die Firmware jetzt einen Patch für die kürzlich bekanntgewordenen WLAN-Sicherheitslücken FragAttacks. Details finden sich hier.

Auf der Statusseite wird jetzt angezeigt, warum das Ladestrom-Limit den aktuellen Wert hat.

Setup

Ihr könnt das Lastmanagement wie folgt testen:

  1. Die angehangene Firmware auf alle Wallboxen, die gesteuert werden sollen (Clients) und auf die Wallbox, die steuern soll (Manager), flashen
  2. Bei allen Clients und normalerweise auch beim Manager auf der Ladecontroller-Unterseite Lastmanagement aktivieren.
  3. Beim Manager auf der Lastmanager-Unterseite:
    1. Alle Clients mit einem Anzeigenamen und der entsprechenden IP hinzufügen. Hier ist noch kein Neustart notwendig. Der Manager selbst ist bereits als "lokale Wallbox" angelegt.
    2. Den verfügbaren Ladestrom einstellen.
    3. Den Lastmanager aktivieren
    4. Neu starten

Wenn alles klappt, sollten die Clients jetzt auf der Statusseite des Managers angezeigt werden und das Lastmanagement sollte funktionieren.

Falls Probleme beim Lastmanagement auftreten, finden sich die Informationen, die dem Lastmanagemer bekannt sind als Low-Level-Zustand auf der Lastmanager-Unterseite und Informationen zu erfolgten Stromverteilungen im Event-Log. Die Clients zeigen den vom Lastmanager festgelegten Strom auf der Ladecontroller-Unterseite an.

Edit: Ein Downgrade auf eine ältere Firmware ist jederzeit möglich; im Idealfall auf die 1.2.4, die ich unter anderem veröffentlicht habe, damit der aktuelle Stand abzüglich der Lastmanagement- und Webserver-Änderungen verfügbar ist.


Bekannte Bugs und Probleme

Da das Lastmanagement wie unten beschrieben Strom zuweist, gibt es eine implizite Priorisierung nach der Konfigurationsreihenfolge. Das führt dazu, dass wenn weniger Strom zur Verfügung steht, als von allen ladebereiten Wallboxen benötigt wird, damit sie laden können (also weniger als 6 Ampere pro Box), werden immer die in Konfigurationsreihenfolge ersten Boxen Strom zugeteilt bekommen.

Die Lastmanagement-Konfiguration hat bisher kaum User-freundliche Überprüfungen. Künftig wird bei der Konfiguration und periodisch geprüft, ob alle Wallboxen im Lastmanagement-Verbund die selbe Firmware haben und die Konfigurationen korrekt sind. Außerdem können Wallboxen bisher nur über ihre IP hinzugefügt werden. Später werden auch Hostnamen unterstützt. Jede Wallbox zeigt ihre IP auf der Status-Seite hinter WLAN-Verbindung an.

Der neue Web-Server unterstützt folgende Features nicht mehr:

  • Server-Sent Events: Stattdessen werden jetzt WebSockets verwendet um Events in das Webinterface zu übertragen.
  • Login per Digest Authentication: In der Beta ist das Zugangsdaten-Modul deaktiviert, da es noch zu Bugs mit dem Web-Server führt. Ich arbeite an einer Lösung. Falls die Beta auf eine Wallbox geflasht wird, bei der Zugangsdaten für das Webinterface gesetzt sind, werden diese ignoriert. Nach einem Downgrade auf Firmware 1.2.4 wird das Modul automatisch wieder aktiviert. Bei einem künftigen Update auf die finale Version 1.3 sollte das genauso passieren.
  • Handler für mehrere HTTP-Methoden: Die API reagiert in der Beta nur noch auf HTTP GET und HTTP PUT. PATCH und POST werden ignoriert.

Fehleranzeigen auf dem Webinterface werden sehr schnell gelöscht.

Die Status-Seite wird langsam unübersichtlich. Ich habe ein paar Ideen, wie man das Layout übersichtlicher gestalten kann, dazu später mehr.

Edit:

Das Lastmanagement ignoriert die Stromgrenzen der Zuleitung und Ladekabel. Das heißt wenn zum Beispiel zwei Boxen gesteuert werden, es stehen 32 Ampere zur Verfügung, eine der Boxen ist auf 12 Ampere konfiguriert und eine auf 32 Ampere, dann wird, wenn beide laden wollen, das Lastmanagement beiden Boxen 16 Ampere zuteilen, obwohl sinnvoller wäre 12 bzw. 20 Ampere zuzuteilen. In die andere Richtung ist es aber nicht schlimm, wenn nur der 12-Ampere-Box 32 Ampere zugeteilt werden (falls nur sie laden will): Die Wallbox selbst lädt nur mit dem Minimum aller Stromgrenzen.

Funktionsweise des Lastmanagements

Das Lastmanagement besteht aus zwei Komponenten: Einer Erweiterung der Ladecontroller-Firmware, sowie dem Lastmanager, der Strom verteilt.

Die Ladecontroller-Firmware hat neben dem Maximalstrom der Zuleitung bzw. des Ladekabels und dem konfigurierten Ladestrom jetzt ein viertes Stromlimit: das des Lastmanagements. Dieses vierte Limit wird nur berücksichtigt, wenn in der Ladecontroller-Unterseite Lastmanagement aktiviert wird. Der Ladecontroller hat neue API (evse/managed_current bzw. evse/managed_current_update) über den das Stromlimit festgelegt werden kann. Wenn eine Ladung beendet wurde, und wenn über einen längeren Zeitraum (30 Sekunden) kein managed_current_update empfangen wurde wird das Limit automatisch auf 0 A gesetzt. Damit die sehr häufigen Übertragungen effizienter sind, kann diese API auch über UDP benutzt werden.

Der Lastmanager benutzt die UDP-Variante der API um eine konfigurierte Menge Strom zu verteilen. Dazu schickt er regelmäßig den jeweils erlaubten Strom (anfangs 0 A) an Clients. Die Wallboxen beginnen daraufhin, dem Lastmanager regelmäßig ihren aktuellen Zustand zu übertragen. Aus diesen Informationen kann der Lastmanager erkennen, an welchen Boxen Fahrzeuge laden wollen und entsprechend Strom verteilen. Das passiert folgendermaßen:

  • Ermitteln wie viele Boxen laden wollen
  • Ermitteln des Ladestroms der dann jeder Box zur Verfügung steht (verfügbarer Strom / Anzahl ladebereiter Boxen)
  • Begrenzen aller Boxen, die bereits laden
  • Zuteilen des Stroms an Boxen die bereit sind, mit einer Ladung zu beginnen
  • Blockieren aller anderen Boxen

Falls der Lastmanager feststellt, dass ein Client nicht mehr antwortet oder reagiert, stoppt er alle laufenden Ladungen und blockiert alle Boxen, bis das Problem behoben ist. Das ist notwendig, da bei gestörter Kommunikation nicht klar ist, ob die nicht erreichbare Box gerade lädt.

 

Ich freue mich wie immer über Feedback!

Erik

warp_firmware_1_2_90_60f6c347_merged.bin

  • Like 3
Link to comment
Share on other sites

  • rtrbt pinned this topic

Super Sache! Im Moment habe ich nur ein e-Auto und einen WARP-Charger Smart. Ein zweites e-Auto ist aber gerade im Gedankenstadium und auch ein weiterer WARP. Mein Netzbetreiber hat mir das Laden >12kVA mit bis zu 22kW genehmigt. Während der KfW-Förderung muss jeder Ladepunkt die 11kW einhalten, aber nach einem Jahr könnte ich mit dem Lademanagement dann pro Ladepunkt mit max 22kW laden :) - wenn denn die Autohersteller auch die 22kW anbieten würden (mir fällt nur Renault ein). Noch interessanter ist es freilich bei größeren Anlagen, wie z.B. Garagenzeilen, die sich 63A oder weniger teilen müssen.

Ein paar kleine Fragen:

  • Beziehst Du auch den aktuellen Ladestrom mit ein (also beim Pro oder auf anderem Weg gemessen - nicht das gesetzte Maximum)? Wenn das Fahrzeug voll ist oder langsamer lädt dann ist mehr zum Verteilen da.
  • Wie spielt das mit EVCC zusammen? (Ich habe EVCC seit heute am Start weil es einfacher war als ein eigenes Lademanagement für PV aufzusetzen, aber weniger Komponenten ist meist die bessere Lösung - aber dafür ist das Lastmanagement ja nicht gedacht - wobei PV-Überschuss zentral zu sehen wäre und nicht mehr an jede Wallbox gehen sollte).
  • Stellen die oben angegebenen Einschränkungen wirklich welche dar (also durch Austausch des Webservers)? Ich sehe gerade nichts was praktisch relevant wäre.
  • Wird es eine Art ‚Abrechnung‘ geben? Ich kenne hier das Projekt einer Garagenzeile die sich einen Stromanschluss teilen wollen. Wenn das Laden zentral gesteuert würde müsste auch irgendwo dokumentiert werden, wer wann wieviel Leistung bezogen hat.

 

Link to comment
Share on other sites

Hi, ich habe den Luxus von zwei Warp pro und probiere das gerne nächste Woche aus, da kann ich mir auch ein zweites EV organisieren.

Funktioniert das downgrade auf die Vorversion, falls was schief geht bzw instabil läuft?

Link to comment
Share on other sites

11 hours ago, Hoich said:

Beziehst Du auch den aktuellen Ladestrom mit ein (also beim Pro oder auf anderem Weg gemessen - nicht das gesetzte Maximum)? Wenn das Fahrzeug voll ist oder langsamer lädt dann ist mehr zum Verteilen da.

Stand jetzt verteilt das Lastmanagement auf alle Boxen (die ladebereit sind) den gleichen Strom. D.h. ich ignoriere auch gesetzte Maximalströme auf den Boxen. Das ist noch auf meiner TODO-Liste (ich editiere es mal in die Liste der bekannten Bugs). Den aktuellen Ladestrom kann ich nicht einbeziehen, da den Wallboxen Informationen fehlen:

  • Lädt ein Fahrzeug gerade nicht, weil es voll ist, oder weil es nach einem Zeitplan lädt oder die Batterie gerade zu heiß ist o.Ä.?
  • Zieht ein Fahrzeug gerade nur (noch) z.B. 8 Ampere obwohl 16 zugeteilt sind, weil es fast voll ist oder auch wegen der Batterie? (Das macht einen Unterschied, weil das Auto dann jederzeit mehr Strom akzeptieren könnte, wenn ich ihn zuteile, es gibt aber keinen Kanal auf dem das der Wallbox und damit dem Lastmanagement mitgeteilt werden kann)

Die Stromgrenzen an der Wallbox, zumindest die "fixen" also Maximalstrom der Zuleitung und des Ladekabels, werden künftig auf jeden Fall berücksichtigt.

11 hours ago, Hoich said:

Wie spielt das mit EVCC zusammen? (Ich habe EVCC seit heute am Start weil es einfacher war als ein eigenes Lademanagement für PV aufzusetzen, aber weniger Komponenten ist meist die bessere Lösung - aber dafür ist das Lastmanagement ja nicht gedacht - wobei PV-Überschuss zentral zu sehen wäre und nicht mehr an jede Wallbox gehen sollte).

Stand jetzt kannst du EVCC und das Lastmanagement parallel benutzen. Das Laden beginnt nur, wenn sowohl EVCC, als auch das Lastmanagement die Ladung freigeben und der Ladestrom ist das Minimum aus beiden. Im folgenden Bild siehst du, wie das genau funktioniert: Die Freigaben sind stufenweise, wobei wenn eine Freigabe weggenommen wird, alle die "danach" kommen auch wieder abgefragt werden. Also wenn der Lastmanager eine Ladung freigibt und später blockiert, kann er noch später die Ladung wieder freigeben, ohne dass der User (oder EVCC) gefragt werden, das Auto muss aber neu Strom anfordern (was typischerweise automatisch passiert). Wenn die User-Freigabe weggenommen wird, muss aber danach der Lastmanager (und das Auto) freigeben.

ladefreigabe.png

12 hours ago, Hoich said:

Stellen die oben angegebenen Einschränkungen wirklich welche dar (also durch Austausch des Webservers)? Ich sehe gerade nichts was praktisch relevant wäre.

Als "normaler User" ist nur die Einschränkung bezüglich des Einloggens relevant. Der Rest ist betrifft nur Nutzer der HTTP-API.

12 hours ago, Hoich said:

Wird es eine Art ‚Abrechnung‘ geben? Ich kenne hier das Projekt einer Garagenzeile die sich einen Stromanschluss teilen wollen. Wenn das Laden zentral gesteuert würde müsste auch irgendwo dokumentiert werden, wer wann wieviel Leistung bezogen hat.

Irgendetwas in die Richtung wird es voraussichtlich geben, da haben wir aber noch keine Details ausgearbeitet. Die einfachste Variante, wenn jede Garage bzw. jede Nutzergruppe die separat abgerechnet werden soll eine eigene Wallbox bekommt, wäre den WARP Charger Pro zu verbauen und dann über den Stromzähler abzurechnen. Da gibt es aber keine Hilfsfunktionen in der Software, man müsste also "händisch" die Zählerstände pro Abrechnungszeitraum abfragen (oder sich ein eigenes Script etc. dafür bauen).

12 hours ago, Jhonny said:

Funktioniert das downgrade auf die Vorversion, falls was schief geht bzw instabil läuft?

Ja Downgrades sind möglich. Falls es da Probleme geben sollte, gib auf jeden Fall Bescheid.

2 hours ago, Schobi said:

Ich kann leider noch nicht testen - "Lieferung Mitte August"

Ich höre über mir die Wallbox-Bauer, kurz: wir arbeiten daran ;)

Link to comment
Share on other sites

Zitat
   Am 20.7.2021 um 21:57 schrieb  Hoich:

Beziehst Du auch den aktuellen Ladestrom mit ein (also beim Pro oder auf anderem Weg gemessen - nicht das gesetzte Maximum)? Wenn das Fahrzeug voll ist oder langsamer lädt dann ist mehr zum Verteilen da.

Stand jetzt verteilt das Lastmanagement auf alle Boxen (die ladebereit sind) den gleichen Strom. D.h. ich ignoriere auch gesetzte Maximalströme auf den Boxen. Das ist noch auf meiner TODO-Liste (ich editiere es mal in die Liste der bekannten Bugs). Den aktuellen Ladestrom kann ich nicht einbeziehen, da den Wallboxen Informationen fehlen:

  • Lädt ein Fahrzeug gerade nicht, weil es voll ist, oder weil es nach einem Zeitplan lädt oder die Batterie gerade zu heiß ist o.Ä.?
  • Zieht ein Fahrzeug gerade nur (noch) z.B. 8 Ampere obwohl 16 zugeteilt sind, weil es fast voll ist oder auch wegen der Batterie? (Das macht einen Unterschied, weil das Auto dann jederzeit mehr Strom akzeptieren könnte, wenn ich ihn zuteile, es gibt aber keinen Kanal auf dem das der Wallbox und damit dem Lastmanagement mitgeteilt werden kann)

Die Stromgrenzen an der Wallbox, zumindest die "fixen" also Maximalstrom der Zuleitung und des Ladekabels, werden künftig auf jeden Fall berücksichtigt.

So wie ich die Ladeprotokolle verstehe kann man den Grund einer reduzierten Ladung nicht wissen wenn man nicht die Herstellerspezifischen Web-APIs verwendet (oder bei DC-Laden scheint es da mehr zu geben).

Bei mir lädt der i3 auch an AC nicht mehr mit der vollen Leistung ab 9x% - die letzten Prozente scheinen sich ewig zu ziehen (es geht schon bis 100%, nur eben nicht in gleichbleibender Geschwindigkeit - an DC ist das Phänpmen viel deutlicher). Das wäre ein vergebener Slot.

In dem Fall dass der Ladestrom gemessen werden kann könnte man ja mit der Differenz arbeiten und ala TCP Rate Control so langsam den Strom erhöhen, bis sich eben nichts mehr nach oben ändert, und dann wieder mit dem eingestellten auf den tatsächlichen Ladestrom zurückfallen (und wieder hoch, bis sich nichts mehr tut). Der Rest der nie angefahren wird wäre frei für alle anderen. Ich befürchte anders kann man sich nicht sicher sein, dass die langsamer ladenden Fahrzeuge aus Fairness anderen gegenüber die Ladung freiwillig beenden.

Edited by Hoich
Link to comment
Share on other sites

10 hours ago, Hoich said:

Bei mir lädt der i3 auch an AC nicht mehr mit der vollen Leistung ab 9x% - die letzten Prozente scheinen sich ewig zu ziehen (es geht schon bis 100%, nur eben nicht in gleichbleibender Geschwindigkeit - an DC ist das Phänpmen viel deutlicher). Das wäre ein vergebener Slot.

Das ist leider so, ja. Am besten bekäme man das mit z.B. EVCC in den Griff, da sind die meisten Fahrzeug-APIs implementiert. EVCC könnte dann einfach 90% als Ladeziel ansetzen und danach die Wallbox stoppen, oder den Strom runterregeln. Das hieße auch, dass ich alle anderen Stromgrenzen berücksichtigen sollte, also auch die vom User oder von EVCC gesetzte. Ich setze mir mal auf die TODO-Liste damit zu experimentieren.

Die Idee mit der Strom- bzw. Leistungsmessung zu arbeiten ist gut, würde aber nur funktionieren, wenn alle Wallboxen einen Stromzähler haben. Wäre natürlich ein gutes Verkaufsargument für die Pro, da muss ich auch mal drüber nachdenken.

Danke für den Input!

Link to comment
Share on other sites

Ich frage auch die BMW-API ab um zu sehen wie voll das Auto ist. Dennoch sind diese APIs alles andere als Echtzeit. Es gibt schlechte Verbindungen ins Netz (auch dank der UMTS-Abschaltung - so ein Glück, dass Technologie eingebaut wurde die ein Ablaufdatum hatte 😬 - GSM/EDGE geht noch, aber wohl auch nicht mehr ewig), lange Intervalle zwischen Updates vom Fahrzeug, Probleme im Backend, und die notwendige Anpassung an die API jedes Herstellers. Da ist es gut wenn EVCC etc. oder Heimautomatisierungssysteme wie iobroker, etc. diese Daten einmal parsen und die API-Anbindung pflegen, aber vertrauen würde ich nur auf „gemessene“ Werte und nicht etwas was irgendeine API ausspuckt. Zumindest solange wie es keine echte Kommunikation bei AC gibt wie bei DC-Laden.

Link to comment
Share on other sites

Hallo,

habe das LM erforlgreich auf meinen beiden Warp pro aktiviert. Test folgt.

Eine kleine Anmerkung zum UI erlaube ich mir schon mal: Mich verwirrt die Bezeichnung "verfügbarer Strom". Gerade auf dem Smartphone ist die Ansicht etwas unübersichtlich.

Ich interpretiere das so:

- Auf Master / Lademanager Unterseite: "verfügbarer Strom" = Fixes oberes Limit für alle Wallboxen. (Beispiel: 12A oder z.B. das dem hausanschluss zumutbare Limit)

- Auf Master / Status Unterseite: "verfügbarer Strom" = variabel einstellbarer Strom für alle WB, maximaler Wert = s.o. 12A.

- Auf Allen / Status Unterseite: "Konfigurierter Ladestrom" = wie bisher lokale Einstellung für maximalen Ladestrom.

- Erlaubter Ladestrom an jeder WB ist Minimum aus "Konfiguriertem Ladestrom" und "Verfügbarem Strom" aus Master / Status Unterseite. (sowie Limit Zuleitung und Limit Ladekabel)

Evtl. hilft hier im UI eine Unterteilung der "Status" Seite, sodass klar ist, welche Werte zur Wallbox und welche zum übergeordneten Lastmanagement gehören. Eindeutige Überschrift oder Rahmen drum zum Beispiel.

edit:

Eben getestet, funktioniert. Slave übernimmt schnell und sauber die Limits, die ich im Master setze. Meine Interpretation oben bzgl. der Limits scheint richtig zu sein.

Ich Held hatte nur beim Slave auch "Lastmanagement aktivieren" aktiviert, sodass die Box abwechselnd Master Befehle umgesetzt oder sich selbst gesteuert hat. --> Evtl. in der UI bei "Lastmanager Unterseite" so etwas wie "Diese Box als Master für Lastmanagement verwenden" hinschreiben. Noch besser als Fail Safe Methode wäre, wenn der neu aktivierte Master bei den ihm zugewiesenen Slaves nachfragt, ob diese selber als Master laufen.

Edited by Jhonny
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...