Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 34 Next »

This working group focusses on the communication between the charging station (EVerest) and the management system(s) (CPMS)



Meeting Notes:

16 October 2024:

PR 837: https://github.com/EVerest/libocpp/pull/837
- There seems to be a mix up between ChargingProfilePurpose and ChargingProfileKind. It should have been a check for Purpose, not kind in this case.

Improve the callback for GetComposite schedule on start transaction. Current way it is implemented it could take 15 seconds before. It gets called after the transaction has started, but that can be "too slow".

AFS open PRs:
- Review work divided, no action needed at the moment.
- There is also a later PR for documentation: 836: added to the list

OCPP 2.1 Architecture meeting (22 October) agenda:
- Discussed the proposed agenda:
- Protocol version independent runtime initialization of ChargePoint
- Consolidate ChargePoint calss
- Documentation
- Priorities & Roadmap planning
- Optional/Extra discussions:
- Iterate / Clean up open Github issues
- Storage abstraction for internal database
- Single source storage abstraction for different OCPP protocol versions


9 October 2024 (Cloud Communication Call)

Last call with the AFS team

Development update:
- External Constrainse is in draft but ready.
- Documentation PR is also ready.
- PR open for Basic Auth issue during reconnect


Architecture:
- Good first online OCPP 2.0.1 & 2.1 architecture discussion.
- 1.6, 2.0.1 & 2.1 websocket handshake.
- Reuse 2.1 message model in 2.0.1
- Planning a architecture face-to-face on 22th of October in the The Netherlands, now checking for a location. More will follow when it becomes available.


Documentation generation:

- We have the option to generate libOCPP documentation using doxygen. Are these static pages available.
- Currently this documentation is not yet build and shared. Is a good idea to look into.


RUST Status:

- Currently possible to implement modules in RUST. 

- OpenADR 3.0 is developed in RUST and will be integrated into EVerest soon

- For the local cost calculation in OCPP 2.1, RUST might be a good option.


9 October 2024 (OCPP 2.1 Architecture brainstorm)

1.1 Message Handling
* Question: Can we just use the OCPP2.1 message types in message handlers?

1.2 Schemas
* Contain some change in lengths of properties (e.g. exiResponse)
* Remarks to the draft can be added to public Excel sheet from the OCA

1.3 Other topics to discuss:
* Storage abstraction (Device Model + Internal Database)
* Switching between protocol versions at runtime
* Connectivity Management
* Simplifying the charge point interface to simplify adding more functional blocks


2.1 RPC Framework extensions
* SEND: unidirectional, no ack, outside of synchronous behavior of rpc framework
* CALLRESULTERROR: Only allowed in 2.1 not 2.0.1

2.2 Websocket Subprotocol
* WS handshake specifices the OCPP version to use, not the device model settings


3 Things to investigate
* How to deal with message fields that are longer in 2.1 than in 2.0.1. We can receive the longer messages but should we limit when sending and if so, how?

4 Preliminary design decisions
* Use OCPP2.1 message types in the implementation for both 2.0.1 and 2.1
* OCPPChargingStation base class required to do initial websocket handshake and select protocol version based on that

5 Migrating to another CSMS
* All transaction should have finished, then Reset
* If switching between protocol versions we might have issues with messages from another protocol version in the message queue: Empty message queue when switiching protocol versions?
* Document how a proper transition could look like (wipe data if required, stop running transactions, etc.)

6 Date for F2F
Focus on October 22nd and have 23rd spare


2 October 2024

Feature Freeze:
- Some issues found during testing.
- Second release candidate 2024.9.0-rc2 coming soon


Smart Charging:

- Last use cases will be finished before AFS work stops.

Roadmap:
- Discussed and updated roadmap
- Robert will put in new OCPP 2.1 features


25 September 2024

Feature freeze for 2024.9.0.
- rc1 is tagged


Open pull requests that need review:
- https://github.com/EVerest/libocpp/pull/789
- https://github.com/EVerest/libocpp/pull/790


