Skip to main content

TariffConditions

Struct TariffConditions 

Source
pub struct TariffConditions<CustomDataType = NoCustomData> {
Show 19 fields pub custom_data: Option<CustomDataType>, pub day_of_week: Option<Vec<DayOfWeekEnum, 7usize>>, pub end_time_of_day: Option<OcppTimeOfDay>, pub evse_kind: Option<EvseKindEnum>, pub max_charging_time: Option<i64>, pub max_current: Option<f64>, pub max_energy: Option<f64>, pub max_idle_time: Option<i64>, pub max_power: Option<f64>, pub max_time: Option<i64>, pub min_charging_time: Option<i64>, pub min_current: Option<f64>, pub min_energy: Option<f64>, pub min_idle_time: Option<i64>, pub min_power: Option<f64>, pub min_time: Option<i64>, pub start_time_of_day: Option<OcppTimeOfDay>, pub valid_from_date: Option<OcppDate>, pub valid_to_date: Option<OcppDate>,
}
Expand description

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.

Fields§

§custom_data: Option<CustomDataType>§day_of_week: Option<Vec<DayOfWeekEnum, 7usize>>

Day(s) of the week this is tariff applies.

§end_time_of_day: Option<OcppTimeOfDay>

End 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_kind: Option<EvseKindEnum>§max_charging_time: Option<i64>

Maximum 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_current: Option<f64>

Sum 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_energy: Option<f64>

Maximum consumed energy in Wh, for example 50000 Wh. Valid until this amount of energy (exclusive) being used.

§max_idle_time: Option<i64>

Maximum 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_power: Option<f64>

Maximum 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_time: Option<i64>

Maximum 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_time: Option<i64>

Minimum 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_current: Option<f64>

Sum 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_energy: Option<f64>

Minimum consumed energy in Wh, for example 20000 Wh. Valid from this amount of energy (inclusive) being used.

§min_idle_time: Option<i64>

Minimum 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_power: Option<f64>

Minimum 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_time: Option<i64>

Minimum 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_day: Option<OcppTimeOfDay>

Start 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_date: Option<OcppDate>

Start 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_date: Option<OcppDate>

End date in local time, for example: 2015-12-27. Valid until this day (exclusive). Same syntax as validFromDate.

Trait Implementations§

Source§

impl<CustomDataType: Clone> Clone for TariffConditions<CustomDataType>

Source§

fn clone(&self) -> TariffConditions<CustomDataType>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<CustomDataType: Debug> Debug for TariffConditions<CustomDataType>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, CustomDataType> Deserialize<'de> for TariffConditions<CustomDataType>
where CustomDataType: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<CustomDataType: PartialEq> PartialEq for TariffConditions<CustomDataType>

Source§

fn eq(&self, other: &TariffConditions<CustomDataType>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<CustomDataType> Serialize for TariffConditions<CustomDataType>
where CustomDataType: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<CustomDataType: PartialEq> StructuralPartialEq for TariffConditions<CustomDataType>

Source§

impl<CustomDataType> Validate for TariffConditions<CustomDataType>

Available on crate feature validate only.
Source§

fn validate(&self) -> Result<(), ValidationError>

Ok(()) if every schema constraint reachable from self holds, or the first violation found. Field order within a struct is the schema’s, but which violation comes first is not otherwise a stable part of the API.

Auto Trait Implementations§

§

impl<CustomDataType> Freeze for TariffConditions<CustomDataType>
where CustomDataType: Freeze,

§

impl<CustomDataType> RefUnwindSafe for TariffConditions<CustomDataType>
where CustomDataType: RefUnwindSafe,

§

impl<CustomDataType> Send for TariffConditions<CustomDataType>
where CustomDataType: Send,

§

impl<CustomDataType> Sync for TariffConditions<CustomDataType>
where CustomDataType: Sync,

§

impl<CustomDataType> Unpin for TariffConditions<CustomDataType>
where CustomDataType: Unpin,

§

impl<CustomDataType> UnsafeUnpin for TariffConditions<CustomDataType>
where CustomDataType: UnsafeUnpin,

§

impl<CustomDataType> UnwindSafe for TariffConditions<CustomDataType>
where CustomDataType: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.