Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ocpp: use SetChargingProfile 0A for disable #12459

Merged
merged 1 commit into from
Mar 3, 2024
Merged

Conversation

andig
Copy link
Member

@andig andig commented Feb 25, 2024

Fix #12456

@andig andig added the enhancement New feature or request label Feb 25, 2024
@cheerfulalex
Copy link

Vielen Dank! Gerade übersetzt, wird nun zeitnahe getestet.

@cheerfulalex
Copy link

cheerfulalex commented Feb 28, 2024

Hallo @ andig,
es funktioniert wie es soll. Echt cool! Danke!

Vollständigkeitshalber sollte man sich ev. die Umschaltung "AUS" -> "schnell" etwas genauer anschauen, hier wird irgendwie gar kein ChargeProfile an die Box geschickt. Dann passiert halt ladetechnisch auch nichts.

Es wird fleißig weiter getestet.

@sreichholf
Copy link

sreichholf commented Feb 29, 2024

Ein angenehmer zusätzl. Nebeneffekt dürfte übrigens sein, dass z.B. in der MySkoda App dann wieder Akkustand sichtbar ist wenn ein Kabel angeschlossen ist aber nicht geladen wird.
Denn aktuell wird, vermeintlich aufgrund der verweigerten Session, in der App immer "Daten nicht verfügbar" (man kann in die Details springen uns sieht es wieder) angezeigt bis tats. ein Ladevorgang startet.

@premultiply
Copy link
Member

Das hat überhaupt nichts miteinander zu tun.
Die Kommunikation zwischen EVSE und Fahrzeug ist und bleibt identisch.

Hier geht es um den Sessionablauf zwischen EVSE und evcc.

@sreichholf
Copy link

Ach... ich "verdränge" immer wieder dass bei AC Wallboxen i.d.R. außer PWM keinerlei Comm stattfindet.... Sorry, und danke für den Hinweis :)

@andig
Copy link
Member Author

andig commented Feb 29, 2024

In jedem Fall warten wir auf ein Testergebnis- Versuch macht klug.

@cheerfulalex
Copy link

Hallo Zusammen,

eine Frage am Rande: funktioniert RFID-Fahrzeugidentifizierung bei OCPP?
Ich sehe irgendwie nicht mal einen Versuch das richtige Fahrzeug dem Ladepunkt zu zuordnen:

evcc.yaml
...
vehicles:
  - name: vehilce_1
...
    identifiers:
      - 12345678
...
  - name: vehicle_2
    type: template
    title: Model Y
    template: tesla
    accessToken: eyJ...
    refreshToken: EU_...
    capacity: 74 # Akkukapazität in kWh (optional)
    identifiers:
      - 041853D24B4D80
