@citrineos/base
Version:
The base module for OCPP v2.0.1 including all interfaces. This module is not intended to be used directly, but rather as a dependency for other modules.
956 lines (955 loc) • 41.3 kB
JSON
{
"$id": "TransactionEventRequest",
"comment": "OCPP 2.1 Edition 1 (c) OCA, Creative Commons Attribution-NoDerivatives 4.0 International Public License",
"definitions": {
"ChargingStateEnumType": {
"description": "Current charging state, is required when state\r\nhas changed. Omitted when there is no communication between EVSE and EV, because no cable is plugged in.\r\n",
"javaType": "ChargingStateEnum",
"type": "string",
"additionalProperties": false,
"enum": ["EVConnected", "Charging", "SuspendedEV", "SuspendedEVSE", "Idle"],
"tsEnumNames": ["EVConnected", "Charging", "SuspendedEV", "SuspendedEVSE", "Idle"]
},
"CostDimensionEnumType": {
"description": "Type of cost dimension: energy, power, time, etc.\r\n\r\n",
"javaType": "CostDimensionEnum",
"type": "string",
"additionalProperties": false,
"enum": [
"Energy",
"MaxCurrent",
"MinCurrent",
"MaxPower",
"MinPower",
"IdleTIme",
"ChargingTime"
],
"tsEnumNames": [
"Energy",
"MaxCurrent",
"MinCurrent",
"MaxPower",
"MinPower",
"IdleTIme",
"ChargingTime"
]
},
"LocationEnumType": {
"description": "Indicates where the measured value has been sampled. Default = \"Outlet\"\r\n\r\n",
"javaType": "LocationEnum",
"type": "string",
"default": "Outlet",
"additionalProperties": false,
"enum": ["Body", "Cable", "EV", "Inlet", "Outlet", "Upstream"],
"tsEnumNames": ["Body", "Cable", "EV", "Inlet", "Outlet", "Upstream"]
},
"MeasurandEnumType": {
"description": "Type of measurement. Default = \"Energy.Active.Import.Register\"\r\n",
"javaType": "MeasurandEnum",
"type": "string",
"default": "Energy.Active.Import.Register",
"additionalProperties": false,
"enum": [
"Current.Export",
"Current.Export.Offered",
"Current.Export.Minimum",
"Current.Import",
"Current.Import.Offered",
"Current.Import.Minimum",
"Current.Offered",
"Display.PresentSOC",
"Display.MinimumSOC",
"Display.TargetSOC",
"Display.MaximumSOC",
"Display.RemainingTimeToMinimumSOC",
"Display.RemainingTimeToTargetSOC",
"Display.RemainingTimeToMaximumSOC",
"Display.ChargingComplete",
"Display.BatteryEnergyCapacity",
"Display.InletHot",
"Energy.Active.Export.Interval",
"Energy.Active.Export.Register",
"Energy.Active.Import.Interval",
"Energy.Active.Import.Register",
"Energy.Active.Import.CableLoss",
"Energy.Active.Import.LocalGeneration.Register",
"Energy.Active.Net",
"Energy.Active.Setpoint.Interval",
"Energy.Apparent.Export",
"Energy.Apparent.Import",
"Energy.Apparent.Net",
"Energy.Reactive.Export.Interval",
"Energy.Reactive.Export.Register",
"Energy.Reactive.Import.Interval",
"Energy.Reactive.Import.Register",
"Energy.Reactive.Net",
"EnergyRequest.Target",
"EnergyRequest.Minimum",
"EnergyRequest.Maximum",
"EnergyRequest.Minimum.V2X",
"EnergyRequest.Maximum.V2X",
"EnergyRequest.Bulk",
"Frequency",
"Power.Active.Export",
"Power.Active.Import",
"Power.Active.Setpoint",
"Power.Active.Residual",
"Power.Export.Minimum",
"Power.Export.Offered",
"Power.Factor",
"Power.Import.Offered",
"Power.Import.Minimum",
"Power.Offered",
"Power.Reactive.Export",
"Power.Reactive.Import",
"SoC",
"Voltage",
"Voltage.Minimum",
"Voltage.Maximum"
],
"tsEnumNames": [
"Current_Export",
"Current_Export_Offered",
"Current_Export_Minimum",
"Current_Import",
"Current_Import_Offered",
"Current_Import_Minimum",
"Current_Offered",
"Display_PresentSOC",
"Display_MinimumSOC",
"Display_TargetSOC",
"Display_MaximumSOC",
"Display_RemainingTimeToMinimumSOC",
"Display_RemainingTimeToTargetSOC",
"Display_RemainingTimeToMaximumSOC",
"Display_ChargingComplete",
"Display_BatteryEnergyCapacity",
"Display_InletHot",
"Energy_Active_Export_Interval",
"Energy_Active_Export_Register",
"Energy_Active_Import_Interval",
"Energy_Active_Import_Register",
"Energy_Active_Import_CableLoss",
"Energy_Active_Import_LocalGeneration_Register",
"Energy_Active_Net",
"Energy_Active_Setpoint_Interval",
"Energy_Apparent_Export",
"Energy_Apparent_Import",
"Energy_Apparent_Net",
"Energy_Reactive_Export_Interval",
"Energy_Reactive_Export_Register",
"Energy_Reactive_Import_Interval",
"Energy_Reactive_Import_Register",
"Energy_Reactive_Net",
"EnergyRequest_Target",
"EnergyRequest_Minimum",
"EnergyRequest_Maximum",
"EnergyRequest_Minimum_V2X",
"EnergyRequest_Maximum_V2X",
"EnergyRequest_Bulk",
"Frequency",
"Power_Active_Export",
"Power_Active_Import",
"Power_Active_Setpoint",
"Power_Active_Residual",
"Power_Export_Minimum",
"Power_Export_Offered",
"Power_Factor",
"Power_Import_Offered",
"Power_Import_Minimum",
"Power_Offered",
"Power_Reactive_Export",
"Power_Reactive_Import",
"SoC",
"Voltage",
"Voltage_Minimum",
"Voltage_Maximum"
]
},
"OperationModeEnumType": {
"description": "*(2.1)* The _operationMode_ that is currently in effect for the transaction.\r\n",
"javaType": "OperationModeEnum",
"type": "string",
"additionalProperties": false,
"enum": [
"Idle",
"ChargingOnly",
"CentralSetpoint",
"ExternalSetpoint",
"ExternalLimits",
"CentralFrequency",
"LocalFrequency",
"LocalLoadBalancing"
],
"tsEnumNames": [
"Idle",
"ChargingOnly",
"CentralSetpoint",
"ExternalSetpoint",
"ExternalLimits",
"CentralFrequency",
"LocalFrequency",
"LocalLoadBalancing"
]
},
"PhaseEnumType": {
"description": "Indicates how the measured value is to be interpreted. For instance between L1 and neutral (L1-N) Please note that not all values of phase are applicable to all Measurands. When phase is absent, the measured value is interpreted as an overall value.\r\n",
"javaType": "PhaseEnum",
"type": "string",
"additionalProperties": false,
"enum": ["L1", "L2", "L3", "N", "L1-N", "L2-N", "L3-N", "L1-L2", "L2-L3", "L3-L1"],
"tsEnumNames": ["L1", "L2", "L3", "N", "L1_N", "L2_N", "L3_N", "L1_L2", "L2_L3", "L3_L1"]
},
"PreconditioningStatusEnumType": {
"description": "*(2.1)* The current preconditioning status of the BMS in the EV. Default value is Unknown.\r\n",
"javaType": "PreconditioningStatusEnum",
"type": "string",
"additionalProperties": false,
"enum": ["Unknown", "Ready", "NotReady", "Preconditioning"],
"tsEnumNames": ["Unknown", "Ready", "NotReady", "Preconditioning"]
},
"ReadingContextEnumType": {
"description": "Type of detail value: start, end or sample. Default = \"Sample.Periodic\"\r\n",
"javaType": "ReadingContextEnum",
"type": "string",
"default": "Sample.Periodic",
"additionalProperties": false,
"enum": [
"Interruption.Begin",
"Interruption.End",
"Other",
"Sample.Clock",
"Sample.Periodic",
"Transaction.Begin",
"Transaction.End",
"Trigger"
],
"tsEnumNames": [
"Interruption_Begin",
"Interruption_End",
"Other",
"Sample_Clock",
"Sample_Periodic",
"Transaction_Begin",
"Transaction_End",
"Trigger"
]
},
"ReasonEnumType": {
"description": "The _stoppedReason_ is the reason/event that initiated the process of stopping the transaction. It will normally be the user stopping authorization via card (Local or MasterPass) or app (Remote), but it can also be CSMS revoking authorization (DeAuthorized), or disconnecting the EV when TxStopPoint = EVConnected (EVDisconnected). Most other reasons are related to technical faults or energy limitations. +\r\nMAY only be omitted when _stoppedReason_ is \"Local\"\r\n\r\n\r\n",
"javaType": "ReasonEnum",
"type": "string",
"additionalProperties": false,
"enum": [
"DeAuthorized",
"EmergencyStop",
"EnergyLimitReached",
"EVDisconnected",
"GroundFault",
"ImmediateReset",
"MasterPass",
"Local",
"LocalOutOfCredit",
"Other",
"OvercurrentFault",
"PowerLoss",
"PowerQuality",
"Reboot",
"Remote",
"SOCLimitReached",
"StoppedByEV",
"TimeLimitReached",
"Timeout",
"ReqEnergyTransferRejected"
],
"tsEnumNames": [
"DeAuthorized",
"EmergencyStop",
"EnergyLimitReached",
"EVDisconnected",
"GroundFault",
"ImmediateReset",
"MasterPass",
"Local",
"LocalOutOfCredit",
"Other",
"OvercurrentFault",
"PowerLoss",
"PowerQuality",
"Reboot",
"Remote",
"SOCLimitReached",
"StoppedByEV",
"TimeLimitReached",
"Timeout",
"ReqEnergyTransferRejected"
]
},
"TariffCostEnumType": {
"description": "Type of cost: normal or the minimum or maximum cost.\r\n",
"javaType": "TariffCostEnum",
"type": "string",
"additionalProperties": false,
"enum": ["NormalCost", "MinCost", "MaxCost"],
"tsEnumNames": ["NormalCost", "MinCost", "MaxCost"]
},
"TransactionEventEnumType": {
"description": "This contains the type of this event.\r\nThe first TransactionEvent of a transaction SHALL contain: \"Started\" The last TransactionEvent of a transaction SHALL contain: \"Ended\" All others SHALL contain: \"Updated\"\r\n",
"javaType": "TransactionEventEnum",
"type": "string",
"additionalProperties": false,
"enum": ["Ended", "Started", "Updated"],
"tsEnumNames": ["Ended", "Started", "Updated"]
},
"TriggerReasonEnumType": {
"description": "Reason the Charging Station sends this message to the CSMS\r\n",
"javaType": "TriggerReasonEnum",
"type": "string",
"additionalProperties": false,
"enum": [
"AbnormalCondition",
"Authorized",
"CablePluggedIn",
"ChargingRateChanged",
"ChargingStateChanged",
"CostLimitReached",
"Deauthorized",
"EnergyLimitReached",
"EVCommunicationLost",
"EVConnectTimeout",
"EVDeparted",
"EVDetected",
"LimitSet",
"MeterValueClock",
"MeterValuePeriodic",
"OperationModeChanged",
"RemoteStart",
"RemoteStop",
"ResetCommand",
"RunningCost",
"SignedDataReceived",
"SoCLimitReached",
"StopAuthorized",
"TariffChanged",
"TariffNotAccepted",
"TimeLimitReached",
"Trigger",
"TxResumed",
"UnlockCommand"
],
"tsEnumNames": [
"AbnormalCondition",
"Authorized",
"CablePluggedIn",
"ChargingRateChanged",
"ChargingStateChanged",
"CostLimitReached",
"Deauthorized",
"EnergyLimitReached",
"EVCommunicationLost",
"EVConnectTimeout",
"EVDeparted",
"EVDetected",
"LimitSet",
"MeterValueClock",
"MeterValuePeriodic",
"OperationModeChanged",
"RemoteStart",
"RemoteStop",
"ResetCommand",
"RunningCost",
"SignedDataReceived",
"SoCLimitReached",
"StopAuthorized",
"TariffChanged",
"TariffNotAccepted",
"TimeLimitReached",
"Trigger",
"TxResumed",
"UnlockCommand"
]
},
"AdditionalInfoType": {
"description": "Contains a case insensitive identifier to use for the authorization and the type of authorization to support multiple forms of identifiers.\r\n",
"javaType": "AdditionalInfo",
"type": "object",
"additionalProperties": false,
"properties": {
"additionalIdToken": {
"description": "*(2.1)* This field specifies the additional IdToken.\r\n",
"type": "string",
"maxLength": 255,
"pattern": "^[a-zA-Z0-9*\\-_=:+|@.]*$"
},
"type": {
"description": "_additionalInfo_ can be used to send extra information to CSMS in addition to the regular authorization with _IdToken_. _AdditionalInfo_ contains one or more custom _types_, which need to be agreed upon by all parties involved. When the _type_ is not supported, the CSMS/Charging Station MAY ignore the _additionalInfo_.\r\n\r\n",
"type": "string",
"maxLength": 50
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["additionalIdToken", "type"]
},
"ChargingPeriodType": {
"description": "A ChargingPeriodType consists of a start time, and a list of possible values that influence this period, for example: amount of energy charged this period, maximum current during this period etc.\r\n\r\n",
"javaType": "ChargingPeriod",
"type": "object",
"additionalProperties": false,
"properties": {
"dimensions": {
"type": "array",
"additionalItems": false,
"items": {
"$ref": "#/definitions/CostDimensionType"
},
"minItems": 1
},
"tariffId": {
"description": "Unique identifier of the Tariff that was used to calculate cost. If not provided, then cost was calculated by some other means.\r\n\r\n",
"type": "string",
"maxLength": 60
},
"startPeriod": {
"description": "Start timestamp of charging period. A period ends when the next period starts. The last period ends when the session ends.\r\n\r\n",
"type": "string",
"format": "date-time"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["startPeriod"]
},
"CostDetailsType": {
"description": "CostDetailsType contains the cost as calculated by Charging Station based on provided TariffType.\r\n\r\nNOTE: Reservation is not shown as a _chargingPeriod_, because it took place outside of the transaction.\r\n\r\n",
"javaType": "CostDetails",
"type": "object",
"additionalProperties": false,
"properties": {
"chargingPeriods": {
"type": "array",
"additionalItems": false,
"items": {
"$ref": "#/definitions/ChargingPeriodType"
},
"minItems": 1
},
"totalCost": {
"$ref": "#/definitions/TotalCostType"
},
"totalUsage": {
"$ref": "#/definitions/TotalUsageType"
},
"failureToCalculate": {
"description": "If set to true, then Charging Station has failed to calculate the cost.\r\n\r\n",
"type": "boolean"
},
"failureReason": {
"description": "Optional human-readable reason text in case of failure to calculate.\r\n\r\n",
"type": "string",
"maxLength": 500
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["totalCost", "totalUsage"]
},
"CostDimensionType": {
"description": "Volume consumed of cost dimension.\r\n",
"javaType": "CostDimension",
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"$ref": "#/definitions/CostDimensionEnumType"
},
"volume": {
"description": "Volume of the dimension consumed, measured according to the dimension type.\r\n\r\n",
"type": "number"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["type", "volume"]
},
"EVSEType": {
"description": "Electric Vehicle Supply Equipment\r\n",
"javaType": "EVSE",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "EVSE Identifier. This contains a number (> 0) designating an EVSE of the Charging Station.\r\n",
"type": "integer",
"minimum": 1,
"maximum": 2147483647
},
"connectorId": {
"description": "An id to designate a specific connector (on an EVSE) by connector index number.\r\n",
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["id"]
},
"IdTokenType": {
"description": "Contains a case insensitive identifier to use for the authorization and the type of authorization to support multiple forms of identifiers.\r\n",
"javaType": "IdToken",
"type": "object",
"additionalProperties": false,
"properties": {
"additionalInfo": {
"type": "array",
"additionalItems": false,
"items": {
"$ref": "#/definitions/AdditionalInfoType"
},
"minItems": 1
},
"idToken": {
"description": "*(2.1)* IdToken is case insensitive. Might hold the hidden id of an RFID tag, but can for example also contain a UUID.\r\n",
"type": "string",
"maxLength": 255,
"pattern": "^[a-zA-Z0-9*\\-_=:+|@.]*$"
},
"type": {
"description": "*(2.1)* Enumeration of possible idToken types. Values defined in Appendix as IdTokenEnumStringType.\r\n",
"type": "string",
"maxLength": 20
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["idToken", "type"]
},
"MeterValueType": {
"description": "Collection of one or more sampled values in MeterValuesRequest and TransactionEvent. All sampled values in a MeterValue are sampled at the same point in time.\r\n",
"javaType": "MeterValue",
"type": "object",
"additionalProperties": false,
"properties": {
"sampledValue": {
"type": "array",
"additionalItems": false,
"items": {
"$ref": "#/definitions/SampledValueType"
},
"minItems": 1
},
"timestamp": {
"description": "Timestamp for measured value(s).\r\n",
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+\\-]\\d{2}:\\d{2})$"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["timestamp", "sampledValue"]
},
"PriceType": {
"description": "Price with and without tax. At least one of _exclTax_, _inclTax_ must be present.\r\n",
"javaType": "Price",
"type": "object",
"additionalProperties": false,
"properties": {
"exclTax": {
"description": "Price/cost excluding tax. Can be absent if _inclTax_ is present.\r\n",
"type": "number"
},
"inclTax": {
"description": "Price/cost including tax. Can be absent if _exclTax_ is present.\r\n",
"type": "number"
},
"taxRates": {
"type": "array",
"additionalItems": false,
"items": {
"$ref": "#/definitions/TaxRateType"
},
"minItems": 1,
"maxItems": 5
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
}
},
"SampledValueType": {
"description": "Single sampled value in MeterValues. Each value can be accompanied by optional fields.\r\n\r\nTo save on mobile data usage, default values of all of the optional fields are such that. The value without any additional fields will be interpreted, as a register reading of active import energy in Wh (Watt-hour) units.\r\n",
"javaType": "SampledValue",
"type": "object",
"additionalProperties": false,
"properties": {
"value": {
"description": "Indicates the measured value.\r\n\r\n",
"type": "number"
},
"measurand": {
"$ref": "#/definitions/MeasurandEnumType"
},
"context": {
"$ref": "#/definitions/ReadingContextEnumType"
},
"phase": {
"$ref": "#/definitions/PhaseEnumType"
},
"location": {
"$ref": "#/definitions/LocationEnumType"
},
"signedMeterValue": {
"$ref": "#/definitions/SignedMeterValueType"
},
"unitOfMeasure": {
"$ref": "#/definitions/UnitOfMeasureType"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["value"]
},
"SignedMeterValueType": {
"description": "Represent a signed version of the meter value.\r\n",
"javaType": "SignedMeterValue",
"type": "object",
"additionalProperties": false,
"properties": {
"signedMeterData": {
"description": "Base64 encoded, contains the signed data from the meter in the format specified in _encodingMethod_, which might contain more then just the meter value. It can contain information like timestamps, reference to a customer etc.\r\n",
"type": "string",
"maxLength": 32768
},
"signingMethod": {
"description": "*(2.1)* Method used to create the digital signature. Optional, if already included in _signedMeterData_. Standard values for this are defined in Appendix as SigningMethodEnumStringType.\r\n",
"type": "string",
"maxLength": 50
},
"encodingMethod": {
"description": "Format used by the energy meter to encode the meter data. For example: OCMF or EDL.\r\n",
"type": "string",
"maxLength": 50
},
"publicKey": {
"description": "*(2.1)* Base64 encoded, sending depends on configuration variable _PublicKeyWithSignedMeterValue_.\r\n",
"type": "string",
"maxLength": 2500
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["signedMeterData", "encodingMethod"]
},
"TaxRateType": {
"description": "Tax percentage\r\n",
"javaType": "TaxRate",
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"description": "Type of this tax, e.g. \"Federal \", \"State\", for information on receipt.\r\n",
"type": "string",
"maxLength": 20
},
"tax": {
"description": "Tax percentage\r\n",
"type": "number"
},
"stack": {
"description": "Stack level for this type of tax. Default value, when absent, is 0. +\r\n_stack_ = 0: tax on net price; +\r\n_stack_ = 1: tax added on top of _stack_ 0; +\r\n_stack_ = 2: tax added on top of _stack_ 1, etc. \r\n",
"type": "integer",
"minimum": 0
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["type", "tax"]
},
"TotalCostType": {
"description": "This contains the cost calculated during a transaction. It is used both for running cost and final cost of the transaction.\r\n",
"javaType": "TotalCost",
"type": "object",
"additionalProperties": false,
"properties": {
"currency": {
"description": "Currency of the costs in ISO 4217 Code.\r\n\r\n",
"type": "string",
"maxLength": 3
},
"typeOfCost": {
"$ref": "#/definitions/TariffCostEnumType"
},
"fixed": {
"$ref": "#/definitions/PriceType"
},
"energy": {
"$ref": "#/definitions/PriceType"
},
"chargingTime": {
"$ref": "#/definitions/PriceType"
},
"idleTime": {
"$ref": "#/definitions/PriceType"
},
"reservationTime": {
"$ref": "#/definitions/PriceType"
},
"reservationFixed": {
"$ref": "#/definitions/PriceType"
},
"total": {
"$ref": "#/definitions/TotalPriceType"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["currency", "typeOfCost", "total"]
},
"TotalPriceType": {
"description": "Total cost with and without tax. Contains the total of energy, charging time, idle time, fixed and reservation costs including and/or excluding tax.\r\n",
"javaType": "TotalPrice",
"type": "object",
"additionalProperties": false,
"properties": {
"exclTax": {
"description": "Price/cost excluding tax. Can be absent if _inclTax_ is present.\r\n",
"type": "number"
},
"inclTax": {
"description": "Price/cost including tax. Can be absent if _exclTax_ is present.\r\n",
"type": "number"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
}
},
"TotalUsageType": {
"description": "This contains the calculated usage of energy, charging time and idle time during a transaction.\r\n",
"javaType": "TotalUsage",
"type": "object",
"additionalProperties": false,
"properties": {
"energy": {
"type": "number"
},
"chargingTime": {
"description": "Total duration of the charging session (including the duration of charging and not charging), in seconds.\r\n\r\n\r\n",
"type": "integer"
},
"idleTime": {
"description": "Total duration of the charging session where the EV was not charging (no energy was transferred between EVSE and EV), in seconds.\r\n\r\n\r\n",
"type": "integer"
},
"reservationTime": {
"description": "Total time of reservation in seconds.\r\n",
"type": "integer"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["energy", "chargingTime", "idleTime"]
},
"TransactionLimitType": {
"description": "Cost, energy, time or SoC limit for a transaction.\r\n",
"javaType": "TransactionLimit",
"type": "object",
"additionalProperties": false,
"properties": {
"maxCost": {
"description": "Maximum allowed cost of transaction in currency of tariff.\r\n",
"type": "number"
},
"maxEnergy": {
"description": "Maximum allowed energy in Wh to charge in transaction.\r\n",
"type": "number"
},
"maxTime": {
"description": "Maximum duration of transaction in seconds from start to end.\r\n",
"type": "integer"
},
"maxSoC": {
"description": "Maximum State of Charge of EV in percentage.\r\n",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
}
},
"TransactionType": {
"javaType": "Transaction",
"type": "object",
"additionalProperties": false,
"properties": {
"transactionId": {
"description": "This contains the Id of the transaction.\r\n",
"type": "string",
"maxLength": 36,
"pattern": "^[a-zA-Z0-9*\\-_=:+|@.]*$"
},
"chargingState": {
"$ref": "#/definitions/ChargingStateEnumType"
},
"timeSpentCharging": {
"description": "Contains the total time that energy flowed from EVSE to EV during the transaction (in seconds). Note that timeSpentCharging is smaller or equal to the duration of the transaction.\r\n",
"type": "integer",
"minimum": -2147483648,
"maximum": 2147483647
},
"stoppedReason": {
"$ref": "#/definitions/ReasonEnumType"
},
"remoteStartId": {
"description": "The ID given to remote start request (<<requeststarttransactionrequest, RequestStartTransactionRequest>>. This enables to CSMS to match the started transaction to the given start request.\r\n",
"type": "integer",
"minimum": -2147483648,
"maximum": 2147483647
},
"operationMode": {
"$ref": "#/definitions/OperationModeEnumType"
},
"tariffId": {
"description": "*(2.1)* Id of tariff in use for transaction\r\n",
"type": "string",
"maxLength": 60
},
"transactionLimit": {
"$ref": "#/definitions/TransactionLimitType"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["transactionId"]
},
"UnitOfMeasureType": {
"description": "Represents a UnitOfMeasure with a multiplier\r\n",
"javaType": "UnitOfMeasure",
"type": "object",
"additionalProperties": false,
"properties": {
"unit": {
"description": "Unit of the value. Default = \"Wh\" if the (default) measurand is an \"Energy\" type.\r\nThis field SHALL use a value from the list Standardized Units of Measurements in Part 2 Appendices. \r\nIf an applicable unit is available in that list, otherwise a \"custom\" unit might be used.\r\n",
"type": "string",
"default": "Wh",
"maxLength": 20
},
"multiplier": {
"description": "Multiplier, this value represents the exponent to base 10. I.e. multiplier 3 means 10 raised to the 3rd power. Default is 0. +\r\nThe _multiplier_ only multiplies the value of the measurand. It does not specify a conversion between units, for example, kW and W.\r\n",
"type": "integer",
"default": 0,
"minimum": -2147483648,
"maximum": 2147483647
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
}
},
"CustomDataType": {
"description": "This class does not get 'AdditionalProperties = false' in the schema generation, so it can be extended with arbitrary JSON properties to allow adding custom data.",
"javaType": "CustomData",
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"maxLength": 255
}
},
"required": ["vendorId"]
}
},
"type": "object",
"additionalProperties": false,
"properties": {
"costDetails": {
"$ref": "#/definitions/CostDetailsType"
},
"eventType": {
"$ref": "#/definitions/TransactionEventEnumType"
},
"meterValue": {
"type": "array",
"additionalItems": false,
"items": {
"$ref": "#/definitions/MeterValueType"
},
"minItems": 1
},
"timestamp": {
"description": "The date and time at which this transaction event occurred.\r\n",
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+\\-]\\d{2}:\\d{2})$"
},
"triggerReason": {
"$ref": "#/definitions/TriggerReasonEnumType"
},
"seqNo": {
"description": "Incremental sequence number, helps with determining if all messages of a transaction have been received.\r\n",
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"offline": {
"description": "Indication that this transaction event happened when the Charging Station was offline. Default = false, meaning: the event occurred when the Charging Station was online.\r\n",
"type": "boolean",
"default": false
},
"numberOfPhasesUsed": {
"description": "If the Charging Station is able to report the number of phases used, then it SHALL provide it.\r\nWhen omitted the CSMS may be able to determine the number of phases used as follows: +\r\n1: The numberPhases in the currently used ChargingSchedule. +\r\n2: The number of phases provided via device management.\r\n",
"type": "integer",
"minimum": 0,
"maximum": 3
},
"cableMaxCurrent": {
"description": "The maximum current of the connected cable in Ampere (A).\r\n",
"type": "integer",
"minimum": -2147483648,
"maximum": 2147483647
},
"reservationId": {
"description": "This contains the Id of the reservation that terminates as a result of this transaction.\r\n",
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"preconditioningStatus": {
"$ref": "#/definitions/PreconditioningStatusEnumType"
},
"evseSleep": {
"description": "*(2.1)* True when EVSE electronics are in sleep mode for this transaction. Default value (when absent) is false.\r\n\r\n",
"type": "boolean"
},
"transactionInfo": {
"$ref": "#/definitions/TransactionType"
},
"evse": {
"$ref": "#/definitions/EVSEType"
},
"idToken": {
"$ref": "#/definitions/IdTokenType"
},
"customData": {
"$ref": "#/definitions/CustomDataType"
}
},
"required": ["eventType", "timestamp", "triggerReason", "seqNo", "transactionInfo"]
}