NEWS
Keba kecontact - von Überschussladen auf Laden stellen?
-
Hallo,
Hintergrund: Ich möchte Nachts die Hausbatterie (14,3kWh) bis zum von SOC 50% ins Auto Laden. Diese Logik steht schon, das funktioniert schon gut über eine Sonoff+Tasmota Steckdose und Ladeziegel. Ich würde es aber gerne über die Wallbox nutzen.Leider gibt bei kecontact.0.automatic.photovoltaics = false die Wallbox alles was Hardwareseitig eingestellt ist (bei mir 32A*230V = 7650Watt)
Welche Werte müssen beschrieben werden, dass nur ein bestimmter Strom ins Auto fließt, auf dass der Victron über die Batterie den ganzen Strom liefern kann? Das ganze nur Einphasig.Um das Laden zu beenden, nehme ich an sind alle Ursprungswerte wieder zu setzen.
Hat da jemand Erfahrung?
Danke + MfG
-
@stefan-falt Servus, ja das geht, mit einem kleinen Umweg.
- Du brauchst einen Datenpunkt, der die verfügbare Leistung enthält. Ich nehme an du weißt ja wie viel du aus der Batterie entnehmen möchtest und mit welcher Leistung das geschehen soll
- Den Datenpunkt schiebst du dem KEBA Adapter als verfügbare Leistung unter, zb als Grid oder Bat.
- In diesem Fall sollte photovoltaik = true sein. Der Adapter meint nun, er regelt die Leistung im Datenpunkt aus 1), als wäre es die Leistung die ins Netz (Bat) eingespeist und zum Laden zur Verfügung steht.
Eventuell gibt es noch eine bessere Lösung?
Brauchst die ein Javascript Beispiel?LG
alk -
@alk Uh, so habe ich das noch nicht gedacht.
Den Datenpunkt schiebst du dem KEBA Adapter als verfügbare Leistung unter, zb als Grid oder Bat.
Wie kann ich der Wallbox einen Datenpunkt unterschieben? Oder meinst Du einfach nur die gewünschte Ladeleistung in ein Register schreiben, dass den freien Überschuss wiederspiegelt? Leider ist es gerade dunkel, so kann ich nicht sehen wo die zu ladende Leistung steht ...
Meine Idee wäre gewesen, von Überschussladen einfach auf "normal Laden" zu stellen, mit einer bestimmten Leistungsbegrenzung. Aber bei deiner Lösung muss man wohl nur ein einziges Register beschreiben ...
Ein Script zum Spicken würde helfen :*)
Danke alk + MfG
Stefan -
@stefan-falt Also eine Möglichkeit wäre folgende, bei der ich grundsätzlich PV-optimiert lade, der Wallbox dann Deinen Datenpunkt unterscheibe.
Die Idee basiert auf meiner Beschreibung: https://forum.iobroker.net/topic/65668/mit-e3dc-s10e-und-keba-p30-c-serie-pv-optimiert-ev-laden/2
Hier etwas abgespeckt:
- Instanzen
- Admin v6.10.1
- kecontact.0 v1.5.2
KEBA P30 C-Serie
- Product-ID: KC-P30
- Software P30 v 3.10.27
Konfiguration des iobroker kecontact Adapter (kecontact.0)
-
Im iobroker unter "Instanzen" die Konfiguration des kecontact.0 Adapter öffnen (Schraubenschlüssel):
-
IP-Adresse der Wallbox : IP-Adresse der KEBA KeContact-Wallbox : 192.168.178.60
-
OFF: passiver Modus
-
30 : Aktualisierungsintervall (für passiven Modus)
-
ON : lade letzte Ladesitzungen
-
ON : States beinhalten die Lesitung der Wallbox
Konfiguration über eine Datei in die kecontact.0 Instanz laden
Wichtig und bitte anpassen
--> "host": "YourIoBrokerHostName"
--> "host": "192.168.178.60"Eventuell nach dem Laden mal den TAB wechseln. Meist fehlt ein Update der Tabelle nach dem laden
- Instanze
- kecontact.0
- Klick: "Schraubenschlüssel" um an die Einstellungen zu kommen.
- Klick: oben rechts den Upload Knopf.
- Dann die JSON Datei auswählen
- Klick: oben rechts den Upload Knopf.
- Klick: "Schraubenschlüssel" um an die Einstellungen zu kommen.
- kecontact.0
Hilfe:
readme": "https://github.com/iobroker-community-adapters/ioBroker.kecontact/blob/master/README.md",kecontact.0 JSON Datei meiner Konfiguration
{ "_id": "system.adapter.kecontact.0", "common": { "name": "kecontact", "version": "1.5.2", "title": "KEBA KeContact Wallbox", "authors": [ "UncleSamSwiss <samuel.weibel@gmail.com>", "Volker Sengler <git@sengler.de>" ], "license": "Apache-2.0", "platform": "Javascript/Node.js", "mode": "daemon", "messagebox": true, "materialize": true, "readme": "https://github.com/iobroker-community-adapters/ioBroker.kecontact/blob/master/README.md", "loglevel": "info", "type": "hardware", "connectionType": "local", "compact": true, "dataSource": "poll", "keywords": [ "KeContact", "P30", "P20", "BMW", "KEBA", "wallbox", "emobility", "e-mobility" ], "icon": "kecontact.png", "extIcon": "https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.kecontact/master/admin/kecontact.png", "plugins": { "sentry": { "dsn": "https://01d409e4ecea470485101a0f53720ee5@sentry.iobroker.net/139" } }, "installedFrom": "iobroker.kecontact@1.5.2", "installedVersion": "1.5.2", "enabled": true, "host": "YourIoBrokerHostName", "logLevel": "info", "supportCustoms": false, "dependencies": [ { "js-controller": ">=2.0.0" } ] }, "native": { "host": "192.168.178.60", "passiveMode": false, "pollInterval": 30, "loadChargingSessions": true, "stateRegard": "alias.0.Energy.GRID_0", "stateSurplus": "", "statesIncludeWallbox": true, "stateBatteryCharging": "alias.0.Energy.BAT_0", "stateBatteryDischarging": "", "useX1forAutomatic": false, "delta": 500, "minAmperage": 6000, "addPower": 0, "underusage": 500, "minTime": 300, "regardTime": 300, "maxPower": 0, "stateEnergyMeter1": "", "stateEnergyMeter2": "", "stateEnergyMeter3": "", "wallboxNotIncluded": false } }
Schritt2: Ich verwende hier zur besseren Transparenz den Umweg für die Datenpunkte über einen Alias. das erscheint mir hier besser.
Du brauchst für Deine Lösung nur alias.0.Energy.BAT_0
- alias.0.Energy.BAT_0 = "DeinDatenpunktName"
"DeinDatenpunktName" hat die Unit "Watt" und ist positiv (+), wenn Leistung in der Battery gespeichert wird. Und der Wert ist negativ (-), wenn Leistung entnommen wird, um diese im EV zu verbrauchen. Der Alias sollte dann so aussehen:
- Jetzt brauchst Du ein Script, zB Javascipt um den Datenpunkt zu berechnen und die Leistung zu regeln. Und das funktioniert in meinem Vorschlag so:
a) Bei Deinem Victron die Entladeleistung einstellen, zB 2000W.
b) Start Enladen Bat: In "DeinDatenpunktName" = 2000W schreiben.
c) Warten bis das Auto zu laden beginnt. Dazu den DP "kecontact.0.p" kontrollieren. Wenn hier der Wert > 0 ist, läd das EV. Achtung, der Datepunkt liefert unit mW (Factor 1000)!
d) Dann Deinen Dantepunkt ändern: "DeinDatenpunktName" = VictronEntladeleistung - (kecontact.0.p/1000) ; zB DeinDatenpunktName = 2000 - (1700000/1000) = 300
e) Loop über c) d)
f) Eine Loop ended, wenn SOC < 80%. Oder auch wenn die Victron die Entladeleistung = 0W ist.Mit der Loop reglen wir die verfügbare Ladeleistung herunter. Sonst würde der Adapter um 2000W die EV Leistung erhöhen, bis das max erreicht ist. Die Updatezeit des Wallbox liegt bei ~30sec. Also genügend Zeit für die Loop. Außerdem hat die Wallbox eine Hysteres von ~500W. Die genauen Werte kenne ich auch nicht.
Schritt 3: Jetzt teilen wir dem Wallbox Adapter kecontact.0 die beiden Alias mit
Im iobroker unter "Instanzen" die Konfiguration des kecontact.0 Adapter öffnen (Schraubenschlüssel):Dies hatten wir weiter oben schon eingetragen -->
- IP-Adresse der Wallbox : IP-Adresse der KEBA KeContact-Wallbox : 192.168.178.60
- OFF: passiver Modus
- 30 : Aktualisierungsintervall (für passiven Modus)
- ON : lade letzte Ladesitzungen
- ON : States beinhalten die Lesitung der Wallbox
Dies muss noch eingetragen werden -->
- Name des States für aktuelle Leistungsaufnahme des Batterieseichers: alias.0.Energy.BAT_0
Die beiden Alias werden hier eingetragen (gelb markiert): Bei dir nur einer für Deinen "DeinDatenpunktName", alias alias.0.Energy.BAT_0
Mit der Lösung meint der kecontact.0 Adapter, er würde auf PV Leistung regeln, bei dir aber auf einem Datenpunkt. Ist der Datenpunkt positiv und > ~500W schaltet die Wallbox/EV einen Stufe rauf und schnappt sich die verfügbare Leistung. Deswegen musst du die Leistung des EV jetzt vom Datenpunkt abziehen. Ist der Dantepunkt negativ, das gleiche nur anders herum, der kecontact.0 und die WB schalten die Ladeleistung am EV herunter.
Passt das so ?`
- Instanzen
-
@alk Oha, da habe ich was zu kauen ... hoffentlich schaffe ich das dieses Wochenende. Ich melde mich
Vielen Dank für den Support ...
-
@stefan-falt Servus, habe verstanden, dass mein Vorschlag wohl etwas komlpex war. Dann habe ich nochmal beim kecontact Adapter nachgesehen.
--> https://github.com/iobroker-community-adapters/ioBroker.kecontactDort gibt es noch einige einfache "dynamic" options:
--> https://github.com/iobroker-community-adapters/ioBroker.kecontact#dynamic-optionsEine davon ist limitCurrent:
kecontact.0.automatic.limitCurrent - limits your charging to specified amperage in mA (0 = no limitation)
Sample: To charge your vehicle with a constant amperage of 6A regardless of surplus,- set photovoltaics to false
- limitCurrent to 6000.
Damit könntest Du Deine Lösung etwas einfacher erreichen. Probiert habe ich es noch nicht.
Bei der Leistungsrechnung müsstest du wohl noch etwas experimentieren, da du ja 1Phase verwendest. Eventuell braucht der Adapter etwas Hilfe.LG
alk -
@alk Hallo,
Funktioniert Jetzt muss ich bloß noch das vermaledeite Cron zum laufen bekommen. Die 6000mA reichen mir, ich will den Victrion und die Batterie nicht so stark belasten. Ich muss bloß noch prüfen, ob das Überschussladen danach noch funktioniert. Das klappt laber nur am Wochenende wenn das Auto Zuhause und genügen Sonne da ist.Dankeschön!
-
@stefan-falt super, dass es geklappt hat.
-
@alk Darf ich dich nochmal Fragen ...
Meine Wallbox macht gerade wilde Sachen: Sie läd, wenn ich das Auto Anstecke.
Egal welche Einstellungen ich mache z.B. Pause, oder Überschussladen - sie läd einfach weiter. Lediglich den Ladestrom kann ich einstellen.Was könnte da falsch laufen? Ein Neustart hat nicht geholfen.
-
@stefan-falt Servus,
puh, da bin ich mir nicht sicher.
Und du solltest wohl keine "automatic" Funktionen mischen:
Und da würde ich lieber auf den Entwickler des Adapters verweisen --> @Sneak-L8
Eventuell kann er besser weiter helfenLG
alk -
@alk danke fürs Erwähnen, hätte den Post sonstn icht bemerkt.
@stefan-falt Hm, das sieht jetzt so falsch nicht aus. Automatics = true und pause = true sollten kein Problem sein. Das darf man mischen. Kannst du mal das Debug-Log anschalten und posten?
-
@sneak-l8 Hallo
Danke für deine Zeit.
Hier das Log und die aktuellen Einstellungen. Etwas später habe ich das das letzte Bild gemacht (mit Statistics), nachdem ich den "limitCurrent" auf 6000mA gesetzt habe. Der Ladestrom bleibt aber bei 30AVielleicht findest Du ja was interessantes ...
Danke
Stefan
-
@stefan-falt Beim Log musst Du die Instanz des keba-Adapters auf Debug stellen (oben das Icon mit der Schutzhaube anklicken) und dann die Instanz aufklappen und das Loglevel anklicken. Du kannst "ohne Neustart" auswählen, dann muss der Adapter dazu nicht neu gestartet werden.
Sonst sehe och da zu wenig.Mir scheinen aber ein paar werte komisch. Z.B. sind die von Dir gesetzten werte rot und nicht grün. D.h. sie wurden vom Adapter nicht bestätigt. Schreib mal was in den State display rein (z.B. Hallo) und schau, ob der Text auf der Keba eingeblendet wird und der Text in ioBroekr grün wird.
Falls nein, scheint mir die Kommunikation gestört zu sein.
Komisch auch, dass die Ladespannung bei Dir nur 219V beträgt und auf den anderen beidne Phasen jeweils 1V detektiert wird.Neuste Version von github ist installiert?
-
@sneak-l8 Hallo Sneak
-
Das Log hast Du bekommen. Siehe private Chat.
-
Zum Thema gestörte Kommunikation: Ich habe über das Netzwerkkabel (100MBit braucht ja nur zwei Pärchen) auch noch 485 Daten geleitet (über ein Pärchen). Das Kabel ist ca. 50m lang. Das habe ich um 16:50 Abgesteckt. Lässt sich ab da eine Verbesserung feststellen?
-
Nach dem Abstecken habe ich den State Display erfolgreich beschreiben können (wurde grün)
-
Ladespannung 219V ... ich hatte da ja mit 30A geladen und das 6mm² Kabel ist 50m lang.
Ein Spannungsabfallrechner sagt 3,38% Verlust .. das kommt wohl hin.
-
Ich habe gerade vergeblich die Versionsnummer gesucht. Aber der Adapter wurde vor wenigen Tagen neu installiert.
Ich beobachte das nochmal und werde morgen Berichten.
Danke
Wolfgang -
-
Nachtrag: Diese Werte bleiben rot:
-
@stefan-falt Das ist ok, dass diese Werte rot bleiben, sie wurden bisher vermutlich noch nicht genutzt.
Wenn der display-Eintrag jetzt grün wird, klingt das nach erfolgreicher Kommunikation. Hast Du die Keba dann parallel über UDP und Modbus angesteuert? das könnte problematisch sein. Sie reagiert m.W. immer nur einen Absender...
So, und im Log habe ich wohl den entscheidenen Hinweis gefunden. Starting in passive mode.
Dann sind alle Komfortfunktionen deaktiviert. Also kein limitCurrent, kein pauseWallbox etc.
Mach in den Einstellungen mal den passiv-Haken weg... -
@sneak-l8 Ups, wie kommt denn das da rein? Dann werde ich das mal testen :*|
Danke für deine Zeit.Funktioniert :*)
Also Tipp des Tages:
Passiv Modus ausgeschaltet lassen, wenn man eine Wallbox Steuern will.
-
@stefan-falt Korrekt
Der passive Modus ist dazu da, einfach nur alle Kommandos, die die Wallbox von Haus aus kennt (enable, currUser, display, start, ...) an die Wallbox durchzuleiten und alle Informationen von ihr zu empfangen. Also wenn Du z.B. selbst per Skript alles machen willst.
Dann sind alle Zusatzfunktionen (selbst Anzeige Überschuss etc.) deaktiviert. Der Adapter ist quasi dumm.Will man also Überschussladen, Ladebegrenzung, Batteriespeicher-Integration nutzen, muss der Haken weg.
-
@sneak-l8 Hallo, die Batterieeinbindung finde ich schon sehr gut. Kannst Du zusätzlich die Entladetiefeneinstellung des minimalen SOC Der Batterie auch als Datenpunkt darstellen. So könnte man diese Einstellung der Batterie über zusätzliche Kriterien/Programme beeinflussen.
-
@keksn Die Frage verstehe ich nicht ganz. Vielleicht liegt auch ein Missverständnis vor. Der Wert gibt an, bis zu welchem SoC die Batterie in der Lage ist, "max. Leistung der Batterie" abzugeben.
Ich habe leider keinen Batteriespeicher, daher bin ich da auf Rückmeldung von Euch angewiesen, Bisher habe ich verstanden, dass eine Batterie einen festen SoC hat, bei dem sie eine Leistungsabgabe einstellt. Das ist der Wert, den Du hier einstellen kannst.
Es geht nicht darum, dass der Adapter hier eine Optimierung vornimmt, sondern nur, was für technische Daten für die Batterie gelten.