...
[ocpp  ] TRACE 2024/03/02 14:10:41 received JSON message from GPJ_0112: [2,"9","StatusNotification",{"connectorId":0,"errorCode":"NoError","info":"Info: Charge card 041853D24B4D80 detected","status":"Available"}]
[ocpp  ] TRACE 2024/03/02 14:10:42 received JSON message from GPJ_0112: [2,"10","Authorize",{"idTag":"041853D24B4D80"}]
[ocpp  ] TRACE 2024/03/02 14:10:42 sent JSON message to GPJ_0112: [3,"10",{"idTagInfo":{"status":"Accepted"}}]
[ocpp  ] TRACE 2024/03/02 14:10:46 received JSON message from GPJ_0112: [2,"11","StatusNotification",{"connectorId":1,"errorCode":"NoError","status":"SuspendedEVSE"}]
[ocpp  ] TRACE 2024/03/02 14:10:46 sent JSON message to GPJ_0112: [3,"11",{}]
[ocpp  ] TRACE 2024/03/02 14:10:47 received JSON message from GPJ_0112: [2,"12","StartTransaction",{"timestamp":"2024-03-02T13:10:46Z","connectorId":1,"meterStart":13077330,"idTag":"041853D24B4D80"}]
[ocpp  ] TRACE 2024/03/02 14:10:47 sent JSON message to GPJ_0112: [3,"12",{"idTagInfo":{"status":"Accepted"},"transactionId":1}]
[ocpp  ] TRACE 2024/03/02 14:10:47 received JSON message from GPJ_0112: [2,"13","StatusNotification",{"connectorId":1,"errorCode":"NoError","status":"Charging"}]
[ocpp  ] TRACE 2024/03/02 14:10:47 sent JSON message to GPJ_0112: [3,"13",{}]
[ocpp  ] TRACE 2024/03/02 14:10:48 received JSON message from GPJ_0112: [2,"14","MeterValues",{"connectorId":1,"transactionId":1,"meterValue":[{"timestamp":"2024-03-02T13:10:46Z","sampledValue":[{"value":"13077.330","context":"Transaction.Begin","unit":"kWh"}]}]}]
[ocpp  ] TRACE 2024/03/02 14:10:48 sent JSON message to GPJ_0112: [3,"14",{}]
[site  ] DEBUG 2024/03/02 14:10:49 ----
[lp-1  ] DEBUG 2024/03/02 14:10:49 charge power: 0W
[site  ] DEBUG 2024/03/02 14:10:49 pv power: 4350W
[cache ] TRACE 2024/03/02 14:10:49 lp-1/chargePower: 0
[site  ] DEBUG 2024/03/02 14:10:49 grid power: -3900W
[site  ] DEBUG 2024/03/02 14:10:49 site power: -3900W
[mqtt  ] TRACE 2024/03/02 14:10:49 recv evcc/loadpoints/1/chargePower: '0'
[cache ] TRACE 2024/03/02 14:10:49 pvPower: 4350
[cache ] TRACE 2024/03/02 14:10:49 pvEnergy: 0
[cache ] TRACE 2024/03/02 14:10:49 pv: [{4350 0}]
[cache ] TRACE 2024/03/02 14:10:49 gridPower: -3900
[lp-1  ] DEBUG 2024/03/02 14:10:49 charger status: C
[lp-1  ] INFO 2024/03/02 14:10:49 start charging ->
[lp-1  ] DEBUG 2024/03/02 14:10:49 wake-up timer: stop
[cache ] TRACE 2024/03/02 14:10:49 homePower: 450
[cache ] TRACE 2024/03/02 14:10:49 lp-1/smartCostActive: false
[cache ] TRACE 2024/03/02 14:10:49 lp-1/chargeCurrent: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/sessionEnergy: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/sessionSolarPercentage: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/sessionPricePerKWh: <nil>
[cache ] TRACE 2024/03/02 14:10:49 lp-1/sessionPrice: <nil>
[cache ] TRACE 2024/03/02 14:10:49 lp-1/sessionCo2PerKWh: <nil>
[cache ] TRACE 2024/03/02 14:10:49 lp-1/chargedEnergy: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/chargeDuration: 0s
[cache ] TRACE 2024/03/02 14:10:49 lp-1/effectivePriority: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/effectivePlanTime: 0001-01-01 00:00:00 +0000 UTC
[cache ] TRACE 2024/03/02 14:10:49 lp-1/effectivePlanSoc: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/effectiveMinCurrent: 6
[cache ] TRACE 2024/03/02 14:10:49 lp-1/effectiveMaxCurrent: 16
[cache ] TRACE 2024/03/02 14:10:49 lp-1/effectiveLimitSoc: 100
[db    ] TRACE 2024/03/02 14:10:49 INSERT INTO `sessions` (`created`,`finished`,`loadpoint`,`identifier`,`vehicle`,`odometer`,`meter_start_kwh`,`meter_end_kwh`,`charged_kwh`,`charge_duration`,`solar_percentage`,`price`,`price_per_kwh`,`co2_per_kwh`) VALUES ("2024-03-02 14:10:49.128","0000-00-00 00:00:00","Garage","","",NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL) RETURNING `id` 1 <nil>
[lp-1  ] WARN 2024/03/02 14:10:49 charger logic error: disabled but charging
[lp-1  ] DEBUG 2024/03/02 14:10:49 pv timer elapse
[lp-1  ] DEBUG 2024/03/02 14:10:49 pv timer inactive
[lp-1  ] DEBUG 2024/03/02 14:10:49 pv charge current: 5.65A = 0A + 5.65A (-3900W @ 3p)
[lp-1  ] DEBUG 2024/03/02 14:10:49 pv disable timer reset
[lp-1  ] DEBUG 2024/03/02 14:10:49 pv timer inactive
[cache ] TRACE 2024/03/02 14:10:49 lp-1/chargeCurrent: 0
[cache ] TRACE 2024/03/02 14:10:49 lp-1/connected: true
[cache ] TRACE 2024/03/02 14:10:49 lp-1/charging: true
[cache ] TRACE 2024/03/02 14:10:49 lp-1/pvAction: inactive
[cache ] TRACE 2024/03/02 14:10:49 lp-1/pvRemaining: 0s
[cache ] TRACE 2024/03/02 14:10:49 lp-1/enabled: true
[cache ] TRACE 2024/03/02 14:10:49 lp-1/mode: pv
[cache ] TRACE 2024/03/02 14:10:49 lp-1/planProjectedStart: 0001-01-01 00:00:00 +0000 UTC
[cache ] TRACE 2024/03/02 14:10:49 lp-1/planOverrun: false
[cache ] TRACE 2024/03/02 14:10:49 lp-1/pvAction: inactive
[cache ] TRACE 2024/03/02 14:10:49 lp-1/pvRemaining: 0s
[ocpp  ] TRACE 2024/03/02 14:10:49 sent JSON message to GPJ_0112: [2,"2175226458","SetChargingProfile",{"connectorId":1,"csChargingProfiles":{"chargingProfileId":1,"transactionId":1,"stackLevel":0,"chargingProfilePurpose":"TxProfile","chargingProfileKind":"Relative","chargingSchedule":{"chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":6}]}}}]
[ocpp  ] TRACE 2024/03/02 14:10:49 received JSON message from GPJ_0112: [3,"2175226458",{"status":"Accepted"}]
[lp-1  ] DEBUG 2024/03/02 14:10:49 max charge current: 6A
[cache ] TRACE 2024/03/02 14:10:49 greenShareHome: 1
[cache ] TRACE 2024/03/02 14:10:49 greenShareLoadpoints: 1
[cache ] TRACE 2024/03/02 14:10:49 lp-1/chargeCurrent: 6
[ocpp  ] TRACE 2024/03/02 14:10:49 received JSON message from GPJ_0112: [2,"15","MeterValues",{"connectorId":1,"transactionId":1,"meterValue":[{"timestamp":"2024-03-02T13:10:48Z","sampledValue":[{"value":"13077.331","context":"Sample.Periodic","measurand":"Energy.Active.Import.Register","location":"Outlet","unit":"kWh"}]}]}]
[ocpp  ] TRACE 2024/03/02 14:10:49 sent JSON message to GPJ_0112: [3,"15",{}]
[ocpp  ] TRACE 2024/03/02 14:10:49 received JSON message from GPJ_0112: [2,"16","StatusNotification",{"connectorId":1,"errorCode":"NoError","info":"SmartCharging(6A)","status":"Charging"}]
[ocpp  ] TRACE 2024/03/02 14:10:49 sent JSON message to GPJ_0112: [3,"16",{}]
[site  ] DEBUG 2024/03/02 14:10:59 ----
...

