build(simulator): features for reserve-now and cancel-reservation support added
[e-mobility-charging-stations-simulator.git] / README.md
index 59bd5610e5b38a8cb64e024169211bc6831641b1..9fb599ae77d2589ba89b5a3539e8b0977a6238da 100644 (file)
--- a/README.md
+++ b/README.md
@@ -2,6 +2,7 @@
 
 # [e-mobility charging stations simulator](https://github.com/sap/e-mobility-charging-stations-simulator)
 
+[![CI worklow](https://github.com/SAP/e-mobility-charging-stations-simulator/actions/workflows/ci.yml/badge.svg)](https://github.com/SAP/e-mobility-charging-stations-simulator/actions/workflows/ci.yml)
 [![REUSE status](https://api.reuse.software/badge/github.com/SAP/e-mobility-charging-stations-simulator)](https://api.reuse.software/info/github.com/SAP/e-mobility-charging-stations-simulator)
 
 ## Summary
@@ -10,14 +11,14 @@ Simple [node.js](https://nodejs.org/) software to simulate and scale a set of ch
 
 ## Prerequisites
 
-Install the [node.js](https://nodejs.org/) LTS runtime environment:
+Install the [node.js](https://nodejs.org/) current LTS or superior version runtime environment:
 
 ### Windows
 
 - [Chocolatey](https://chocolatey.org/):
 
 ```powershell
-choco install -y nodejs-lts
+choco install -y nodejs
 ```
 
 ### MacOSX
@@ -25,7 +26,7 @@ choco install -y nodejs-lts
 - [Homebrew](https://brew.sh/):
 
 ```shell
-brew install node@16
+brew install node
 ```
 
 ### GNU/Linux
@@ -34,22 +35,29 @@ brew install node@16
 
 ## Installation
 
+Enable corepack if not already done and install latest pnpm version:
+
+```shell
+corepack enable
+corepack prepare pnpm@latest --activate
+```
+
 In the repository root, run the following command:
 
 ```shell
-npm install
+pnpm install
 ```
 
 ## Initial configuration
 
 Copy the configuration template file [src/assets/config-template.json](src/assets/config-template.json) to [src/assets/config.json](src/assets/config.json).  
-Copy the authorization RFID tags template file [src/assets/authorization-tags-template.json](src/assets/authorization-tags-template.json) to [src/assets/authorization-tags.json](src/assets/authorization-tags.json).
+Copy the RFID tags template file [src/assets/idtags-template.json](src/assets/idtags-template.json) to [src/assets/idtags.json](src/assets/idtags.json).
 
 Tweak them to your needs by following the section [configuration files syntax](README.md#configuration-files-syntax).
 
 ## Start
 
-To start the program, run: `npm start`.
+To start the program, run: `pnpm start`.
 
 ## Start Web UI
 
@@ -70,7 +78,7 @@ The charging stations simulator's configuration parameters must be within the `s
 
 All charging station configuration templates are in the directory [src/assets/station-templates](src/assets/station-templates).
 
-A list of RFID tags must be defined for the automatic transaction generator with a default location and name: `src/assets/authorization-tags.json`. A template file is available at [src/assets/authorization-tags-template.json](src/assets/authorization-tags-template.json).
+A list of RFID tags must be defined for the automatic transaction generator in a file with a default location and name: `src/assets/idtags.json`. A template file is available at [src/assets/idtags-template.json](src/assets/idtags-template.json).
 
 **Configuration files hierarchy and priority**:
 
@@ -98,8 +106,8 @@ But the modifications to test have to be done to the files in the build target d
 | logConsole                 | true/false                                       | false                                                                                                                                                                                                         | boolean                                                                                                                                                                                                                             | output logs on the console                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
 | logFormat                  |                                                  | simple                                                                                                                                                                                                        | string                                                                                                                                                                                                                              | [winston](https://github.com/winstonjs/winston) log format                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
 | logRotate                  | true/false                                       | true                                                                                                                                                                                                          | boolean                                                                                                                                                                                                                             | enable daily log files rotation                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
-| logMaxFiles                | x/"xd" where x is an integer                     | undefined                                                                                                                                                                                                     | integer \| string                                                                                                                                                                                                                   | maximum number of log files                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
-| logMaxSize                 | x/"xk"/"xm"/"xg" where x is a number             | undefined                                                                                                                                                                                                     | number \| string                                                                                                                                                                                                                    | maximum size of log files in bytes, or units of kb, mb, and gb                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
+| logMaxFiles                | x/"xd" where x is an integer                     | undefined                                                                                                                                                                                                     | integer \| string                                                                                                                                                                                                                   | maximum number of log files: https://github.com/winstonjs/winston-daily-rotate-file#options                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
+| logMaxSize                 | x/"xk"/"xm"/"xg" where x is a number             | undefined                                                                                                                                                                                                     | number \| string                                                                                                                                                                                                                    | maximum size of log files in bytes, or units of kb, mb, and gb: https://github.com/winstonjs/winston-daily-rotate-file#options                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
 | logLevel                   | emerg/alert/crit/error/warning/notice/info/debug | info                                                                                                                                                                                                          | string                                                                                                                                                                                                                              | [winston](https://github.com/winstonjs/winston) logging level                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
 | logFile                    |                                                  | combined.log                                                                                                                                                                                                  | string                                                                                                                                                                                                                              | log file relative path                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
 | logErrorFile               |                                                  | error.log                                                                                                                                                                                                     | string                                                                                                                                                                                                                              | error log file relative path                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
@@ -123,63 +131,64 @@ But the modifications to test have to be done to the files in the build target d
 
 **src/assets/station-templates/\<name\>.json**:
 
-| Key                                | Value(s)      | Default Value                                                                                                                       | Value type                                                                                                                                     | Description                                                                                                                                                                                                                         |
-| ---------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| supervisionUrls                    |               | []                                                                                                                                  | string \| string[]                                                                                                                             | string or array of connection URIs to OCPP-J servers                                                                                                                                                                                |
-| supervisionUser                    |               | undefined                                                                                                                           | string                                                                                                                                         | basic HTTP authentication user to OCPP-J server                                                                                                                                                                                     |
-| supervisionPassword                |               | undefined                                                                                                                           | string                                                                                                                                         | basic HTTP authentication password to OCPP-J server                                                                                                                                                                                 |
-| supervisionUrlOcppConfiguration    | true/false    | false                                                                                                                               | boolean                                                                                                                                        | allow supervision URL configuration via a vendor OCPP parameter key                                                                                                                                                                 |
-| supervisionUrlOcppKey              |               | 'ConnectionUrl'                                                                                                                     | string                                                                                                                                         | the vendor string that will be used as a vendor OCPP parameter key to set the supervision URL                                                                                                                                       |
-| ocppVersion                        | 1.6/2.0/2.0.1 | 1.6                                                                                                                                 | string                                                                                                                                         | OCPP version                                                                                                                                                                                                                        |
-| ocppProtocol                       | json          | json                                                                                                                                | string                                                                                                                                         | OCPP protocol                                                                                                                                                                                                                       |
-| ocppStrictCompliance               | true/false    | false                                                                                                                               | boolean                                                                                                                                        | strict adherence to the OCPP version and protocol specifications                                                                                                                                                                    |
-| ocppPersistentConfiguration        | true/false    | true                                                                                                                                | boolean                                                                                                                                        | enable persistent OCPP parameters storage by charging stations 'hashId'. The persistency is ensured by the charging stations configuration files in [dist/assets/configurations](dist/assets/configurations)                        |
-| stationInfoPersistentConfiguration | true/false    | true                                                                                                                                | boolean                                                                                                                                        | enable persistent station information and specifications storage by charging stations 'hashId'. The persistency is ensured by the charging stations configuration files in [dist/assets/configurations](dist/assets/configurations) |
-| wsOptions                          |               | {}                                                                                                                                  | ClientOptions & ClientRequestArgs                                                                                                              | [ws](https://github.com/websockets/ws) and node.js [http](https://nodejs.org/api/http.html) clients options intersection                                                                                                            |
-| authorizationFile                  |               | undefined                                                                                                                           | string                                                                                                                                         | RFID tags list file relative to src/assets path                                                                                                                                                                                     |
-| baseName                           |               | undefined                                                                                                                           | string                                                                                                                                         | base name to build charging stations id                                                                                                                                                                                             |
-| nameSuffix                         |               | undefined                                                                                                                           | string                                                                                                                                         | name suffix to build charging stations id                                                                                                                                                                                           |
-| fixedName                          | true/false    | false                                                                                                                               | boolean                                                                                                                                        | use the baseName as the charging stations unique name                                                                                                                                                                               |
-| chargePointModel                   |               | undefined                                                                                                                           | string                                                                                                                                         | charging stations model                                                                                                                                                                                                             |
-| chargePointVendor                  |               | undefined                                                                                                                           | string                                                                                                                                         | charging stations vendor                                                                                                                                                                                                            |
-| chargePointSerialNumberPrefix      |               | undefined                                                                                                                           | string                                                                                                                                         | charge point serial number prefix                                                                                                                                                                                                   |
-| chargeBoxSerialNumberPrefix        |               | undefined                                                                                                                           | string                                                                                                                                         | charge box serial number prefix (deprecated in OCPP 1.6)                                                                                                                                                                            |
-| firmwareVersionPattern             |               | Semantic versionning regular expression: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string | string                                                                                                                                         | charging stations firmware version pattern                                                                                                                                                                                          |
-| firmwareVersion                    |               | undefined                                                                                                                           | string                                                                                                                                         | charging stations firmware version                                                                                                                                                                                                  |
-| power                              |               |                                                                                                                                     | float \| float[]                                                                                                                               | charging stations maximum power value(s)                                                                                                                                                                                            |
-| powerSharedByConnectors            | true/false    | false                                                                                                                               | boolean                                                                                                                                        | charging stations power shared by its connectors                                                                                                                                                                                    |
-| powerUnit                          | W/kW          | W                                                                                                                                   | string                                                                                                                                         | charging stations power unit                                                                                                                                                                                                        |
-| currentOutType                     | AC/DC         | AC                                                                                                                                  | string                                                                                                                                         | charging stations current out type                                                                                                                                                                                                  |
-| voltageOut                         |               | AC:230/DC:400                                                                                                                       | integer                                                                                                                                        | charging stations voltage out                                                                                                                                                                                                       |
-| numberOfPhases                     | 0/1/3         | AC:3/DC:0                                                                                                                           | integer                                                                                                                                        | charging stations number of phase(s)                                                                                                                                                                                                |
-| numberOfConnectors                 |               |                                                                                                                                     | integer \| integer[]                                                                                                                           | charging stations number of connector(s)                                                                                                                                                                                            |
-| useConnectorId0                    | true/false    | true                                                                                                                                | boolean                                                                                                                                        | use connector id 0 definition from the charging station configuration template                                                                                                                                                      |
-| randomConnectors                   | true/false    | false                                                                                                                               | boolean                                                                                                                                        | randomize runtime connector id affectation from the connector id definition in charging station configuration template                                                                                                              |
-| resetTime                          |               | 60                                                                                                                                  | integer                                                                                                                                        | seconds to wait before the charging stations come back at reset                                                                                                                                                                     |
-| autoRegister                       | true/false    | false                                                                                                                               | boolean                                                                                                                                        | set charging stations as registered at boot notification for testing purpose                                                                                                                                                        |
-| autoReconnectMaxRetries            |               | -1 (unlimited)                                                                                                                      | integer                                                                                                                                        | connection retries to the OCPP-J server                                                                                                                                                                                             |
-| reconnectExponentialDelay          | true/false    | false                                                                                                                               | boolean                                                                                                                                        | connection delay retry to the OCPP-J server                                                                                                                                                                                         |
-| registrationMaxRetries             |               | -1 (unlimited)                                                                                                                      | integer                                                                                                                                        | charging stations boot notification retries                                                                                                                                                                                         |
-| amperageLimitationOcppKey          |               | undefined                                                                                                                           | string                                                                                                                                         | charging stations OCPP parameter key used to set the amperage limit, per phase for each connector on AC and global for DC                                                                                                           |
-| amperageLimitationUnit             | A/cA/dA/mA    | A                                                                                                                                   | string                                                                                                                                         | charging stations amperage limit unit                                                                                                                                                                                               |
-| enableStatistics                   | true/false    | false                                                                                                                               | boolean                                                                                                                                        | enable charging stations statistics                                                                                                                                                                                                 |
-| mustAuthorizeAtRemoteStart         | true/false    | true                                                                                                                                | boolean                                                                                                                                        | always send authorize at remote start transaction when AuthorizeRemoteTxRequests is enabled                                                                                                                                         |
-| payloadSchemaValidation            | true/false    | true                                                                                                                                | boolean                                                                                                                                        | validate OCPP commands PDU against [OCA](https://www.openchargealliance.org/) JSON schemas                                                                                                                                          |
-| beginEndMeterValues                | true/false    | false                                                                                                                               | boolean                                                                                                                                        | enable Transaction.{Begin,End} MeterValues                                                                                                                                                                                          |
-| outOfOrderEndMeterValues           | true/false    | false                                                                                                                               | boolean                                                                                                                                        | send Transaction.End MeterValues out of order. Need to relax OCPP specifications strict compliance ('ocppStrictCompliance' parameter)                                                                                               |
-| meteringPerTransaction             | true/false    | true                                                                                                                                | boolean                                                                                                                                        | enable metering history on a per transaction basis                                                                                                                                                                                  |
-| transactionDataMeterValues         | true/false    | false                                                                                                                               | boolean                                                                                                                                        | enable transaction data MeterValues at stop transaction                                                                                                                                                                             |
-| mainVoltageMeterValues             | true/false    | true                                                                                                                                | boolean                                                                                                                                        | include charging stations main voltage MeterValues on three phased charging stations                                                                                                                                                |
-| phaseLineToLineVoltageMeterValues  | true/false    | false                                                                                                                               | boolean                                                                                                                                        | include charging stations line to line voltage MeterValues on three phased charging stations                                                                                                                                        |
-| customValueLimitationMeterValues   | true/false    | true                                                                                                                                | boolean                                                                                                                                        | enable limitation on custom fluctuated value in MeterValues                                                                                                                                                                         |
-| firmwareUpgrade                    |               | {<br />"versionUpgrade": {<br />"step": 1<br />},<br />"reset": true<br />}                                                         | {<br />versionUpgrade: {<br />patternGroup: number;<br />step: number;<br />};<br />reset: boolean;<br />failureStatus: FirmwareStatus;<br />} | Configuration section for simulating firmware upgrade support.                                                                                                                                                                      |
-| commandsSupport                    |               | {<br />"incomingCommands": {},<br />"outgoingCommands": {}<br />}                                                                   | {<br /> incomingCommands: Record<IncomingRequestCommand, boolean>;<br />outgoingCommands?: Record<RequestCommand, boolean>;<br />}             | Configuration section for OCPP commands support. Empty section or subsections means all implemented OCPP commands are supported                                                                                                     |
-| messageTriggerSupport              |               | {}                                                                                                                                  | Record<MessageTrigger, boolean>                                                                                                                | Configuration section for OCPP commands trigger support. Empty section means all implemented OCPP trigger commands are supported                                                                                                    |
-| Configuration                      |               |                                                                                                                                     | ChargingStationConfiguration                                                                                                                   | charging stations OCPP parameters configuration section                                                                                                                                                                             |
-| AutomaticTransactionGenerator      |               |                                                                                                                                     | AutomaticTransactionGenerator                                                                                                                  | charging stations ATG configuration section                                                                                                                                                                                         |
-| Connectors                         |               |                                                                                                                                     | Connectors                                                                                                                                     | charging stations connectors configuration section                                                                                                                                                                                  |
-
-#### Configuration section
+| Key                                | Value(s)      | Default Value                                                                                                                       | Value type                                                                                                                                                               | Description                                                                                                                                                                                                                         |
+| ---------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| supervisionUrls                    |               | []                                                                                                                                  | string \| string[]                                                                                                                                                       | string or array of connection URIs to OCPP-J servers                                                                                                                                                                                |
+| supervisionUser                    |               | undefined                                                                                                                           | string                                                                                                                                                                   | basic HTTP authentication user to OCPP-J server                                                                                                                                                                                     |
+| supervisionPassword                |               | undefined                                                                                                                           | string                                                                                                                                                                   | basic HTTP authentication password to OCPP-J server                                                                                                                                                                                 |
+| supervisionUrlOcppConfiguration    | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | allow supervision URL configuration via a vendor OCPP parameter key                                                                                                                                                                 |
+| supervisionUrlOcppKey              |               | 'ConnectionUrl'                                                                                                                     | string                                                                                                                                                                   | the vendor string that will be used as a vendor OCPP parameter key to set the supervision URL                                                                                                                                       |
+| ocppVersion                        | 1.6/2.0/2.0.1 | 1.6                                                                                                                                 | string                                                                                                                                                                   | OCPP version                                                                                                                                                                                                                        |
+| ocppProtocol                       | json          | json                                                                                                                                | string                                                                                                                                                                   | OCPP protocol                                                                                                                                                                                                                       |
+| ocppStrictCompliance               | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | strict adherence to the OCPP version and protocol specifications                                                                                                                                                                    |
+| ocppPersistentConfiguration        | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | enable persistent OCPP parameters storage by charging stations 'hashId'. The persistency is ensured by the charging stations configuration files in [dist/assets/configurations](dist/assets/configurations)                        |
+| stationInfoPersistentConfiguration | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | enable persistent station information and specifications storage by charging stations 'hashId'. The persistency is ensured by the charging stations configuration files in [dist/assets/configurations](dist/assets/configurations) |
+| wsOptions                          |               | {}                                                                                                                                  | ClientOptions & ClientRequestArgs                                                                                                                                        | [ws](https://github.com/websockets/ws) and node.js [http](https://nodejs.org/api/http.html) clients options intersection                                                                                                            |
+| idTagsFile                         |               | undefined                                                                                                                           | string                                                                                                                                                                   | RFID tags list file relative to src/assets path                                                                                                                                                                                     |
+| baseName                           |               | undefined                                                                                                                           | string                                                                                                                                                                   | base name to build charging stations id                                                                                                                                                                                             |
+| nameSuffix                         |               | undefined                                                                                                                           | string                                                                                                                                                                   | name suffix to build charging stations id                                                                                                                                                                                           |
+| fixedName                          | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | use the baseName as the charging stations unique name                                                                                                                                                                               |
+| chargePointModel                   |               | undefined                                                                                                                           | string                                                                                                                                                                   | charging stations model                                                                                                                                                                                                             |
+| chargePointVendor                  |               | undefined                                                                                                                           | string                                                                                                                                                                   | charging stations vendor                                                                                                                                                                                                            |
+| chargePointSerialNumberPrefix      |               | undefined                                                                                                                           | string                                                                                                                                                                   | charge point serial number prefix                                                                                                                                                                                                   |
+| chargeBoxSerialNumberPrefix        |               | undefined                                                                                                                           | string                                                                                                                                                                   | charge box serial number prefix (deprecated in OCPP 1.6)                                                                                                                                                                            |
+| firmwareVersionPattern             |               | Semantic versionning regular expression: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string | string                                                                                                                                                                   | charging stations firmware version pattern                                                                                                                                                                                          |
+| firmwareVersion                    |               | undefined                                                                                                                           | string                                                                                                                                                                   | charging stations firmware version                                                                                                                                                                                                  |
+| power                              |               |                                                                                                                                     | float \| float[]                                                                                                                                                         | charging stations maximum power value(s)                                                                                                                                                                                            |
+| powerSharedByConnectors            | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | charging stations power shared by its connectors                                                                                                                                                                                    |
+| powerUnit                          | W/kW          | W                                                                                                                                   | string                                                                                                                                                                   | charging stations power unit                                                                                                                                                                                                        |
+| currentOutType                     | AC/DC         | AC                                                                                                                                  | string                                                                                                                                                                   | charging stations current out type                                                                                                                                                                                                  |
+| voltageOut                         |               | AC:230/DC:400                                                                                                                       | integer                                                                                                                                                                  | charging stations voltage out                                                                                                                                                                                                       |
+| numberOfPhases                     | 0/1/3         | AC:3/DC:0                                                                                                                           | integer                                                                                                                                                                  | charging stations number of phase(s)                                                                                                                                                                                                |
+| numberOfConnectors                 |               |                                                                                                                                     | integer \| integer[]                                                                                                                                                     | charging stations number of connector(s)                                                                                                                                                                                            |
+| useConnectorId0                    | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | use connector id 0 definition from the charging station configuration template                                                                                                                                                      |
+| randomConnectors                   | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | randomize runtime connector id affectation from the connector id definition in charging station configuration template                                                                                                              |
+| resetTime                          |               | 60                                                                                                                                  | integer                                                                                                                                                                  | seconds to wait before the charging stations come back at reset                                                                                                                                                                     |
+| autoRegister                       | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | set charging stations as registered at boot notification for testing purpose                                                                                                                                                        |
+| autoReconnectMaxRetries            |               | -1 (unlimited)                                                                                                                      | integer                                                                                                                                                                  | connection retries to the OCPP-J server                                                                                                                                                                                             |
+| reconnectExponentialDelay          | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | connection delay retry to the OCPP-J server                                                                                                                                                                                         |
+| registrationMaxRetries             |               | -1 (unlimited)                                                                                                                      | integer                                                                                                                                                                  | charging stations boot notification retries                                                                                                                                                                                         |
+| amperageLimitationOcppKey          |               | undefined                                                                                                                           | string                                                                                                                                                                   | charging stations OCPP parameter key used to set the amperage limit, per phase for each connector on AC and global for DC                                                                                                           |
+| amperageLimitationUnit             | A/cA/dA/mA    | A                                                                                                                                   | string                                                                                                                                                                   | charging stations amperage limit unit                                                                                                                                                                                               |
+| enableStatistics                   | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | enable charging stations statistics                                                                                                                                                                                                 |
+| mustAuthorizeAtRemoteStart         | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | always send authorize at remote start transaction when AuthorizeRemoteTxRequests is enabled                                                                                                                                         |
+| payloadSchemaValidation            | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | validate OCPP commands PDU against [OCA](https://www.openchargealliance.org/) JSON schemas                                                                                                                                          |
+| beginEndMeterValues                | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | enable Transaction.{Begin,End} MeterValues                                                                                                                                                                                          |
+| outOfOrderEndMeterValues           | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | send Transaction.End MeterValues out of order. Need to relax OCPP specifications strict compliance ('ocppStrictCompliance' parameter)                                                                                               |
+| meteringPerTransaction             | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | enable metering history on a per transaction basis                                                                                                                                                                                  |
+| transactionDataMeterValues         | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | enable transaction data MeterValues at stop transaction                                                                                                                                                                             |
+| mainVoltageMeterValues             | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | include charging stations main voltage MeterValues on three phased charging stations                                                                                                                                                |
+| phaseLineToLineVoltageMeterValues  | true/false    | false                                                                                                                               | boolean                                                                                                                                                                  | include charging stations line to line voltage MeterValues on three phased charging stations                                                                                                                                        |
+| customValueLimitationMeterValues   | true/false    | true                                                                                                                                | boolean                                                                                                                                                                  | enable limitation on custom fluctuated value in MeterValues                                                                                                                                                                         |
+| firmwareUpgrade                    |               | {<br />"versionUpgrade": {<br />"step": 1<br />},<br />"reset": true<br />}                                                         | {<br />versionUpgrade: {<br />patternGroup: number;<br />step: number;<br />};<br />reset: boolean;<br />failureStatus: 'DownloadFailed' \| 'InstallationFailed';<br />} | Configuration section for simulating firmware upgrade support.                                                                                                                                                                      |
+| commandsSupport                    |               | {<br />"incomingCommands": {},<br />"outgoingCommands": {}<br />}                                                                   | {<br /> incomingCommands: Record<IncomingRequestCommand, boolean>;<br />outgoingCommands?: Record<RequestCommand, boolean>;<br />}                                       | Configuration section for OCPP commands support. Empty section or subsections means all implemented OCPP commands are supported                                                                                                     |
+| messageTriggerSupport              |               | {}                                                                                                                                  | Record<MessageTrigger, boolean>                                                                                                                                          | Configuration section for OCPP commands trigger support. Empty section means all implemented OCPP trigger commands are supported                                                                                                    |
+| Configuration                      |               |                                                                                                                                     | ChargingStationOcppConfiguration                                                                                                                                         | charging stations OCPP parameters configuration section                                                                                                                                                                             |
+| AutomaticTransactionGenerator      |               |                                                                                                                                     | AutomaticTransactionGeneratorConfiguration                                                                                                                               | charging stations ATG configuration section                                                                                                                                                                                         |
+| Connectors                         |               |                                                                                                                                     | Record<string, ConnectorStatus>                                                                                                                                          | charging stations connectors configuration section                                                                                                                                                                                  |
+| Evses                              |               |                                                                                                                                     | Record<string, EvseTemplate>                                                                                                                                             | charging stations EVSEs configuration section                                                                                                                                                                                       |
+
+#### Configuration section syntax example
 
 ```json
   "Configuration": {
@@ -205,9 +214,9 @@ But the modifications to test have to be done to the files in the build target d
   }
 ```
 
-#### AutomaticTransactionGenerator section
+#### AutomaticTransactionGenerator section syntax example
 
-Section type definition:
+##### Type definition:
 
 ```ts
 type AutomaticTransactionGeneratorConfiguration = {
@@ -224,7 +233,7 @@ type AutomaticTransactionGeneratorConfiguration = {
 };
 ```
 
-Section example:
+##### Example:
 
 ```json
   "AutomaticTransactionGenerator": {
@@ -241,7 +250,7 @@ Section example:
   }
 ```
 
-#### Connectors section
+#### Connectors section syntax example
 
 ```json
   "Connectors": {
@@ -260,7 +269,8 @@ Section example:
         ...
         {
           "unit": "A",
-          "measurand": "Current.Import"
+          "measurand": "Current.Import",
+          "minimum": "0.5"
         },
         ...
         {
@@ -272,6 +282,46 @@ Section example:
   },
 ```
 
+#### Evses section syntax example
+
+```json
+  "Evses": {
+    "0": {
+      "Connectors": {
+        "0": {}
+      }
+    },
+    "1": {
+      "Connectors": {
+        "1": {
+          "bootStatus": "Available",
+          "MeterValues": [
+            ...
+            {
+              "unit": "W",
+              "measurand": "Power.Active.Import",
+              "phase": "L1-N",
+              "value": "5000",
+              "fluctuationPercent": "10"
+            },
+            ...
+            {
+              "unit": "A",
+              "measurand": "Current.Import",
+              "minimum": "0.5"
+            },
+            ...
+            {
+              "unit": "Wh"
+            },
+            ...
+          ]
+        }
+      }
+    }
+  },
+```
+
 ### Charging station configuration
 
 **dist/assets/configurations/\<hashId\>.json**:
@@ -339,8 +389,8 @@ make SUBMODULES_INIT=true
 
 #### Reservation Profile
 
-- :x: CancelReservation
-- :x: ReserveNow
+- :white_check_mark: CancelReservation
+- :white_check_mark: ReserveNow
 
 #### Smart Charging Profile
 
@@ -352,6 +402,21 @@ make SUBMODULES_INIT=true
 
 - :white_check_mark: TriggerMessage
 
+### Version 2.x.x
+
+#### Provisioning
+
+- :white_check_mark: BootNotification
+
+#### Authorization
+
+- :white_check_mark: ClearCache
+
+#### Availability
+
+- :white_check_mark: StatusNotification
+- :white_check_mark: Heartbeat
+
 ## OCPP-J standard parameters supported
 
 All kind of OCPP parameters are supported in a charging station configuration or a charging station configuration template file. The list here mention the standard ones also handled automatically in the simulator.
@@ -408,6 +473,8 @@ All kind of OCPP parameters are supported in a charging station configuration or
 
 - _none_
 
+### Version 2.x.x
+
 ## UI protocol
 
 Protocol to control the simulator via a Websocket or HTTP server.
@@ -670,4 +737,4 @@ We as members, contributors, and leaders pledge to make participation in our com
 
 ## Licensing
 
-Copyright 2020-2022 SAP SE or an SAP affiliate company and e-mobility-charging-stations-simulator contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/SAP/e-mobility-charging-stations-simulator).
+Copyright 2020-2023 SAP SE or an SAP affiliate company and e-mobility-charging-stations-simulator contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/SAP/e-mobility-charging-stations-simulator).