## UI protocol
-Protocol to control the simulator via a Websocket or HTTP server.
+Protocol to control the simulator via a Websocket or HTTP server:
```mermaid
sequenceDiagram
Note over UI Server,Client: Transport protocol: HTTP, WebSocket
```
-### HTTP Protocol
-
-To learn how to use the HTTP protocol to pilot the simulator, an [Insomnia](https://insomnia.rest/) HTTP requests collection is available in [src/assets/ui-protocol](./src/assets/ui-protocol) directory.
-
### Websocket Protocol
SRPC protocol over Websocket. PDU stands for 'Protocol Data Unit'.
- Response:
`PDU`: {
- `status`: 'success' | 'failure'
+ `status`: 'success' | 'failure'
}
###### Stop Simulator
- Response:
`PDU`: {
- `status`: 'success' | 'failure'
+ `status`: 'success' | 'failure'
+ }
+
+###### List Charging Station Templates
+
+- Request:
+ `ProcedureName`: 'listTemplates'
+ `PDU`: {}
+
+- Response:
+ `PDU`: {
+ `status`: 'success' | 'failure',
+ `templates`: string[]
+ }
+
+###### Add Charging Stations
+
+- Request:
+ `ProcedureName`: 'addChargingStations'
+ `PDU`: {
+ `template`: string,
+ `numberOfStations`: number
+ }
+
+- Response:
+ `PDU`: {
+ `status`: 'success' | 'failure'
}
###### List Charging Stations
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `chargingStations`: ChargingStationData[]
+ `status`: 'success' | 'failure',
+ `chargingStations`: ChargingStationData[]
}
###### Start Charging Station
- Request:
`ProcedureName`: 'startChargingStation'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional)
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
###### Stop Charging Station
- Request:
`ProcedureName`: 'stopChargingStation'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
###### Open Connection
- Request:
`ProcedureName`: 'openConnection'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
###### Close Connection
- Request:
`ProcedureName`: 'closeConnection'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
###### Start Automatic Transaction Generator
- Request:
`ProcedureName`: 'startAutomaticTransactionGenerator'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
- `connectorIds`: connector id integer array (optional, default: all connectors)
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `connectorIds`: connector id integer array (optional, default: all connectors)
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
###### Stop Automatic Transaction Generator
- Request:
`ProcedureName`: 'stopAutomaticTransactionGenerator'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
- `connectorIds`: connector id integer array (optional, default: all connectors)
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `connectorIds`: connector id integer array (optional, default: all connectors)
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
###### OCPP commands trigger
- Request:
`ProcedureName`: 'startTransaction'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
- `connectorId`: connector id integer,
- `idTag`: RFID tag string
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `connectorId`: connector id integer,
+ `idTag`: RFID tag string
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
- **Stop Transaction**
- Request:
`ProcedureName`: 'stopTransaction'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
- `transactionId`: transaction id integer
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `transactionId`: transaction id integer
}
- Response:
`PDU`: {
`status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
- **Status Notification**
- Request:
`ProcedureName`: 'statusNotification'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
- `connectorId`: connector id integer,
- `errorCode`: connector error code,
- `status`: connector status
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `connectorId`: connector id integer,
+ `errorCode`: connector error code,
+ `status`: connector status
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
- **Heartbeat**
- Request:
`ProcedureName`: 'heartbeat'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
}
- Response:
`PDU`: {
- `status`: 'success' | 'failure',
- `hashIdsSucceeded`: charging station unique identifier strings array,
- `hashIdsFailed`: charging station unique identifier strings array (optional),
- `responsesFailed`: failed responses payload array (optional)
+ `status`: 'success' | 'failure',
+ `hashIdsSucceeded`: charging station unique identifier strings array,
+ `hashIdsFailed`: charging station unique identifier strings array (optional),
+ `responsesFailed`: failed responses payload array (optional)
}
+### HTTP Protocol
+
+To learn how to use the HTTP protocol to pilot the simulator, an [Insomnia](https://insomnia.rest/) HTTP requests collection is available in [src/assets/ui-protocol](./src/assets/ui-protocol) directory.
+
## Support, Feedback, Contributing
This project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/SAP/e-mobility-charging-stations-simulator/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md).