California Pricing for OCPP 2.0.1 is done and merged
This also means Display Message and Tariff & Cost are also done.
Work is ongoing for Reservation without an EVSE ID.


Feedback from the plugfest:
- Some issues found
- Most are minor
- Some more serious


Unit tests are getting slow:
- Is on the list of AFS, each test spins up a queue, that can be mocked to improved unit test run speed.


Magic Numbers:
- There are magic numbers in libOCPP, also in smoe of the APIs. Can we change that to macros or defines or something.

Community does not seem enthousaistic. For now we leave it as is.


18 September 2024

Small group today: lot of OCPP developers are at the OCA Plugfest.

Deprecated functionality:
  First time this is asked
  C++ has feature for this: https://en.cppreference.com/w/cpp/language/attributes/deprecated
  Gianfranco will try to write a proposal for the entire EVerest project for Deprecated features/functions etc. Maybe it can be presented during the TSC meeting next week.

Smart Charging Alignment: Nothing to align at the moment, work in progress


11 September 2024

Recordings:

Discussed recording the working group meetings, for other timezones, like Australia.

Others would be also prefer this, in case meetings are missed.

Robert will try to activate this for the cloud call already.


California pricing:

Maaike is working on the 2.0.1 implementation, but testing is hard.

Robert thinks CitrineOS might have this implemented. Robert will do an introduction email to Maaike and the CitrineOS team.


Smart Charging:

K06, K07 will be the next use cases to be merged.


PR 777

The seg fault in the unit tests is now fixed


shared and unique pointers: 
Original discussion: https://github.com/EVerest/libocpp/pull/611#discussion_r1646728457
Agreed to make the prposed improvements to reduce technical debt.
AFS will pick up this work later


OCPP 2.1:
- A large amount of new Use Cases are added to 2.1, all are optional, so not required for a core implementation.
- All changes to existing use cases and messages are marked with "(2.1)" in both the spec as the schema files.
- Architecture, how to add an extra protocol to libocpp and EVerest:
    - Piet is already think about ideas
    - Piet and Marc are at OCA Plugfest next week and could do some face-to-face brainstorming.
    - Robert will ask Piet and Kai if they can do a internal pre-brainstorm this week during PIONIX face-to-face
    - Will offered to see if one of their facilitator has experience, tips, tools to organize a architecture session.
    - Robert will do a Doodle to find an extra timeslot for a community sessions week after next week, week of 23th September or later.


6 September 2024

Development Update:

update on #745 → no issue on the PR, review done soon

#760 - still under discussion, some input from Piet

#727 PR still, Kai to review, first impression good to go

Issue #770 - root cause unknown, debug still ongoing

Discussion:

Daniel Moore → 2.1. is now out
WG should align on a implementation plan
→ Discuss implications in a separate meeting
→ Schedule a focussed meeting in 2-3 weeks for 2.1. TODO Robert

Daniel Moore → Approach to use cases translating into business logic
Following the discussion from Zulip - profiles should be stored or not - how to handle external constraints in composite schedules - and how to implement that in EVerest core - discussion ongoing


28 August 2024

- OCPP 2.1 draft 1 public review start next week. OCPP 2.1 draft available to everybody, excluding the schema files. EVerest has gotten an excempt, we are allowed to share the 2.1 draft schema files with developers working on EVerest. As long as we promise to migrate to production schema files as soon as they are available.

- We aligned who is working on which Smart Charging use case

- Discussed GetCompositeSchedule in relation to 15118 SASchedule selection. What to return in a CompositeSchedule in the time between SASchedule send to the EV and the EV selected profile being received. Multiple options are then possible at that point in time. In our view this does not really matter as much. It is unclear what the EV will select. The period should be short. the CSMS will be notified when a schedule is selected by sending a NotifyEVChargingScheduleRequest. See K17.


21 August 2024

Development Update
- K08 pull request: processing review comments. Discussed some details. Datatype optimization not part of this PR yet, that is for the next PR.
- Component Schemas and configuration. Simplified the configuration to (re)initialize the database.
- Hardwired monitors are not possible to setup via the configuration: hardwired, factory default or pre-configured. 
- California pricing for 2.0.1: hope to create a pull request soon.
- K02, K03, K04, K05 is almost done, feature branch is ready.

Smart Charging Alignment
- K01 PR: Small clean ups. Review can be requested.
- K08 PR: one of the OCTT beta test cases does not work. Piet will share the logs of the OCTT tool with Chris. As this is a beta test, so might also be a bug in OCTT.
- K09, K10: Is reviewed by AFS, when approved it can be merged.

Open Mic:
- https://github.com/EVerest/libocpp/issues/752
    - The Python tools were always used without the non-modified files.
    - The License does not allow to publish modified versions of the file
    - We wont re-generate this code anymore. That has been done.
- Composite Schedule: Piet will add a function in EVerest core to retrieve the real composite schedule to be then used in libOCPP. PIONIX will work on this.


7 August 2024

Smart Charging Alignment
  Coury: Pull Request for Smart Charging ready to merge: https://github.com/EVerest/libocpp/pull/711
  Coury: Message handlers for Smart Charging are almost done: we can create a branch for early review, we still need to integrate the external constrains into the Energy Manager.
  Piet: We can pick-up the implementation in the Energy Manager.
  Marc: We will integrate in September. I will be on vacation coming weeks. PIONIX will take over my review tasks.
  
  
Open Issues:
  https://github.com/EVerest/libocpp/issues/713
     Coury: Proposal discussed last week to put Smart Charging profiles in the DB and reload into memory after reboot. But keeping them in-memory is no longer needed when stored in the DB. Proposal to make this a backlog item.
     Agreed
  
  https://github.com/EVerest/libocpp/issues/722
      Coury: Unclear requirement from OCPP
      Robert: I will look into this, I also see a question on the TWG mailing list for this.
  
  https://github.com/EVerest/libocpp/issues/723
      Coury: We implemented K01.FR.19 and 20 and already reject a message in that part.
      Marc: K01.FR.19 and 20 are requirements for the CSMS, so no implmementation for EVErest really needed. 48 is the requirement for EVerest.
    
  
Device Model Integration:
  Piet presented a proposal for a configuration service in EVerest. Simplifying to way variables can be defined in a EVerest module. Now not yet really possible, unless the API of the module is updated: extra call added.
  https://github.com/EVerest/libocpp/tree/doc/variables-api/doc/variableAndConfigurationKeyIntegration
  
  https://github.com/EVerest/everest-core/tree/doc/config-service/doc/config_service

Code Coverage:
  Marc: we discussed code coverage a while ago. Any update? 
  Piet/Kai: Andreas was looking into this. There is a pull request, but that never got merged. We will talk to Andreas and look into this.


17 July 2024

  • Alignment on SmartCharging
  • Loadbalancing integration of SmartCharging (discussion moved from general call to this cloud WG call)


10 July 2024

- Stable release 2024-06 is released
  This release contains the fix for a reported security vulnerability: CVE-2024-37310: https://github.com/EVerest/everest-core/security/advisories/GHSA-8g9q-7qr9-vc96

- Work started implementing OCPP & California Pricing Requirements. 

- Error Handling: Discussed the API for reporting errors via libOCPP to the CPMS. 
    Where should MREC be implemented? This is seen as not part of libOCPP, if libOCPP would map errors to MREC codes, then the translation knowledge is still needed in the EVerest software. Proposal is to have the MREC error codes reported to libOCPP.
    Discussed HardwiredNotifications vs Hardwired monitors. Not much documentation about HardwiredNotifications. 
    
- OCPP 2.1: OCA is organizing a plugfest in September for OCPP 2.1. 
    We discussed a bit how to pick up 2.1. 
    We quickly scanned the current draft delta document. For the core part, the change from StatusNotification to EventReport seems to be be biggest change. 
    Only draft schema files for 2.1 are from June 2023. Robert will ask OCA when new files will be available.
    
- No alignment on Smart Charging today. No JOET team not in the call


