- Service Providers: Investors who purchased EV Charging equipment from manufacturers and rented a location in a parking lot for hosting these chargers.
- Controller: A parking lot owner that hosts those devices or a utility company to which the device is connected
- Users: Owners of electric vehicles who visit a location to charge their vehicles.
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.
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.
- 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
Name | Designation |
---|---|
Moayyad Alfaris | Development Team |
Oluwaseun Soetan | Development Team |
Trung Ngo | Development Team |
Temple Okosun | Development Team |
- 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
- Register Controller
- Update Controller
- Register Device
- Assign Controller
- Change Controller
- Execute Device Command
- Update Device
- Update Device Status
- Get All Controllers
- Get Device Controller
- Get Device Logs
- Get Controller Devices
- Change Controller
- Execute Device Command
- Get Device
- Get All Devices
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. |
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. |
---
- 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 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 |
---
- 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. |
---
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 |