Skip to content

Configuration

Introduction

The tic4eebus application configuration is organized into 7 sections:

Name Description Format Value
OverloadProtection Overload protection parameters Structure Overload protection values
Vehicle Electric vehicle parameters Structure Electric vehicle values
Wallbox Charging station parameters Structure Charging station values
Log Logging parameters Structure Logging parameters values
DataModel Data model parameters Structure Data model values
TeleInformationClient Tele-information client (TIC) parameters Structure TIC values
Eebus EEBUS protocol parameters Structure EEBUS protocol values

Each section above is stored in the configuration file in YAML format.

The configuration file is loaded at application startup with the default path "examples/config.yaml".

This configuration file path can be modified via the application command line with the "configFilePath" argument.

Description

Overload Protection

The overload protection configuration includes the following parameters:

Name Description Format Value
Enable Algorithm activation Boolean - true if the algorithm is active
- false otherwise
RunningPeriodInSeconds Algorithm execution period in seconds Integer From 0 to 2^31 - 1
CurrentLimit Current limitation parameters Structure Current limitation values

Current Limitation

The current limitation parameters configuration for overload protection includes the following fields:

Name Description Format Value
ValueInAmps EV charging current limit in Amperes Decimal From 0.0 to 1.79 × 10^308
LockDelayInSeconds Limitation lock duration in seconds Decimal From 0 to 1.79 × 10^308

Notes:

  • The EV charging current limit (ValueInAmps) is only used if the overload protection algorithm is inactive (Enable=false)
  • The limitation lock duration (LockDelayInSeconds) is only used if the overload protection algorithm is active (Enable=true)

Electric Vehicle

The electric vehicle parameters configuration includes the following fields:

Name Description Format Value
UpdateDataPeriodInSeconds EV data update period in seconds Integer From 0 to 2^31 - 1
0 means no periodic update
DataPersistent EV data persistence indicator Boolean - true if data is persistent
- false otherwise

Charging Station

The charging station parameters configuration includes the following fields:

Name Description Format Value
UpdateDataPeriodInSeconds Station data update period in seconds Integer From 0 to 2^31 - 1
0 means no periodic update
DataPersistent Station data persistence indicator Boolean - true if data is persistent
- false otherwise

Logging

The logging parameters configuration includes the following fields:

Name Description Format Value
Level Logging level used Enumeration Logging level values
FilePath Logging file path String Example: "var/log/tic4eebus.log"
Rotation Logging file rotation parameters Structure File rotation values

Data Model

The data model parameters configuration includes the following fields:

Name Description Format Value
Csv CSV file parameters Structure CSV file values
InfluxDb InfluxDB database parameters Structure InfluxDB database values

Notes:

The Csv and InfluxDb fields are optional. If the Csv field does not exist, there is no CSV file. If the InfluxDb field does not exist, the InfluxDB database is not populated.

CSV File

The CSV file parameters configuration includes the following fields:

Name Description Format Value
FilePath CSV file path String Example: "var/data/DataModel.csv"
Rotation CSV file rotation parameters Structure File rotation values

InfluxDB Database

The InfluxDB database parameters configuration includes the following fields:

Name Description Format Value
Bucket InfluxDB database name (called bucket) String Example: "demo-bucket"
Org Organization name associated with the database and tables (called measurements) String Example: "demo-org"
Token Authentication key used for database connection String Example: "He_nwgoqXu4XggIzaiUWFHALKnS5JskdTLzGlSYeJMNkjCD-pyR6Yc5Hvl8NWj5Qo5C80mLvuJAS1IuqOcq4GQZZ"
IpAddress IP address of the server hosting the InfluxDB database String Example: "127.0.0.1"
TcpPort TCP port of the server hosting the InfluxDB database Integer From 1 to 65535

Tele-Information Client (TIC)

The tele-information client parameters configuration includes the following fields:

Name Description Format Value
Tic2Websocket TIC2WebSocket client parameters Structure Tic2WebSocket values
TicIdentifier Linky meter identification parameters Structure TicIdentifier values

Tic2Websocket

The Tic2Websocket client parameters configuration includes the following fields:

Name Description Format Value
IpAddress IP address of the server hosting the Tic2Websocket application String Example: "127.0.0.1"
TcpPort TCP port of the server hosting the Tic2Websocket application Integer From 1 to 65535

TicIdentifier

The Linky meter identification parameters configuration includes the following fields:

Name Description Format Value
SerialNumber Linky meter serial number 12-character string Example: "041976216986"

Note:

If the SerialNumber field is empty, the application will use the first serial number provided by the Tic2Websocket application.

EEBUS Protocol

The EEBUS protocol parameters configuration includes the following fields:

