NEWS
Alpha Testing: OCPP Wallbox Adapter
-
Moin @foxriver76 , sehr cool das die Entwicklung des Adapters weiter geht.
Anbei ein Auzug von der Configuration der ABB Terra AC.
Der Adapter legt leider immer noch den Connector 0 an. Diese Daten werden aber nicht aktualisiert.
Beim Connector 1 werden die Daten aktualisiert.
Der Punkt
numberPhases
kann nicht stimmen da mein Auto nur mit 2 Phasen lädt.
Der PunktidTag
wird bei der ABB Terra AC leider nicht aktualisiert im Log steht der idTag aber drin.Hier ist noch ein Auszug aus dem Protokoll.
ocpp.0 2023-01-16 20:53:54.987 debug Recevied configuration from /TACW1142021G1020: {"configurationKey":[{"key":"GetConfigurationMaxKeys","readonly":true,"value":"20"},{"key":"HeartbeatInterval","readonly":false,"value":"55"},{"key":"MeterValueSampleInterval","readonly":false,"value":"30"},{"key":"AuthorizationKey","readonly":false},{"key":"LocalAuthorizeOffline","readonly":false,"value":"true"},{"key":"LocalPreAuthorize","readonly":false,"value":"false"},{"key":"LocalAuthListEnabled","readonly":false,"value":"true"},{"key":"LocalAuthListMaxLength","readonly":true,"value":"16"},{"key":"SendLocalListMaxLength","readonly":true,"value":"8"},{"key":"SupportedFeatureProfiles","readonly":true,"value":"Core,FirmwareManagement,LocalAuthListManagement,SmartCharging,RemoteTrigger"},{"key":"ChargeProfileMaxStackLevel","readonly":true,"value":"3"},{"key":"ChargingScheduleAllowedChargingRateUnit","readonly":true,"value":"Current,Power"},{"key":"ChargingScheduleMaxPeriods","readonly":true,"value":"25"},{"key":"MaxChargingProfilesInstalled","readonly":true,"value":"16"},{"key":"NumberOfConnectors","readonly":true,"value":"1"},{"key":"AllowOfflineTxForUnknownId","readonly":false,"value":"false"},{"key":"AuthorizeRemoteTxRequests","readonly":false,"value":"false"},{"key":"ConnectionTimeOut","readonly":false,"value":"120"},{"key":"WebSocketPingInterval","readonly":false,"value":"60"},{"key":"StopTransactionOnInvalidId","readonly":false,"value":"true"},{"key":"MaxEnergyOnInvalidId","readonly":false,"value":"1000"},{"key":"MeterValuesAlignedData","readonly":false,"value":"Energy.Active.Import.Register"},{"key":"MeterValuesAlignedDataMaxLength","readonly":true,"value":"4"},{"key":"ClockAlignedDataInterval","readonly":false,"value":"0"},{"key":"MeterValuesSampledData","readonly":false,"value":"Current.Import,Current.Offered,Energy.Active.Import.Register,Power.Active.Import,Voltage"},{"key":"MeterValuesSampledDataMaxLength","readonly":true,"value":"22"},{"key":"ResetRetries","readonly":false,"value":"0"},{"key":"TransactionMessageAttempts","readonly":false,"value":"10"},{"key":"TransactionMessageRetryInterval","readonly":false,"value":"10"}]} ocpp.0 2023-01-16 20:53:54.484 info Sending GetConfiguration to "/TACW1142021G1020" ocpp.0 2023-01-16 20:53:54.483 info Received MeterValues from "/TACW1142021G1020.1" ocpp.0 2023-01-16 20:53:54.482 debug {"connectorId":1,"meterValue":[{"timestamp":"2023-01-16T19:53:52.000Z","sampledValue":[{"value":"234.40","context":"Trigger","format":"Raw","measurand":"Voltage","phase":"L1-N","unit":"V"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","phase":"L1","unit":"A"},{"value":"2194","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","phase":"L1","unit":"W"},{"value":"234.60","context":"Trigger","format":"Raw","measurand":"Voltage","phase":"L2-N","unit":"V"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","phase":"L2","unit":"A"},{"value":"2065","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","phase":"L2","unit":"W"},{"value":"232.10","context":"Trigger","format":"Raw","measurand":"Voltage","phase":"L3-N","unit":"V"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","phase":"L3","unit":"A"},{"value":"0","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","phase":"L3","unit":"W"},{"value":"175","context":"Trigger","format":"Raw","measurand":"Energy.Active.Import.Register","unit":"Wh"},{"value":"0","context":"Trigger","format":"Raw","measurand":"Current.Offered","unit":"A"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","unit":"A"},{"value":"4259","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","unit":"W"}]}],"commandOcpp":"MeterValues"} ocpp.0 2023-01-16 20:53:53.982 info Received MeterValues from "/TACW1142021G1020.0" ocpp.0 2023-01-16 20:53:53.982 debug {"connectorId":0,"meterValue":[{"timestamp":"2023-01-16T19:53:52.000Z","sampledValue":[{"value":"234.40","context":"Trigger","format":"Raw","measurand":"Voltage","phase":"L1-N","unit":"V"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","phase":"L1","unit":"A"},{"value":"2194","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","phase":"L1","unit":"W"},{"value":"234.60","context":"Trigger","format":"Raw","measurand":"Voltage","phase":"L2-N","unit":"V"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","phase":"L2","unit":"A"},{"value":"2065","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","phase":"L2","unit":"W"},{"value":"232.10","context":"Trigger","format":"Raw","measurand":"Voltage","phase":"L3-N","unit":"V"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","phase":"L3","unit":"A"},{"value":"0","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","phase":"L3","unit":"W"},{"value":"175","context":"Trigger","format":"Raw","measurand":"Energy.Active.Import.Register","unit":"Wh"},{"value":"0","context":"Trigger","format":"Raw","measurand":"Current.Offered","unit":"A"},{"value":"0.0","context":"Trigger","format":"Raw","measurand":"Current.Import","unit":"A"},{"value":"4259","context":"Trigger","format":"Raw","measurand":"Power.Active.Import","unit":"W"}]}],"commandOcpp":"MeterValues"} ocpp.0 2023-01-16 20:53:52.978 info Requesting MeterValues from "/TACW1142021G1020" ocpp.0 2023-01-16 20:53:52.478 info Received boot notification from "/TACW1142021G1020" ocpp.0 2023-01-16 20:53:52.477 debug {"chargePointModel":"CDT_TACW11::NET_ETH","chargePointVendor":"ABB","chargeBoxSerialNumber":"TACW1142021G1020","firmwareVersion":"TAC3Z9119006710273::V1.6.5","meterType":"V1","commandOcpp":"BootNotification"} RFID-CHIP ocpp.0 2023-01-16 21:05:32.366 debug {"meterStop":0,"idTag":"XXXXXXXXXXXXXXX","timestamp":"2023-01-16T20:05:27.000Z","transactionId":1,"reason":"Local","commandOcpp":"StopTransaction"} ocpp.0 2023-01-16 21:05:31.867 info Received Status Notification from "/TACW1142021G1020.1": Finishing ocpp.0 2023-01-16 21:05:31.866 debug {"connectorId":1,"errorCode":"NoError","info":"null","status":"Finishing","vendorErrorCode":"0x0000","commandOcpp":"StatusNotification"} ocpp.0 2023-01-16 21:05:23.860 info Received Status Notification from "/TACW1142021G1020.1": SuspendedEVSE ocpp.0 2023-01-16 21:05:23.860 debug {"connectorId":1,"errorCode":"NoError","info":"null","status":"SuspendedEVSE","vendorErrorCode":"0x0000","commandOcpp":"StatusNotification"} ocpp.0 2023-01-16 21:05:23.360 info Received Start transaction from "/TACW1142021G1020.1" ocpp.0 2023-01-16 21:05:23.360 debug {"connectorId":1,"idTag":"XXXXXXXXXXXXX","meterStart":0,"timestamp":"2023-01-16T20:05:21.000Z","commandOcpp":"StartTransaction"} ocpp.0 2023-01-16 21:05:22.860 info Received Status Notification from "/TACW1142021G1020.1": Charging ocpp.0 2023-01-16 21:05:22.860 debug {"connectorId":1,"errorCode":"NoError","info":"null","status":"Charging","vendorErrorCode":"0x0000","commandOcpp":"StatusNotification"} ocpp.0 2023-01-16 21:05:22.360 info Received Status Notification from "/TACW1142021G1020.1": SuspendedEV ocpp.0 2023-01-16 21:05:22.360 debug {"connectorId":1,"errorCode":"NoError","info":"null","status":"SuspendedEV","vendorErrorCode":"0x0000","commandOcpp":"StatusNotification"} ocpp.0 2023-01-16 21:05:21.860 info Received Authorization Request from "/TACW1142021G1020" ocpp.0 2023-01-16 21:05:21.860 debug {"idTag":"XXXXXXXXXXX","commandOcpp":"Authorize"}
-
@fl4sh-0 JA der Connector 0 wird weiterhin angelegt, allerdings mit deutlich reduzierten States. Diese States haben lt. OCPP Standard eine besondere Bedeutung, z. B. lässt sich damit der Status aller Connectoren auf ein mal ändern und es werden auch Daten auf diese Connector ID teilweise gesendet.
ìdTag
kann vom Nutzer definiert werden und wird mit in diestartTransaction
gepackt, war mal ein Feature Request, ob das tatsächlich von WBs benötigt wird weiß ich nicht. Wohl nur wenn eine Local Auth Liste genutzt wird die nur bestimmteidTags
zulässt. Ich kann gerne einbauen, dass der tatsächlicheidTag
ausgelesen wird, falls das für dich wichtig ist. Ich prüfe dann nur mal ob sich das beißt in einem State zum schreiben und lesen des Tags.numberPhases
gleiches Spiel, sollte also möglich sein z. B. 1 zu setzen und er lädt einphasig (falls WB unterstützt) sprich was die WB daraus macht ist eine andere Frage. -
@fL4sH-0 anbei lt. OCPP Connector 0 Logik
@foxriver76 sagte in Alpha Testing: OCPP Wallbox Adapter:
Z. B. für mehrere Connectoren die availability lässt sich über den Main Kanal steuern:
Required. The id of the
connector for which
availability needs to
change. Id '0' (zero) is
used if the availability of
the Charge Point and all
its connectors needs to
change.Oder meterValues
Required. This contains
a number (>0)
designating a connector
of the Charge Point.‘0’
(zero) is used to
designate the main
powermeter.Und status:
Required. The id of the
connector for which the
status is reported. Id '0'
(zero) is used if the
status is for the Charge
Point main controller. -
@foxriver76 Ah ok, dann sind
idTag
undnumberPhase
keine Werte die aus der Wallbox kommen sondern Einstellmöglichkeit für die Wallbox. Danke für die Erläuterung.Die Möglichkeit den aktuellen ID-Tag in den State zu schreiben wäre schon ganz cool. Man könnte darauf prüfen und vordefinierte Ladungen über ein Script auslösen oder man könnte darüber differenzierte Statistiken für verschiedene Nutzer oder Autos anlegen.
-
Hi, ersteinmal vielen Dank für den Adapter. Ich habe einen Go E Charger. Bei diesem werden die Inhalte im Bereich MeterValues nicht angezeigt. Objektbaum habe ich gelöscht.
Gibt es dafür einen Grund?
Anbei das Bild
-
@soeni ist der Configuration Channel da, falls ja zeig den mal bitte
-
@foxriver76 nein, leider nicht. Es sind exakt die gezeigten Objekte da.
-
@soeni welche Adapter Version? Und zeig bitte log wenn sie die WB verbindet.
-
Das ist ja alles sehr geil. Das will ich auch, auch weil mein Daheimlader nur mit evcc.io und powerfox opti reden möchte.
Und schreiben sie
"Die DaheimLader Wallbox besitzt keine software-basierte Phasenumschaltung (unsere Belastungstests haben gezeigt, dass die Nutzung einer software-basierte Umschaltung mittelfristig den Schutz der Wallbox (einziges mechanisches Bauteil) sehr stark strapaziert und die Lebenserwartung einer Wallbox deutlich reduziert ).
Wir empfehlen daher die Nutzung von physikalischen Lasttrennschaltern (z.B. 3 x ABB SHD201/16). Hiermit kann der Lastbereich beim PV Überschussladen passend zur PV Anlage eingestellt werden:
einphasiger Betrieb: 1 x 6A / 1,37kW - 1 x 16A / 3,65kW
zweiphasiger Betrieb: 2 x 6A / 2,74kW - 2 x 16A / 7,3 kW
dreiphasiger Betrieb: 3 x 6A / 4,1kW - 3 x 16A / 11kW "Das heißt, ich bin auf dreiphasig 3 x 6A - 3 x 16(32)A eingeschränkt, richtig?
Mein iX kann eh nur 11kW.Komischerweise zeigt ocpp 32A und 22kW obwohl die WB eigentlich auf 11kW gedrosselt sein soll.
Sie kann 22kW.Welche Werte muss oder kann ich einstellen? Ampere oder kW?
-
@frank11 Alle Werte ohne Schloss können verändert werden. Die offiziellen OCPP Konfigurationswerte findet man in https://www.oasis-open.org/committees/download.php/58944/ocpp-1.6.pdf am besten mit Strg + F nach den Key suchen aus der Configuration,
ChargeRate
ist dort nicht standardisiert.Was steht bei dir in
SupportedFeatureProfiles
? Ist dortSmartCharging
mit aufgeführt? -
Core,Local Auth List Management,Reservation,Smart Charging,Remote Trigger
Ich würde gerne mal was bei dir einwerfen! Paypal? Habe keinen git-Account.
-
@frank11 Dann hast du evtl. einen Punkt
chargingScheduleAllowedChargingRateUnit
, in diesem steht drin, was unterstützt ist zum Anpassen der Ladeleistung.Current
(Ampere) oderPower
(Watt). Dann solltest du im Connector (Channel 1) auchchargeLimitType
entsprechend einstellen und kannst dann hoffentlich mitchargeLimit
die Ladeleistung verändern.Bzgl. Spende freue ich mich selbstverständlich sehr: https://www.paypal.me/foxriver76
-
@foxriver76 said in Alpha Testing: OCPP Wallbox Adapter:
chargingScheduleAllowedChargingRateUnit
Leider nicht.
Oben im Screenshot war die komplette Liste. -
Standards
Lt. OCPP Standard sollte der Config Punkt bereitgestellt werden, wennSmart Charging
unterstützt wird. Wirkt bei der etwas mau, dafür dass 5 Profile unterstützt sind.@foxriver76 sagte in Alpha Testing: OCPP Wallbox Adapter:
Dann solltest du im Connector (Channel 1) auch chargeLimitType entsprechend einstellen und kannst dann hoffentlich mit chargeLimit die Ladeleistung verändern.
Hast du das trotzdem mal probiert @frank11?
-
@foxriver76
Korrekt, jetzt sehe ich den Datenpunkt:Bin noch ioBroker-Anfänger, ich musste erstmal schauen, wie ich neue Werte anlegen kann
Jetzt kann ich mir praktisch im ioBroker Seiten erstellen, mit denen ich das testen kann bevor es automatisiert wird, richtig?
-
@frank11 Mit Seiten meinst du eine graphische Oberfläche?
Zum Testen kannst du auch hinten bei
(null) A
klicken und einen Wert eintragen. ÜbertransactionActive
kann man bei den meisten WBs direkt einen Ladevorgang starten. Ob die Änderung des Limits funktioniert, kann man vermutlich am ehesten mit der App des Autos oder im Display des Autos prüfen. Evtl. sagt er auch dass es einen Fehler gibt im Log (Tab Protokoll). -
Ja, genau. Eine GUI.
Das hat aber geklappt, oder? Das Objekt wurde ja erstellt.
Sonst gab es keine Fehler. Ich habe jetzt mal 6A gesetzt.
-
@frank11 Hm also entweder habe ich da noch einen Bug oder irgendwas anderes stimmt nicht. Kannst du mal ein Screenshot zeigen vom
chargeLimit
und den darüberliegenden States. -
-
@frank11 danke, ja schaut gut aus.
Ah.. bitte keine Datenpunkte in Adaptern manuell erzeugen, den
chargeLimitType
bitte wieder löschen aus derconfiguration
und den ChannelNaN
entsprechend auch löschen, ansonsten schaut das gut aus.