ocpp/v2_1/datatype/charging_profile

OCPP 2.1 ChargingProfile data type (schema ChargingProfileType).

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

Types

A ChargingProfile consists of 1 to 3 ChargingSchedules with a list of ChargingSchedulePeriods, describing the amount of power or current that can be delivered per time interval.

FieldTypeReqDescription
charging_profile_kindChargingProfileKind
charging_profile_purposeChargingProfilePurpose
charging_scheduleList(ChargingSchedule)
custom_dataCustomData
dyn_update_intervalInt(2.1) Interval in seconds after receipt of last update, when to request a profile update by sending a PullDynamicScheduleUpdateRequest message. A value of 0 or no value means that no update interval applies. + Only relevant in a dynamic charging profile.
dyn_update_timeDateTime(2.1) Time at which limits or setpoints in this charging profile were last updated by a PullDynamicScheduleUpdateRequest or UpdateDynamicScheduleRequest or by an external actor. + Only relevant in a dynamic charging profile.
idIntId of ChargingProfile. Unique within charging station. Id can have a negative value. This is useful to distinguish charging profiles from an external actor (external constraints) from charging profiles received from CSMS.
invalid_after_offline_durationBool(2.1) When set to true this charging profile will not be valid anymore after being offline for more than maxOfflineDuration. + When absent defaults to false.
max_offline_durationInt(2.1) Period in seconds that this charging profile remains valid after the Charging Station has gone offline. After this period the charging profile becomes invalid for as long as it is offline and the Charging Station reverts back to a valid profile with a lower stack level. If invalidAfterOfflineDuration is true, then this charging profile will become permanently invalid. A value of 0 means that the charging profile is immediately invalid while offline. When the field is absent, then no timeout applies and the charging profile remains valid when offline.
price_schedule_signatureString(2.1) ISO 15118-20 signature for all price schedules in chargingSchedules. + Note: for 256-bit elliptic curves (like secp256k1) the ECDSA signature is 512 bits (64 bytes) and for 521-bit curves (like secp521r1) the signature is 1042 bits. This equals 131 bytes, which can be encoded as base64 in 176 bytes. (max 256 chars)
recurrency_kindRecurrencyKind
stack_levelIntValue determining level in hierarchy stack of profiles. Higher values have precedence over lower values. Lowest level is 0. (≥ 0)
transaction_idStringSHALL only be included if ChargingProfilePurpose is set to TxProfile in a SetChargingProfileRequest. The transactionId is used to match the profile to a specific transaction. (max 36 chars)
valid_fromDateTimePoint in time at which the profile starts to be valid. If absent, the profile is valid as soon as it is received by the Charging Station.
valid_toDateTimePoint in time at which the profile stops to be valid. If absent, the profile is valid until it is replaced by another profile.

Schema: ChargingProfileType

pub type ChargingProfile {
  ChargingProfile(
    charging_profile_kind: charging_profile_kind.ChargingProfileKind,
    charging_profile_purpose: charging_profile_purpose.ChargingProfilePurpose,
    charging_schedule: List(charging_schedule.ChargingSchedule),
    custom_data: option.Option(custom_data.CustomData),
    dyn_update_interval: option.Option(Int),
    dyn_update_time: option.Option(timestamp.Timestamp),
    id: Int,
    invalid_after_offline_duration: option.Option(Bool),
    max_offline_duration: option.Option(Int),
    price_schedule_signature: option.Option(String),
    recurrency_kind: option.Option(recurrency_kind.RecurrencyKind),
    stack_level: Int,
    transaction_id: option.Option(String),
    valid_from: option.Option(timestamp.Timestamp),
    valid_to: option.Option(timestamp.Timestamp),
  )
}

Constructors

Values

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

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

pub fn new(
  charging_profile_kind charging_profile_kind: charging_profile_kind.ChargingProfileKind,
  charging_profile_purpose charging_profile_purpose: charging_profile_purpose.ChargingProfilePurpose,
  charging_schedule charging_schedule: List(
    charging_schedule.ChargingSchedule,
  ),
  id id: Int,
  stack_level stack_level: Int,
) -> ChargingProfile

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

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

Encode a ChargingProfile to its OCPP-J JSON object.

Search Document