NEWS
Alpha Testing: OCPP Wallbox Adapter
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 Das mit dem
stackLevel
können wir später probieren.Konfigurierbar ja wäre möglich, ist aber ja schon sehr technisch und für den Anwender jetzt nicht so spannend. Eigentlich müsste die WB auf einen
GetConfiguration
Request antworten. In der Antwort würden dann auch Informationen wie dasmaxStackLevel
stehen.Leider antwortet bislang keine WB darauf obwohl sie es sollte, auf meiner Seite sehe ich leider aktuell keinen Fehler.
Das sind die GetConfiguration Daten aus der ABB Dokumentation.
-
@fl4sh-0 Ich habe bereits probiert einzelne Keys die sicher vorhanden sein müssten zu requesten, als auch die gesamte Config. Habe ben nochmal nachgeschaut.. keine Ahnung woran es liegt.
Ich habe auf GitHub das
stackLevel
auf 0 geändert, bitte mal testen. -
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 Ich habe bereits probiert einzelne Keys die sicher vorhanden sein müssten zu requesten, als auch die gesamte Config. Habe ben nochmal nachgeschaut.. keine Ahnung woran es liegt.
Ich habe auf GitHub das
stackLevel
auf 0 geändert, bitte mal testen.Anbei die Logdatei mit dem stacklevel 0 leider ohne Erfolg. Er sendet zwar SetChargingProfile aber kann es anscheind nicht verarbeiten.
Über die APP kann man das Limit zwischen 6A -16A stufenlos einstellen auch während eines Ladevorgangs. Aber für PV-Überschussladung ist das über die App nicht realisierbar und auch nur über Bluetooth steuerbar. Gibt es vllt noch eine andere Möglichkeit woran es liegen kann das der das Limit nicht setzt?
ocpp.0 2022-01-19 10:39:38.888 debug {"connectorId":1,"transactionId":1,"meterValue":[{"timestamp":"2022-01-19T09:39:38.000Z","sampledValue":[{"value":"229.10","context":"Transaction.Begin","format":"Raw","measurand":"Voltage","phase":"L1-N","unit":"V"},{"value":"5.77","context":"Transaction.Begin","format":"Raw","measurand":"Current.Import","phase":"L1","unit":"A"},{"value":"16","context":"Transaction.Begin","format":"Raw","measurand":"Power.Active.Import","phase":"L1","unit":"W"},{"value":"229.00","context":"Transaction.Begin","format":"Raw","measurand":"Voltage","phase":"L2-N","unit":"V"},{"value":"5.76","context":"Transaction.Begin","format":"Raw","measurand":"Current.Import","phase":"L2","unit":"A"},{"value":"5","context":"Transaction.Begin","format":"Raw","measurand":"Power.Active.Import","phase":"L2","unit":"W"},{"value":"230.90","context":"Transaction.Begin","format":"Raw","measurand":"Voltage","phase":"L3-N","unit":"V"},{"value":"0.0","context":"Transaction.Begin","format":"Raw","measurand":"Current.Import","phase":"L3","unit":"A"},{"value":"0","context":"Transaction.Begin","format":"Raw","measurand":"Power.Active.Import","phase":"L3","unit":"W"},{"value":"0","context":"Transaction.Begin","format":"Raw","measurand":"Energy.Active.Import.Register","unit":"Wh"},{"value":"6","context":"Transaction.Begin","format":"Raw","measurand":"Current.Offered","unit":"A"}]}],"commandOcpp":"MeterValues"} ocpp.0 2022-01-19 10:39:30.629 info Received Start transaction from "/TACW1142021G1020" ocpp.0 2022-01-19 10:39:30.628 debug {"connectorId":1,"idTag":"1","meterStart":0,"timestamp":"2022-01-19T09:39:29.000Z","commandOcpp":"StartTransaction"} ocpp.0 2022-01-19 10:39:29.936 info Received Status Notification from "/TACW1142021G1020": Charging ocpp.0 2022-01-19 10:39:29.936 debug {"connectorId":1,"errorCode":"NoError","info":"null","status":"Charging","vendorErrorCode":"0x00","commandOcpp":"StatusNotification"} ocpp.0 2022-01-19 10:39:28.982 info Received Status Notification from "/TACW1142021G1020": SuspendedEV ocpp.0 2022-01-19 10:39:28.981 debug {"connectorId":1,"errorCode":"NoError","info":"null","status":"SuspendedEV","vendorErrorCode":"0x00","commandOcpp":"StatusNotification"} ocpp.0 2022-01-19 10:39:28.465 debug Sending RemoteStartTransaction for /TACW1142021G1020: {"connectorId":1,"idTag":"1","chargingProfile":{"chargingProfileId":1,"stackLevel":0,"chargingProfilePurpose":"TxProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","chargingSchedule":{"duration":86400,"startSchedule":"2013-01-01T00:00Z","chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":10}]}}} ocpp.0 2022-01-19 10:39:13.348 debug Received heartbeat from "/TACW1142021G1020" ocpp.0 2022-01-19 10:39:13.347 debug {"commandOcpp":"Heartbeat"} ocpp.0 2022-01-19 10:38:58.104 debug Sending SetChargingProfile for /TACW1142021G1020 ocpp.0 2022-01-19 10:38:18.006 info Sending GetConfiguration to "/TACW1142021G1020"
ocpp.02022-01-19 11:57:33.366 debug Sending RemoteStartTransaction for /TACW1142021G1020: {"connectorId":1,"idTag":"1","chargingProfile":{"chargingProfileId":1,"stackLevel":0,"chargingProfilePurpose":"TxProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","chargingSchedule":{"duration":86400,"startSchedule":"2013-01-01T00:00Z","chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":9}]}}} ocpp.02022-01-19 12:16:06.331 debug Sending SetChargingProfile for /TACW1142021G1020
-
@foxriver76 Moin, könntest du einmal beschreiben wie dein Vorgehen beim einstellen des Ladelimits ist. Ich würde das dann gerne nochmal genau so nachspielen.
Gibt es die Möglichkeit das Ladelimit gesondert zu pushen ?
Könnte man den startSchedule":"2013-01-01T00:00Z im SetChargingProfil auf das aktuelle Datum setzen ? Nicht das die Wallbox damit nicht klar kommt weil der Wert soweit in der Vergangenheit liegt. Hatte schon ein paar andere SetChargingProfile gesehen wo ein aktuelles Datum hinterlegt war.
Gruß Tobias
-
Hatte schon ein paar andere SetChargingProfile gesehen wo ein aktuelles Datum hinterlegt war.
Wo?
Ja bin das WE allerdings unterwegs. Du kannst dir Daten auch lokal bei dir ändern wenn du dir das zutraust um mal rum zu spielen, die Stellen sollten identifizierbar sein.
/opt/iobroker/node_modules/iobroker.ocpp/build/main.js
oder Windows analog.Und
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
Hatte schon ein paar andere SetChargingProfile gesehen wo ein aktuelles Datum hinterlegt war.
Wo?
Ja bin das WE allerdings unterwegs. Du kannst dir Daten auch lokal bei dir ändern wenn du dir das zutraust um mal rum zu spielen, die Stellen sollten identifizierbar sein.
/opt/iobroker/node_modules/iobroker.ocpp/build/main.js
oder Windows analog.Und
Hatte das mal auf anderen Seiten gesehen: Hier die Beispiele.
"SetChargingProfile",{"connectorId":0,"csChargingProfiles":{"chargingProfileId":10,"stackLevel":0,"chargingProfilePurpose":"TxDefaultProfile","chargingProfileKind":"Absolute","recurrencyKind":"Daily","validFrom":"2019-10-22T08:25:00.000Z","validTo":"2019-10-22T08:36:00.000Z","chargingSchedule":{"startSchedule":"2019-10-22T08:26:00.000Z","chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":1,"numberPhases":3}]}}}] SetChargingProfile exchange: "SetChargingProfile",{"connectorId":1,"csChargingProfiles":{"chargingProfileId":100,"stackLevel":0,"chargingProfilePurpose":"TxDefaultProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","validFrom":"2018-05-12T00:00:00.000Z","validTo":"2018-05-19T00:00:00.000Z","chargingSchedule":{"duration":86400,"chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":25.5,"numberPhases":1},{"startPeriod":28800,"limit":15.5,"numberPhases":1},{"startPeriod":72000,"limit":25,"numberPhases":1}]}}}] GetCompositeSchedule exchange: "GetCompositeSchedule",{"connectorId":1,"duration":86400,"chargingRateUnit":"A"}] Sending RemoteStartTransaction for /ABB-Terra-AC: {"connectorId":1,"idTag":"1","chargingProfile":{"chargingProfileId":1,"stackLevel":0,"chargingProfilePurpose":"TxProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","chargingSchedule":{"duration":86400,"startSchedule":"2013-01-01T00:00Z","chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":12}]}}}
Ich habe mit der main.js mal ein bisschen rumgespielt und die Werte ein bisschen geändert aber leider ohne Erfolg.
Die Wallbox will das chargelimit immer noch nicht übernehmen......Ich habe mal eine Anfrage direkt zu ABB geschickt und schaue mal ob die sich dazu äußern.
-
@fl4sh-0 Nach verändern der main.js auch immer Adapter neugestartet?
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 Nach verändern der main.js auch immer Adapter neugestartet?
Einen Neustart habe ich immer gemacht weil er sonst die Daten nicht übernommen hatte
-
@fl4sh-0 Top, also richtig gemacht, schade dass es erfolglos war.
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
Hatte schon ein paar andere SetChargingProfile gesehen wo ein aktuelles Datum hinterlegt war.
Wo?
Ja bin das WE allerdings unterwegs. Du kannst dir Daten auch lokal bei dir ändern wenn du dir das zutraust um mal rum zu spielen, die Stellen sollten identifizierbar sein.
/opt/iobroker/node_modules/iobroker.ocpp/build/main.js
oder Windows analog.Und
Worin besteht eigentlich der unterschied zwischen diesen beiden Blöcken ?
Beim oberen Block ist: limit: limitState.val und beim unteren limit: state.valWenn ich das richtig lese, sendet der untere Block doch "SetChargingProfile" oder ?
-
@fl4sh-0 Ist ein mal das Kommando um um die einen Ladevorgang zu starten (hier wird dann eben auch das aktuell in iob eingestellte limit mit gegeben) und das andere ist allgemein das setzen des limits, also auch während dem aktiven Ladevorgang ändern beispielsweise.
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 Ist ein mal das Kommando um um die einen Ladevorgang zu starten (hier wird dann eben auch das aktuell in iob eingestellte limit mit gegeben) und das andere ist allgemein das setzen des limits, also auch während dem aktiven Ladevorgang ändern beispielsweise.
Moinsen,
es gibt neue Erkenntnisse bzgl. des Ladelimit.
Der Wert "Current_Offered" ist der maximal zulässig Wert der Wallbox. Dieser Wert kann über die APP bis 16A eingestellt werden. Das Ladelimit kann nur unterhalb dieses Wertes geändert werden aber auch während eines Ladevorgangs.Ich hatte anfangs versucht den Wert der Ladelimits über den Wert "Current_Offered" zusetzen. Das hatte dann aber keine Auswirkung in kombination mit Stacklevel max=1.
Das heißt das die Änderung mit dem Stacklevel max = 0 funktioniert bei der ABB Terra AC.
So kann das Ladelimit mit PV-Überschuss variabel gesteuert werden und erfüllt somit die Anforderung die ich hatte.
Vielen Dank!!!
-
@fl4sh-0 Super, sprich mit der aktuellen Version kannst du das
chargeLimit
zwischen Untergrenze/Obergrenze korrekt setzen, ist bei mir dasselbe, geht glaube nur zwischen 6 und 16 A.Dann veröffentliche ich die Version mal auf npm
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 Super, sprich mit der aktuellen Version kannst du das
chargeLimit
zwischen Untergrenze/Obergrenze korrekt setzen, ist bei mir dasselbe, geht glaube nur zwischen 6 und 16 A.Dann veröffentliche ich die Version mal auf npm
Funktioniert diese Version mit dem Stacklevel = 0 bei dir denn auch ? oder müsste man da noch eine Auswahl im Adapter einplanen ?
-
@fl4sh-0 Geht bei mir auch mit 0, 0 ist immer supported, würde nur überschrieben werden wenn eine andere Anwendung ein Profil mit stackLevel höher rein schreibt.
Nach wie vor wäre es schick die Konfig zu bekommen, dann könnte ich das maxStackLevel dynamisch auslesen und setzen. Aber for now ja schon mal was erreicht
-
@foxriver76
Ich konnte mittlerweile noch zwei Unterschiede feststellen.Wenn ich den Ladevorgang direkt über die Wallbox starte, in meinem Fall über RFID, dann kann ich das chargelimit anschließen im iobroker jederzeit und variabel ändern. (TxDefaultProfile???)
Wenn ich den Ladevorgang über den iobroker starte, wird das chargelimit beim ändern nicht übernommen. Erst nach erneuter Betätigung der transactionActive = true schickt er den Remote Startbefehlt erneut mit dem geändertem chargelimit und es funktioniert.
Das wird wahrscheinlich an den beiden verschiedenen Profilen liegen oder? TxProfile und TxDefaultProfile.
Könnte man bei der RemoteStartTransaction ebenfalls das TxDefaultProfile nutzen oder müssen das verschiedene sein ?
Gruß Tobias
-
@fl4sh-0 Kannst du das validieren, dass es mit
TxDefaultProfile
dann auch dynamisch geht? also nochmal lokal code ändern und an der stelle auch dasTxDefaultProfile
rein -
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 Kannst du das validieren, dass es mit
TxDefaultProfile
dann auch dynamisch geht? also nochmal lokal code ändern und an der stelle auch dasTxDefaultProfile
reinJa, jetzt kann ich es bestätigen! Wenn in beiden Codeblöcken "TxDefaultProfile" steht dann kann es über beide Wege variable eingestellt werden und muss nicht jedesmal über transactionActive bestätigt werden.
ocpp.0 2022-01-26 15:11:48.622 debug Sending RemoteStartTransaction for /ABB-Terra-AC: {"connectorId":1,"idTag":"1","chargingProfile":{"chargingProfileId":1,"stackLevel":0,"chargingProfilePurpose":"TxDefaultProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","chargingSchedule":{"duration":86400,"startSchedule":"2013-01-01T00:00Z","chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":8}]}}}
-
Hallo zusammen,
die Erstellung dieses Adapters war eine sehr gute Idee! Ich bin gespannt was sich damit alles umsetzen lässt.
Leider scheitere ich an zwei Stellen und hoffe hier entweder zu erfahren was ich falsch mache oder einen anstoß zur Änderung / Weiterentwicklung zu liefern.-
Die durch den Adapter erzeugte ID der Walboxen beginnt mit einem "/". Z.B. ID = /Wallbox1.
Dadurch ist es nicht möglich die Daten über dem Fhem Adapter zu synchronisieren. Fhem mag "/" in einem Gerätenamen nicht.
Habe ich die Möglichkeit entsprechende Änderungen vorzunehmen oder muss das seitens der Entwicklung umgesetzt werden? -
Mein Plan ist es, ein "mini-" Abrechnungstool für mehrere Ladekarten zu bauen.
Über den Adapter konnte ich bisher aber noch kein Objekt finden, das die RFID zu dem jeweils laufenden Ladezyklus bereitstellt.
Gibt es hier Lösungen oder Pläne?
Vielen Dank vorab
-
-
@renev 1. issue bei FHEM adapter erstellen analog https://github.com/iobroker-community-adapters/ioBroker.fhem/issues/126
- wenn du mir sagst wie das im ocpp 1.6 protokoll möglich ist, gehts schneller, sonst muss ich mal lesen bei Zeit https://www.oasis-open.org/committees/download.php/58944/ocpp-1.6.pdf