fix: modified mistakes
[e-mobility-charging-stations-simulator.git] / tests / ocpp-server / README.md
1 # OCPP2 Mock Server
2
3 This project includes an Open Charge Point Protocol (OCPP) version 2.0.1 mock server implemented in Python.
4
5 ## Prerequisites
6
7 This project requires Python 3.7+ and [poetry](https://python-poetry.org/) to install the required packages:
8
9 ```shell
10 poetry install
11 ```
12
13 ## Running the Server
14
15 To start the server, run the `server.py` script:
16
17 ```shell
18 poetry run task server
19 ```
20
21 The server will start listening for connections on port 9000.
22
23 ## Running the server with command sending
24
25 You 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
29 To run the server and send a GetBaseReport command every 5 seconds, use:
30
31 ```shell
32 poetry run task server --request GetBaseReport --period 5
33 ```
34
35 ### ClearCache Command
36
37 To run the server and send a ClearCache command every 5 seconds, use:
38
39 ```shell
40 poetry run task server --request ClearCache --period 5
41 ```
42
43 Please 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.
44
45 ## Overview of the Server Scripts
46
47 ### Server.py
48
49 The 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.
50
51 The server script uses the `websockets` and `ocpp` libraries to facilitate the implementation.
52
53 ## Development
54
55 ### Code formatting
56
57 ```shell
58 poetry run task format
59 ```
60
61 ### Code linting
62
63 ```shell
64 poetry run task lint
65 ```
66
67 ## Note
68
69 Primarily, 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.
70
71 For reference:
72 https://github.com/mobilityhouse/ocpp