NEWS
[Frage] Realisierung Adapter UDP Keba Wallbox
-
@mcm1957 Ah, da gibt es ja doch ne Option dazu. Welche Version sollte ich angeben? >=7.0.0 oder was Konkreteres?
-
@sneak-l8
Hab dir nen PR erstellt. Da sieht du die Anpassung.>= 7.0. sollte an sich genügen. Persönlich setz ich aber immer die zur Zeit der Anpassung im STABLE verfügbare Version ein. 7.0.6 ist nun schon 96 Tage alt - also durchaus als stabil zu betrachten. Und innerhalb eine major Release sind js-controller Updates ja nur bugfixes und sollten sowieso zeitnahe erfolgen.
Man kann in io-package spezifizieren welche andere Adapterversion ein Adpater voraussetzt, zu 99% ist das js-controller und admin. Wenn die nicht passen gibts bei der Installation eine Meldung und der Adapter lässt sich auch nicht starten. Damit sieht der User dann dass er was tun muss.
-
@mcm1957 Genau diese Spezifikation hatte ich beim ersten Schauen nicht gefunden. Habe jetzt nicht Deinen PR akzeptiert, weil da noch eine Änderung in den Beschreibungen der README geändert wurde (vermutlich versehentlich). Hab es mit meinem nächsten Commit mitgemacht.
-
@sneak-l8 Hallo Sneak, bei der Ladelimitierung habe ich keine Fehler mehr gefunden.
Jetzt aber das ABER: Ich habe gerade die PV-Automatik aktiviert, der Modus der Akkusteuerung ist 2, also erst Batterie laden. Trotzdem lädt das Auto bereits seit längerer Zeit mit 1,4kW obwohl der Akku nicht voll ist. Eigentlich sollte der Ladestrom jetzt angepasst werden, es regelt sich aber nur die Akkuladung (durch den WR).
Welche Information brauchst du zusätzlich um den Fehler zu finden?
LOG.txt
Eine andere Sache habe ich auch beobachtet, muss sie aber nochmals verifizieren, da ich in der Box noch etwas umgestellt habe: Wenn beim Anstecken des Fahrzeuges die PV-Automatik aktiviert ist aber zuwenig Strom für eine Ladung produziert wird, verfällt die RFID-Authorisierung nach etwa einer Minute. Startet man ohne Automatik und schaltet diese dann ein läuft es. Ich teste noch mehrere Abläufe mit einem Script, mit diesem schalte ich bei oben beschriebener Einstellung für eine Minute die Automatik aus und dann wieder ein. -
@sneak-l8 Es ist tatsächlich so, dass "kecontact.0.authreq" auf true springt wenn die PV-Automatik an ist und nicht sofort eine Ladung startet.
Was hältst du von einer Funktion (analog zu einer Standardfunktion bei der P30x) "Boost": Ladung mit voller Leistung nach dem Anstecken und RFID-Freigabe bei aktivierter PV-Automatik für eine einstellbare Zeit?Mein Script als Zwischenlösung:
on({ id: 'kecontact.0.plug' /* Plug */, change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : '') == 7 && getState('kecontact.0.automatic.photovoltaics').val == true) { setState('kecontact.0.automatic.photovoltaics' /* photovoltaics automatic enabled */, false, true); timeout2 = setTimeout(async () => { timeout2 = null; setState('kecontact.0.automatic.photovoltaics' /* photovoltaics automatic enabled */, true, true); }, parseInt(60000)); } });
-
@gto Aktuell ist die Logik bei dieser Strategie recht träge. Wenn die Batterie gerade geladen wird, dann soll dieser Überschuss nicht fürs Laden des Autos genutzt werden. Das Auto wird aber nicht aktiv gedrosselt, um die Batterie stärker laden zu können.
Eine andere Vorgehensweise ist schwieriger. Bespiel:
- PV-Überschuss aktuell 5 kW
- Auto lädt mit 2kW
- Batterie mit 3kW
- Batterie kann mit 4kW laden
Man könnte die Batterie jetzt mit 4 kW laden. Das würde bedeuten, dass 1 kW PV-Überschuss ins Netz gedrückt wird, anstatt ins Auto. Macht das Sinn?
Beim zweiten Beispiel weiß ich nicht, wie sich die Batterie verhält (hab leider noch keine):
- Batterie könnte sogar 5kW laden
Lädt sie mit 3 kW, weil das Auto 2kW lädt oder ist sie schon so voll, dass die Ladeleistung der Batterie auf 3 kW gedrosselt ist? Dann würde dann Auto unnötig auf 2 kW Ladeleistung verzichten.
Wie bildet man diese Fälle sinnvoll ab?
-
@gto Ist das eine Funktion, die man oft braucht? Ich hab mir lieber ein Skript gemacht, das die PV-Automatik deaktiviert, wenn ich in der vis ein Ladeziel vorgebe. Wenn das erreicht ist, wird wieder auf Automatik zurückgeschalten (und der Mindest-SoC wieder gelöscht). Das geht über den Adapter nicht, weil er den SoC des angesteckten Fahrzeugs nicht kennt. Ein Konfig-Feld passt auch nicht, da ich ja nicht weiß, ob es immer das gleiche Auto ist.
Und das ist zu viel Sonderlocke, um es in den Adapter zu bauen.
Dein Skript tut ja, was es soll. Wenn sich andere auch für diese Boost-Option erwärmen können, würde ich es nochmal in Erwägung ziehen.Der Zusammenhang mit dem 1. Satz Deines Posts ist mir allerdings nicht klar ...
-
@sneak-l8 Die Formulierung des ersten Satzes und die Überleitung waren leider schlecht formuliert, es sollte kein Zusammenhang hergestellt werden.
Akku: Ich gebe dir recht, dass es eine schwierig zu steuernde Problematik ist. Bevor man ins Netz einspeist ist natürlich die Autoladung besser. Bis zu einem SOC von 95% (danach greift der Wechselrichter in den Akkuladestrom ein) könnte man aber vor der Steuerung der Box noch prüfen, ob die berechnete Boxladung + aktueller Akkuladung kleiner der maximalen Akkuladeleistung ist (in den Einstellungen bereits eingetragen). In diesem Falle dürfte das Auto nicht laden.
Die RFID-Problematik kann ich natürlich per Script lösen, es dürfte alle RFID-Nutzer betreffen, zumindest diejenigen, die eine P30x haben. Gerade in den Sommermonaten stellen sicher viele den Adapter auf Automatik und stecken das Fahrzeug an um den Überschuss sobald er vorliegt ins Auto zu speisen, gerade am Wochenende. Aktuell muss man aber immer kontrollieren, ob bereits PV-Überschuss vorliegt und dann die Kartenfreigabe durchführen. Macht man dies zu früh, geht die Freigabe nach kurzer Zeit verloren, ist man zu spät wird der PV-Strom ins Netz gespeist. Den KFZ-SOC benötigst du nicht.
Ich kann mir 3 Lösungen vorstellen:
-
Falls Wechsel des Wertes Plug auf 7 (KFZ angesteckt) und PV-Automatik = true und authreq = true die PV-Automatik auf false setzen und Warten bis authreq = false dann PV-Automatik wieder auf true
-
Falls Wechsel des Wertes Plug auf 7 (KFZ angesteckt) und PV-Automatik = true und authreq = true die PV-Automatik auf false setzen, für einen in den Einstellungen vorzugebenden Zeitraum warten und dann PV-Automatik wieder auf true setzen.
-
Du sendest bei aktiver PV-Automatik vor der Ladefreigabe den RFID neu.
LG Thomas
-
-
@gto Ok, verstehe.
Zum Akku: ist das bei allen Batterien so, dass sie erst ab 95% drosseln? Sonst müsste man das auch als Einstellung anbieten.
Dann bliebe der Logik unverändert, solange die Batterie einen SoC > dem vorgenannten Schwellwert ist.
Darunter wäre die Ladeleistung Surplus - Consumption + aktuelle Ladeleistung Wallbox + aktuelle Ladeleistung der Batterie - aktuelle Entladeleistung der Batterie + max. Ladeleistung der BatterieDas bedeutet dann aber, dass das Auto ggf. nicht geladen und PV-Überschuss "verschenkt" (ins Netz gespeist) wird.
Ist das so richtig?
-
@gto Das mit der RFID muss ich mir noch in Ruhe anschauen. Ich tendiere dann aber dazu, mir die Freigabe zu merken und per Adapter automatisch für eine Freigabe zu nutzen. PV-Automatik ist ja für den User da und wenn ich da eingreife, dann würde der User-Wunsch ggf. überschrieben.
-
@sneak-l8 zu RFID: Der letzte Freigabecode wird ja bereits unter kecontact.0.statistics.rfid_tag gemerkt. Diesen bei Wiederaufnahme der Ladung neu zu schicken ist sicherlich am elegantesten. Aber Achtung: Die Box gibt zum Adapter den RFID mit 2 angehängten 0er zurück die du wieder abschneiden musst. Diesbezüglich hattest du bereits weiter oben mit tminimax geschrieben.
zum Akku: Ein einstellbarer Schwellenwert wäre natürlich großartig, dann ist man auch zukünftig flexibel. Wer weiß schon wie die Batterien und Wechselrichter mit den Firmwareänderungen ihr Verhalten ändern.
Kannst du um keinen Strom zu verschenken eine Überprüfung einbauen, die bei Unterschreiten der 6A Ladeleistung des KFZ und laufender Ladung des Akkus anspricht und die Autoladung einphasig mit 6A weiterlaufen lässt? -
@gto Die Logik für die Batterie-Strategie 2 habe ich jetzt mal angepasst. Die dt. Texte muss ich in Weblate noch überarbeiten, sind aber noch gesperrt. Sonst sollte es jetzt funktionieren.
Die Logik den Ladestrom für die Batterie dann doch zu begrenzen, habe ich erst mal außen vor gelassen. Da müsste ich tiefer eingreifen, weil die Routine isoliert die Batteriewerte rechnet. Jetzt bräuchte ich dort die Infos zum Ladevorgang (1p/3p, Mindeststromstärke).
Schauen wir erst mal, ob es so fukntioniert. -
Kann mir jemand bei meinem Blockly helfen? Ich würde gerne den Ladevorgang nach dem Einstecken nach einer vorgegebenen Zeit stoppen, so dass kecontact.0.state dann nach der vorgegeben Zeit von charging (3) auf charging temporarily interrupted (5) wechselt.
Leider klappt funktioniert das mit meinem Blockly noch nicht. Hat jemand eine Idee was ich ändern muss? Die RFID habe ich aus dem KEBA Webinterface kopiert. -
@sneak-l8 sagte in [Frage] Realisierung Adapter UDP Keba Wallbox:
@gto Die Logik für die Batterie-Strategie 2 habe ich jetzt mal angepasst. Die dt. Texte muss ich in Weblate noch überarbeiten, sind aber noch gesperrt. Sonst sollte es jetzt funktionieren.
Die Logik den Ladestrom für die Batterie dann doch zu begrenzen, habe ich erst mal außen vor gelassen. Da müsste ich tiefer eingreifen, weil die Routine isoliert die Batteriewerte rechnet. Jetzt bräuchte ich dort die Infos zum Ladevorgang (1p/3p, Mindeststromstärke).
Schauen wir erst mal, ob es so fukntioniert.Finde ich gut, man müsste evtl aber noch etwas feilen an der Logik. Mein Kostal G3 hat eine dynamische Akku-Logik, die auch vom Wetter abhängt. z.B. hält er das Laden der Batterie bei 60% am Vormittag an, wenn er weiß, dass er das am Nachmittag auf 100% fortsetzen kann. Man müsste also evtl noch die Power überwachen, die in den Akku geht. Wenn dass weit von max Power entfernt ist und eigentlich genügend da wäre, heißt das, dass das Laden gewollt heruntergefahren ist.
EDIT: Ich habe mal die nicht so ganz intelligente Batteriesteuerung vom Wechselrichter ausgeschaltet und beobachte.
-
@pfahlenbauer Welche Box verwendest du? Ist Plug=3 bei dir tatsächlich beim Anstecken des Autos (Ist sonst eigentlich 7)? Der gesendete RFID-Code hat um 2 Stellen zu wenig.
Wieso beendest du nicht einfach mit EnableUser = false?
-
Oh, da habe ich mich wohl versehen - ist tatsächlich 7. Ich probiere es morgen nochmal aus mit Enable User = false.
Danke! -
@sneak-l8 Hallo Sneak, leider konnte ich mangels Sonnenschein die überarbeitete Batteriestrategie noch nicht testen.
zum RFID: Ich habe bereits einige Sachen mit Scripten versucht und dabei folgendes herausgefunden:
- es ist möglich an der Wallbox Karten mit weniger als 8 Byte-Code anzulernen, auch meine Original Kebakarte hat nur 7 Bytes
- Die Box speichert und gibt über UDP immer einen 8 Bytecode aus, der aber nicht für den Neustart des Ladevorganges geeignet ist. In der Box wird dieser Code dann als INVALD und an der Box als UNBEKANNTE KARTE aufgeführt. Somit wird es nicht funktionieren den gespeicherten RFID bei Start einer PV-Automatikladung mitzusenden und so eine Freigabe zu erhalten.
- Für den START über UDP ist unbedingt ein 8 Bytecode notwendig. Ein solcher müsste als Karte in der Box eingetragen werden. Dies ist aber nur bei der P30x über die Weboberfläche möglich, die anderen P30 können das nicht.
- Nach einmal gestartetem Ladevorgang mit RFID funktioniert auch die Automatikladung jederzeit wieder ohne neuerlichem RFID.
Ich würde als Lösung, und so mache ich es mit einem Script nun auch, nach dem Anstecken (PLUG=7) bei eingeschaltener PV-Automatik für einen Berechnungscyclus oder eine einstellbare Zeitdauer (in den Einstellungen und als Datenpunkt unter Automatik) die Ladung freigeben. Das muss auch nicht mehr wiederholt werden und funktioniert mit jeder Karte.
LG Thomas
-
@sneak-l8 sagte in [Frage] Realisierung Adapter UDP Keba Wallbox:
@gto Die Logik für die Batterie-Strategie 2 habe ich jetzt mal angepasst.
Hat hier gut funktioniert heute, genau wie es sein soll. Super Arbeit, danke!
-
@gto Danke für die Erläuterung.
Ich hab jetzt allerdings nicht ganz verstanden:
zu 1: mit Anlernen meinst Du, die Karte im x-Series-Webportal zu hinterlegen?
zu 2+3: wenn die Box immer 8 Bytes zum Starten will und die Box auch immer 8 Byte zurückgibt, die von der Box aber nicht verstanden werden, heißt das dann, dass man mit start keinen Ladevorgang starten kann? Ich dachte, Du hättest zuvor geschrieben, dass es geht, wenn man 00 anhängt?
zu 4: wenn dem so ist (zu 2+3), dann wäre der Workaround, beim anstecken, immer einen Ladevorgang für Zeitraum x (minimal, also möglichst 1phasig mit 6 A) zu starten (falls nicht sowieso ausreichend PV-Überschuss da ist), denn damit klappt dann auch das Laden, wenn erst einige Stunden später ausreichend PV-Überschuss da ist?Dann wäre das Fazit: rfid-Codes merken bringt nichts, Anforderung wäre jetzt, (nur) bei x-Series eine Option mit x Sekunden anzubieten, die bei PV-Automatik immer nach dem Anstecken geladen wird, richtig?
-
@sneak-l8
Bei allen Boxen (nicht nur P30x) können auch Karten mit kürzeren Codes (weniger als 8 Byte) durch Anlegen am RFID-Leser angelernt werden, bei diesen gibt die Box über UDP aber einen mit 0ern verlängerten Code zurück, diesen könntest du zwar speichern aber damit keinen START und STOPP ausführen, weil die Box eine andere Kartennummer gespeichert hat und diese bei einer P30c nicht modifizierbar ist.
Mit der P30x würde die Freigabe funktionieren, sofern man im WebUI diesen 8Byte Code speichert. Im Adapter sollte aber eine Universallösung für ALLE Boxen programmiert sein.Fazit: Ja, um bei ALLEN Boxen (nicht nur x-Serie) eine korrekte RFID-Funktionalität zu erhalten muss beim Anstecken des Autos UND aktivierter PV-Automatik einmalig eine Ladefreigabe für x Sekunden erfolgen.