Skip to content

Latest commit

 

History

History
226 lines (198 loc) · 13.2 KB

README.md

File metadata and controls

226 lines (198 loc) · 13.2 KB

Electric Vehicle Charger Registry

Project Description

A blockchain registry for Electric Vehicle Charging Stations. The system will track, manage and enable accurate and reliable data sharing on an open platform where operators provide stations to serve owners of electric vehicles and all the participants are protected from unfair practises. To learn more about the governance of this project, click here:

Governance Framework


Network participants

  1. Service Providers: Investors who purchased EV Charging equipment from manufacturers and rented a location in a parking lot for hosting these chargers.
  2. Controller: A parking lot owner that hosts those devices or a utility company to which the device is connected
  3. Users: Owners of electric vehicles who visit a location to charge their vehicles.

Problem

With the improvement in battery technology, and incentives from various governments we are seeing an increase in demand for electric vehicles. An open blockchain platform to cater for more Charging Station, tracking and managing them in an environment with multiple participating Service Provider will be very useful.

Goal

The goal of this project is to develop an open platform with tamper-proof data for collaboration between EV Charging Equipment Manufacturers, Vehicle Manufacturers, and Service Providers to meet the charging needs of growing Electric Vehicle Owners.

Stakeholders

  • Vehicle Manufacturers: Makers of Electric Vehicles.
  • EV Charger Manufacturers : EV Charging Stations Manufacturers.
  • Service Providers : Owners of EV Charging Stations.
  • Users: Electric Vehicle Owners.
  • Development Team

Team

Name Designation
Moayyad Alfaris Development Team
Oluwaseun Soetan Development Team
Trung Ngo Development Team
Temple Okosun Development Team



Measuring Success

  • A user should be able to determine the availability of charging stations for use within a specific geographic location
  • Having zero data breach incidence related to devices and controllers

Transition descriptions

Transition Functions

  • Register Controller
  • Update Controller
  • Register Device
  • Assign Controller
  • Change Controller
  • Execute Device Command
  • Update Device
  • Update Device Status

Other Functions

  • Get All Controllers
  • Get Device Controller
  • Get Device Logs
  • Get Controller Devices
  • Change Controller
  • Execute Device Command
  • Get Device
  • Get All Devices

Transition Functions Details

Function Name Input Output Role Description
Register Controller Controller ID
Controller Name
Service Provider
Location
None Super System (Administrator
Registers new controller.
Update Controller Location
Service Provider
None Super System
Updates controller details.
Register Device Device ID
Brand
Model
MAC
Power Type
Location
None Super System
Registers a new device.
Assign Controller Device ID
Controller ID
None Super System
Assigns the device to the first controller.
Change Controller Device ID
Controller ID
None Super System
Assigns the device to a new controller.
Execute Device Command Device ID
Command
Result
Controller Adminstrator Sends a command for execution on a device.
Update Device Device ID
Current Temperature
None Device Update device information
Update Device Status Device ID
In Use
None Device Update if the device is in use.


Other Functions Details

Function Name Input Output Role Description
Get All Controllers None Array of Controller ID Super System
Returns all the registered controllers in the network.
Get Device Controller Device ID Controller ID Device Returns who controls this device.
Get Device Logs Device ID Array of Logs Controller Returns log data from a device.
Get Controller Devices Controller ID
Array of Controller Devices Controller
Super System
Returns list of devices of a particular controller.
Get Device Device ID
Brand
Model
Power Type
Location
User Return device information to a user.
Get All Devices None Array of Device ID Super System Returns a list of all devices.

---

State data descriptions

Controller

  • Controller
  • Controller ID
  • Controller Name
  • Location (Long, Lat)
  • Service Provider
  • Devices : [ Device ID, Device Log History [ ] ]
Field Name Type Example
Controller ID Number 1234
Controller Name String “”
Location [float, float] Long, Lat
Service Provider Number 1234
Devices Array []
Device ID Number 1234
Device Log History Array []
Log String “”


Device

  • Device ID (Unique Identifier)
  • Brand
  • Model
  • MAC Address
  • Location (Long, Lat)
  • Status (On/Off)
  • Last seen (Date/Time)
  • Power Type (AC/DC)
  • Current Temp (in Celsius)
  • In use (Charging or Not)
  • Last executed command
  • Last execution date/time
  • Controller ID
Field Name Type Example
Device ID Number 123
Brand String “”
Model String “”
MAC Address String Format: “ABC-123-XYZ”
Location Float, Float Long, Lat
Status Boolean On = True, Off = False
Last seen Date/Time
Power Type String AC or DC
Current Temp Double In Celsius
In use Boolean True for charging, False of stand by
Last Command String Command text
Last Command Date Date/Time
Controller ID Number 123

---

Role Descriptions

  • Controller
  • Device
  • Super System
  • User
Role Description Access Rights
Controller A controller device for multiple EV Chargers. Read and write access to device including execute commands.
Device An EV Charger Device. Read access to device data.
Super System Main terminal that carries out administrative functions. Read and write access to controllers.
User EV Charger user Read access to a device.

---

Blockchain Architectural Diagrams

State Diagram

HLF Diagram

Blockchain Architetcture


BACKEND – RESTful API endpoints

Endpoint Path HTTP method Query input Output
/controller /all
GET None Object - All controllers
/register POST controllerName,
serviceProvider,
location.long,
location.lat
success/fail
/update POST controllerID,
serviceProvider,
location.long,
location.lang
success/fail
/change POST deviceID,
newControllerID
success/fail
/assign POST deviceID,
controllerID
success/fail
/devices GET id Object - Controller's devices
/devices /all GET Object - All devices
/id GET deviceId Object- A device's details
/update POST deviceId,
currentTemp
success/fail
/updateStatus POST deviceId success/fail
/controller GET deviceId Object - Controller Id
/register POST brand,
model,
mac,
powerType,
location.long,
location.lat
success/fail
/executeCommand POST deviceId,
command
success/fail