1.. zephyr:code-sample:: ocpp
2   :name: OCPP charge point
3   :relevant-api: ocpp_api
4
5   Implement an OCPP charge point that connects to a Central System server and
6   simulates the meter readings.
7
8Overview
9********
10
11Open Charge Point Protocol (OCPP) is an application protocol for communication
12between Charge Points (Electric vehicle (EV) charging stations) and a central
13management system, also known as a charging station network.
14
15This ocpp sample application for Zephyr implements the OCPP library
16and establishes a connection to an Central System server using the web socket
17
18The source code for this sample application can be found at:
19:zephyr_file:`samples/net/ocpp`.
20
21Requirements
22************
23
24- Linux machine
25- STM32 Discovery kit (32F769IDISCOVERY) or any network interface device
26- SteVe Demo Server (<https://github.com/steve-community/steve/blob/master/README.md>)
27- LAN for testing purposes (Ethernet)
28
29Building and Running
30********************
31
32Build the ocpp sample application like this:
33
34.. zephyr-app-commands::
35   :zephyr-app: samples/net/ocpp
36   :board: <board to use>
37   :goals: build
38   :compact:
39
40The sample application is to built and tested on
41
42.. code-block:: console
43
44	west build -b stm32f769i_disco
45	west flash
46
47The output of sample is:
48
49.. code-block:: console
50
51	*** Booting Zephyr OS build v3.6.0-rc1-37-g8c035d8f24cf ***
52	OCPP sample stm32f769i_disco
53	[00:00:02.642,000] <inf> net_dhcpv4: Received: 192.168.1.101
54	[00:00:02.642,000] <inf> main: net mgr cb
55	[00:00:02.642,000] <inf> main: Your address: 192.168.1.101
56	[00:00:02.642,000] <inf> main: Lease time: 86400 seconds
57	[00:00:02.642,000] <inf> main: Subnet: 255.255.255.0
58	[00:00:02.643,000] <inf> main: Router: 192.168.1.1
59	[00:00:07.011,000] <inf> main: cs server 122.165.245.213 8180
60	[00:00:07.011,000] <inf> main: IPv4 Address 122.165.245.213
61	[00:00:07.024,000] <inf> main: sntp succ since Epoch: 1707890823
62	[00:00:07.024,000] <inf> ocpp: upstream init
63	[00:00:07.025,000] <inf> ocpp: ocpp init success
64	[00:00:17.066,000] <inf> main: ocpp auth 0> idcon 1 status 1
65	[00:00:17.101,000] <inf> main: ocpp auth 0> idcon 2 status 1
66	[00:00:17.197,000] <inf> main: ocpp start charging connector id 1
67	[00:00:17.255,000] <inf> main: ocpp start charging connector id 2
68	[00:01:07.064,000] <inf> main: ocpp stop charging connector id 1
69	[00:01:08.063,000] <inf> main: ocpp stop charging connector id 2
70