ocpp/v2_1/datatype/tariff_conditions

OCPP 2.1 TariffConditions data type (schema TariffConditionsType).

to_json/decoder map to/from its OCPP-J JSON object; new (when present) builds a value from the required fields only.

Types

These conditions describe if and when a TariffEnergyType or TariffTimeType applies during a transaction.

When more than one restriction is set, they are to be treated as a logical AND. All need to be valid before this price is active.

For reverse energy flow (discharging) negative values of energy, power and current are used.

NOTE: minXXX (where XXX = Kwh/A/Kw) must be read as “closest to zero”, and maxXXX as “furthest from zero”. For example, a charging power range from 10 kW to 50 kWh is given by minPower = 10000 and maxPower = 50000, and a discharging power range from -10 kW to -50 kW is given by minPower = -10 and maxPower = -50.

NOTE: startTimeOfDay and endTimeOfDay are in local time, because it is the time in the tariff as it is shown to the EV driver at the Charging Station. A Charging Station will convert this to the internal time zone that it uses (which is recommended to be UTC, see section Generic chapter 3.1) when performing cost calculation.

FieldTypeReqDescription
custom_dataCustomData
day_of_weekList(DayOfWeek)Day(s) of the week this is tariff applies.
end_time_of_dayStringEnd time of day in local time. Same syntax as startTimeOfDay. + If end time < start time then the period wraps around to the next day. + To stop at end of the day use: 00:00.
evse_kindEvseKind
max_charging_timeIntMaximum duration in seconds the charging MUST last (exclusive). When the duration of a charging is shorter than the defined value, this price is or becomes active. After that moment, this price is no longer active.
max_currentFloatSum of the maximum current (in Amperes) over all phases, for example 20 A. When the EV is charging with less than the defined amount of current, this price becomes/is active. If the charging current is or becomes higher, this price is not or no longer valid and becomes inactive. This is NOT about the maximum current over the entire transaction.
max_energyFloatMaximum consumed energy in Wh, for example 50000 Wh. Valid until this amount of energy (exclusive) being used.
max_idle_timeIntMaximum duration in seconds the idle period (i.e. not charging) MUST last (exclusive). When the duration of idle time is shorter than the defined value, this price is or becomes active. After that moment, this price is no longer active.
max_powerFloatMaximum power in W, for example 20000 W. When the EV is charging with less than the defined amount of power, this price becomes/is active. If the charging power is or becomes higher, this price is not or no longer valid and becomes inactive. This is NOT about the maximum power over the entire transaction.
max_timeIntMaximum duration in seconds the transaction (charging & idle) MUST last (exclusive). When the duration of a transaction is shorter than the defined value, this price is or becomes active. After that moment, this price is no longer active.
min_charging_timeIntMinimum duration in seconds the charging MUST last (inclusive). When the duration of a charging is longer than the defined value, this price is or becomes active. Before that moment, this price is not yet active.
min_currentFloatSum of the minimum current (in Amperes) over all phases, for example 5 A. When the EV is charging with more than, or equal to, the defined amount of current, this price is/becomes active. If the charging current is or becomes lower, this price is not or no longer valid and becomes inactive. + This is NOT about the minimum current over the entire transaction.
min_energyFloatMinimum consumed energy in Wh, for example 20000 Wh. Valid from this amount of energy (inclusive) being used.
min_idle_timeIntMinimum duration in seconds the idle period (i.e. not charging) MUST last (inclusive). When the duration of the idle time is longer than the defined value, this price is or becomes active. Before that moment, this price is not yet active.
min_powerFloatMinimum power in W, for example 5000 W. When the EV is charging with more than, or equal to, the defined amount of power, this price is/becomes active. If the charging power is or becomes lower, this price is not or no longer valid and becomes inactive. This is NOT about the minimum power over the entire transaction.
min_timeIntMinimum duration in seconds the transaction (charging & idle) MUST last (inclusive). When the duration of a transaction is longer than the defined value, this price is or becomes active. Before that moment, this price is not yet active.
start_time_of_dayStringStart time of day in local time. + Format as per RFC 3339: time-hour “:” time-minute + Must be in 24h format with leading zeros. Hour/Minute separator: “:” Regex: ([0-1][0-9]|2[0-3]):[0-5][0-9]
valid_from_dateStringStart date in local time, for example: 2015-12-24. Valid from this day (inclusive). + Format as per RFC 3339: full-date + Regex: ([12][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])
valid_to_dateStringEnd date in local time, for example: 2015-12-27. Valid until this day (exclusive). Same syntax as validFromDate.

Schema: TariffConditionsType

pub type TariffConditions {
  TariffConditions(
    custom_data: option.Option(custom_data.CustomData),
    day_of_week: option.Option(List(day_of_week.DayOfWeek)),
    end_time_of_day: option.Option(String),
    evse_kind: option.Option(evse_kind.EvseKind),
    max_charging_time: option.Option(Int),
    max_current: option.Option(Float),
    max_energy: option.Option(Float),
    max_idle_time: option.Option(Int),
    max_power: option.Option(Float),
    max_time: option.Option(Int),
    min_charging_time: option.Option(Int),
    min_current: option.Option(Float),
    min_energy: option.Option(Float),
    min_idle_time: option.Option(Int),
    min_power: option.Option(Float),
    min_time: option.Option(Int),
    start_time_of_day: option.Option(String),
    valid_from_date: option.Option(String),
    valid_to_date: option.Option(String),
  )
}

Constructors

Values

pub fn decoder() -> decode.Decoder(TariffConditions)

Decode a TariffConditions from its OCPP-J JSON object, enforcing schema constraints.

pub fn new() -> TariffConditions

Construct a TariffConditions from its required fields, with every optional field set to None.

pub fn to_json(value: TariffConditions) -> json.Json

Encode a TariffConditions to its OCPP-J JSON object.

Search Document