OCPP 2.0.1:n ja 2.1:n protokollaviite.
OCPP 2.0.1:n ja 2.1:n kaikki 91 viestiä kenttineen ja esimerkkeineen, mitkä niistä 2.1 lisäsi, 1.6:n määritysavaimet korvannut laitemalli sekä kolme tietoturvaprofiilia.
ViestitLaitemalliTietoturvaprofiilitSiirtymä 1.6:staKysymykset
Mitä ovat OCPP 2.0.1 ja 2.1?
Ne ovat Open Charge Point Protocolin uudemmat versiot. Protokolla on Open Charge Alliancen avoin standardi sille, miten latausasema keskustelee sitä hallitsevan ohjelmiston kanssa: spesifikaatiossa se on CSMS, markkinoilla taustajärjestelmä. Kuten versiossa 1.6J, latausasema avaa WebSocket-yhteyden taustajärjestelmään, ja molemmat osapuolet lähettävät sen kautta JSON-viestejä.
OCPP 2.0.1 ei ole taaksepäin yhteensopiva version 1.6 kanssa. Se kuvaa latausaseman komponenteista ja muuttujista koostuvana laitemallina, määrittelee kolme tietoturvaprofiilia, raportoi lataustapahtuman yhdellä viestillä, TransactionEventillä, ja tukee ISO 15118:aa Plug and Chargea ja auton tietoja hyödyntävää älylatausta varten.
OCPP 2.1 rakentuu version 2.0.1 päälle. Sen skeemat ovat 2.0.1:n skeemoja, joihin on lisätty valinnaisia kenttiä, ja se lisää 27 viestiä kaksisuuntaiseen lataukseen, DER-ohjaukseen, tariffeihin latausasemassa, joka laskee hinnan itse, maksamiseen latausasemalla, jaksottaisiin tapahtumavirtoihin ja akunvaihtoon. Latausasema ja sen taustajärjestelmä sopivat yhdestä versiosta, kun WebSocket-yhteys avataan.
- Avoin standardiVapaasti toteutettavissa, Open Charge Alliancen ylläpitämä. OCPP 2.1 on julkaistu myös standardina IEC 63584-210.
- WebSocket ja JSONYksi yhteys, jota latausasema pitää auki. 2.1 lisää SEND-viestin, johon ei vastata.
- 91 viestiä64 versiossa 2.0.1 ja 27 lisää versiossa 2.1, 19 toiminnallisessa lohkossa.
- Molempiin suuntiinLatausasema ja taustajärjestelmä aloittavat kumpikin omat viestinsä.
Kaikki 91 OCPP 2.0.1:n ja 2.1:n viestiä
Jokainen viesti on yhden osapuolen pyyntö ja toisen vastaus, jotka yhdistetään toisiinsa viestitunnuksella. NotifyPeriodicEventStream on ainoa poikkeus: se on 2.1:n SEND-viesti, johon ei vastata.
Tietoturva
Latausaseman ja taustajärjestelmän varmenteet sekä latausaseman raportoimat tietoturvatapahtumat.
Käyttöönotto
Käynnistys, rekisteröityminen taustajärjestelmään, laitemallin lukeminen ja asettaminen sekä uudelleenkäynnistykset.
Valtuutus
ID-tunnisteen tarkistus ennen latausta, valtuutusvälimuisti ja versiossa 2.1 kertamaksu.
Paikallinen valtuutuslista
Lista ID-tunnisteista, jotka taustajärjestelmä tallentaa latausasemalle, jotta latausasema voi valtuuttaa itse.
Lataustapahtumat
Yksi viesti, TransactionEvent, jokaisen lataustapahtuman alulle, päivityksille ja lopulle.
Etäohjaus
Lataustapahtuman käynnistys ja pysäytys taustajärjestelmästä, latauspisteen lukituksen vapautus ja viestin pyytäminen.
Käytettävyys
Jokaisen latauspisteen tila, heartbeat sekä latausaseman tai EVSE:n ottaminen pois käytöstä.
Varaus
EVSE:n varaaminen ID-tunnisteelle ja varauksen peruminen.
Tariffi ja hinta
Hinnat ja kertyvä hinta kuljettajalle; versiossa 2.1 myös tariffit latausasemassa, joka laskee hinnan itse.
Mittariarvot
Mittarilukemat lataustapahtuman ulkopuolella; lataustapahtuman aikana ne kulkevat TransactionEvent-viestissä.
Älylataus
Latausprofiilit teho- tai virtarajoineen, ulkopuolelta asetetut rajat ja ajoneuvon tarpeet.
Laiteohjelmiston hallinta
Latausaseman laiteohjelmiston päivitys ja sen jakelu paikallisen ohjaimen kautta.
Varmenteiden hallinta
Varmenteiden asennus ja tarkistus, myös Plug and Chargen sopimusvarmenteet.
Diagnostiikka
Lokit, laitemallin valvonnat, tapahtumat, asiakastiedot ja versiossa 2.1 jaksottaiset tapahtumavirrat.
Näyttöviestit
Viestit, jotka taustajärjestelmä asettaa latausaseman näytettäviksi kuljettajille.
Tiedonsiirto
Valmistajan tiedot toimintoihin, joita standardi ei kata.
Kaksisuuntainen tehonsiirto
Uutta versiossa 2.1: latauksen ja purun (V2X) ohjaus latausprofiilien avulla.
DER-ohjaus
Uutta versiossa 2.1: verkon tukiasetukset latausasemalle ja autolle, jotka toimivat hajautettuna energiaresurssina (DER).
Akunvaihto
Uutta versiossa 2.1: akunvaihtoasemat.
Haulla ei löytynyt viestejä.
OCPP 2.0.1:n laitemalli
OCPP 1.6:ssa latausasemalla on litteä lista määritysavaimia. Versioissa 2.0.1 ja 2.1 se kuvaa itsensä komponentteina, joita ovat esimerkiksi latausasema, EVSE, latauspiste tai OCPPCommCtrlr-ohjaimen kaltainen ohjain, ja jokaisella komponentilla on muuttujia. Muuttujalla voi olla neljä arvoa: Actual, Target, MinSet ja MaxSet. Entisestä määritysavaimesta on tullut ohjainkomponentin muuttuja.
Miten sitä käytetään
- GetVariables ja SetVariablesLue tai aseta useita muuttujia yhdellä viestillä. Latausasema vastaa jokaisesta muuttujasta erikseen.
- GetBaseReport ja GetReportPyydä koko laitemalli tai osa siitä. Latausasema lähettää sen NotifyReport-viesteissä.
- ValvonnatSetVariableMonitoring valvoo muuttujaa raja-arvon, muutoksen tai kiinteän välin perusteella, ja latausasema raportoi NotifyEvent-viestillä.
- Enabled toiminnoittainValinnaisen toiminnon ohjaimella, kuten AuthCacheCtrlr tai ReservationCtrlr, on Enabled-muuttuja, joka kytkee toiminnon päälle tai pois.
SetVariables-vastaukset
- Accepted
- Arvo on asetettu.
- Rejected
- Muuttuja on olemassa, mutta arvo hylättiin.
- Unknown
Component - Latausasemalla ei ole tällaista komponenttia.
- Unknown
Variable - Komponentilla ei ole tällaista muuttujaa.
- NotSupported
AttributeType - Muuttujalla ei ole sen tyyppistä arvoa, esimerkiksi Target-arvoa.
- RebootRequired
- Arvo on tallennettu, ja se tulee voimaan uudelleenkäynnistyksen jälkeen.
Muuttujat, jotka korvasivat tunnetuimmat 1.6:n avaimet
Spesifikaatio standardoi paljon muitakin, ja ne on lueteltu sen liitteissä. Latausasema raportoi omansa vastauksena GetBaseReport-viestiin.
| Komponentti ja muuttuja | Tyyppi | Mitä se asettaa | OCPP 1.6:ssa |
|---|---|---|---|
| OCPPCommCtrlr | integer, sekunteina | Sekunnit ilman muita viestejä, joiden jälkeen latausasema lähettää Heartbeat-viestin. | Heartbeat |
| OCPPCommCtrlr | integer | Kuinka monta kertaa latausasema yrittää toimittaa TransactionEvent-viestin, jota taustajärjestelmä ei pystynyt käsittelemään. | Transaction |
| OCPPCommCtrlr | integer | Sekunnit, jotka latausasema odottaa ennen uutta yritystä. | Transaction |
| OCPPCommCtrlr | integer, sekunteina | Sekunnit WebSocket-pingien välillä; 0 kytkee latausaseman omat pingit pois. | Web |
| OCPPCommCtrlr | integer | Kuinka monta uusintayritystä latausasema tekee, kun uudelleenkäynnistys epäonnistuu. | Reset |
| OCPPCommCtrlr | boolean | Vapauta kaapelin lukitus latausasemalla, kun kaapeli irrotetaan autosta. | Unlock |
| SampledDataCtrlr | list | Mitä latausasema mittaa lataustapahtuman aikana; lähetetään TransactionEvent-viestissä, jonka eventType on Updated. | Meter |
| SampledDataCtrlr | integer, sekunteina | Sekunnit näiden lukemien välillä; arvolla 0 niitä ei lähetetä lataustapahtuman aikana. | Meter |
| SampledDataCtrlr | list | Mitä lataustapahtuman päättävään TransactionEvent-viestiin tulee. | Stop |
| AlignedDataCtrlr | integer, sekunteina | Sekunnit kelloon tahdistettujen lukemien välillä. | Clock |
| AlignedDataCtrlr | list | Mitä kelloon tahdistetut lukemat sisältävät. | Meter |
| AlignedDataCtrlr | list | Kelloon tahdistetut lukemat, jotka tulevat lataustapahtuman päättävään TransactionEvent-viestiin. | Stop |
| TxCtrlr | integer, sekunteina | Sekunnit, jotka kuljettajalla on aikaa kytkeä auto lataustapahtuman alettua, ennen kuin lataustapahtuma perutaan. | Connection |
| TxCtrlr | boolean | Päätä lataustapahtuma, kun kaapeli irrotetaan autosta. | Stop |
| TxCtrlr | boolean | Pysäytä käynnissä oleva lataustapahtuma, kun sen ID-tunnistetta ei hyväksytä. | Stop |
| TxCtrlr | integer | Energia wattitunteina, jonka latausasema saa vielä toimittaa sen jälkeen, kun taustajärjestelmä hylkäsi ID-tunnisteen. | Max |
| TxCtrlr | list | Milloin lataustapahtuma alkaa: valtuutuksesta, kytkennästä, energian alkaessa virrata ja niin edelleen. | Uusi 2.0.1:ssä |
| TxCtrlr | list | Milloin lataustapahtuma päättyy, valittuna samasta listasta. | Uusi 2.0.1:ssä |
| AuthCtrlr | boolean | Tarkistaako latausasema etäkäynnistyksen ID-tunnisteen ensin Authorize-viestillä. | Authorize |
| AuthCtrlr | boolean | Aloita lataustapahtumat jo tunnetuille ID-tunnisteille offline-tilassa. | Local |
| AuthCtrlr | boolean | Aloita jo tunnetuille ID-tunnisteille odottamatta taustajärjestelmää. | Local |
| AuthCtrlr | boolean | Aloita lataustapahtumat tuntemattomille ID-tunnisteille offline-tilassa. | Allow |
| AuthCacheCtrlr | boolean | Käytä valtuutusvälimuistia. | Authorization |
| LocalAuthListCtrlr | boolean | Käytä paikallista valtuutuslistaa. | Local |
| LocalAuthListCtrlr | integer | ID-tunnisteiden enimmäismäärä yhdessä SendLocalList-viestissä. | Send |
| SmartChargingCtrlr | integer | Korkein pinotaso, joka latausprofiililla voi olla. | Charge |
| SmartChargingCtrlr | list | Voivatko aikataulut olla ampeereina, watteina vai molempina. | Charging |
| SmartChargingCtrlr | integer | Jaksojen enimmäismäärä yhdessä latausaikataulussa. | Charging |
| SmartChargingCtrlr | boolean | Voiko latausasema vaihtaa kolmesta vaiheesta yhteen lataustapahtuman aikana. | Connector |
| ReservationCtrlr | boolean | Voiko varaus koskea koko latausasemaa yhden EVSE:n sijaan. | Reserve |
Haulla ei löytynyt muuttujia.
OCPP 2.0.1:n ja 2.1:n tietoturvaprofiilit
Molemmat versiot määrittelevät kolme tietoturvaprofiilia. Latausasema ja sen taustajärjestelmä käyttävät yhtä kerrallaan, ja se asetetaan ennen ensimmäistä OCPP-viestiä. Taustajärjestelmä asettaa sen yhteyspaikkakohtaisesti SetNetworkProfile-viestillä, ja latausasema raportoi käytössä olevan profiilin muuttujassa SecurityCtrlr.SecurityProfile.
| Profiili | Miten latausasema todistaa identiteettinsä | Miten taustajärjestelmä todistaa identiteettinsä | Yhteys |
|---|---|---|---|
| 1. Suojaamaton siirto ja Basic-todennus | HTTP Basic -todennus salasanalla | Ei todista | Ei salattu. Vain luotettuihin verkkoihin, kuten latausaseman ja taustajärjestelmän väliseen VPN:ään. |
| 2. TLS ja Basic-todennus | HTTP Basic -todennus salasanalla | Sen TLS-palvelinvarmenne | TLS 1.2 tai uudempi |
| 3. TLS ja asiakasvarmenteet | Sen oma TLS-asiakasvarmenne | Sen TLS-palvelinvarmenne | TLS 1.2 tai uudempi |
- Siirtyminen alemmalle tasolleLatausasema voi siirtyä vain profiilista 3 profiiliin 2, ja vain kun AllowSecurityProfileDowngrade on true. Profiiliin 1 se ei koskaan siirry OCPP:n kautta.
- Salasanat ja varmenteetSalasana on SecurityCtrlr.BasicAuthPassword. Latausasema pyytää uutta varmennetta SignCertificate-viestillä, ja taustajärjestelmä toimittaa sen CertificateSigned-viestillä.
- TietoturvatapahtumatLatausasema raportoi tapahtuneen, kuten uudelleenkäynnistyksen, laiteohjelmistopäivityksen tai taustajärjestelmän hylkäämät tunnistetiedot, SecurityEventNotification-viestillä.
OCPP 1.6:sta 2.0.1:een viesti viestiltä
OCPP 2.0.1 säilytti monet 1.6:n viestien nimet ja nimesi uudelleen tai yhdisti muita. Linkki avaa viestin tässä viitteessä tai 1.6J-viitteessä.
| OCPP 1.6 | OCPP 2.0.1 ja 2.1 | Mitä muuttui |
|---|---|---|
| StartTransaction, StopTransaction | TransactionEvent | Yksi viesti, jonka eventType on Started, Updated tai Ended. Latausasema asettaa lataustapahtuman ID:n, joka on merkkijono. |
| MeterValues | TransactionEvent, MeterValues | Lataustapahtuman aikaiset lukemat kulkevat TransactionEvent-viestissä; MeterValues välittää lukemat lataustapahtuman ulkopuolella. |
| StatusNotification | StatusNotification, NotifyEvent | StatusNotification raportoi vain latauspisteen tilan evseId- ja connectorId-kenttineen. Virhekoodit kulkevat NotifyEvent-viestissä, ja 2.1 suosii NotifyEventiä myös käytettävyyden raportointiin. |
| RemoteStartTransaction | RequestStartTransaction | Sisältää idToken-olion ja remoteStartId:n, joka palaa lataustapahtuman aloittavassa TransactionEvent-viestissä. |
| RemoteStopTransaction | RequestStopTransaction | Pysäyttää lataustapahtuman sen ID:n perusteella, joka on nyt merkkijono. |
| ChangeConfiguration | SetVariables | Asettaa useita laitemallin muuttujia yhdellä viestillä. |
| GetConfiguration | GetVariables, GetBaseReport, GetReport | Lukee valitut muuttujat tai pyytää raportin, joka saapuu NotifyReport-viesteissä. |
| GetDiagnostics | GetLog | Pyytää diagnostiikka- tai tietoturvalokin. |
| DiagnosticsStatusNotification | LogStatusNotification | Raportoi lähetyksen etenemisen. |
| Reset | Reset | Immediate tai OnIdle Hardin tai Softin sijaan, ja se voi käynnistää uudelleen yhden EVSE:n. |
| ChangeAvailability | ChangeAvailability | Kohdistuu latausasemaan, EVSE:hen tai latauspisteeseen evse-kentän kautta. |
| Authorize | Authorize | idToken-olio, jolla on tyyppi, idTag-merkkijonon sijaan. |
| BootNotification | BootNotification | Lisää käynnistyksen syyn; latausaseman tiedot ovat chargingStation-oliossa. |
| Heartbeat, UnlockConnector, ClearCache, DataTransfer, ReserveNow, CancelReservation, SendLocalList, GetLocalListVersion, SetChargingProfile, ClearChargingProfile, GetCompositeSchedule, TriggerMessage, UpdateFirmware, FirmwareStatusNotification | Samat nimet | Samat viestit, EVSE-kentillä ja uudemmilla tietotyypeillä. |
Kysymyksiä OCPP 2.0.1:stä ja 2.1:stä
Open Charge Point Protocolin versio 2.0.1, jonka Open Charge Alliance julkaisi vuonna 2020. Se korvasi OCPP 2.0:n, ja versioon 1.6 verrattuna se lisää laitemallin, tietoturvaprofiilit, ISO 15118 -tuen ja TransactionEventin. Se ei ole taaksepäin yhteensopiva version 1.6 kanssa.
OCPP 2.1 julkaistiin tammikuussa 2025, ja se on myös standardi IEC 63584-210. Se lisää 27 viestiä eikä poista yhtään: kaksisuuntainen lataus (V2X) ja DER-ohjaus, ISO 15118-20, tariffit latausasemassa, joka laskee hinnan itse, maksaminen latausasemalla korttipäätteellä tai QR-koodilla, etusijalataus, dynaamiset latausprofiilit, jaksottaiset tapahtumavirrat ja akunvaihto. Valitse viestien yläpuolelta Uudet 2.1:ssä, niin näet ne.
2.1:n skeemat ovat 2.0.1:n skeemoja, joihin on lisätty valinnaisia kenttiä, ja Open Charge Alliancen mukaan 2.0.1:lle kirjoitettu logiikka toimii edelleen kahdella pienellä muutoksella: SignCertificate voi sisältää requestId:n, jonka CertificateSigned sitten toistaa, ja NotifyMonitoringReport-viestissä on yksi uusi pakollinen kenttä. Versiosta sovitaan edelleen yhteyskohtaisesti: WebSocket-kättelyssä latausasema tarjoaa esimerkiksi ocpp2.1, ocpp2.0.1 ja ocpp1.6, ja taustajärjestelmä valitsee yhden.
2.0.1:llä on omat viestinsä: laitemalli määritysavainten sijaan, tietoturvaprofiilit, TransactionEvent StartTransactionin ja StopTransactionin sijaan, EVSE tasona latausaseman ja sen latauspisteiden välissä sekä viestit ISO 15118:aa varten. Latausasema ja sen taustajärjestelmä sopivat yhdestä versiosta, kun yhteys avataan. Yllä oleva taulukko pariuttaa viestit, ja OCPP 1.6J -viitteessä on jokainen 1.6:n viesti.
OCPP 2.0:n julkaisun jälkeen ilmeni ongelmia, jotka voitiin korjata vain muuttamalla viestien skeemoja, eikä 2.0-toteutus olisi voinut seurata muutoksia. Open Charge Alliance antoi korjatulle versiolle oman numeron, 2.0.1, ja suosittelee toteuttamaan vain version 2.0.1. Spesifikaatiossa OCPP 2.0 tarkoittaa versiota 2.0.1, ellei toisin mainita.
Open Charge Alliance julkaisee molemmat maksutta verkkosivuillaan yhdessä jokaisen viestin JSON-skeeman ja virheluettelon kanssa. Tämä viite noudattaa JSON-skeemoja ja spesifikaation osaa 2. Jos ne eroavat, spesifikaatio ja sen virheluettelo ovat oikeassa.
Tarkista se latausasematietokannasta: siellä 102 latausaseman tiedoissa mainitaan OCPP 2.0.1 ja 4 latausaseman tiedoissa 2.1. Datalehdessä se yleensä myös mainitaan. Useaa versiota tukeva latausasema tarjoaa ne kaikki yhdistäessään, ja taustajärjestelmä valitsee yhden.
OCPP 1.6J Plugchoicessa
Plugchoice yhdistää tällä hetkellä OCPP 1.6J -latausasemia mallista, laiteohjelmistosta ja asetuksista riippuen.