@andig
Copy link
Member Author

andig commented Mar 3, 2024

@cheerfulalex wie siehts denn mit Deinem Test aus?

@andig
Copy link
Member Author

andig commented Mar 3, 2024

Ups. Es gibt weder die verlinkte Discussion, noch den User. Sieht aus wie "alles gelöscht". Probieren wir es mal aus, zur Not revert...

@andig andig merged commit 25745b8 into master Mar 3, 2024
6 checks passed
@andig andig deleted the feat/ocpp-zero-profile branch March 3, 2024 12:41
@cheerfulalex
Copy link

@cheerfulalex wie siehts denn mit Deinem Test aus?

Hallo,
ich habe es mit Alfen icu-eve-mini + E-Golf und Tesla Model Y getestet. Es scheint zu funktionieren.

Die Umschaltung "aus" -> "schnell" geht nicht. Es wird kein Ladeprofil geschickt.

Desweiteren geht OCPP mit RFID nicht -> das Fahrzeug wird nicht erkannt. Siehe oben.

Grüße

Alex

@cheerfulalex
Copy link

Ups. Es gibt weder die verlinkte Discussion, noch den User. Sieht aus wie "alles gelöscht". Probieren wir es mal aus, zur Not revert...

Ich bin noch hier, werde aber von Euch nicht wahrgenommen. :)

