Update tests/ocpp-server/server.py
[e-mobility-charging-stations-simulator.git] / tests / ocpp-server / README.md
CommitLineData
fa16d389
S
1# OCPP2 Mock Server
2
dd4588bb 3This project includes an Open Charge Point Protocol (OCPP) version 2.0.1 mock server implemented in Python.
fa16d389
S
4
5## Prerequisites
6
c11be92a 7This project requires Python 3.7+ and [poetry](https://python-poetry.org/) to install the required packages:
f93800e5 8
ac96356c 9```shell
c11be92a 10poetry install
fa16d389
S
11```
12
13## Running the Server
14
15To start the server, run the `server.py` script:
16
ac96356c 17```shell
3a89ffcb 18poetry run task server
fa16d389 19```
f93800e5 20
7c945b4a
S
21The server will start listening for connections on port 9000.
22
23## Running the server with command sending
24
25You can also specify a command and a period duration with the --request and --period options respectively when running the server. The server will then send your chosen command to the connected client every period seconds.
26
27### GetBaseReport Command
28
29To run the server and send a GetBaseReport command every 5 seconds, use:
fa16d389 30
f937c172
S
31```shell
32poetry run task server --request GetBaseReport --period 5
33```
f93800e5 34
7c945b4a
S
35=======
36
37### ClearCache Command
38
39To run the server and send a ClearCache command every 5 seconds, use:
40
41```shell
42poetry run task server --request ClearCache --period 5
43```
44
45Please be mindful that these commands were examples according to the provided scenario, the available commands and their syntax might vary depending on the ocpp version and the implemented functionalities on your server.
fa16d389
S
46
47## Overview of the Server Scripts
48
49### Server.py
50
4c69efea 51The server script waits for connections from clients. When a client connects, the server creates a new instance of the `ChargePoint` class. This class includes methods for handling various OCPP messages, most of which return a dummy response.
fa16d389 52
4c69efea 53The server script uses the `websockets` and `ocpp` libraries to facilitate the implementation.
fa16d389 54
ac96356c
JB
55## Development
56
57### Code formatting
58
59```shell
60poetry run task format
61```
62
63### Code linting
64
65```shell
66poetry run task lint
67```
68
fa16d389
S
69## Note
70
c11be92a 71Primarily, this software is intended for testing applications. The server script don't adhere to the full OCPP specifications and it is advised not to use them in a production environment without additional development.
fa16d389
S
72
73For reference:
74https://github.com/mobilityhouse/ocpp