Unify supervision urls setup and distribution to charging stations
[e-mobility-charging-stations-simulator.git] / README.md
index 6f69c51b321fcb9b7a2d0af5b21b2447d832e10a..9f1156e75fe46147311288736462254b850599e6 100644 (file)
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ choco install -y nodejs-lts
 brew install node@14
 ```
 
-###  GNU/Linux: 
+### GNU/Linux: 
 
 * [NodeSource](https://github.com/nodesource/distributions) Node.js Binary Distributions for version 14.X
 
@@ -43,14 +43,14 @@ The charging stations simulator have an automatic configuration files reload fea
 
 But the modifications to test have to be done to the files in the build result directory [dist/assets](dist/assets). Once the modifications are finished, they have to be reported or copied to the matching files in the build source directory [src/assets](src/assets) to ensure they will be taken into account at next build. 
 
-### Global configuration 
+### Main configuration 
 
 **src/assets/config.json**:
 
 Key | Value(s) | Default Value | Value type | Description 
 --- | -------| --------------| ---------- | ------------
-supervisionURLs | | [] | string[] |  array of connection URIs to OCPP-J servers
-distributeStationsToTenantsEqually | true/false | true | boolean | distribute charging stations uniformly to the OCPP-J servers
+supervisionUrls | | [] | string \| string[] | string or array of global connection URIs to OCPP-J servers
+supervisionUrlDistribution | round-robin/random/sequential | round-robin | boolean | supervision urls distribution policy to simulated charging stations
 workerProcess | workerSet/staticPool/dynamicPool | workerSet | string | worker threads process type
 workerStartDelay | | 500 | integer | milliseconds to wait at charging station worker threads startup
 workerPoolMinSize | | 4 | integer | worker threads pool minimum number of threads
@@ -64,9 +64,10 @@ logRotate | true/false | true | boolean | enable daily log files rotation
 logMaxFiles | | 7 | integer | maximum number of log files to keep
 logLevel | emerg/alert/crit/error/warning/notice/info/debug | info | string | winston logging level
 logFile | | combined.log | string | log file relative path
-logErrorFile | | error.log | string | error log file relative path 
-performanceStorage | | { "enabled": false, "type": "jsonfile", "file:///performanceRecords.json" } | { enabled: string; type: string; URI: string; } where type can be 'jsonfile' or 'mongodb' | performance storage configuration section
-stationTemplateURLs | | {}[] | { file: string; numberOfStations: number; }[] | array of charging station templates URIs configuration section (template file name and number of stations)
+logErrorFile | | error.log | string | error log file relative path
+uiWebSocketServer | | { "enabled": true, "options": { "host: "localhost", "port": 8080 } } | { enabled: boolean; options: ServerOptions; } | UI WebSocket server configuration section 
+performanceStorage | | { "enabled": false, "type": "jsonfile", "file:///performanceRecords.json" } | { enabled: boolean; type: string; URI: string; } where type can be 'jsonfile' or 'mongodb' | performance storage configuration section
+stationTemplateUrls | | {}[] | { file: string; numberOfStations: number; }[] | array of charging station templates URIs configuration section (template file name and number of stations)
 
 #### Worker process model: 
 
@@ -83,11 +84,14 @@ stationTemplateURLs | | {}[] | { file: string; numberOfStations: number; }[] | a
 
 Key | Value(s) | Default Value | Value type | Description 
 --- | -------| --------------| ---------- | ------------
-supervisionURL | | '' | string | connection URI to OCPP-J server
+supervisionUrls | | '' | string \| string[] | string or array of connection URIs to OCPP-J servers. It has priority over the global configuration parameter
 supervisionUser | | '' | string | basic HTTP authentication user to OCPP-J server
 supervisionPassword | | '' | 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 | 1.6 | string | OCPP version 
 ocppProtocol | json | json | string | OCPP protocol
+wsOptions | | {} | ClientOptions & ClientRequestArgs | [ws](https://github.com/websockets/ws) and node.js [http](https://nodejs.org/api/http.html) clients options intersection
 authorizationFile | | '' | string | RFID tags list file relative to src/assets path
 baseName | | '' | string | base name to build charging stations name
 nameSuffix | | '' | string | name suffix to build charging stations name
@@ -206,10 +210,10 @@ In the [docker](./docker) folder:
 make
 ```
 
-Or without the optional git submodules:
+Or with the optional git submodules:
 
 ```bash
-make SUBMODULES_INIT=false
+make SUBMODULES_INIT=true
 ```
 
 ## OCPP-J commands supported
@@ -238,7 +242,7 @@ make SUBMODULES_INIT=false
 #### Firmware Management Profile
 
 - :white_check_mark: GetDiagnostics
-- :x: DiagnosticsStatusNotification
+- :white_check_mark: DiagnosticsStatusNotification
 - :x: FirmwareStatusNotification
 - :x: UpdateFirmware