3 July 2024

EVerest News:
- A company announced that they have passed OCPP 2.0.1 certification using EVerest libOCPP. Hopefully public announcement soon.

Smart Charging:
- Alignment 
    - Dan and his team focusses on K02 - K04, pull request for the basic stuff almost ready.
    - Marc and his team look into K09 - K10, there should not be overlap. Might start on this in two weeks
        - pull request: https://github.com/EVerest/libocpp/pull/668 is blocking following work, can somebody look at this?
        
    - Discussed architecture related topics with regards to ChargePointMaxProfile and minChargingRate
        - Dan made a very nice sequence diagram that shows the interaction between the different modules when a new charging profile is set via OCPP.
          Currently not ready to add to documentation of EVerest, hope to do this later.


26 June 2024

Development update:
- Variable Monitoring work is progressing, first parts are merged
- Some minor updates
- Smart Charging: JOET is working on Smart Charging, to get to a base that can merged in.
 

EVerest release 2024.6: 
  Feature Freeze expected today. 
  Starting two week test period.


Updated the OCPP roadmap


Discussion on Composite Schedules.
  How to take local and minChargingRate into account.
  Currently libOCPP calculates a CompositeSchedule and send that the the EnergyManager. 
  libOCPP calculates profile per EVSE, it does the load balancing.
  EnergyManager does not get ChargePointMaxProfile, minChargingRate etc.
  So it cannot take these parameters into account when it needs to limit below the CompositeSchedules given by libOCPP.
  JOET will make a proposal for a solution.


05 June 2024

Discussed:

  • Smart charging implementation collaboration until July


29 May 2024

Discussed:

  • Couple of OCPP issues that have come up last weeks:
    • ACPhaseSwitchingSupported
    • 15118 certificate per EVSE: Solved in OCPP 2.0.1 edition 3 on page 
    • 2.0.1: MonitoringBase: Switching monitoring base not 100% clear: different terms used: delete, clear, discard customer monitors. All mean: delete.
    • OCPP 1.6: Rounding meter values

Topics for the agenda next week:

  • OCPP roadmap/timeline


22 May 2024

Discussed:



08 May 2024

Discussed:



  • Discussed the problem found with root certificates in folders.
      More background info. Certificate is printed, but only the old one.
      Might not even have worked before.
     
  • Discussed how to handle 15118 V2G certificate per SECC in case of multiple EVSE. OCPP certificate handling does not seem to support this where 15118-1 gives both options. 


02 May 2024

Discussed:


17 April 2024

Discussed:

  • Database Migrations now merged. Documentation added to explain how it works. When migrating to this version the first version needs manuel work. After this it will be automatic.
  • Size of PRs. Larger or small, pros and cons
  • Discussed meeting format: stick to weekly. Try to discuss ongoing on next planned use cases.


10 April 2024

Discussed:

  • OCPP 2.0.1 status document merged. When adding new OCPP 2.0.1 features, please update the document.
  • Pull request for database migrations is open. Developer documentation will be added.
  • Discussed how to handle custom data fields.


3 April 2024

Discussed:

  • Function requirement status doc:
    • OCPP 2.0.1 status: Piet checked all not yet completed
    • OCTT 2.0.1 test cases status: Robert will convert sheet do markdown and put in EVerest documentation or core.
  • Configurable TxStart/TxStop points:
    • Proposal to put functionality for this in EVerest core, not libOCPP for now. Quicker to implement, this functionality can later be moved to libOCPP.
    • Nobody requires this functionality in libOCPP already.


27 March 2024

Discussed:

  • Drop websocketpp and move to libwebsockets
    • moving websocketpp to new websocket interface appears to require a lot of effort
    • discussion about dropping support for websocketpp → decision postponed
  • Review pull request process
    • Draft PRs can be used for internal reviews
    • Once PR is converted for review the maintainers will start the review process
  • How to get list of functional requirements up to date
  • List of past OCTT test cases
    • We will not add this to libocpp since it cannot be guaranteed that tests pass only with using libocpp → Correct integration of libocpp is required
    • Such a list could be added to everest-core 


