Giter VIP home page Giter VIP logo

ocpp-js's Introduction

ocpp-js

Open Charge Point Protocol Implementation in JS

Installation

npm install --save ocpp-js

Overview

Open Charge Point Protocol (OCPP, http://ocppforum.net) 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);

ocpp-js's People

Contributors

aymen-mouelhi avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.