Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aymen-mouelhi/ocpp-js
Open Charge Point Protocol Implementation in JS
https://github.com/aymen-mouelhi/ocpp-js
Last synced: 2 days ago
JSON representation
Open Charge Point Protocol Implementation in JS
- Host: GitHub
- URL: https://github.com/aymen-mouelhi/ocpp-js
- Owner: aymen-mouelhi
- Created: 2017-01-20T14:28:05.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-08-09T22:28:15.000Z (over 3 years ago)
- Last Synced: 2024-11-08T04:10:56.814Z (6 days ago)
- Language: JavaScript
- Homepage: https://aymen-mouelhi.github.io/ocpp-js/
- Size: 309 KB
- Stars: 57
- Watchers: 13
- Forks: 26
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ocpp-js
Open Charge Point Protocol Implementation in JS## Installation
```
npm install --save ocpp-js
```## Overview
Open Charge Point Protocol (OCPP, ) is a communication
protocol between multiple charging stations ("charge points") and a single
management software ("central system").Currently two OCPP versions (1.2 and 1.5) have been released.
There is a draft in progress for a new version (2.0).
Both existing versions use SOAP over HTTP as the RPC/transport protocol:+---------------+ soap/http client soap/http server +----------------+
| |--------------------------------------->| |
| | Operations initiated by ChargePoint | |
| Charge Point | | Central System |
| | soap/http server soap/http client | |
| |<---------------------------------------| |
+---------------+ Operations initiated by CentralSystem +----------------+## Usage
OCPP JS uses a MongoDB DB to store all the actions received from charge points example: BootNotification, MeterValues, StartTransaction ...
Currently, the project supports MongoDB, firebase and file storage.
In order to specify which DB to use, create a folder config, and then create a file default.json and insert your preferred storage method:```
{
"defaultDB": "mongodb",
"mongodb": {
"url": "mongodb://localhost/mydb"
},
"firebase": {
"apiKey": "[apiKey]",
"authDomain": "[authDomain]",
"databaseURL": "[databaseURL]",
"storageBucket": "[storageBucket]",
"messagingSenderId": "[messagingSenderId]"
}
}
```
You can use Firebase by setting defaultDB : firebase.To be able to create a Central System, some charging points and a charging point server, you can use this code snippet:
```
var OCPP = require('ocpp-js');var options = {
centralSystem: {
port: 9220
},
chargingPoint: {
serverURI: 'http://localhost:9221/Ocpp/ChargePointService',
name: 'Simulator 1'
},
chargingPointServer: {
port: 9221
}
}var ocppJS = new OCPP(options);
// Create Central System
var centralSystem = ocppJS.createCentralSystem();// Create Charging Point Client
var chargingPoint1 = ocppJS.createChargingPoint('http://127.0.0.1:8081/ChargeBox/Ocpp', "chargingPoint1-Simulator");
var chargingPoint2 = ocppJS.createChargingPoint('http://localhost:9221/Ocpp/ChargePointService', "chargingPoint2-Simulator");// Charging Point Params can be also taken from options
var chargingPoint1 = ocppJS.createChargingPoint();// Create Charging Point Server
var chargingPointServer = ocppJS.createChargingPointServer(9221);```