-
Notifications
You must be signed in to change notification settings - Fork 18
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
ππ€ποΈ Support for EV-initiated Renegotiation & Fine Grain Charging Profiles #71
Comments
@the-bay-kay One of the new areas that we will need to work on for this change is to keep track of time so that we can figure out when our current set of 24 slots is used up, and we need to renegotiate. I can think of two ways to accomplish this:
I would suggest that we start with (2) since we know how to trigger things based on a req/res pair. Even in (2), we need to know what the current time is, so that we can check to see if it has passed. If that doesn't work (because it is reset elsewhere), we can just add a similar timer to our code. I don't think there is a way to speed it up, since
|
I definitely agree that (2) will be the simplest method of implementation. I'm not 100% that the comm session handler is exactly what we're looking for, however -- during the ChargingStatusRes, it appears the timer isn't active: Is this timer then to check for EVCC <-> SECC communication timeouts? I'll do a little digging to see what exactly it's for. Regardless, like you said, this is a good example for how we could implement our own timer! EDIT: Yeah, we reset the timer after receiving the ChargeParameterDiscoveryRes (link)-- let's implement our own timer |
Nice! So we don't have to use |
@shankari , the demo is committed! Took a bit longer than expected to handle the end-of-schedule behavior, but you should be able to run the demo as you did the previous, substituting for this branch. For your convenience... git clone https://github.com/the-bay-kay/everest-demo.git; cd everest-demo; git checkout demo-renegotiation; bash demo-iso15118-2-ac-plus-ocpp.sh -r $(pwd) -b test-demo -3 |
Some good news: Looking at the latest version of the ISO 15118-2 DC charging, it appears they have already added a method for viewing the ISO15118-2 logs -- we should be be able to use this as a template (or use it in its entirety) to create our own version of these (or expand them to OCPP 2.0.1!) |
Yes, that was my prior attempt to have AFS display the logs in node-red (aka "they" is not the ongoing EVerest community). |
It seems that updating the Power Gauge may be more complicated than updating the functions in Node-RED. Looking at the flows, we can see that we are receiving nothing from the PublicationIssues.mp4... compared to the
So, what's the difference between our demos and the working power gauge from main? Well -- a lot, actually. Looking at the blame history, there have been multiple changes to this module since we branched off... I think there's two options for how we can proceed forward from here:
I am currently leaning pretty strongly to the second option. Even if this doesn't fix everything (I'll almost certainly need to tweak the flows, for example), updating before debugging will at least ensure that we're using a contemporary version of this module. That way, whatever work I do de-bugging will not be "useless" after roll-forward. If we go ahead with the rolling forward, I will close this issue (as my current demo images are working!) and move discussion to the thread linked above. |
Context
This PR builds off of the work done in Issue #69. These changes include:
Currently, the LQR Optimizer generates a full schedule from timestamp 0 to DT, and takes a uniform sample of 24 - (SECC_Schedule) points to generate the charging profile. This is not optimal for a variety of reasons -- as such, we are exploring options for updating schedules with a finer resolution.
High Level Goals
ISO 15118-2 defines a protocol for EV initiated Re-Negotiation of charging profiles in several places, such as [V2G2-521] and [V2G2-813]. I've created a diagram outlining a successful re-negotiation, attached below:
Renegotiation Sequence Diagram
Inspecting iso15118_2_states.py, it appears we have support for this re-negotation, but do not include any new charging profiles. As such, the goal of this issue is to integrate the Optimizer script into this function, such that we can re-negotation regularly (e.g., every 24 seconds, or another fine-grain amount) and more effectively optimize our charging session.
Subsequent Goals
The following are an approximation of the work we will need to do in order to support these changes.
ChargingStatus
Class. This profile will then be sent to the SECC via the existing PowerDeliveryRequestAdditionally, there are some clean-ups we would like to perform:
The text was updated successfully, but these errors were encountered: