Coder Social home page Coder Social logo

nasar165 / ocpp-evse Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 172 KB

EVSE charging point test tool with basic OCPP-J 1.6 functionality

License: GNU General Public License v3.0

CSS 0.12% TypeScript 99.29% JavaScript 0.58%
csms evse-ev nextjs ocpp16j testing-tools typescript

ocpp-evse's People

Stargazers

 avatar

Watchers

 avatar

ocpp-evse's Issues

Websocket

Description

This project will utilize a light weight and easy to use web socket library capable of communicating over TLS (WSS).

Requirements

  • WebSocket protocol
  • Light weight
  • Easy to use
  • Allow Handlers
  • Support TLS (WSS)

Todo

  • install ws WebSocket library
  • Initiate a connection

Revision

  • Utilize WebSocket API provided by Safari, Chrome, Firefox for compatibility reasons and ease of use. (ws library is no longer used)

BootNotification

Description

Implement limited boot notification request, the test tool will send and receive.

Requirements

  • implement boot notification according to specification.
  • Do no process Pending state.
  • Retry until success.

Todo

  • implement Boot Notification request.
  • process Boot Notification Response.
  • Don't send boot notification again after Accepted.
  • Only support Accepted and Rejected.
  • Retry boot notification until success.
    • use interval value as timeout before retry.

StartTransaction

Description

Simulate a start transaction event.

Requirements

  • start transaction.
  • track transaction.

To do

  • Add button to start
  • disable button when transaction starts
  • store transaction so it can later be used to stop

Transactions

Description

At the moment there is no way to link a request to a response.

Requirements

  • store requests within a list using UUID as key
  • match response with request using UUID
  • store a function handler to be called when request if found in list

Todo

  • create transaction handler
  • link request with response from CSMS
  • Allow function to be stored in transaction
    • call function when transaction is found and it's a response

OCPP Error handling

Description

add ocpp frame handling and implement error handling

Requirements

  • add ocpp frames
  • add ocpp actions
  • add ocpp function for sending and getting frames.

Todo

  • add ocpp enums for actions and errors
  • add ocpp frames
  • add ocpp functions for creating ocpp error frame
  • add ocpp functions for fetching ocpp error frames

StatusNotification

Description

submit when ever a state changes at the charging station to the CSMS

Requirements

  • update state when ever an event occur
  • submit state to CSMS on change
  • Allow user to change state using the UI

Todo

  • add function to change the state
  • add ui to change state of station

Reconnection strategy

Description

A connection might be dropped at anytime during a session and it's critical for us to be able to identify and resume a connection as soon as possible.

Requirements

  • prevent reconnection spam.
  • ability to alter reconnection timeout during runtime.
  • identify if a connection is dead or alive.

Todo

  • Identify dead socket
  • set default timeout during boot
  • set reconnection timeout
  • use ping - pong strategy to verify connection (Primary)

Notes

  • Ping Pong is no longer necessary see #11 Dead socket

Relation

#6 WebSocket

MeterValues

Description

allow user to submit a meter value request when a transaction is ongoing.

Requirements

  • send meter value to CSMS
  • send every 60 seconds

Todo

  • user can alter meter value
  • send meter value in interval when transaction start

Implement Git Action

Description

Add GitHub action to the project to ensure that the project can successfully compile after each pull request and finally at the end of a merge.

Requirements

  • ensure successful build
  • run action at Pull request
  • run a second time at a successful merge

Todo

  • add git action to GitHub
  • add badge to readme

Relation

#12 Init Repository

Dead socket

Description

Ensure that the app can remain connected to the server and posses capabilities to identify loss of connection.

Requirements

  • if a socket dies it must be detected

Todo

  • test the browser api and ensure that a connection is terminated if the server losses connection.

Notes

  • Safari browser trigger stop event in a loss of connection event.
  • Chrome browser trigger stop event in a loss of connection event.

Reference

#6 WebSocket

RemoteStartTransaction

Description

allow a CSMS to request a remote start charger event

Requirements

  • start transaction if the state is Available or Pending
  • Reject otherwise and do nothing

Todo

  • Reject request if not in Available or Pending state
  • Start transaction on success

EVSE

Description

add a simple EVSE of the following rating AC 7.7KW simulator.

Requirements

  • support single connector
  • Status (status notification)
  • receive actions from CSMS
  • send actions to CSMS
  • process OCPP frames into corresponding Call frame

Todo

  • add connector
    • add function to change state
  • add handler to receive messages
  • handle inbound message
    • process ocpp frames request, response and error
      • return error on invalid frame

Reference

#6 web socket

Init repository

Description

Choose a framework to work with based on the requirements given by Neils make sure to choose
The most suitable framework for the task at hand.

Requirements

  • WebSocket
  • Light weight
  • Single page application

Todo

  • choose framework
  • Test run
  • Test build

Relation

#6 WebSocket

RemoteStopTransaction

Description

allow a CSMS to request a remote stop charger event

Requirements

  • start transaction if the state is not Available or Pending
  • Stop transaction if transaction id is available
  • Reject otherwise and do nothing

Todo

  • Reject request if not in Charging state
  • Reject request if transaction id is invalid
  • Stop transaction on success

StopTransaction

Description

simulate a stop transaction event

Requirements

  • submit stop transaction request
  • user can click to stop transaction

Todo

  • send transaction inform with transferred amount
  • allow user to stop a transaction using the ui
  • input transferred value to stop transaction request
  • disable button if no stop transaction is on going.

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.