thierolm pushed a commit to thierolm/evcc that referenced this pull request Mar 10, 2024
@andig andig restored the feat/ocpp-zero-profile branch March 11, 2024 08:57
andig added a commit that referenced this pull request Mar 11, 2024
@andig andig mentioned this pull request Mar 11, 2024
2 tasks
@cheerfulalex
Copy link

cheerfulalex commented Mar 11, 2024

Das eigentliche Problem ist #12821. Und auch hier steckt ein Bug drin der gelöst werden müsste. Also erstmal revert.

Ich werde mal testen was meine Alfen beim 0A-Profil & Kabel abziehen macht. Eine Pulsar Plus Wallbox habe ich auch, so hätte man eine Vergleichsmöglichkeit.

Grundsäztlich erwarte ich hier eine "StopTransaction"- und "avaliable"-Message von der Wallbox und keine Fehlermeldung.

Eventuell sind die 0A auch zu heftig. Für eine Pause sollte theoretisch auch ein Profil mit 1A-5A ausreichend sein.

@premultiply
Copy link
Member

Grundsäztlich erwarte ich hier eine "StopTransaction"- und "avaliable"-Message von der Wallbox und keine Fehlermeldung.

Genau so sollte es sein.

@jpwenzel
Copy link
Contributor

Ich habe mal ein Support-Ticket bei Elvi aufgemacht, mal sehen, was da kommt: #12821 (comment)

@cheerfulalex
Copy link

cheerfulalex commented Mar 12, 2024

Grundsäztlich erwarte ich hier eine "StopTransaction"- und "avaliable"-Message von der Wallbox und keine Fehlermeldung.

Genau so sollte es sein.

So, die beiden Wallboxen (Alfen mini ecu @ OCPP und Pulsar Plus @ OCPP) sind nun in der Konstellation "ChargingProfile = 0A ("aus" manuell oder automatisch bei zu wenig Überschuss) Kabel am Fahrzeug abziehen" getestet.

Absolut nichts Aufälliges festgestellt. Auch Laden, Pausieren, Phasenumschalten im "pv"-Modus, alles fein.

Das mit der "pv" -> "aus" -> "schnell"-Umschaltung funktioniert leider bei den beiden nicht.
Ist aber auch zu erwarten, denn in beiden Fällen ChargingProfile nicht auf 16A aktualisiert wird.

Es wäre nun echt schade wenn es komplett eingestampft wird.

Könnte man es ev. in der .yaml wählbar machen?

@andig
Copy link
Member Author

andig commented Mar 13, 2024

Es wäre nun echt schade wenn es komplett eingestampf wird.

Davon war auch nicht die Rede, siehe #12861

@cheerfulalex
Copy link

cheerfulalex commented Mar 13, 2024

Eine Off-Topic-Frage: gibt es für OPCC eine Fahrzeugunterscheidung mit RFID-Karten?
RFID-Tag wird richtig von der Wallbox gelesen und an EVCC übermittelt, dann passiert aber nichts weiter. Es wird dann "Gastfahrzeug" angezeigt. Könnte es daran liegen dass bei den selbstkompilierten EVCC-Versionen Fahrzeuge (Tesla und E-Golf) grundsätzlich offline sind?

