Comments (11)
In the OCPP specification at SetChargingProfile.req it says: If connectorId = 0,
the message contains an overall limit for the Charge Point.
and at GetCompositeSchedule.req it says: When connectorId=0, the Charge Point will calculate
the expected consumption for the grid connection
even though the connectorId is required at both are these also usable on multiple stations at once?
from steve.
i think so. i did not look at the spec in detail. but... if the user wants to set the same charging profile for, lets say, connectorId=3 of multiple stations, so be it. if he means the whole station for all the stations, then you can set connectorId=0. i think this case is similar to ChangeAvailability operation. you can look into its implementation.
however, i have to say one thing: i think these smart charging operations are meant for some tight integration with other operations and automated action/reaction. therefore, a straightforward implementation having a web page with a html form where you can set some values and send a message to charging station(s) will not be that much valuable. since i am not in the business of selling/using/maintaining charging stations i do not have the necessary use cases to implement them correctly. that's why i left them out in the first place.
i think smart charging profile is little bit tricky to implement.
from steve.
The only tricky one is SetChargingProfile as i noticed because it can be related to transactions. but you can set it outside of a transaction as well which would work with multiple i guess.
and GetCompositeSchedule would just return Rejected for some Charge Points if for example the connectorId is unknown.
But anyway thanks, I'll look into it.
from steve.
yeah, but the problem does not lie in the decision of single/multiple execution. the data model Charging Profile is quite complicated and the user cannot (should not) define profiles on-the-fly, send and forget them.
the most useful implementation would be to have a "charging profile management" view, where you can define your profiles 1a) for all stations 1b) specific for a station 2a) for all users 2b) specific for a user and store these in the database. since the data model is complicated, for better UX we should have a GUI like wlan on/off timeplan for routers, that allows easy modification with mouse.
for example, ClearChargingProfile has an optional "stackLevel" field, which is set in SetChargingProfile. so we have to keep track of charging profiles (an indication for storing profiles in database).
another example is the response to GetCompositeSchedule. the ChargingSchedule objects are so complex, that you cannot read a status value and print in a table anymore (as it mostly was). this is an indication that StringOcppCallbacks will not work.
all i am saying is, the smart charging profile is little bit tricky to implement.
from steve.
Definitely interested in seeing this (OCPP 1.6 local smart charging) for a real-world installation we are planning at my cohousing group. Goal is load management (to avoid exceeding electrical service capacity). Charge points may be EV-Box business line, but decision is not yet made. Starting with 4 stations, final build-out approx 25 stations.
from steve.
We also have an interest in getting the OCPP 1.6 "smart charging" feature working. However SteVe worked "out of the box" for us:
http://www.V2G-EVSE.com/2018/04/16/ev-charging-station-administration-using-ocpp-1-6-with-steve/
That means we haven't even needed to glance at the source code yet. Where do you recommend that we start?
from steve.
@V2G-UK ,
I have been working on the "Smart Charging" profile of OCPP 1.6 aswell and have implemented all of the functions in my fork. But it is far from perfect, since for example the Charging Profiles that can be set at Charge Points don't get saved in the Database and thus you won't be able to retrieve them and see which profiles were set on specific Charge Points.
The functions SetChargingProfile, ClearChargingProfile and GetCompositeSchedule do work, atleast in a testing environment.
from steve.
Thanks very much @JavaIsJavaScript - I'll take a good look when I have a spare moment, which I suspect won't be for a few days.
from steve.
I'm just starting to exercise OCPP1.6J smart charging with a Delta AC Mini (firmware v04.04.30.03). I find that I can set a TxDefault profile, but cannot read back with GetCompositeSchedule as I expected. Can anyone tell me whether my expectation is wrong, or maybe the charge station is misbehaving?
SetChargingProfile exchange:
[2,"7d67f2c9-61c6-4be7-8677-ef805c6f9854","SetChargingProfile",{"connectorId":1,"csChargingProfiles":{"chargingProfileId":100,"stackLevel":0,"chargingProfilePurpose":"TxDefaultProfile","chargingProfileKind":"Recurring","recurrencyKind":"Daily","validFrom":"2018-05-12T00:00:00.000Z","validTo":"2018-05-19T00:00:00.000Z","chargingSchedule":{"duration":86400,"chargingRateUnit":"A","chargingSchedulePeriod":[{"startPeriod":0,"limit":25.5,"numberPhases":1},{"startPeriod":28800,"limit":15.5,"numberPhases":1},{"startPeriod":72000,"limit":25,"numberPhases":1}]}}}]
[3,"7d67f2c9-61c6-4be7-8677-ef805c6f9854",{"status":"Accepted"}]
GetCompositeSchedule exchange:
[2,"1a457d15-729c-454a-a276-61eb5f2b2dbd","GetCompositeSchedule",{"connectorId":1,"duration":86400,"chargingRateUnit":"A"}]
[3,"1a457d15-729c-454a-a276-61eb5f2b2dbd",{"status":"Rejected"}]
P.S.: I'm using the fork from @JavaIsJavaScript, hope it's okay to post on this issue here.
Update 21-May-2018
The manufacturer has confirmed that GetCompositeSchedule is not yet implemented in this firmware version
from steve.
it seems like the station is misbehaving.
from steve.
i merged the branch ocpp-1.6-smart-charging into master and therefore consider this issue resolved.
from steve.
Related Issues (20)
- unable to connect to steve server HOT 3
- Unable to connect to steve from different computer HOT 4
- How about using Finishing status instead of Available in afterStop enum value? HOT 1
- Exceptions and websocket closures on StopTransaction HOT 2
- Build Failure HOT 7
- Killed without a trace HOT 5
- About Steve 2.0.1 HOT 5
- About API and WebSocket HOT 3
- Steve's API and Transactions HOT 1
- Role of charge point HOT 2
- ID/OCPP Tag expiry HOT 12
- Steve's process will be killed at some point. HOT 14
- java -jar steve.jar not running HOT 3
- SteVe trying to handle the request instead of forwarding it to the charger HOT 2
- Charging Profile Rejected by EV Charger HOT 4
- como acceder al WEB API de SteVE HOT 1
- Procedure to set charging limit to connectorid HOT 6
- I have the following error: java.lang.ClassCastException: class java.lang.Double cannot be cast to class java.lang.String HOT 8
- Error: JAVA_HOME is not defined correctly. HOT 2
- Docker Building fails on Windows 11 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from steve.