-
Notifications
You must be signed in to change notification settings - Fork 22
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
🚩 Enable PnC with OCPP 201 #35
Comments
I start this process by bumping the images up to @jhoshiko @sahabulh @activeshadow the new images do work now. I merged the PR at 11:04, so I guess the images had not been built and tagged correctly at the time of the demo.
@sahabulh you can start testing |
@sahabulh just to summarize what we discussed, I think we should start by getting PnC to work with the everest OCPP CSMS and the everest certs. Basically, have an MRE for https://github.com/EVerest/EVerest/blob/main/docs/tutorials/how_to_plug_and_charge/index.rst so that we can all verify that it works and/or get support to get it to work. Note that this will involve swapping out MaEVe with the everest-ocpp |
Here are the errors that I currently see with the EVerest + MaEVe MRE AC 3ph 16A - charges
AC ISO 15118-2 (stuck in PrepareCharging because EV did not transition to state C)
DC ISO 15118-2 (same, stuck in PrepareCharging because EV did not transition to state C)
Checking if it is OCPP by using the DC ISO 15118-2 demo (works)
So the ISO 15118-2 failures are probably some issue with OCPP, unless the messages sent are different in the two nodered UIs or there is some other config SIL issue |
To use OCPP 201 PnC, we need to change the demo script to launch the PnC SIL
with this, I can launch the PnC SIL demo but it fails with the following error
On re-running, I got more details - I am not sure if this is an artifact of fact that we are re-running on the same EVSE (due to stored stated from the previous run).
@sahabulh would be interesting to see if you get the same error from the OCPP-CSMS, or whether that works correctly. Also @CRR-SNL for visibility |
What steps did you follow here for these four tests? |
Then in the UI, select the connection mode using the dropdown |
I got the exact same results. Works for the first and the last. Stuck at prepare charging with the "didn't transition to state C" error. |
For this, did you use the |
I did not test with the default CSMS. I only tested with MaEVe. That is why I said
|
Okay. I tried to run with the only change being in the last line ( Here is my log:
|
Yep, using the |
We can actually turn off the certificate installation service in the config yaml file. Should we try that? We can use a patch in that case for the initial test. |
My recommendation would be the following:
In both cases, as I said, I would start with the recommended OCPP-CSMS and get help if needed to get that to work. |
I did try the OCPP-CSMS first. But it throws a JSON validation error when I try to start it. That's why I was doing what you did to see if I get the same results. Anyways, I will post the error I am getting when I return home. In the meantime, can anyone please try to start the OCPP-CSMS and check if any error happens? |
@sahabulh can you please update this issue with your findings from yesterday so that I can take over? |
So, by "ISO 15118-2 with OCPP and with EIM does not work" you mean it is not working with the So, when we are using |
Yes, the default AC 3ph 16A is what I mean. I do not think it supports ISO 15118-2; you can verify from the logs or from the node-red config on the messages sent to the MQTT server. Yes, it was not working in a previous version also. However, EVerest with ISO 15118-2 and OCPP 201 (at least PnC) was not expected to work in a previous release. As you can see from the first message in this issue (#35 (comment)), the EVerest team has now implemented EVerest/everest-core#588 this support. So we should be able to test it. I am suggesting starting with ISO 15118-2 EIM instead of PnC since it is simpler and should be easier to get working. In general, while validating, it is good to test all the options in the dropdown since they test various scenarios. |
But I don't think |
I did not say that
Sure. Or you can try to look at the differences between ISO 15118-2 with OCPP (does not work) and ISO 15118-2 without OCPP (works). The issue is almost certainly something related to OCPP. EDIT: You can also try it with OCPP-CSMS first. See my note above on steps to proceed: |
@sahabulh any updates on timeline? I want to work on this a bit tonight (before @activeshadow starts working on it tomorrow) but don't want to duplicate your work |
Sorry, I am juggling two things at once. That's why it is taking so long. I have an MRE here where I am testing OCPP-CSMS. It is producing this error. Please see if I am doing something wrong. You will have to clone the repo and run the script from there. Log:
I wish the websocket errors were more details. It is difficult to understand what the codes mean. On the other hand, MaEVe's errors are very detailed. |
I will post the issues in Zulip later tonight. Posting it now will not help much as it is past midnight there. Meanwhile, I will try to compare the files you suggested. |
I am trying to build EVerest from scratch and test the OCPP-CSMS. If it works, we will know there is something wrong with the demo. Update: Nope, building from scratch is not working. It fails at 79%. |
Update on this: I thought maybe I should try SP 0 which is mentioned here as this doesn't apparently require any authentication. But when I tested it produced the following error:
|
@shankari or @sahabulh how do I configure the connection URI that libocpp will use to connect to the CSMS (OCPP server)? I wondering if right now it's defaulting to I've found documentation on configuring the OCPP module in the EVerest manager but I'm not seeing anything about the CSMS URI. Is it a config option or a setting in the DB? |
It is a setting in the DB (e.g. #25 (comment)) |
@activeshadow , you will have to change the address and port here if you want to it on the server side. |
@shankari @activeshadow I am talking with Cornelius here in case you want to participate or just observe. |
@sahabulh @shankari okay so I think my version of Sahabul's MRE (here) is getting further along now, but I'm not sure how to test the actual PnC stuff... I Dockerized the EVerest OCPP-CSMS implementation and then updated the EVerest EVSE manager to use OCPP 2.0.1 SP 1 and it seems to be communicating now. I haven't tried SP 2 or SP 3 yet. From the looks of the Zulip conversations though it looks like you have already moved on to MaEVe? |
@activeshadow testing PnC: #35 (comment) |
@shankari thanks for the link to the comment, but what do I do in the UI to test PnC, since right now from what I can tell it's still making me do the RFID swipe to authenticate. |
select the PnC option from the dropdown below Connector 1 |
@shankari okay yeah I did that and it's waiting for auth so I assume I'm hitting a cert issue where the EV is missing a MO cert or it's not getting transmitted as expected. I'll keep digging. |
Yup, missing certs. I will debug this more, just posting it here for documentation.
|
@activeshadow it is stuck in waiting for auth because the server crashed during auth. Please see the output that I got at Note that this is with MaEVe. I would suggest reproducing this, and then seeing if the behavior is different with OCPP-CSMS |
@activeshadow and @sahabulh it looks like both of you are still working on this. When you are done, can you please submit a PR of where you are so I can pick up from there? At least for me, working on the same task as others gets very confusing. |
@shankari my error looks to be different. It's not a program termination error, rather it's a certificate not found error. I'm looking into it now. |
@shankari @activeshadow I am done. It is working with MaEVe + AC ISO 15118-2 + PnC. Did little hack to ignore OCSP temporarily. I also disabled CertificateInstallation. For details, check the Zulip topic linked previously. I will submit a PR as soon as possible. |
@sahabulh I'm not able to reproduce but that's okay. I'll wait for your PR then go from there. Can you explain why you chose to disable certificate installation in the EV Car module? It may be in the Zulip chat but would also be great to have it documented here (or in the PR) so we know where to go from there. I'm seeing an issue with the EV Car module (Josev) not being able to find certificates. The V2G certificate it can't load is in the container, so I'm wondering if the prefix path Josev is using is not correct, but I didn't have a chance to run that to ground yet. I'm wondering if you disabling certificate installation gets around this, but if so I'd be curious as to why. |
I submitted the PR.
Craig was against it given that we have limited time before the virtual demo. MaEVe currently uses hubject to handle CertificateInstallation request. We don't want that. Which means additional work to make the local handling work.
What error are you getting? Can you please post a log? |
The related PR is here: #38. It works fine in terms of the state machine, and we end up in the
I am not sure where those logs come from. I also checked the logs, and there is a negotiation that happens in the ISO protocol |
Tried to install https://github.com/FlUxIuS/V2Gdecoder to decode EXI.
Trying to compile instead resulted in
Trying to run the precomputed jar from the releases against the checked out schema from the repo... |
That doesn't give an error, but it doesn't decode either. I just get a |
Piet told me here that there is an issue with the SIL which causes this. As we are seeing the I think the priority now should be on the EonTi certs and make the OCSP response or revocation status checking work. I plan to work on this in the weekend and maybe create a new pull request. Is it okay? |
@sahabulh we should file an issue for the SIL to be fixed. This is not a super-high priority, in fact, Piet told me that the related developer was out on vacation, but I don't want it to fall through the cracks. |
@shankari Sorry, for the late response. Yes, we should file an issue. Please let me know how you want us to do that. On a different note, do you want to close this issue and create another one for discussing the problems regarding the EonTi certs? I tested with the wrongly named CSMS cert and it indeed created the same error. So, I guess it is the |
About how I tested it, I changed nothing except for the |
You can put in the details from #35 (comment) and this comment into the new issue. wrt next steps on the EonTI issue, I would suggest asking EonTI to generate certs with the modified CN Having done that, you should notify Craig, Ryan and EonTI (please make sure to cc me as well). This should be part of Craig's upcoming work around best practices for PKI infrastructure. |
@shankari Joshua had opened an issue for testing EonTi certs, so rather than creating a new one, I am just reusing that issue. I have also sent an email to Francis requesting a new CSMS cert with |
I didn't understand you here fully. What should I say? |
Posted it last week in here. Let me know if any modification is needed. |
Hello, since this ticket is still open I hope you don't mind if I comment. PrepareCharging->EVSE Paused
This doesn't occur when using ocpp-csms following the EVerest plug and charge tutorial https://github.com/EVerest/EVerest/blob/main/docs/tutorials/how_to_plug_and_charge/index.rst using run-sil-ocpp-pnc.sh. In this case the EVerest manager and ocpp-csms logs are also sufficiently verbose to see the eMAID handoff even though config-sil-ocpp.yaml doesn't have a tls_active field. |
The EVerest team has enabled PnC for OCPP 201
EVerest/everest-core#588
They have also added documentation on how to configure the EvseSecurity module
https://github.com/EVerest/everest-core/blob/main/modules/EvseSecurity/doc.rst
and a simple HOWTO guide
https://github.com/EVerest/EVerest/blob/main/docs/tutorials/how_to_plug_and_charge/index.rst
More details are at:
EVerest/EVerest@03f1039#diff-c18cbe481f4e2f2cc3c9c5992561e64464244edcbcda0c2d08bbb0e0987ef23a
Note that the simple guide uses a simple CSMS, created in the EVerest org, that is based on the MobilityHouse package and the
CertificateInstallationResponse
from josev.This issue will track the steps required to enable PnC, first with the toy CSMS and then with a real CSMS such as MaEVe
@jhoshiko @activeshadow @sahabulh for visibility and collaboration
The text was updated successfully, but these errors were encountered: