All right. Hello everyone. I'm Christian Wiseman. I work on a project called Citrinos.
We are an open source charge station management system. And last year I was here to give
a talk, kind of introducing it. We were very fresh. And this year I can give you one year
of progress and what we kind of did over the last year and how much fun we have had.
All right. Just for the formalities, I'm a contributor to Citrinos. I'm also one of the
original people who were like, we should do something about this. I'm a senior software
engineer at a company called S44 Energy. So we do EV charging things and other energy
things. And I've been working on EV charging for roughly combined seven years. So I've
seen some things. All right. So maybe, or probably, lots of you know about this, the EV charging
landscape, but just to run you through kind of our problem statement, I'm a driver. I just
got this new car. And I'm doing a road trip to Brussels. So on the way, I probably need to
charge. And for that, I'm going to sign a contract with the EMSP, the E mobility service
provider that tells me where I can charge and that builds me. And so they might give me an
RFID card or just an app and say, all right, you're good to charge. So then I drive
direction Brussels and I get to a charging station. All right. So now I have my RFID card
and first I plug in or after, but important part is I plug in for completeness. And maybe
in the other talks you've heard, the car talks a protocol either IEC 61851 or ISO 15118
with a charger. And then I hold up my RFID card to say, all right, it's me. You can please
charge my car. I will pay for it. And then there's the charger that talks a protocol called
OCPP, the open charge point protocol to a charge point operator. It was managing all the
charge points. Then the charge point operator reaches out to the EMSP and asks, hey, is this
person good for their money or will you at least guarantee giving me money for this electricity
and the EMSP is, yeah sure. All good. All right. So you see, there's lots of protocols.
And yet they're not that fun to implement. I mean, it's fun the first time, but after that it's
kind of repeating the same thing. And the actual bigger problem is everyone looks at these protocols
and think they're art and so they interpret them a little bit differently. And then you have to
build an ifs that if the charger starts with this serial number, then it's probably that
manufacturer. And yeah, then they will send this message first and that's kind of not great.
And so we thought someone should do something about this. And our part is basically the cloud
CPO part. So our main idea was OCPP is complicated and complex and there's a new version
new as in 2018, 2020, but it hasn't really been adopted by the industry. So someone should do
something about it to make it easier to adopt this. And that's where we came in. We saw there's
another project called Everest that's doing something similar but on the charger side.
And so basically we were inspired like, hey, that's a good idea. We should also do something like that,
but for up here. All right. So we're the charge station management system. We are basically in
the cloud. And so we use some cloud technologies. So the charger itself talks to the OCPP router,
OCPP. OCPP is on web sockets. And our main thought was OCPP 201. That's the thing we want to do.
And so that's what we've implemented. Because for 1.6, there's some other soaps stuff, but
yeah, we don't want to do that. I hope no one does that really anymore.
All right. So then OCPP arrives at our OCP router and then we basically pop it on a message bus
and our modules then can take it from the message bus do things and then respond.
The idea is that the modules are then exposing a rest API and that way you can extend it or
interact with it without being tied into our setup. So our core idea is the implementation part
of running at the implementation of a protocol shouldn't be the hard part of running a
charge station management. It should be basically easy part. If you're running a charging network,
you should make your network good because you did something special, not because you implemented
a protocol because that should be the baseline. All right. So for that, we basically split up our
code base into different layers. So you can pick any layer of them and extend or build on top.
And so we have kind of just the base of where we have the data structures, then some persistence
on integrating with the database. Right now we're kind of going or leaning heavily on Postgres
because there's some post-just things that we like around geospatial. And then we have some
mutals just to provide functionalities like for certificate things. And then we have the actual
module that is the top layer that's exposing the rest API. And because we have the different modules,
they're basically split similar along the lines of the protocol. You can scale them individually.
So you can build a server with each module if you want. And then you have the transaction module
that gets hammered for a lot of times. Scale really high while the configuration module just hangs
out. All right. I need to speed up a bit. So and the other cool thing is since everything's on the
message broker, you can add your own modules. Like we had someone add a payment module that hooks
into the message broker and then does the stripe integration but just interacts on the message broker
and you don't have to hack anything in. You just attach. All right. So what happened over the last year?
So we're now part of the Linux Foundation Energy. So we now have technical steering committees.
We also release the one dot over version and now we're on one dot five dot one I believe.
Yeah, we also traveled quite a bit to basically try our stuff. So we've been testing at places like the
Open EV charging summit in Texas. We went to a plug fest in Bodshurnborn in Germany where
that Everest was hosting. We went to a plug fest in the US and plug fest are where basically
charger manufacturers and CSMS or people, they test their stuff. So you sit around a table for
two hours and then you say, all right, now give me electricity click and then you hope that the message
exchange correctly and the light bulb goes on. So that was really fun. And then we were at a conference
in Berlin promoting USB-P201 and also at the LFE summit in Brussels. Also we've done some webinars
on the protocols just because we like the protocols and we want to push people forward to
the good versions of the protocols. All right, and so we in the meantime have also implemented
the full protocol also things like advanced user interface where you can show QR codes on the user
interface of the charger. We've implemented OCPI so that out part of the CPO and because for
getting certified you have to have a UI and not just a directness on top of a database,
we also had to build our own UI but now we're certified. So the OCA that maintains that protocols
said cool, your implementation rocks and we're also starting to get contributions from the outside
world. So if you're seeing this, thanks a lot and you're awesome. All right, in the lessons learned
well not everyone wants to be on the forefront of implementing a protocol. It's hard to move
people forward even if the protocol is just a lot better. And so yeah that's definitely one thing
we've learned. We've also been explaining what open sources a lot and UIs are quite important.
A lot of people see something shiny and then they're happy but the underlying technology is not
so important and we went with the technology first. So now we're building the shiny part on top.
And yeah we try to be very open in all directions which like for postgres we're kind of narrowing
down in one direction. So what's next? All right, release 1.6 is next and with that because not
everyone is on the forefront of to a one. We're also implementing OCP 1.6 and you can see a screenshot
I connected my home charger the other day to Citrine. All right and yeah then we're implementing
some other protocols and especially adding to the new UI. If you want to get involved join the
Discord server there's a QR code and make a pull request and especially attend our technical
steering committees. They're first Thursday every month 6 p.m. UTC so you're a time it's good
U.S. it's a bit gotta get up early. All right I'm out of time I'll be hanging out outside
if you want to talk about CSMS or anything else. Thanks.