23 Jul 2014
Backend System von OCPP für Ladestation
Grundlage
Aktueller Stand in EU
Driven by international incentives to reduce greenhouse gas emissions, interest in Electric Vehicle (EV) technology is growing rapidly throughout the world. To achieve the EU 20-20-20 targets, EVs will be massively rolled out across Europe Existing electricity networks are constrained by how much additional capacity they can provide for the high integration of EV recharging systems; taking into account additional emerging requirements for instance: the electrification of residential heating and the increase in distributed renewable generation. Such changes can be offset by a move towards a smarter network.[1]
Important Elements:[1]
- Battery Technology
- Electric Vehicle Supply Equipment (EVSE)
- Information and Communication Technology (ICT)
giving support to their management, operation and maintenance.[4]
- Energy Management Systems
Important Roles:[4]
- EV
- EVSE(EV Supply Equipment)
- EVSP(EV Service Provider)
Papers:
1. AC Recharging Infrastructure for EVs and Future Smart Grid
2. Integrating EVs into the Smart-Grid
3. A back-end system for an autonomous parking and charging system for electric vehicles
4. A communication system from EV to EV Service Provider based on OCPP over a wireless network
5. An ICT solution for integration of Electric Vehicles in grid balancing services
Wiki links:
Articles and examples:
The Ultimate Guide to Electric Car Charging Networks
EU 20-20-20:
Die Notwendigkeit einer Steigerung der Energieeffizienz ist Teil des „20-20-20-Ziels“ für das Jahr 2020, das eine Senkung des Primärenergieverbrauchs der Union und der Treibhausgasemissionen um jeweils 20% sowie eine Anhebung des Anteils der erneuerbaren Energiequellen auf 20 % umfasst.
source: Plug-in Electric Vehicles Where Are We And What’s Next
Difference between AC Charging and DC Charging
OCPP: Open Charge Point Protocol
OCPP is short for Open Charge Point Protocol, a popular language used for communications between
Developed by: E-Laad Foundation
charging station hardware made by - ABB, Aeroviron- ment, Bosch, DBT, Eaton, Fuji, Schneider, Siemens, etc.
and the managing network systems - like ChargePoint, ECOtality, eVgo, Greenlots, OpConnect, SemaConnect, etc.
Useful links:
Wiki Open Charge Point Protocol
OCPP Description:
OCPP Specification: OCPP 1.5 specification
WSDL files of OCPP:
OCPP Central System service description
OCPP Central System service description
Controversy:
In the US, however, OCPP hasn’t quite swept across the charging industry as it has elsewhere, and much of the EVSE that has been deployed was designed prior to OCPP being widely adopted.
The US OCPP controversy mainly stems from the fact that two companies (ECOtality and ChargePoint) have been the largest recipients of the government grants that kick-started the industry, and they don’t exclusively use OCPP. In many cases those networks use proprietary communication protocols that are unique to each com- pany. The gist of the gripe is that tax money was spent to give these companies a stranglehold on these publicly- funded installs - “vendor lock-in,” as some call it.
Difference between OCPP and Collaboratev
OCPP
- Provides a standard path from EVSE to EVSP
- Enables EVSE owner to change networks without replacing hardware
- Prevents EVSE being stranded by a network provider going out of business
- Doesn’t address roaming across networks or common user credentials
Network Clearing House like Collaboratev or Hubject
- Allows consumers to roam across networks (note that the consumer may have to pay a roaming charge)
- All networks must participate to enable seamless roaming for consumers
- Needs to provide a common user credential to fully address roaming
- There is a cost for this service – someone must pay
- EVSE can still use a proprietary backhaul and participate
- Doesn’t prevent stranded EVSE if a network provide fails
Plug-in Electric Vehicles Where Are We And What’s Next
SOAP
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of web services in computer networks. It relies on XML Information Set for its message format, and usually relies on other application layer protocols, most notably Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission.
Example message:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<m:GetStockPrice xmlns:m="http://www.example.org/stock">
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Communication:
Useful links:
WSDL
The Web Services Description Language (WSDL pronounced “wiz'-dul”) is an XML-based interface definition language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also referred to as a WSDL file), which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. It thus serves a purpose that corresponds roughly to that of a method signature in a programming language.
Useful links:
Web Service
A software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
Useful links: Wiki Web Service
Discussions of SOAP, JSON, REST, WSDL, XML
Useful links:
JSON, REST, SOAP, WSDL, and SOA: How do they all link together
Describe REST Web services with WSDL 2.0
WSDL for SOAP and WSDL for REST and REST based on JSON
Frontend and Backend
Frontend:
- Ember.js
Backend:
- Node.js
- Ruby on Rails
Useful links:
Research of OCPP Backend
Simulator
ocppjs - An experimental OCPP Simulator
The simulator can send JSON request with JSON-schema.
Communication with POSTMAN
soapUI
SoapUI - The Home of Functional Testing
Communication with AJAX
http://powerful-dusk-5787.herokuapp.com/
node-soap
I have written a test demo using node-soap. Fetch the coad on my Github.
server.js
var http = require('http'); var soap = require('soap'); var ocppCentralSystemService = { CentralSystemService: { CentralSystemServiceSoap12: { Heartbeat: function(args) { console.log("/Heartbeat"); var dateTime = new Date(); console.log(dateTime.toString()); return { currentTime: dateTime.toString() }; }, Authorize: function(args) { console.log("/Authorize"); return { idTagInfo: {} }; } } } } var xml = require('fs').readFileSync('ocppcentralsystemservice1.5_final.wsdl', 'utf8'), server = http.createServer(function(request,response) { response.end("404: Not Found: "+request.url) }); server.listen(9000); soap.listen(server, '/', ocppCentralSystemService, xml);
client.js
var soap = require('soap'); var url = 'http://localhost:9000/?wsdl'; var args = {}; var soapHeader = '<tns:chargeBoxIdentity soap:mustUnderstand="true">' + 'boxid' + '</tns:chargeBoxIdentity>' + '<wsa5:To soap:mustUnderstand="true">' + 'http://localhost:9000' + '</wsa5:To>' + '<wsa5:Action soap:mustUnderstand="true">' + '/Heartbeat' + '</wsa5:Action>'; soap.createClient(url, {endpoint:'http://localhost:9000/'}, function(err, client) { if (err) throw err; console.log(client.describe().CentralSystemService.CentralSystemServiceSoap12.Authorize); client.addSoapHeader(soapHeader); client.Heartbeat(args, function(err, result) { if (err) throw err; console.log(result); }); client.Authorize({idTag: ''}, function(err, result) { if (err) throw err; console.log(result); }); });
Test with Postman
Send SOAP request to node soap through POSTMAN to this demo server and get the identical respond back √
Ember.js
Til next time,
Yuanchen Zhang
at 14:49