X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=README.md;h=407c160eef46fb2fa1e71e50cad8429a8df38a21;hb=d1e8b4ef3fd1b5c725d386269c25ee8f07510b97;hp=9b5d68be4137811df8732a1196c60e3e58fa837a;hpb=0302da7935a499dfff6304edab278253c1ba39e9;p=e-mobility-charging-stations-simulator.git diff --git a/README.md b/README.md index 9b5d68be..407c160e 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,6 @@ Simple [node.js](https://nodejs.org/) program to simulate a set of charging stations based on the OCPP-J 1.6 protocol. -## Start - -To start the program, run: `npm start`. - ## Configuration syntax All configuration files are in the JSON standard format. @@ -31,6 +27,7 @@ workerProcess | workerSet/staticPool/dynamicPool | workerSet | string | worker t workerStartDelay | | 500 | integer | milliseconds to wait at charging station worker threads startup workerPoolMinSize | | 4 | integer | worker threads pool minimum number of threads workerPoolMaxSize | | 16 | integer | worker threads pool maximum number of threads +workerPoolStrategy | ROUND_ROBIN/LESS_RECENTLY_USED/... | [poolifier](https://github.com/poolifier/poolifier) default: ROUND_ROBBIN | string | worker threads pool [poolifier](https://github.com/poolifier/poolifier) worker choice strategy chargingStationsPerWorker | | 1 | integer | number of charging stations per worker threads for the `workerSet` process type logConsole | true/false | false | boolean | output logs on the console logFormat | | simple | string | winston log format @@ -46,6 +43,8 @@ stationTemplateURLs | | {}[] | { file: string; numberOfStations: number; }[] | a Key | Value(s) | Default Value | Value type | Description --- | -------| --------------| ---------- | ------------ supervisionURL | | '' | string | connection URI to OCPP-J server +supervisionUser | | '' | string | basic HTTP authentication user to OCPP-J server +supervisionPassword | | '' | string | basic HTTP authentication password to OCPP-J server ocppVersion | 1.6 | 1.6 | string | OCPP version ocppProtocol | json | json | string | OCPP protocol authorizationFile | | '' | string | RFID tags list file relative to src/assets path @@ -56,21 +55,28 @@ chargePointModel | | '' | string | charging stations model chargePointVendor | | '' | string | charging stations vendor chargeBoxSerialNumberPrefix | | '' | string | charging stations serial number prefix firmwareVersion | | '' | string | charging stations firmware version -power | | | integer\|integer[] | charging stations maximum power value(s) +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 template randomConnectors | true/false | false | boolean | randomize runtime connector id affectation from the connector id definition in template resetTime | | 60 | integer | seconds to wait before the charging stations come back at reset -connectionTimeout | | 30 | integer | connection timeout to the OCPP-J server +autoRegister | true/false | false | boolean | set the charging station 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 -enableStatistics | true/false | true | boolean | enable charging stations statistics -voltageOut | | AC:230/DC:400 | integer | charging stations voltage out +enableStatistics | true/false | true | boolean | enable charging stations statistics +mayAuthorizeAtRemoteStart | true/false | true | boolean | always send authorize at remote start transaction when AuthorizeRemoteTxRequests is enabled +beginEndMeterValues | true/false | false | boolean | enable Transaction.{Begin,End} MeterValues +outOfOrderEndMeterValues | true/false | false | boolean | send Transaction.End MeterValues out of order +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 station main voltage MeterValues on three phased charging stations +phaseLineToLineVoltageMeterValues | true/false | true | boolean | include charging station line to line voltage MeterValues on three phased charging stations Configuration | | | ChargingStationConfiguration | charging stations OCPP configuration parameters AutomaticTransactionGenerator | | | AutomaticTransactionGenerator | charging stations ATG configuration Connectors | | | Connectors | charging stations connectors configuration @@ -113,7 +119,7 @@ Connectors | | | Connectors | charging stations connectors configuration "probabilityOfStart": 1, "stopAfterHours": 0.3, "stopOnConnectionFailure": true, - "requireAuthorize": false + "requireAuthorize": true } ``` #### Connectors section @@ -124,6 +130,14 @@ Connectors | | | Connectors | charging stations connectors configuration "1": { "bootStatus": "Available", "MeterValues": [ + ... + { + "unit": "W", + "measurand": "Power.Active.Import", + "phase": "L1-N", + "value": "5000", + "fluctuationPercent": "10" + }, ... { "unit": "A", @@ -139,14 +153,132 @@ Connectors | | | Connectors | charging stations connectors configuration }, ``` -## OCPP commands +## Start + +To start the program, run: `npm start`. + +## Docker + +In the [docker](./docker) folder: + +```bash +make +``` + +Or without the optional git submodules: + +```bash +make SUBMODULES_INIT=false +``` + +## OCPP-J commands supported ### Version 1.6 -TODO +#### Core Profile + +- :white_check_mark: Authorize +- :white_check_mark: BootNotification +- :white_check_mark: ChangeAvailability +- :white_check_mark: ChangeConfiguration +- :white_check_mark: ClearCache +- :x: DataTransfer +- :white_check_mark: GetConfiguration +- :white_check_mark: Heartbeat +- :white_check_mark: MeterValues +- :white_check_mark: RemoteStartTransaction +- :white_check_mark: RemoteStopTransaction +- :white_check_mark: Reset +- :white_check_mark: StartTransaction +- :white_check_mark: StatusNotification +- :white_check_mark: StopTransaction +- :white_check_mark: UnlockConnector + +#### Firmware Management Profile + +- :x: GetDiagnostics +- :x: DiagnosticsStatusNotification +- :x: FirmwareStatusNotification +- :x: UpdateFirmware + +#### Local Auth List Management Profile + +- :x: GetLocalListVersion +- :x: SendLocalList + +#### Reservation Profile + +- :x: CancelReservation +- :x: ReserveNow + +#### Smart Charging Profile + +- :white_check_mark: ClearChargingProfile +- :white_check_mark: GetCompositeSchedule +- :white_check_mark: SetChargingProfile + +#### Remote Trigger Profile + +- :x: TriggerMessage + +## OCPP-J standard parameters supported + +All kind of OCPP parameters are supported in a charging station template. The list here mention the standard ones also handled automatically in the simulator. + +### Version 1.6 + +#### Core Profile + +- :white_check_mark: AuthorizeRemoteTxRequests (type: boolean) (units: -) +- :x: ClockAlignedDataInterval (type: integer) (units: seconds) +- :white_check_mark: ConnectionTimeOut (type: integer) (units: seconds) +- :x: GetConfigurationMaxKeys (type: integer) (units: -) +- :white_check_mark: HeartbeatInterval (type: integer) (units: seconds) +- :x: LocalAuthorizeOffline (type: boolean) (units: -) +- :x: LocalPreAuthorize (type: boolean) (units: -) +- :x: MeterValuesAlignedData (type: CSL) (units: -) +- :white_check_mark: MeterValuesSampledData (type: CSL) (units: -) +- :white_check_mark: MeterValueSampleInterval (type: integer) (units: seconds) +- :white_check_mark: NumberOfConnectors (type: integer) (units: -) +- :x: ResetRetries (type: integer) (units: times) +- :white_check_mark: ConnectorPhaseRotation (type: CSL) (units: -) +- :x: StopTransactionOnEVSideDisconnect (type: boolean) (units: -) +- :x: StopTransactionOnInvalidId (type: boolean) (units: -) +- :x: StopTxnAlignedData (type: CSL) (units: -) +- :x: StopTxnSampledData (type: CSL) (units: -) +- :white_check_mark: SupportedFeatureProfiles (type: CSL) (units: -) +- :x: TransactionMessageAttempts (type: integer) (units: times) +- :x: TransactionMessageRetryInterval (type: integer) (units: seconds) +- :x: UnlockConnectorOnEVSideDisconnect (type: boolean) (units: -) +- :white_check_mark: WebSocketPingInterval (type: integer) (units: seconds) + +#### Firmware Management Profile + +- *none* + +#### Local Auth List Management Profile + +- :white_check_mark: LocalAuthListEnabled (type: boolean) (units: -) +- :x: LocalAuthListMaxLength (type: integer) (units: -) +- :x: SendLocalListMaxLength (type: integer) (units: -) + +#### Reservation Profile + +- *none* + +#### Smart Charging Profile + +- :x: ChargeProfileMaxStackLevel (type: integer) (units: -) +- :x: ChargingScheduleAllowedChargingRateUnit (type: CSL) (units: -) +- :x: ChargingScheduleMaxPeriods (type: integer) (units: -) +- :x: MaxChargingProfilesInstalled (type: integer) (units: -) + +#### Remote Trigger Profile + +- *none* ## License -This file and all other files in this repository are licensed under the Apache Software License, v.2 and copyrighted under the copyright in [NOTICE](NOTICE) file, except as noted otherwise in the [LICENSE](LICENSE) file. +This file and all other files in this repository are licensed under the Apache Software License, v.2 and copyrighted under the copyright in [NOTICE](NOTICE) file, except as noted otherwise in the [LICENSE](LICENSE) file or the code source file header. Please note that Docker images can contain other software which may be licensed under different licenses. This LICENSE and NOTICE files are also included in the Docker image. For any usage of built Docker images please make sure to check the licenses of the artifacts contained in the images.