Name Description Format Value
ServerPort TCP port of the charging station EEBUS server Integer From 1 to 65535
RemoteSki Identification key of the charging station EEBUS server 40 hexadecimal character string Example: "50abfe7714d034b8b15e488b91831047657b9ff2"
CertificateFilePath Security certificate path for the energy management system String Example: "examples/energy-guard.cert"
PrivateKeyFilePath Energy management system encryption private key String Example: "examples/energy-guard.key"
VendorCode Energy management company identification code compliant with IANA PEN String Example: "i:54076"
DeviceBrand Energy management system brand name String Example: "Enedis"
DeviceModel Energy management system model name String Example: "PAC"
SerialNumber Energy management system serial number String Example: "12345678"
HeartbeatTimeoutInSeconds Maximum delay allowed for sending EEBUS heartbeat to the charging station Integer From 0 to 2^32 -1

Note:

If the HeartbeatTimeoutInSeconds parameter is configured with a value greater than 4 seconds, the charging station, in accordance with OPEV use case scenario 2, considers that the energy management system is not available and sets the charge limitation to its minimum value.

Types

Logging Level

The logging level defines the minimum threshold for information to be kept in logs.

It can take the following values, sorted in descending order of severity:

Enumeration Value Enumeration Description
panic Highest level of severity. Logs and then call panic().
fatal Critical severity level. Logs and then exits the program.
error Level used for errors that should definitely be noted.
warn Level for non-critical information that deserve eyes
info Level for general information about what's going on inside the application.
debug Level only enabled when debugging. Very verbose logging.
trace Level designating finer-grained informational events than the debug

File Rotation

File rotation includes the following fields:

Name Description Format Value
PeriodInHours Duration of a rotation period in hours Integer From 0 to 2^31 - 1
PeriodCount Maximum number of rotations Integer From 0 to 2^31 - 1
PeriodPattern Pattern used for the file name at each new rotation String

Example

Here is a complete example of the default configuration file in YAML format:

# Overload protection configuration
OverloadProtection:
  Enable : true
  RunningPeriodInSeconds : 1
  CurrentLimit :
    ValueInAmps : 16.0 # Used only if Enable is false
    LockDelayInSeconds : 10.0 # Used only if Enable is true

# Vehicle configuration
Vehicle:
  UpdateDataPeriodInSeconds : 5 # Unused if 0
  DataPersistent: false

# Wallbox configuration
Wallbox:
  UpdateDataPeriodInSeconds : 5 # Unused if 0
  DataPersistent: false

# Log configuration
Log:
  Level : "trace" # Available levels : panic,fatal,error,warn,info,debug,trace
  FilePath : "var/log/tic4eebus.log"
  Rotation:
    PeriodInHours : 24 # Each day a new file is created
    PeriodCount : 15 # 15 files maximum are created (15 days of logs)
    PeriodPattern: "-%Y-%m-%d" # Each log file name contains the year-month-day of creation

# Data model configuration
DataModel:
  # Csv file configuration (optional)
  Csv: # If provided all fields must be provided
    FilePath : "var/data/EnergyGuardDataModel.csv"
    Rotation:
      PeriodInHours : 24 # Each day a new file is created
      PeriodCount : 7 # 7 files maximum are created (7 days of data model)
      PeriodPattern: "-%Y-%m-%d" # Each csv file name contains the year-month-day of creation

  # InfluxDB configuration (optional)
  InfluxDb: # If provided all fields must be provided
    Bucket : "demo-bucket"
    Org : "demo-org"
    Token : "${TIC4EEBUS_INFLUXDB_TOKEN}" # Example: "He_nwgoqXu4XggIzaiUWFHALKnS5JskdTLzGlSYeJMNkjCD-pyR6Yc5Hvl8NWj5Qo5C80mLvuJAS1IuqOcq4GQZZ"
    IpAddress : "127.0.0.1"
    TcpPort : 8086

# Tele information client (TIC) configuration
TeleInformationClient:
  Tic2Websocket:
    IpAddress : "127.0.0.1"
    TcpPort : 19584
  TicIdentifier:
    SerialNumber : "" # Meter serial number should only be specified if TIC2Websocket handles multiple modems

# EEBUS configuration
Eebus:
  ServerPort : 4817
  RemoteSki : "${TIC4EEBUS_REMOTE_SKI}" # Example: "50abfe7714d034b8b15e488b91831047657b9ff2"
  CertificateFilePath : "examples/energy-guard.cert"
  PrivateKeyFilePath : "examples/energy-guard.key"
  VendorCode : "i:54076"
  DeviceBrand : "Enedis"
  DeviceModel : "PAC"
  SerialNumber : "12345678"
  HeartbeatTimeoutInSeconds : 2