NEWS
Alpha Testing: OCPP Wallbox Adapter
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0 habe die meterValues eingebaut mit 0.3.0 den alten meterValue State bitte manuell löschen.
Dass die Ladeleistung bei den ABB Boxen nicht angezogen wird kann ich nicht ganz nachvollziehen, weiß aktuell leider nicht woran es liegt
Ich habe noch mal ein bisschen mit dem Ladelimit getestet. Das stand im Log:
ocpp.0 2022-01-19 07:28:25.519 debug Sending RemoteStartTransaction for /TACW1142021G1020: {"connectorId":1,"idTag":"1","chargingProfile":{"chargingProfileId":1,"stackLevel":1,"chargingProfilePurpose":"TxProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","chargingSchedule":{"duration":86400,"startSchedule":"2013-01-01T00:00Z","chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":8}]}}} ocpp.0 2022-01-19 07:27:46.152 debug Sending SetChargingProfile for /TACW1142021G1020
Gesendet wird das SetChargingProfile auch und wenn anschließend die Transaktion gestartet wird, sendet er auch einige Daten. Was ich mich nur frage warum startSchedule":"2013-01-01T00:00Z diesen Zeitstempel hat?
Hier sind noch Auszüge aus der Ocpp Dokumentation der ABB.
Vielleicht kannst du damit ja was anfangen und es hilft dir weiter. -
Was ich mich nur frage warum startSchedule":"2013-01-01T00:00Z diesen Zeitstempel hat?
Ist der example Zeitstempel aus der OCPP Doku um das zu bewirken.
Was ich noch sehe bei dir Max Stack Level 0 wir setzen 1 evtl ist es das noch. Nervig nach wie vor dass ich die Config nicht zurück bekomme sonst könnte ich sowas im Adapter dynamisch behandeln.
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
@fl4sh-0
Was ich noch sehe bei dir Max Stack Level 0 wir setzen 1 evtl ist es das noch. Nervig nach wie vor dass ich die Config nicht zurück bekomme sonst könnte ich sowas im Adapter dynamisch behandeln.Dann hätte man ja eventuell schon was gefunden wo man ansetzten kann.
Was meinst du denn damit, das du die Config nicht zurück bekommst, wenn ich fragen darf?
Könnte man solche Sachen nicht über eine Variablen aus dem OCPP Adapter aussteuern, ähnlich wie beim Port ? -
@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.
-
@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