@andig
Copy link
Member Author

andig commented Mar 13, 2024

Ist aktuell nicht umgesetzt, sollte sich aber machen lassen. Bitte neues Issue. Wie kommt die Karte an- per idTag? In welcher Nachricht? Erst beim StartTransaction? Oder muss das CS die abfragen? Wir müssten den Flow klären...

@coderph0x
Copy link

coderph0x commented Mar 14, 2024

Ich hatte das hier schonmal berichtet.

Die OCPP-Nachrichten lauten
received JSON message from EVB-Pxxx: [2,"2d34680d-df12-4665-b782-40e9ce279450","StartTransaction",{"connectorId":1,"idTag":"04ABBE2A266581","timestamp":"2024-01-12T21:13:49Z","meterStart":0}]
und
received JSON message from EVB-Pxxx: [2,"2d346818-df12-4665-b782-40e95c307793","StopTransaction",{"transactionId":1,"idTag":"04ABBE2A266581","timestamp":"2024-01-12T21:14:00Z","meterStop":0,"reason":"Local"}]
wenn man den Tag an die Box hält. Nur leider lädt die Box dann direkt los (und wird von EVCC wieder gestoppt).

Im Code fand ich nur nen Kommentar, dass das Identifizieren wohl über OCPP nicht funktionieren wird. Konnte leider nicht nachvollziehen, weshalb.

@premultiply
Copy link
Member

Ja, hierbei wird im Prinzip der OCPP-Flow für öffentliche Ladepunkt mit RFID-Authentifizierung benötigt.

Die Wallbox (CP) ist dabei im Grundzustand gesperrt und muss vor jedem Ladevorgang bzw. jeder Session nach dem erstmaligen Anschließen des Fahrzeugs via RFID-Authentifizierung vom CS (hier: evcc) freigegeben werden.

Die Wallbox schickt dazu zunächst ihrerseits eine StartTransaction Meldung mit der mit der vorgelegten Kartenkennung als idTag.
Bisher arbeitet evcc andersrum: Es wird (nur) mittels RemoteStartTransaction seitens evcc als CS eine Session gestartet
Dabei ist eine vorgehaltene Karte bzw. deren ID irrelevant und es kann höchstens ein fixer Wert aus der Konfiguration als idTag an die Wallbox übergeben werden. Die Karten-ID wird dabei höchstens lokal in der Wallbox abgeglichen und authentifiziert.

@jgantenberg
Copy link

jgantenberg commented Mar 15, 2024

Noch eine Rückmeldung zum Thema. Meine Entratek Power Dot Pro (1) hat nach dem Firmware-Update bis Version 0.124.6 sehr gut funktioniert. Mit Version 0.124.7 ist der Ladevorgang zwar angelaufen, bei zu wenig Überschuss dann beendet worden und konnte danach nicht wieder gestartet werden. In der Oberfläche stand nur "Warte auf Fahrzeug". Bin gespannt, ob es jetzt wieder funktioniert. Ich werde berichten.
Was mir gerade noch einfällt: Kann es auch mit dem Fahrzeug zu tun haben? Wir laden eine Zoe, die bekanntermaßen nicht gut mit zu wenig Strom zurechtkommt. Wenn dann 0 A eingestellt werden, aber der Ladevorgang dennoch weitergeht, erzeugt das möglicherweise Verdruss bei der Zoe. Die fing nur wieder an zu laden, nachdem man den Stecker gezogen und wieder gesteckt hat, allen offiziell definierten OCPP Abläufen zum Trotz. Nur ein Gedanke...

thierolm pushed a commit to thierolm/evcc that referenced this pull request Mar 19, 2024
thierolm pushed a commit to thierolm/evcc that referenced this pull request Mar 19, 2024
naltatis pushed a commit that referenced this pull request Mar 26, 2024
naltatis pushed a commit that referenced this pull request Mar 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ocpp: use SetChargingProfile 0A for disable
7 participants