20 March 2024

Discussed:

  • Optional requirements:
    • Long term EVerest should support as much functionality as possible.
    • For now it is ok to skip optional requirements.
    • If an optional requirement just allows (slightly) incorrect behaviou
    • K01.FR.44 specific: we will not implement, this allows bad behavior from a CSMS, not ideal.


  • Document implemented use case/functional requirements status:
    • Add the list of use cases in one file in Github, make it a table
    • Requirement number, status, remark
    • Table per functional block
    • Add status of Google Sheet in this file
    • Add checkmark to the pull request template


Action Items: 

  • Robert: Make table of OCPP 2.0.1 function requirements in Github
  • Robert: Move status from Google sheet into the github list
  • Robert: Update pull request template: Add "list of functional requirements updated."


13 March 2024

Discussed

  • WebSocket compression. Is required for an CSMS, optional for a Charging Station. But a really nice to have.
  • How to setup security profile 2 and 3. Proposal to make an MRE to demonstrate this.
  • PKI and governance and policies for validation of certificates
  • Device Model
    • Currently supports all standardized variables (specified in the OCPP2.0.1 spec)
    • Defined mechanism to access EVSE and Connector components upcoming (Piet will create issue)
    • Functional requirements are sometimes ambigous because its not clear to wich component a referenced variable belongs to


6 March 2024

Discussed:

  • Pull requests: 440 & 452
  • Possible multi-threading problem during reconnects and (re)sending message during reconnects: triggering another reconnect 3 seconds later.
  • IdToken case insensitive, required by OCPP, where to handle this in EVerest? libOCPP? Some use cases might need case sensitive tokens. 

Action Items:

  • Put Signed MeterValues on Agenda General Call next week.
  • Write documentation on how to change OCPP 2.0.1 CSMS URL. 


21 February 2024

CSR flexibility

Update on websocket refactor

OCPP1.6 handling while in Pending

Other:


14 February 2024

General updates

Smart Charging implementation: https://github.com/EVerest/libocpp/issues/468

  • Slight incompatabilities between 1.6 and 2.0.1 for Smart Charging make it hard to find a common implementation for both 
  • Decision made to have separate implementations of OCPP1.6 and OCPP2.0.1 Smart Charging

OCPP Test naming convention: https://github.com/EVerest/libocpp/issues/467

Status: Websocket refactor update @Soumya Subramanya @Maaike Zijderveld @Marc Emmers

Auth Cache Cleanup PR: https://github.com/EVerest/libocpp/pull/243

7 February 2024

When to send signed meter values

  • End of the transaction is most logical.
  • Looks like code currently does not store values in the DB.
  • An libOCPP API change is needed to merge the signed meter values pull request.
  • The is an existing old pull request that also provides such a change.

DB Migration tools: See issue: https://github.com/EVerest/libocpp/issues/450

Status OCPP 2.0.1 development:

  • Shared sheet is not updated. Current coverage is getting to 100%, but that is not reflected in the sheet as agreed.
  • OCTT takes about 2 days to run all tests manually, API for CI/CD integration not yet available
  • Action Item: Robert will ask OCA about potential license issues with OCTT running in LFE build pipelines.


31 January 2024:

Faking MeterValue

  • Make faking MeterValue and TransactionEvent timestamps a configurable feature
  • Keep talking to OCA and OCTT team to find out more detailed requirements

Websocket refactoring:

  • Alfen to work on charge_point and websocket interface
  • Pionix to support on websocketpp and libwebsocket implementations of the interfaces
  • Discussion how we split up PRs (between interfaces and implementations) still ongoing @Soumya to provide feedback

Smart Charging:

  • Bug found within clear charging profiles: https://github.com/EVerest/libocpp/issues/432
  • Agreed on common base classes for OCPP1.6 and OCPP2.0.1 Smart Charging handling
  • Goal is to reuse as much of OCPP1.6 implementation for common smart charging implementation
  • No labels