Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,48 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
yaml_srcs = glob(["*.yaml"])
some_yaml = yaml_srcs[0]
type_names = [name[:-5] for name in yaml_srcs]
cpp_headers = [
"generated/types/{}.hpp".format(name) for name in type_names
]
some_header = cpp_headers[0]
filegroup(
name = "types",
srcs = yaml_srcs,
visibility = ["//visibility:public"],
)
genrule(
name = "cpp-headers",
outs = cpp_headers,
srcs = yaml_srcs + [
"//lib/everest/framework:dependencies.yaml",
"//lib/everest/framework/schemas:schemas",
"@everest-core//:MODULE.bazel",
],
tools = [
"//applications/utils/ev-dev-tools:ev-cli",
],
cmd = """
$(location //applications/utils/ev-dev-tools:ev-cli) types generate-headers \
--work-dir `dirname $(location @everest-core//:MODULE.bazel)` \
--everest-dir `dirname $(location @everest-core//:MODULE.bazel)` \
--schemas-dir `dirname $(location //lib/everest/framework:dependencies.yaml)`/schemas \
--disable-clang-format \
--output-dir `dirname $(location {some_header})`
""".format(
some_header = some_header
)
)
cc_library(
name = "types_lib",
hdrs = [":cpp-headers"],
visibility = ["//visibility:public"],
includes = ["."],
copts = ["-std=c++17"],
)

View File

@@ -0,0 +1,295 @@
description: Auth token validator types
types:
AuthorizationStatus:
description: Authorization Status enum
type: string
enum:
- Accepted
- Blocked
- ConcurrentTx
- Expired
- Invalid
- NoCredit
- NotAllowedTypeEVSE
- NotAtThisLocation
- NotAtThisTime
- Unknown
- PinRequired
- Timeout
CertificateStatus:
description: Certificate status information
type: string
enum:
- Accepted
- SignatureError
- CertificateExpired
- CertificateRevoked
- NoCertificateAvailable
- CertChainError
- ContractCancelled
TokenValidationStatus:
description: Ongoing token validation status
type: string
enum:
- Processing
- Accepted
- Rejected
# Occurs when the token has been authorized but no connector is selected within connection_timeout seconds
- TimedOut
- UsedToStart
- UsedToStop
- Withdrawn
CustomIdToken:
description: Type for a custom id token with a free-form type
type: object
additionalProperties: false
required:
- value
- type
properties:
value:
description: Arbitrary value of the IdToken
type: string
minLength: 0
maxLength: 36
type:
description: Custom type of the token
type: string
minLength: 0
maxLength: 50
IdToken:
description: Type for an id token
type: object
additionalProperties: false
required:
- value
- type
properties:
value:
description: >-
Arbitrary value of the IdToken: This has to be printable case insensitive ascii
type: string
minLength: 0
maxLength: 36
type:
description: Type of the token
type: string
$ref: /authorization#/IdTokenType
additional_info:
description: A list of additional custom id tokens than can be used for providing additional information for validation
type: array
items:
type: object
$ref: /authorization#/CustomIdToken
ProvidedIdToken:
description: Type for IdToken provided by auth token providers. Contains additional information about the IdToken like the source and purpose
type: object
additionalProperties: false
required:
- id_token
- authorization_type
properties:
request_id:
description: >-
Id of the authorization request of this token. Could be used to put remoteStartId of OCPP2.0.1
type: integer
id_token:
description: IdToken of the provided token
type: object
$ref: /authorization#/IdToken
parent_id_token:
description: Parent IdToken of the provided token
type: object
$ref: /authorization#/IdToken
authorization_type:
description: Authorization type of the token.
type: string
$ref: /authorization#/AuthorizationType
minLength: 2
maxLength: 32
connectors:
description: A list of connector ids to which the authorization can be assigned
type: array
items:
minimum: 1
type: integer
prevalidated:
description: Indicates that the id token is already validated by the provider
type: boolean
certificate:
description: The X.509 certificated presented by EV and encoded in PEM format
type: string
maxLength: 5500
iso15118CertificateHashData:
description: >-
Contains the information needed to verify the EV Contract Certificate
via OCSP
type: array
items:
description: An array of contract certificate infos
type: object
$ref: /iso15118#/CertificateHashDataInfo
minItems: 1
maxItems: 4
TokenValidationStatusMessage:
description: The token validation status
type: object
additionalProperties: false
required:
- token
- status
properties:
token:
description: The id tag assigned to this transaction
type: object
$ref: /authorization#/ProvidedIdToken
status:
type: string
$ref: /authorization#/TokenValidationStatus
messages:
type: array
items:
type: object
$ref: /text_message#/MessageContent
ValidationResult:
description: >-
Result object containing authorization status enum value and an optional
parentIdTag
type: object
additionalProperties: false
required:
- authorization_status
- tariff_messages # defined as required to default initialize the vector, may be empty
properties:
authorization_status:
type: string
$ref: /authorization#/AuthorizationStatus
certificate_status:
type: string
$ref: /authorization#/CertificateStatus
tariff_messages:
description: >-
Messages that can contain session price information to show the user. The array can contain multiple messages in different languages. The first message in this array shall be used to start the transaction at the powermeter (for OCMF). Empty if no messages are available.
type: array
items:
description: Message with pricing information in a specific language
type: object
$ref: /text_message#/MessageContent
expiry_time:
description: Absolute UTC time point when reservation expires in RFC3339 format
type: string
format: date-time
parent_id_token:
description: Parent Id Tag of the validated token
type: object
$ref: /authorization#/IdToken
evse_ids:
description: >-
Only used when the id token is valid for one or more specific evses,
not for the whole charging station. Indicates for which evse ids the
provided token is valid
type: array
items:
minimum: 1
type: integer
reservation_id:
description: The reservation id that is used with this validated token.
type: integer
allowed_energy_transfer_modes:
description: >-
This is only used when we want to specify which energy transfer modes are allowed for
the respective authorization request.
type: array
items:
type: string
$ref: /iso15118#/EnergyTransferMode
minItems: 1
SelectionAlgorithm:
description: >-
The selection algorithm defines the logic to select one connector
for an incoming token.
SelectionAlgorithm enum:
UserInput: This algorithm waits for a user to input for which connector the authorization is provided
PlugEvents: This algorithms derives the selected connector based on the order of plug in events of EVs
FindFirst: This algorithm chooses the first referenced EVSE that is available
type: string
enum:
- UserInput
- PlugEvents
- FindFirst
AuthorizationType:
description: >-
Type of authorization of the provided token. The value
of AuthorizationType can influence the authorization process
type: string
enum:
- OCPP
- RFID
- Autocharge
- PlugAndCharge
- BankCard
IdTokenType:
description: >-
IdTokenType of the provided token. Required by OCPP2.0.1 to distinguish between different types of tokens.
type: string
enum:
- Central
- eMAID
- MacAddress
- ISO14443
- ISO15693
- KeyCode
- Local
- NoAuthorization
WithdrawAuthorizationRequest:
description: >-
Request to withdraw granted authorization.
If only the evse_id is given, the granted authorization for this EVSE will be withdrawn.
If only the id_token is given, the granted authorization for every EVSE where this id_token is placed will be
withdrawn
If both parameters are given, the granted authorization for the given EVSE will be withdrawn, if the placed
id_token matches the given id_token
If no parameter is given, all granted authorizations for all EVSEs will be removed
type: object
properties:
evse_id:
description: The evse id to withdraw authorization for.
type: integer
id_token:
description: The id token to withdraw authorization for.
type: object
$ref: /authorization#/IdToken
WithdrawAuthorizationResult:
description: >-
The result of a WithdrawAuthorizationRequest:
Accepted in case requested authorization was removed
AuthorizationNotFound in case no match for request was found
EvseNotFound in case no match for evse_id was found
Rejected in case module could not process the request for other reasons
type: string
enum:
- Accepted
- AuthorizationNotFound
- EvseNotFound
- Rejected
ValidationResultUpdate:
description: >-
Result object containing an updated validation result for a given token.
This is needed since certain information can be updated at a later time.
type: object
additionalProperties: false
required:
- validation_result
- connector_id
properties:
validation_result:
description: >-
Result object containing authorization status enum value and an optional
parentIdTag
type: object
$ref: /authorization#/ValidationResult
connector_id:
description: >-
Id of the connector on which the id token information has been updated.
type: integer

View File

@@ -0,0 +1,60 @@
description: EV and EVSE board support types
types:
BspEvent:
description: >-
Event stream from ControlPilot signal/relais.
A-F: CP states as defined in IEC61851-1
PowerOn: Hardware confirms that contactors switched on correctly (typically mirror contacts indicated successful switch on)
PowerOff: Hardware confirms that contactors switched off correctly and are not welded (typically mirror contacts indicated successful switch off)
Disconnected: Only used on EV side: Not connected to a charging station. Do not use on EVSE side.
type: object
additionalProperties: false
required:
- event
properties:
event:
type: string
enum:
- 'A'
- 'B'
- 'C'
- 'D'
- 'E'
- 'F'
- 'PowerOn'
- 'PowerOff'
- 'Disconnected'
ProximityPilot:
description: Current capability (ampacity) of the cable
type: object
additionalProperties: false
required:
- ampacity
properties:
ampacity:
description: Ampacity value of the cable assembly
type: string
enum:
- None
- A_13
- A_20
- A_32
- A_63_3ph_70_1ph
BspMeasurement:
description: Bsp Measurement
type: object
required:
- cp_pwm_duty_cycle
- proximity_pilot
properties:
proximity_pilot:
description: Current capability of the cable
type: object
$ref: /board_support_common#/ProximityPilot
rcd_current_mA:
description: RCD current in mA
type: number
cp_pwm_duty_cycle:
description: CP PWM Duty Cycle in percent (0-100)
type: number

View File

@@ -0,0 +1,89 @@
description: EVerest charger information type
types:
ChargerInformation:
description: >-
Type holding (mostly static) meta information about the whole charger.
Note: Vendor and manufacturer refer here to the very same company - it is the brand
which appears physically on the device label and/or which is shown on device's web
frontend, in UPnP etc.
We use both terms here to differentiate the different usages - with legal suffix, or without.
This is why e.g. no `vendor_url` field is defined - it would be the very same
as `manufacturer_url`.
type: object
additionalProperties: false
required:
- vendor
- model
properties:
vendor:
description: >-
Name of vendor, not including any legal form. Is typically used with `model` to
form a unique product name aka `vendor` + `single whitespace` + `model`.
Example: Pionix
type: string
model:
description: >-
A human-friendly name of the model, aka the product name; without vendor name,
without any device specific data/numbers (serial numbers/MAC addresses).
Example: BelayBox
type: string
chargepoint_serial:
description: >-
The traditional serial number as string. It does not necessarily consist of digits only.
Usually, this serial appears also on a label on the device.
Example: SH4CAWN00123
type: string
chargebox_serial:
description: >-
The serial number of the controller as string (if any).
It does not necessarily consist of digits only.
Example: CB123456
type: string
friendly_name:
description: >-
A string with can be used to display the device eg. in network listings/enumerations.
As mentioned above, this could typically consist of eg.:
`vendor` + `single whitespace` + `model` + ` [` + `serial` + `]`
Printers or wifi access points for example often use the last digits of their
MAC address instead of the serial number to allow users to differentiate multiple
instances in the network.
type: string
manufacturer:
description: >-
The name of the vendor, but this may include the legal form.
Typically used in product property lists or as text for the following URL.
type: string
manufacturer_url:
description: >-
An URL to the vendor website, ideally not a deep link so that it is available for
the whole product lifetime.
type: string
model_url:
description: >-
An URL to the model website (if any); as above, ideally not a deep link.
type: string
model_number:
description: >-
A model number as string (if any).
type: string
model_revision:
description: >-
A model or product revision string. Very often this is not defined for the first one
so that users of this variable should consider reasonable fallback/default
values. For later product/model revisions, this is typically printed also on a device
label so that customers can refer to it when e.g requesting product support.
type: string
board_revision:
description: >-
The revision (aka version) of the internal (main) PCB, ie. that one with
the CPU running the EVerest system.
type: string
firmware_version:
description: >-
A string containing the current running firmware version of the complete system.
This is typically not the EVerest version itself, but a firmware version which appears
e.g. on the web frontend and as part of the filenames the customer can download from
the manufacturer's website.
This is the only property which is typically not static for the product lifetime,
but determined at runtime.
type: string

View File

@@ -0,0 +1,20 @@
description: Power supply DC types
types:
ExternalDerating:
description: Derate DC power supply Capabilities from an external source.
type: object
additionalProperties: false
properties:
max_export_current_A:
description: Maximum current that the power supply can output in Ampere
type: number
max_import_current_A:
description: Maximum current that the power supply can sink in Ampere
type: number
max_export_power_W:
description: Maximum export power that the power supply can output in Watt
type: number
max_import_power_W:
description: Maximum import power that the power supply can sink in Watt
type: number

View File

@@ -0,0 +1,175 @@
description: >-
Message to show on a display
types:
IdentifierType:
description: Types of identifiers
type: string
enum:
- IdToken
- SessionId
- TransactionId
MessagePriorityEnum:
description: >-
Priority of the message.
AlwaysFront is the highest priority: The Charging Station SHALL show this message at the configured moment,
regardless of other installed messages. Hence, it shall not cycle it with other messages and the Charging
Stations own message shall not override this message. When a newer message with this MessagePriority is received,
this message is replaced.
InFront: The Charging Station SHALL show this message at the configured moment, regardless of the normal cycle of
messages. If there are multiple InFront message that must be shown at the same time, they must be cycled.
NormalCycle: Show this message in the cycle of messages.
type: string
enum:
- AlwaysFront
- InFront
- NormalCycle
MessageStateEnum:
description: During what state the message should be shown
type: string
enum:
- Charging
- Faulted
- Idle
- Unavailable
- Suspending
- Discharging
DisplayMessageStatusEnum:
description: Response on a display message request
type: string
enum:
- Accepted
- NotSupportedMessageFormat
- Rejected
- NotSupportedPriority
- NotSupportedState
- UnknownTransaction
ClearMessageResponseEnum:
description: Response on a clear display message request
type: string
enum:
- Accepted
- Unknown
DisplayMessage:
description: Message to show on a display
type: object
additionalProperties: false
properties:
id:
description: The message id
type: integer
priority:
description: >-
Priority of the message. For OCPP 2.0.1, this is a required property. But as we also use this interface
outside of ocpp, for other messages it is not required and if priority is not given, we assume it is the
lowest priority, 'NormalCycle'. When priority is 'AlwaysFront' and there already is a message with priority
'AlwaysFront', the last received message shall replace the already existing message.
type: string
$ref: /display_message#/MessagePriorityEnum
state:
description: >-
During what state should this message be shown. When omitted, this message should be shown in any state of
the Charging Station
type: string
$ref: /display_message#/MessageStateEnum
timestamp_from:
description: >-
From what date-time should this message be shown. If omitted: directly.
type: string
format: date-time
timestamp_to:
description: >-
Until what date-time should this message be shown, after this date/time this message SHALL be removed. If
omitted, message can be shown 'forever' (until it is specifically removed).
type: string
format: date-time
identifier_id:
description: >-
To which user / during which session shall this message be shown. User can be identified by id token (when
the session did not start yet), session id or transaction id. identifier_type will hold the type of
identifier_id (default session id).
Message SHALL be removed by the Charging Station after session has ended. If omitted, message is not tight to
a session.
type: string
minLength: 0
maxLength: 36
identifier_type:
description: >-
The type of 'identifier_id'. If omitted, type will be session id.
type: string
$ref: /display_message#/IdentifierType
message:
type: object
description: The message to show
$ref: /text_message#/MessageContent
qr_code:
description: >-
QR Code to scan for more information.
type: string
required:
- message
SetDisplayMessageResponse:
description: >-
Response to the set display message request.
type: object
properties:
status:
description: Whether the charging station is able to display the message
$ref: /display_message#/DisplayMessageStatusEnum
type: object
status_info:
description: Detailed status information
type: string
required:
- status
GetDisplayMessageRequest:
description: >-
Request display messages. The properties are filtered. If the properties are omitted, there will be no filter
applied (if all properties are omitted, all stored display messages will be returned).
type: object
properties:
id:
description: If provided the Charging Station shall return Display Messages of the given ids.
type: array
items:
type: integer
priority:
description: If provided the Charging Station shall return Display Messages with the given priority only.
$ref: /display_message#/MessagePriorityEnum
type: string
state:
description: If provided the Charging Station shall return Display Messages with the given state only.
$ref: /display_message#/MessageStateEnum
type: string
GetDisplayMessageResponse:
description: Response on the 'get display message' request. Will return the requested display messages.
type: object
properties:
status_info:
description: Detailed status information
type: string
messages:
description: Requested messages, if any
type: array
items:
type: object
$ref: /display_message#/DisplayMessage
ClearDisplayMessageRequest:
description: Request to remove a specific display message.
type: object
properties:
id:
description: Id of display message that should be removed from the charging station
type: integer
required:
- id
ClearDisplayMessageResponse:
description: Response on the clear display message request.
type: object
properties:
status:
type: object
$ref: /display_message#/ClearMessageResponseEnum
status_info:
type: string
required:
- status

View File

@@ -0,0 +1,448 @@
description: Energy import/export capability/limit types
types:
NumberWithSource:
description: Simple number type with source information
type: object
required:
- value
- source
properties:
value:
description: Value
type: number
source:
description: Source of the value
type: string
IntegerWithSource:
description: Simple number type with source information
type: object
required:
- value
- source
properties:
value:
description: Value
type: integer
source:
description: Source of the value
type: string
NodeType:
description: Enum Type for different Nodes on the energy tree
type: string
enum:
- Undefined
- Evse
- Generic
EvseState:
description: Enum for simplified EVSE state
type: string
enum:
- Unplugged
- WaitForAuth
- WaitForEnergy
- PrepareCharging
- PausedEV
- PausedEVSE
- Charging
- Finished
- Disabled
LimitsReq:
description: Energy flow limiting object request (Evses to EnergyManager)
type: object
additionalProperties: false
properties:
total_power_W:
description: >-
Total power limit in Watt. Can be used for DC or as additional
limit for AC. Positive number.
type: object
$ref: /energy#/NumberWithSource
ac_max_current_A:
description: Max current limit (per phase) in Ampere. AC only. Positive number.
type: object
$ref: /energy#/NumberWithSource
ac_min_current_A:
description: >-
Min AC current limit per phase in Ampere. Values below that value indicate the
device will not work properly, i.e. it will not charge below 6 amps. AC only.
type: object
$ref: /energy#/NumberWithSource
ac_max_phase_count:
description: Limit to number of phases. Omit if number of phases are not limited. Value between 1 and 3.
type: object
$ref: /energy#/IntegerWithSource
ac_min_phase_count:
description: Minimal number of phases. Omit if number of phases are not limited. Value between 1 and 3.
type: object
$ref: /energy#/IntegerWithSource
ac_supports_changing_phases_during_charging:
description: >-
Indicate whether phase switching is allowed during charging or
not
type: boolean
ac_number_of_active_phases:
description: >-
Number of phases currently offered to the vehicle (1ph or 3ph mode)
type: integer
minimum: 1
maximum: 3
LimitsRes:
description: Energy flow limiting object Result (Energy manager to Evses)
type: object
additionalProperties: false
properties:
total_power_W:
description: >-
Total power limit in Watt. Can be used for DC or as additional
limit for AC. Negative numbers mean export to grid direction.
type: object
$ref: /energy#/NumberWithSource
ac_max_current_A:
description: Max current limit (per phase) in Ampere. AC only. Negative numbers mean export to grid direction.
type: object
$ref: /energy#/NumberWithSource
ac_max_phase_count:
description: Limit to number of phases. Omit if number of phases are not limited.
type: object
$ref: /energy#/IntegerWithSource
OptimizerTarget:
description: User defined optimizer targets for this evse
type: object
additionalProperties: false
properties:
energy_amount_needed:
description: Amount of kwh the car needs to fulfill its charging target
type: number
charge_to_max_percent:
description: Charge car battery to max NN percent
type: number
car_battery_soc:
description: Car battery State Of Charge in percent
type: number
minimum: 0
maximum: 100
leave_time:
description: >-
RFC3339 UTC format time when the car needs to drive away with
charging targets fulfilled. Will charge cheapest within this timeframe.
type: string
price_limit:
description: >-
Always charge if price below this limit. This includes solar
charging and price for solar energy if price levels set correctly.
type: number
full_autonomy:
description: >-
Only charge from locally generated energy. Do not draw power
from grid for charging.
type: boolean
FrequencyWattPoint:
description: A point of a frequency-watt curve
type: object
required:
- frequency_Hz
- total_power_W
properties:
frequency_Hz:
description: The frequency in Hz
type: number
total_power_W:
description: The total power in W
type: number
SetpointType:
description: Defines a setpoint, which is a target value for either charging or discharging depending on the sign. Setpoints per phase are currently not supported.
type: object
required:
- source
- priority
properties:
ac_current_A:
description: >-
The target value in amps per phase for either charging or discharging depending on the sign.
Positive values indicate charging, while negative values indicate discharging.
Do not set ac_current_A, total_power_W and frequency_table properties simultaneously.
type: number
total_power_W:
description: >-
The target value for the total power for either charging or discharging depending on the sign.
Positive values indicate charging, while negative values indicate discharging.
Do not set ac_current_A, total_power_W and frequency_table properties simultaneously.
type: number
frequency_table:
description: >-
Frequency table for the setpoint. When used it must contain at least
two coordinates to specify a power-frequency table to use during this period.
If the array is empty, no frequency setpoint is set.
Do not set ac_current_A, total_power_W and frequency_table properties simultaneously.
type: array
items:
description: One entry for the frequency table
type: object
$ref: /energy#/FrequencyWattPoint
priority:
description: >-
Note: priority handling is not implemented for now.
If multiple conflicting setpoints are specified in the tree, the priority selects which one is used.
Highest priority is 0, lowest priority is 1000.
type: integer
minimum: 0
maximum: 1000
source:
description: Source of the setpoint
type: string
ScheduleSetpointEntry:
description: One entry for the time series (setpoint request)
type: object
additionalProperties: false
required:
- timestamp
properties:
timestamp:
description: Absolute timestamp for this sample in RFC3339 UTC format
type: string
format: date-time
setpoint:
description: Setpoint for this timestamp
type: object
$ref: /energy#/SetpointType
ScheduleReqEntry:
description: One entry for the time series (request)
type: object
additionalProperties: false
required:
- timestamp
- limits_to_root
- limits_to_leaves
properties:
timestamp:
description: Absolute timestamp for this sample in RFC3339 UTC format
type: string
format: date-time
limits_to_root:
description: Limit for this timestamp, for the root facing side
type: object
$ref: /energy#/LimitsReq
limits_to_leaves:
description: Limit for this timestamp, for the leaves facing side
type: object
$ref: /energy#/LimitsReq
conversion_efficiency:
description: Conversion efficiency from root to leaves side (e.g. AC/DC efficiency). Defaults to one if not specified.
type: number
minimum: 0
maximum: 1
price_per_kwh:
description: Price information for this timepoint
type: object
$ref: /energy_price_information#/PricePerkWh
ScheduleResEntry:
description: One entry for the time series (result)
type: object
additionalProperties: false
required:
- timestamp
- limits_to_root
properties:
timestamp:
description: Absolute timestamp for this sample in RFC3339 UTC format
type: string
format: date-time
limits_to_root:
description: Limit for this timestamp, for the root facing side
type: object
$ref: /energy#/LimitsRes
price_per_kwh:
description: Price information for this timepoint
type: object
$ref: /energy_price_information#/PricePerkWh
EnergyFlowRequest:
description: >-
Request energy flow parameters to supply/limit energy import (direction from grid
to car) and/or consume/limit energy export (car to grid) at a specific point in the tree
type: object
required:
- uuid
- children
- node_type
- schedule_import
- schedule_export
- schedule_setpoints
properties:
children:
description: Array of child node energy flow requests (in the direction to consumer/car)
type: array
items:
description: One entry per child node
type: object
$ref: /energy#/EnergyFlowRequest
uuid:
description: >-
UUID for this node. This UUID will be used again when enforce_limits()
command propagates through the tree.
type: string
node_type:
description: >-
Node Type Enum
type: string
$ref: /energy#/NodeType
priority_request:
description: >-
If set to true, this is a high priority request that needs to be handled now.
Otherwise energymanager may merge multiple requests and address them later.
type: boolean
evse_state:
description: State of the EVSE
type: object
$ref: /energy#/EvseState
optimizer_target:
description: User defined optimizer targets for this evse
type: object
$ref: /energy#/OptimizerTarget
energy_usage_root:
description: Energy usage measurement of this node at root side
type: object
$ref: /powermeter#/Powermeter
energy_usage_leaves:
description: Energy usage measurement of this node at leaves side
type: object
$ref: /powermeter#/Powermeter
schedule_import:
description: >-
Energy import/limits time series. The first entry is special
as it will be active already now even if the timestamp is in the future,
so it is good practice to set the first entry to current time. The time
series can have arbitrary time difference between entries and all timestamps
are absolute UTC time.
type: array
items:
description: One entry for the time series. Values are always positive.
type: object
$ref: /energy#/ScheduleReqEntry
schedule_export:
description: >-
Energy export/limits time series. The first entry is special
as it will be active already now even if the timestamp is in the future,
so it is good practice to set the first entry to current time. The time
series can have arbitrary time difference between entries and all timestamps
are absolute UTC time.
type: array
items:
description: One entry for the time series. Values are always positive.
type: object
$ref: /energy#/ScheduleReqEntry
schedule_setpoints:
description: >-
Setpoints time series. The first entry is special
as it will be active already now even if the timestamp is in the future,
so it is good practice to set the first entry to current time. The time
series can have arbitrary time difference between entries and all timestamps
are absolute UTC time.
type: array
items:
description: One entry for the time series.
type: object
$ref: /energy#/ScheduleSetpointEntry
EnforcedLimits:
description: Enforce Limits data type
type: object
required:
- uuid
- valid_for
- schedule
- limits_root_side
properties:
uuid:
description: UUID of node that this limit applies to
type: string
valid_for:
description: >-
Limits are valid for this number of seconds. If no new
update is received after valid_for seconds then power consumption must be stopped.
type: integer
limits_root_side:
description: Enforced limits that must be respected at the root side.
type: object
$ref: /energy#/LimitsRes
schedule:
description: >-
Informative only. Do not use for actual limiting. Energy import/export limits
time series. The first entry is special as it will be active already now
even if the timestamp is in the future, so it is good practice to set the
first entry to current time. The time series can have arbitrary time difference
between entries and all timestamps are absolute UTC time.
type: array
items:
description: One entry for the time series. Values are positive for import from grid and negative for export to grid.
type: object
$ref: /energy#/ScheduleResEntry
CapabilityLimits:
description: Configured/rated maximum limits of an energy node
type: object
required:
- max_current_A
- max_phase_count
- nominal_voltage_V
- total_power_W
properties:
max_current_A:
description: Max current limit (per phase) in Ampere.
type: number
minimum: 0
max_phase_count:
description: Number of phases covered by this fuse
type: integer
minimum: 0
maximum: 3
nominal_voltage_V:
description: Nominal AC voltage between a single phase and neutral in Volt
type: number
minimum: 1
total_power_W:
description: >-
Total power limit in Watt.
For AC energy nodes, this usually is: nominal_voltage_V x max_current_A x max_phase_count
type: number
ExternalLimits:
description: External Limits data type
type: object
required:
- schedule_import
- schedule_export
- schedule_setpoints
properties:
schedule_import:
description: >-
Energy import/limits time series. The first entry is special as it will be active already now
even if the timestamp is in the future, so it is good practice to set the
first entry to current time. The time series can have arbitrary time difference
between entries and all timestamps are absolute UTC time.
The last entry is valid for any time after the schedule ends.
type: array
items:
description: One entry for the time series
type: object
$ref: /energy#/ScheduleReqEntry
schedule_export:
description: >-
Energy export/limits time series. The first entry is special as it will be active already now
even if the timestamp is in the future, so it is good practice to set the
first entry to current time. The time series can have arbitrary time difference
between entries and all timestamps are absolute UTC time.
The last entry is valid for any time after the schedule ends.
type: array
items:
description: One entry for the time series
type: object
$ref: /energy#/ScheduleReqEntry
schedule_setpoints:
description: >-
Setpoints time series. The first entry is special
as it will be active already now even if the timestamp is in the future,
so it is good practice to set the first entry to current time. The time
series can have arbitrary time difference between entries and all timestamps
are absolute UTC time.
type: array
items:
description: One entry for the time series.
type: object
$ref: /energy#/ScheduleSetpointEntry

View File

@@ -0,0 +1,57 @@
description: Energy price information types
types:
PricePerkWh:
description: Price information for this timepoint
type: object
additionalProperties: false
required:
- timestamp
- value
- currency
properties:
timestamp:
description: Absolute timestamp for this sample in RFC3339 UTC format
type: string
format: date-time
value:
description: Price per kWh (cost)
type: number
currency:
description: Currency in 3 digit ISO 4217
type: string
minLength: 3
maxLength: 3
EnergyPriceSchedule:
required:
- schedule_import
- schedule_export
description: >-
Forecast JSON Object containing timestamps and the price forecast
for both import and export.
type: object
additionalProperties: false
properties:
schedule_import:
description: >-
Pricing time series. The first entry is special as it will be
active already now even if the timestamp is in the future, so it is good
practice to set the first entry to current time. The time series can have
arbitrary time difference between entries and all timestamps are absolute
UTC time.
type: array
items:
description: One entry for the time series
type: object
$ref: /energy_price_information#/PricePerkWh
schedule_export:
description: >-
Pricing time series. The first entry is special as it will be
active already now even if the timestamp is in the future, so it is good
practice to set the first entry to current time. The time series can have
arbitrary time difference between entries and all timestamps are absolute
UTC time.
type: array
items:
description: One entry for the time series
type: object
$ref: /energy_price_information#/PricePerkWh

View File

@@ -0,0 +1,105 @@
description: This file contains the types for the error history interface
types:
ImplementationIdentifier:
description: Identifier of an implementation
type: object
required:
- module_id
- implementation_id
properties:
module_id:
type: string
minLength: 2
implementation_id:
type: string
minLength: 2
State:
description: State of an error
type: string
enum:
- Active
- ClearedByModule
- ClearedByReboot
SeverityFilter:
description: Severity filter for errors
type: string
enum:
- HIGH_GE
- MEDIUM_GE
- LOW_GE
TimeperiodFilter:
description: Timeperiod filter for errors
type: object
required:
- timestamp_from
- timestamp_to
properties:
timestamp_from:
type: string
format: date-time
timestamp_to:
type: string
format: date-time
FilterArguments:
description: Arguments for the get_errors command
type: object
required: []
properties:
state_filter:
$ref: /error_history#/State
origin_filter:
$ref: /error_history#/ImplementationIdentifier
type_filter:
type: string
severity_filter:
$ref: /error_history#/SeverityFilter
timeperiod_filter:
$ref: /error_history#/TimeperiodFilter
handle_filter:
type: string
description: Handle of an error
Severity:
description: Severity of an error
type: string
enum:
- High
- Medium
- Low
ErrorObject:
description: Represents an error
type: object
required:
- type
- description
- message
- origin
- timestamp
- uuid
- severity
- state
properties:
type:
type: string
minLength: 2
sub_type:
type: string
description:
type: string
minLength: 2
message:
type: string
minLength: 2
severity:
$ref: /error_history#/Severity
origin:
$ref: /error_history#/ImplementationIdentifier
timestamp:
type: string
format: date-time
uuid:
type: string
minLength: 2
state:
$ref: /error_history#/State
additionalProperties: false

View File

@@ -0,0 +1,11 @@
description: EV and EVSE board support types
types:
EvCpState:
description: ControlPilot state
type: string
enum:
- A
- B
- C
- D
- 'E'

View File

@@ -0,0 +1,122 @@
description: Board support types
types:
HardwareCapabilities:
description: Hardware capability/limits
type: object
additionalProperties: false
required:
- max_current_A_import
- min_current_A_import
- max_phase_count_import
- min_phase_count_import
- max_current_A_export
- min_current_A_export
- max_phase_count_export
- min_phase_count_export
- supports_changing_phases_during_charging
- supports_cp_state_E
- connector_type
properties:
max_current_A_import:
description: Maximum current (ampere) the hardware can handle (import from grid)
type: number
min_current_A_import:
description: >-
Minimum current (ampere) the hardware can use to charge. Values
below may be set but may result in pause instead. (import from grid)
type: number
max_phase_count_import:
description: Max nr of phases the hardware can use (import from grid)
type: integer
minimum: 1
maximum: 3
min_phase_count_import:
description: Minimum nr of phases the hardware can use (import from grid)
type: integer
minimum: 1
maximum: 3
max_current_A_export:
description: Maximum current (ampere) the hardware can handle (export to grid)
type: number
min_current_A_export:
description: >-
Minimum current (ampere) the hardware can use to charge. Values
below may be set but may result in pause instead. (export to grid)
type: number
max_phase_count_export:
description: Max nr of phases the hardware can use (export to grid)
type: integer
minimum: 1
maximum: 3
min_phase_count_export:
description: Minimum nr of phases the hardware can use (export to grid)
type: integer
minimum: 1
maximum: 3
supports_changing_phases_during_charging:
description: >-
Indicates whether changing number of phases is supported during
charging (true) or not (false)
type: boolean
supports_cp_state_E:
description: >-
Indicates whether setting Control Pilot to state E is supported (true) or not
(false)
type: boolean
max_plug_temperature_C:
type: number
connector_type:
description: Type of charging connector available at this EVSE
type: string
enum:
- IEC62196Type2Cable
- IEC62196Type2Socket
Telemetry:
description: Other telemetry
type: object
additionalProperties: false
required:
- evse_temperature_C
- fan_rpm
- supply_voltage_12V
- supply_voltage_minus_12V
- relais_on
properties:
evse_temperature_C:
description: Current temperature of the EVSE in degree celsius
type: number
plug_temperature_C:
description: Current temperature of the plug in degree celsius
type: number
fan_rpm:
description: RPM of the fan. 0 if off or no fan available.
type: number
supply_voltage_12V:
description: Internal 12V supply voltage
type: number
supply_voltage_minus_12V:
description: Internal -12V supply voltage
type: number
relais_on:
description: true if power to the car is currently on, false if off
type: boolean
PowerOnOff:
description: Flag and context for switching power on/off. In some architectures e.g. DC power
train needs to know whether it should switch on with limited current or full current on the output contactors.
type: object
additionalProperties: false
required:
- allow_power_on
- reason
properties:
allow_power_on:
description: Allow switching on (true) or force switching off (false)
type: boolean
reason:
description: Reason for switching on/off
type: string
enum:
- DCCableCheck
- DCPreCharge
- FullPowerCharging
- PowerOff

View File

@@ -0,0 +1,667 @@
description: EVSE manager types
types:
StopTransactionRequest:
description: >-
Request for a stop transaction containing the reason and an optional
id tag
type: object
required:
- reason
properties:
reason:
description: Reason for stopping the transaction
type: string
$ref: /evse_manager#/StopTransactionReason
id_tag:
description: Id tag that was used to stop the transaction. Only present if transaction was stopped locally.
type: object
$ref: /authorization#/ProvidedIdToken
StopTransactionReason:
description: >-
Reason for stopping transaction
EmergencyStop: Emergency stop button was used
EVDisconnected: Disconnecting of cable, vehicle moved away from inductive charge unit
HardReset: A hard reset command was received previously
Local: Stopped locally on request of the user at the Charge Point. This is a regular termination of a transaction. Examples: presenting an RFID tag, pressing a button to stop
Other: Any other reason
PowerLoss: Complete loss of power
Reboot: A locally initiated reset/reboot occurred
Remote: Stopped remotely on request of the user. This is a regular termination of a transaction. Examples: termination using a smartphone app, exceeding a (non local) prepaid credit
SoftReset: A soft reset command was received
UnlockCommand: Central System sent an Unlock Connector command
DeAuthorized: The transaction was stopped because of the authorization status in a StartTransaction.conf
EnergyLimitReached: Maximum energy of charging reached. For example: in a pre-paid charging solution
GroundFault: A GroundFault has occurred
LocalOutOfCredit: A local credit limit enforced through the Charging Station has been exceeded.
MasterPass: The transaction was stopped using a token with a MasterPassGroupId.
OvercurrentFault: A larger than intended electric current has occurred
PowerQuality: Quality of power too low, e.g. voltage too low/high, phase imbalance, etc.
SOCLimitReached: Electric vehicle has reported reaching a locally enforced maximum battery State of Charge (SOC)
StoppedByEV: The transaction was stopped by the EV
TimeLimitReached: EV charging session reached a locally enforced time limit
Timeout: EV not connected within timeout
ReqEnergyTransferRejected: OCPP CSMS cannot accept the requested energy transfer type.
EVSEDisabled: The transaction was stopped because the EVSE was disabled.
type: string
enum:
- EmergencyStop
- EVDisconnected
- HardReset
- Local
- Other
- PowerLoss
- Reboot
- Remote
- SoftReset
- UnlockCommand
- DeAuthorized
- EnergyLimitReached
- GroundFault
- LocalOutOfCredit
- MasterPass
- OvercurrentFault
- PowerQuality
- SOCLimitReached
- StoppedByEV
- TimeLimitReached
- Timeout
- ReqEnergyTransferRejected
- EVSEDisabled
StartSessionReason:
description: >-
Reason for session start
EVConnected: Session was started because an EV was plugged in
Authorized: Session was started because a valid authorization was presented and the EVSE is authorized to start a transaction immediately when an EV is plugged in
type: string
enum:
- EVConnected
- Authorized
PauseChargingEVSEReasonEnum:
description: >-
Reason Enum for EVSE Pause
UserPause: Session was paused due to external request on the EvseManager interface
Error: An error prevents charging, it will resume once the error is cleared
NoEnergy: Paused because there is no energy available at this moment
type: string
enum:
- UserPause
- Error
- NoEnergy
ChargingPausedEVSEReasons:
description: >-
Multiple reasons to be in pause state can be active at any point in time.
type: object
additionalProperties: false
required:
- reasons
properties:
reasons:
type: array
items:
description: A single reason to be paused
type: string
$ref: /evse_manager#/PauseChargingEVSEReasonEnum
minItems: 1
maxItems: 3
HlcSessionFailedReasonEnum:
description: |
Reason for a higher-level-communication (HLC) session failure event.
Published via HlcSessionFailed whenever HLC session encounters a failure.
- ProtocolNegotiationFailed: No common communication protocol or version could be
negotiated. Applies to protocols with a version handshake phase.
- AuthorizationFailed: The authorization phase did not succeed and the EV terminated
the session. This covers both explicit rejection (e.g. failed PnC contract or
certificate verification) and authorization timeout (the EVSE did not respond
within the timeout of the EV).
- ChargingParametersNotAccepted: The EV terminated during parameter negotiation,
indicating it could not accept the offered energy transfer parameters (power
levels, voltage range, schedule, etc.).
- EnergyTransferSetupFailed: The setup phase immediately before energy transfer
began (e.g. power delivery request, pre-charge coordination) failed or was
rejected by the EV before any energy was transferred.
- ChargingInterrupted: The EV stopped energy transfer unexpectedly during active
charging without completing a normal stop sequence.
- FailedTLSHandshake: The TLS handshake between EV and EVSE failed before any
V2G message exchange could take place, preventing the session from starting.
- UnexpectedSessionEnd: The communication session ended unexpectedly at a phase
not covered by the above reasons, or without completing a normal termination
sequence. Catch-all for unclassified EV-side terminations.
type: string
enum:
- ProtocolNegotiationFailed
- AuthorizationFailed
- ChargingParametersNotAccepted
- EnergyTransferSetupFailed
- ChargingInterrupted
- FailedTLSHandshake
- UnexpectedSessionEnd
SwitchThreePhasesWhileChargingResult:
description: >-
Returns success or error code
Success: Switching phases was successful
Error_NotSupported: Switching phases is not supported
Error_NotCharging: EVSE is not charging
Error_Hardware: There was a hardware error on switching phases
type: string
enum:
- Success
- Error_NotSupported
- Error_NotCharging
- Error_Hardware
SessionEventEnum:
description: >-
Session Event enum
Authorized: Signaled when the EVSE is authorized for charging
Deauthorized: Signaled when the EVSE is not authorized for charging (anymore)
Enabled: Signaled when the EVSE is enabled (e.g. after an enable command)
Disabled: Signaled when the EVSE is disabled (e.g. after a disable command)
SessionStarted: Signaled when a session has been started. A session has been started either when an EV is plugged in or the user has been authorized to start a transaction (e.g. after an authorize command)
AuthRequired: Signaled when an EVSE needs authorization to start a transaction
TransactionStarted: Signaled when a transaction has been started. Transaction starts at the point that all conditions for charging are met: EV is connected and user has been authorized
PrepareCharging: EVSE started to prepare for charging. DC: CableCheck, PreCharge, PowerDelivery. AC: wait for the car to proceed to state C/D
ChargingStarted: DC: CurrentDemand has started. AC: Auth is ok and car requested power (state C/D)
ChargingPausedEV: Signaled when charging is paused by the EV
ChargingPausedEVSE: Signaled when charging is paused by the EVSE
StoppingCharging: EVSE has started to stop the charging process. DC: CurrentDemand has finished, now doing WeldingCheck etc, AC: Wait for car to return to state B or A
ChargingFinished: Charging is finished. Essentially the same as TransactionFinished, but emitted for clarity
TransactionFinished: Signaled when the transaction finished. Transaction finishes at the point where one of the preconditions for charging irrevocably becomes false: When a user swipes to stop the transaction and the stop is authorized.
SessionFinished: Session finishes at the point that the EVSE is available again (no cable plugged)
ReservationStart: Signaled when a reservation starts
ReservationEnd: Signaled when a reservation ends
PluginTimeout: Signaled when an EV has been plugged in but no authorization is present within specified ConnectionTimeout
SwitchingPhases: Signaled when the EVSE Manager starts switching phases
SessionResumed: Signaled when a session is resumed at startup (e.g. because of previous powerloss)
type: string
enum:
- Authorized
- Deauthorized
- Enabled
- Disabled
- SessionStarted
- AuthRequired
- TransactionStarted
- PrepareCharging
- ChargingStarted
- ChargingPausedEV
- ChargingPausedEVSE
- StoppingCharging
- ChargingFinished
- TransactionFinished
- SessionFinished
- ReservationStart
- ReservationEnd
- PluginTimeout
- SwitchingPhases
- SessionResumed
SessionStarted:
description: Data for the SessionStarted event
type: object
additionalProperties: false
required:
- reason
- meter_value
properties:
reason:
description: Reason for session start
type: string
$ref: /evse_manager#/StartSessionReason
id_tag:
description: The id tag assigned to this session
type: object
$ref: /authorization#/ProvidedIdToken
meter_value:
description: Exported meter value
type: object
$ref: /powermeter#/Powermeter
signed_meter_value:
description: The signed meter value report of the started session
type: object
$ref: /units_signed#/SignedMeterValue
reservation_id:
description: Id of the reservation
type: integer
logging_path:
description: >-
File system path where additional log files are stored, such as
event logs, raw ethernet dumps, ocpp session logs etc.
Filenames should start with "incomplete-" when they are not finished yet,
this allows other process to wait for the completion after the SessionFinished event.
type: string
SessionFinished:
description: Data for the SessionFinished event
type: object
additionalProperties: false
required:
- meter_value
properties:
meter_value:
description: Exported meter value
type: object
$ref: /powermeter#/Powermeter
TransactionStarted:
description: Data for the TransactionStarted event
type: object
additionalProperties: false
required:
- id_tag
- meter_value
properties:
id_tag:
description: The id tag assigned to this transaction
type: object
$ref: /authorization#/ProvidedIdToken
meter_value:
description: Exported meter value
type: object
$ref: /powermeter#/Powermeter
signed_meter_value:
description: The signed meter value report of the started transaction
type: object
$ref: /units_signed#/SignedMeterValue
reservation_id:
description: Id of the reservation
type: integer
TransactionFinished:
description: Data for TransactionFinished event
type: object
additionalProperties: false
required:
- meter_value
properties:
meter_value:
description: Transaction finished meter value
type: object
$ref: /powermeter#/Powermeter
start_signed_meter_value:
description: The starting signed meter value report of the stopped transaction. If not included in the `signed_meter_value` object, it must be included here.
type: object
$ref: /units_signed#/SignedMeterValue
signed_meter_value:
description: The signed meter value report of the stopped transaction
type: object
$ref: /units_signed#/SignedMeterValue
reason:
description: Reason for stopping transaction
type: string
$ref: /evse_manager#/StopTransactionReason
id_tag:
description: Id tag that was used to stop the transaction. Only present if transaction was stopped locally.
type: object
$ref: /authorization#/ProvidedIdToken
ChargingStateChangedEvent:
description: Context for ChargingStateChanged event
type: object
additionalProperties: false
required:
- meter_value
properties:
meter_value:
description: Exported meter value
type: object
$ref: /powermeter#/Powermeter
AuthorizationEvent:
description: Context for authorization event (Authorized or Deauthorized)
type: object
additionalProperties: false
required:
- meter_value
properties:
meter_value:
description: Exported meter value
type: object
$ref: /powermeter#/Powermeter
EnableDisableSource:
description: >-
Source of a Enable or Disable command/event
type: object
required:
- enable_source
- enable_state
- enable_priority
properties:
enable_source:
description: Specifies the source
type: string
enum:
- Unspecified
- LocalAPI
- LocalKeyLock
- ServiceTechnician
- RemoteKeyLock
- MobileApp
- FirmwareUpdate
- CSMS
enable_state:
description: Specifies the state for this entry
type: string
enum:
- Unassigned
- Disable
- Enable
enable_priority:
description: Priority of this entry. The highest priority is 0.
type: integer
minimum: 0
maximum: 10000
SessionEvent:
description: Emits all events related to sessions
type: object
additionalProperties: false
required:
- uuid
- event
- timestamp
properties:
uuid:
description: >-
An EVSE generated UUID for this session, can be used e.g. for
database storage.
type: string
timestamp:
description: Session start time in RFC3339 format
type: string
format: date-time
connector_id:
description: >-
Id of the connector of this EVSE.
If the connector_id is not specified, its assumed to be 1
type: integer
event:
description: >-
Event enum. For some events an additional object is set, see
below.
type: string
$ref: /evse_manager#/SessionEventEnum
session_started:
description: data for SessionStarted event
type: object
$ref: /evse_manager#/SessionStarted
session_finished:
description: data for the SessionFinished event
type: object
$ref: /evse_manager#/SessionFinished
transaction_started:
description: data for TransactionStarted event
type: object
$ref: /evse_manager#/TransactionStarted
transaction_finished:
description: >-
data for TransactionFinished event that happens when car is plugged
out
type: object
$ref: /evse_manager#/TransactionFinished
charging_paused_evse:
description: >-
Multiple reasons to be in pause state can be active at any point in time.
type: object
$ref: /evse_manager#/ChargingPausedEVSEReasons
charging_state_changed_event:
description: >-
Data for ChargingStateChangedEvent. Shall be set for the following SessionEventEnums:
ChargingStarted, ChargingPausedEV, Charging
type: object
$ref: /evse_manager#/ChargingStateChangedEvent
authorization_event:
description: >-
Data for Authorization event. Shall be set for the following SessionEventEnums:
Authorized, Deauthorized
type: object
$ref: /evse_manager#/AuthorizationEvent
source:
description: >-
Additional data for Enabled/Disabled events. Specifies the source of the command that changed the state.
type: object
$ref: /evse_manager#/EnableDisableSource
HlcSessionFailedEvent:
description: >-
Published whenever an HLC session failure occurs.
Published immediately when the failure is detected, independently of the EvseManager
state machine transitions. Can fire multiple times per EVerest session (e.g. on each
retry attempt). Use the uuid field to correlate with session_event.
type: object
additionalProperties: false
required:
- uuid
- reason
properties:
uuid:
description: Session UUID for correlation with session_event
type: string
reason:
description: Protocol-agnostic reason for the HLC session failure
type: string
$ref: /evse_manager#/HlcSessionFailedReasonEnum
Limits:
description: Limits of this EVSE
type: object
additionalProperties: false
required:
- max_current
- nr_of_phases_available
properties:
uuid:
description: This module's UUID for global identification
type: string
max_current:
description: Instantaneous maximum current available to car
type: number
nr_of_phases_available:
description: Instantaneous phase count available to car
type: integer
minimum: 1
maximum: 3
EVInfo:
description: Information about the connected EV if available
type: object
additionalProperties: false
properties:
soc:
description: State of charge of the vehicle's battery in percent
type: number
minimum: 0
maximum: 100
present_voltage:
description: Current voltage of the vehicles battery [V]
type: number
present_current:
description: Current current of the vehicles battery [A]
type: number
target_voltage:
description: Target voltage that the vehicle requested [V]
type: number
target_current:
description: Target current that the vehicle requested [A]
type: number
maximum_current_limit:
description: Maximum current that the vehicle supports [A]
type: number
minimum_current_limit:
description: Charging below this limit is not energy efficient [A]
type: number
maximum_voltage_limit:
description: Maximum voltage that the vehicle supports [V]
type: number
maximum_power_limit:
description: Maximum power that the vehicle supports [W]
type: number
estimated_time_full:
description: Estimated time when the vehicle is fully charged
type: string
format: date-time
departure_time:
description: Time when the vehicle intends to depart (If set by the user)
type: string
format: date-time
estimated_time_bulk:
description: Estimated time when the vehicle finished bulk charging (e.g. 80%)
type: string
format: date-time
evcc_id:
description: EVCC ID (typically MAC address)
type: string
pattern: ^[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){5}$
remaining_energy_needed:
description: Remaining energy needed to fulfill charging goal [Wh]
type: number
battery_capacity:
description: Vehicle's battery capacity [Wh]
type: number
battery_full_soc:
description: SoC which the vehicle considers fully charged [%]
type: number
minimum: 0
maximum: 100
battery_bulk_soc:
description: SoC which the vehicle considers bulk charging reached [%]
type: number
minimum: 0
maximum: 100
target_energy_request:
description: Energy request to fulfil the target SoC from the EV [Wh]
type: number
max_energy_request:
description: Maximum acceptable energy level of the EV [Wh]
type: number
min_energy_request:
description: Energy request to fulfil the minimum SoC [Wh]
type: number
ac_max_charge_power:
description: Ac maximum power supported by the EV [W]
type: number
ac_min_charge_power:
description: Ac minimum power supported by the EV [W]
type: number
ac_max_discharge_power:
description: Ac maximum discharge power supported by the EV [W]
type: number
ac_min_discharge_power:
description: Ac minimum discharge power supported by the EV [W]
type: number
ac_present_active_power:
description: Ac present total active power measured by the EV [W]
type: number
ac_present_reactive_power:
description: Ac present total reactive power measured by the EV [W]
type: number
CarManufacturer:
description: >-
Enum type for car manufacturers derived from MAC address.
May be different from actual brand, so e.g. Skoda falls under Volkswagen_Group.
type: string
enum:
- VolkswagenGroup
- Tesla
- Unknown
Connector:
description: >-
Type for a connector which is an independently operated and managed electrical outlet of an EVSE. It corresponds
to a single physical connector
type: object
additionalProperties: false
required:
- id
properties:
id:
description: Id of the connector. Connectors should be numbered starting with 1 counting upwards
type: integer
minimum: 1
type:
description: Type of the connector
type: string
$ref: /evse_manager#/ConnectorTypeEnum
ConnectorTypeEnum:
description: >-
Type of a physical connector
cCCS1: Combined Charging System 1 a.k.a. Combo 1
cCCS2: Combined Charging System 2 a.k.a. Combo 2
cG105: JARI G105-1993 a.k.a. CHAdeMO
cMCS: Megawatt Charging System (captive cabled) (IEC 63379 Configuration HH)
cTesla: Tesla Connector
cType1: IEC62196-2 Type 1 connector a.k.a. J1772
cType2: IEC62196-2 Type 2 connector a.k.a. Mennekes connector
s309_1P_16A: 16A 1 phase IEC60309 socket
s309_1P_32A: 32A 1 phase IEC60309 socket
s309_3P_16A: 16A 3 phase IEC60309 socket
s309_3P_32A: 32A 3 phase IEC60309 socket
sBS1361: UK domestic socket a.k.a. 13Amp
sCEE-7_7: CEE 7/7 16A socket a.k.a Schuko
sType2: IEC62196-2 Type 2 socket a.k.a. Mennekes connector
sType3: IEC62196-2 Type 2 socket a.k.a. Scame
Other1PhMax16A: Other single phase (domestic) sockets not mentioned above, rated at no more than 16A. CEE7/17, AS3112,
NEMA 5-15, NEMA 5-20, JISC8303, TIS166, SI 32, CPCS-CCC, SEV1011, etc
Other1PhOver16A: Other single phase sockets not mentioned above (over 16A)
Other3Ph: Other 3 phase sockets not mentioned above. NEMA14-30, NEMA14-50.
Pan: Pantograph connector
wInductive: Wireless inductively coupled connection (generic)
wResonant: Wireless resonant coupled connection (generic)
Undetermined: Yet to be determined (e.g. before plugged in)
Unknown: Unknown
type: string
enum:
- cCCS1
- cCCS2
- cG105
- cMCS
- cTesla
- cType1
- cType2
- s309_1P_16A
- s309_1P_32A
- s309_3P_16A
- s309_3P_32A
- sBS1361
- sCEE_7_7
- sType2
- sType3
- Other1PhMax16A
- Other1PhOver16A
- Other3Ph
- Pan
- wInductive
- wResonant
- Undetermined
- Unknown
Evse:
description: Type that defines properties of an EVSE including its connectors
type: object
required:
- id
- connectors
properties:
id:
description: ID of the EVSE
type: integer
minimum: 1
maximum: 128
connectors:
description: List of connectors of this EVSE
type: array
items:
description: A single connector
type: object
$ref: /evse_manager#/Connector
minItems: 1
maxItems: 128
PlugAndChargeConfiguration:
description: Configuration for contract authorization
type: object
properties:
pnc_enabled:
description: >-
If false, contract shall not be present in PaymentOptionList.
If true, contract may be present in PaymentOptionList if TLS is used.
type: boolean
central_contract_validation_allowed:
description: Indicates if the contract may be forwarded to and validated by a CSMS in case local validation was not successful
type: boolean
contract_certificate_installation_enabled:
description: Indicates if ISO 15118 contract certificate installation/update is enabled
type: boolean
UpdateAllowedEnergyTransferModesResult:
description: Enum used to indicate whether an UpdateAllowedEnergyTransferModes cmd was successful or not.
type: string
enum:
- Accepted
- IncompatibleEnergyTransfer
- ServiceRenegotiationFailed
- NoHlc

View File

@@ -0,0 +1,309 @@
description: Types for evse security
types:
EncodingFormat:
description: Enum specifies the encoding of certificates or keys
type: string
enum:
- DER
- PEM
CaCertificateType:
description: Enum specifies the type of a CA certificate
type: string
enum:
- V2G
- MO
- CSMS
- MF
LeafCertificateType:
description: Enum specifies the type of a leaf certificate
type: string
enum:
- CSMS
- V2G
- MF
- MO
CertificateType:
description: Enum specifies certificate type of leaf and CA certificates
type: string
enum:
- V2GRootCertificate
- MORootCertificate
- CSMSRootCertificate
- V2GCertificateChain
- MFRootCertificate
HashAlgorithm:
description: Enum specifies a hash algorithm
type: string
enum:
- SHA256
- SHA384
- SHA512
InstallCertificateResult:
description: Result of the attempt to install a certificate
type: string
enum:
- InvalidSignature
- InvalidCertificateChain
- InvalidFormat
- InvalidCommonName
- NoRootCertificateInstalled
- Expired
- CertificateStoreMaxLengthExceeded
- WriteError
- Accepted
CertificateValidationResult:
description: Result of the attempt to validate a certificate
type: string
enum:
- Valid
- Expired
- InvalidSignature
- IssuerNotFound
- InvalidLeafSignature
- InvalidChain
- Unknown
DeleteCertificateResult:
description: Result of the attempt to delete a certificate
type: string
enum:
- Accepted
- Failed
- NotFound
GetInstalledCertificatesStatus:
description: Status indicates the result of the attempt to retrieve certificates
type: string
enum:
- Accepted
- NotFound
GetCertificateSignRequestStatus:
description: Status indicates the result to generate a certificate signing request
type: string
enum:
- Accepted
- InvalidRequestedType
- KeyGenError
- GenerationError
GetCertificateInfoStatus:
description: Status indicates the result of the attempt to retrieve a certificate
type: string
enum:
- Accepted
- Rejected
- NotFound
- NotFoundValid
- PrivateKeyNotFound
CertificateHashData:
description: >-
Type specifies the hash data of a certificate
type: object
required:
- hash_algorithm
- issuer_name_hash
- issuer_key_hash
- serial_number
properties:
hash_algorithm:
description: Algorithm used for the hashes provided
type: string
$ref: /evse_security#/HashAlgorithm
issuer_name_hash:
description: >-
The hash of the issuer's distinguished name (DN), calculated over the DER encoding of
the issuer's name field.
type: string
maxLength: 128
issuer_key_hash:
description: >-
The hash of the DER encoded public key: the value (excluding tag and length) of the
subject public key field
type: string
maxLength: 128
serial_number:
description: >-
The string representation of the hexadecimal value of the serial number without the
prefix "0x" and without leading zeroes.
type: string
maxLength: 40
CertificateHashDataChain:
description: Type specifies the hash data chain of a certificate
type: object
required:
- certificate_type
- certificate_hash_data
properties:
certificate_type:
description: Indicates the type of the certificate for which the hash data is provided
type: string
$ref: /evse_security#/CertificateType
certificate_hash_data:
description: Contains the hash data of the certificate
type: object
$ref: /evse_security#/CertificateHashData
child_certificate_hash_data:
description: Contains the hash data of the child's certificates
type: array
items:
minimum: 0
maximum: 4
type: object
$ref: /evse_security#/CertificateHashData
GetInstalledCertificatesResult:
description: Result to a request to retrieve certificates
type: object
required:
- status
- certificate_hash_data_chain
properties:
status:
description: Indicates the status of the request
type: string
$ref: /evse_security#/GetInstalledCertificatesStatus
certificate_hash_data_chain:
description: the hashed certificate data for each requested certificates
type: array
items:
minimum: 0
type: object
$ref: /evse_security#/CertificateHashDataChain
OCSPRequestData:
description: Type that specifies OCSP data
type: object
properties:
certificate_hash_data:
description: Contains the hash data of the certificate
type: object
$ref: /evse_security#/CertificateHashData
responder_url:
description: Contains the responder URL
type: string
maxLength: 512
OCSPRequestDataList:
description: List of OCSP Request data
type: object
required:
- ocsp_request_data_list
properties:
ocsp_request_data_list:
description: A list of OCSP request data
type: array
items:
minimum: 0
type: object
$ref: /evse_security#/OCSPRequestData
CertificateOCSP:
description: OCSP data related to requested the certificates
type: object
required:
- hash
properties:
hash:
description: Hash of certificate linked to the provided data
type: object
$ref: /evse_security#/CertificateHashData
ocsp_path:
description: OCSP path of the file containing the data
type: string
GetCertificateSignRequestResult:
description: Response related to a CSR generation
type: object
required:
- status
properties:
status:
description: Status of the request
type: string
$ref: /evse_security#/GetCertificateSignRequestStatus
csr:
description: PEM encoded certificate signing request
type: string
CertificateInfo:
description: Type that specifies the paths of a certificate and the respective private key
type: object
required:
- key
- certificate_count
properties:
key:
description: The path of the PEM or DER encoded private key
type: string
certificate_root:
description: The PEM of the root certificate that issued this leaf
type: string
certificate:
description: The path of the PEM or DER encoded certificate chain
type: string
certificate_single:
description: The path of the PEM or DER encoded single certificate
type: string
certificate_count:
description: The count of certificates in the chain
type: integer
password:
description: Specifies the password for the private key if encrypted
type: string
ocsp:
description: Certificate related OCSP data, if requested
type: array
items:
minimum: 0
type: object
$ref: /evse_security#/CertificateOCSP
GetCertificateInfoResult:
description: Response to the command get_leaf_certificate_info
type: object
required:
- status
properties:
status:
description: The status of the requested command
type: string
$ref: /evse_security#/GetCertificateInfoStatus
info:
description: The requested info
type: object
$ref: /evse_security#/CertificateInfo
GetCertificateFullInfoResult:
description: Response to the command get_all_valid_certificates_info
type: object
required:
- status
- info
properties:
status:
description: The status of the requested command
type: string
$ref: /evse_security#/GetCertificateInfoStatus
info:
description: The requested info
type: array
items:
minimum: 0
type: object
$ref: /evse_security#/CertificateInfo
CertificateStoreUpdateOperation:
description: Type that specifies the operation performed on the certificate store
type: string
enum:
- Installed
- Deleted
CertificateStoreUpdate:
description: >-
Type that specifies the update of the certificate store. One of leaf_certificate_type
or ca_certificate_type must be present.
type: object
required:
- operation
properties:
operation:
description: The operation performed on the certificate store
type: string
$ref: /evse_security#/CertificateStoreUpdateOperation
leaf_certificate_type:
description: The type of the leaf certificate that was installed or deleted. Only present if type of updated certificate is a leaf certificate
type: string
$ref: /evse_security#/LeafCertificateType
ca_certificate_type:
description: The type of the CA certificate that was installed or deleted. Only present if type of updated certificate is a CA certificate
type: string
$ref: /evse_security#/CaCertificateType

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,110 @@
description: Custom VAS types for ISO 15118
types:
ParameterValue:
description: Value variant of a parameter -> only one of the values should be set
type: object
additionalProperties: false
properties:
finite_string:
description: String value of the parameter
type: string
minLength: 0
maxLength: 80
rational_number:
description: Rational value of the parameter
type: number
byte_value:
description: Byte value of the parameter
type: integer
short_value:
description: Short value of the parameter
type: integer
int_value:
description: Integer value of the parameter
type: integer
bool_value:
description: Boolean value of the parameter
type: boolean
Parameter:
description: Single Parameter
type: object
additionalProperties: false
required:
- name
- value
properties:
name:
description: Name of the parameter
type: string
minLength: 1
maxLength: 80
value:
description: Value of the parameter
type: object
$ref: /iso15118_vas#/ParameterValue
ParameterSet:
description: Parameter Set
type: object
required:
- set_id
- parameters
additionalProperties: false
properties:
set_id:
description: ParameterSetId
type: integer
parameters:
description: List of parameters
type: array
items:
type: object
$ref: /iso15118_vas#/Parameter
SelectedService:
description: Selected Service
type: object
required:
- service_id
- parameter_set_id
additionalProperties: false
properties:
service_id:
description: Service ID
type: integer
parameter_set_id:
description: Parameter Set ID
type: integer
OfferedService:
description: Offered VAS Service
type: object
required:
- service_id
additionalProperties: false
properties:
service_id:
description: Service ID
type: integer
service_name:
description: Service Name
type: string
minLength: 1
maxLength: 32
service_scope:
description: Service Scope
type: string
minLength: 1
maxLength: 64
free_service:
description: Indicates whether the service is free of charge
type: boolean
OfferedServices:
description: List of offered VAS Services
type: object
required:
- services
properties:
services:
description: List of offered VAS Services
type: array
items:
type: object
$ref: /iso15118_vas#/OfferedService

View File

@@ -0,0 +1,21 @@
description: Isolation monitor types
types:
IsolationMeasurement:
description: Results of an isolation measurement
type: object
additionalProperties: false
required:
- resistance_F_Ohm
properties:
resistance_F_Ohm:
description: Isolation resistance between DC+/DC- and protective earth in Ohm
type: number
voltage_V:
description: DC voltage between positive and negative terminal in Volt
type: number
voltage_to_earth_l1e_V:
description: DC voltage to earth on L1 in Volt
type: number
voltage_to_earth_l2e_V:
description: DC voltage to earth on L2 in Volt
type: number

View File

@@ -0,0 +1,507 @@
description: >-
The definition of the currency and price types.
types:
CurrencyCode:
description: >-
Currency in 3 alphabetical characters according to ISO 4217.
The list of values is taken from the
https://www.six-group.com/en/products-services/financial-information/data-standards.html
Technical values like "Testing Code", "No Currency"
as well as metal and bond-market codes are excluded.
type: string
minLength: 3
maxLength: 3
enum:
# 784, UAE Dirham, UNITED ARAB EMIRATES (THE)
- AED
# 971, Afghani, AFGHANISTAN
- AFN
# 008, Lek, ALBANIA
- ALL
# 051, Armenian Dram, ARMENIA
- AMD
# 532, Netherlands Antillean Guilder, CURAÇAO
# SINT MAARTEN (DUTCH PART)
- ANG
# 973, Kwanza, ANGOLA
- AOA
# 032, Argentine Peso, ARGENTINA
- ARS
# 036, Australian Dollar, AUSTRALIA
# CHRISTMAS ISLAND
# COCOS (KEELING) ISLANDS (THE)
# HEARD ISLAND AND McDONALD ISLANDS
# KIRIBATI
# NAURU
# NORFOLK ISLAND
# TUVALU
- AUD
# 533, Aruban Florin, ARUBA
- AWG
# 944, Azerbaijan Manat, AZERBAIJAN
- AZN
# 977, Convertible Mark, BOSNIA AND HERZEGOVINA
- BAM
# 052, Barbados Dollar, BARBADOS
- BBD
# 050, Taka, BANGLADESH
- BDT
# 975, Bulgarian Lev, BULGARIA
- BGN
# 048, Bahraini Dinar, BAHRAIN
- BHD
# 108, Burundi Franc, BURUNDI
- BIF
# 060, Bermudian Dollar, BERMUDA
- BMD
# 096, Brunei Dollar, BRUNEI DARUSSALAM
- BND
# 068, Boliviano, BOLIVIA (PLURINATIONAL STATE OF)
- BOB
# 984, Mvdol, BOLIVIA (PLURINATIONAL STATE OF)
- BOV
# 986, Brazilian Real, BRAZIL
- BRL
# 044, Bahamian Dollar, BAHAMAS (THE)
- BSD
# 064, Ngultrum, BHUTAN
- BTN
# 072, Pula, BOTSWANA
- BWP
# 933, Belarusian Ruble, BELARUS
- BYN
# 084, Belize Dollar, BELIZE
- BZD
# 124, Canadian Dollar, CANADA
- CAD
# 976, Congolese Franc, CONGO (THE DEMOCRATIC REPUBLIC OF THE)
- CDF
# 947, WIR Euro, SWITZERLAND
- CHE
# 756, Swiss Franc, LIECHTENSTEIN
# SWITZERLAND
- CHF
# 948, WIR Franc, SWITZERLAND
- CHW
# 990, Unidad de Fomento, CHILE
- CLF
# 152, Chilean Peso, CHILE
- CLP
# 156, Yuan Renminbi, CHINA
- CNY
# 170, Colombian Peso, COLOMBIA
- COP
# 970, Unidad de Valor Real, COLOMBIA
- COU
# 188, Costa Rican Colon, COSTA RICA
- CRC
# 931, Peso Convertible, CUBA
- CUC
# 192, Cuban Peso, CUBA
- CUP
# 132, Cabo Verde Escudo, CABO VERDE
- CVE
# 203, Czech Koruna, CZECHIA
- CZK
# 262, Djibouti Franc, DJIBOUTI
- DJF
# 208, Danish Krone, DENMARK
# FAROE ISLANDS (THE)
# GREENLAND
- DKK
# 214, Dominican Peso, DOMINICAN REPUBLIC (THE)
- DOP
# 012, Algerian Dinar, ALGERIA
- DZD
# 818, Egyptian Pound, EGYPT
- EGP
# 232, Nakfa, ERITREA
- ERN
# 230, Ethiopian Birr, ETHIOPIA
- ETB
# 978, Euro, ÅLAND ISLANDS
# ANDORRA
# AUSTRIA
# BELGIUM
# CROATIA
# CYPRUS
# ESTONIA
# EUROPEAN UNION
# FINLAND
# FRANCE
# FRENCH GUIANA
# FRENCH SOUTHERN TERRITORIES (THE)
# GERMANY
# GREECE
# GUADELOUPE
# HOLY SEE (THE)
# IRELAND
# ITALY
# LATVIA
# LITHUANIA
# LUXEMBOURG
# MALTA
# MARTINIQUE
# MAYOTTE
# MONACO
# MONTENEGRO
# NETHERLANDS (THE)
# PORTUGAL
# RÉUNION
# SAINT BARTHÉLEMY
# SAINT MARTIN (FRENCH PART)
# SAINT PIERRE AND MIQUELON
# SAN MARINO
# SLOVAKIA
# SLOVENIA
# SPAIN
- EUR
# 242, Fiji Dollar, FIJI
- FJD
# 238, Falkland Islands Pound, FALKLAND ISLANDS (THE) [MALVINAS]
- FKP
# 826, Pound Sterling, GUERNSEY
# ISLE OF MAN
# JERSEY
# UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (THE)
- GBP
# 981, Lari, GEORGIA
- GEL
# 936, Ghana Cedi, GHANA
- GHS
# 292, Gibraltar Pound, GIBRALTAR
- GIP
# 270, Dalasi, GAMBIA (THE)
- GMD
# 324, Guinean Franc, GUINEA
- GNF
# 320, Quetzal, GUATEMALA
- GTQ
# 328, Guyana Dollar, GUYANA
- GYD
# 344, Hong Kong Dollar, HONG KONG
- HKD
# 340, Lempira, HONDURAS
- HNL
# 332, Gourde, HAITI
- HTG
# 348, Forint, HUNGARY
- HUF
# 360, Rupiah, INDONESIA
- IDR
# 376, New Israeli Sheqel, ISRAEL
- ILS
# 356, Indian Rupee, BHUTAN
# INDIA
- INR
# 368, Iraqi Dinar, IRAQ
- IQD
# 364, Iranian Rial, IRAN (ISLAMIC REPUBLIC OF)
- IRR
# 352, Iceland Krona, ICELAND
- ISK
# 388, Jamaican Dollar, JAMAICA
- JMD
# 400, Jordanian Dinar, JORDAN
- JOD
# 392, Yen, JAPAN
- JPY
# 404, Kenyan Shilling, KENYA
- KES
# 417, Som, KYRGYZSTAN
- KGS
# 116, Riel, CAMBODIA
- KHR
# 174, Comorian Franc , COMOROS (THE)
- KMF
# 408, North Korean Won, KOREA (THE DEMOCRATIC PEOPLES REPUBLIC OF)
- KPW
# 410, Won, KOREA (THE REPUBLIC OF)
- KRW
# 414, Kuwaiti Dinar, KUWAIT
- KWD
# 136, Cayman Islands Dollar, CAYMAN ISLANDS (THE)
- KYD
# 398, Tenge, KAZAKHSTAN
- KZT
# 418, Lao Kip, LAO PEOPLES DEMOCRATIC REPUBLIC (THE)
- LAK
# 422, Lebanese Pound, LEBANON
- LBP
# 144, Sri Lanka Rupee, SRI LANKA
- LKR
# 430, Liberian Dollar, LIBERIA
- LRD
# 426, Loti, LESOTHO
- LSL
# 434, Libyan Dinar, LIBYA
- LYD
# 504, Moroccan Dirham, MOROCCO
# WESTERN SAHARA
- MAD
# 498, Moldovan Leu, MOLDOVA (THE REPUBLIC OF)
- MDL
# 969, Malagasy Ariary, MADAGASCAR
- MGA
# 807, Denar, NORTH MACEDONIA
- MKD
# 104, Kyat, MYANMAR
- MMK
# 496, Tugrik, MONGOLIA
- MNT
# 446, Pataca, MACAO
- MOP
# 929, Ouguiya, MAURITANIA
- MRU
# 480, Mauritius Rupee, MAURITIUS
- MUR
# 462, Rufiyaa, MALDIVES
- MVR
# 454, Malawi Kwacha, MALAWI
- MWK
# 484, Mexican Peso, MEXICO
- MXN
# 979, Mexican Unidad de Inversion (UDI), MEXICO
- MXV
# 458, Malaysian Ringgit, MALAYSIA
- MYR
# 943, Mozambique Metical, MOZAMBIQUE
- MZN
# 516, Namibia Dollar, NAMIBIA
- NAD
# 566, Naira, NIGERIA
- NGN
# 558, Cordoba Oro, NICARAGUA
- NIO
# 578, Norwegian Krone, BOUVET ISLAND
# NORWAY
# SVALBARD AND JAN MAYEN
- NOK
# 524, Nepalese Rupee, NEPAL
- NPR
# 554, New Zealand Dollar, COOK ISLANDS (THE)
# NEW ZEALAND
# NIUE
# PITCAIRN
# TOKELAU
- NZD
# 512, Rial Omani, OMAN
- OMR
# 590, Balboa, PANAMA
- PAB
# 604, Sol, PERU
- PEN
# 598, Kina, PAPUA NEW GUINEA
- PGK
# 608, Philippine Peso, PHILIPPINES (THE)
- PHP
# 586, Pakistan Rupee, PAKISTAN
- PKR
# 985, Zloty, POLAND
- PLN
# 600, Guarani, PARAGUAY
- PYG
# 634, Qatari Rial, QATAR
- QAR
# 946, Romanian Leu, ROMANIA
- RON
# 941, Serbian Dinar, SERBIA
- RSD
# 643, Russian Ruble, RUSSIAN FEDERATION (THE)
- RUB
# 646, Rwanda Franc, RWANDA
- RWF
# 682, Saudi Riyal, SAUDI ARABIA
- SAR
# 090, Solomon Islands Dollar, SOLOMON ISLANDS
- SBD
# 690, Seychelles Rupee, SEYCHELLES
- SCR
# 938, Sudanese Pound, SUDAN (THE)
- SDG
# 752, Swedish Krona, SWEDEN
- SEK
# 702, Singapore Dollar, SINGAPORE
- SGD
# 654, Saint Helena Pound, SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA
- SHP
# 925, Leone, SIERRA LEONE
- SLE
# 694, Leone, SIERRA LEONE
- SLL
# 706, Somali Shilling, SOMALIA
- SOS
# 968, Surinam Dollar, SURINAME
- SRD
# 728, South Sudanese Pound, SOUTH SUDAN
- SSP
# 930, Dobra, SAO TOME AND PRINCIPE
- STN
# 222, El Salvador Colon, EL SALVADOR
- SVC
# 760, Syrian Pound, SYRIAN ARAB REPUBLIC
- SYP
# 748, Lilangeni, ESWATINI
- SZL
# 764, Baht, THAILAND
- THB
# 972, Somoni, TAJIKISTAN
- TJS
# 934, Turkmenistan New Manat, TURKMENISTAN
- TMT
# 788, Tunisian Dinar, TUNISIA
- TND
# 776, Paanga, TONGA
- TOP
# 949, Turkish Lira, TÜRKİYE
- TRY
# 780, Trinidad and Tobago Dollar, TRINIDAD AND TOBAGO
- TTD
# 901, New Taiwan Dollar, TAIWAN (PROVINCE OF CHINA)
- TWD
# 834, Tanzanian Shilling, TANZANIA, UNITED REPUBLIC OF
- TZS
# 980, Hryvnia, UKRAINE
- UAH
# 800, Uganda Shilling, UGANDA
- UGX
# 840, US Dollar, AMERICAN SAMOA
# BONAIRE, SINT EUSTATIUS AND SABA
# BRITISH INDIAN OCEAN TERRITORY (THE)
# ECUADOR
# EL SALVADOR
# GUAM
# HAITI
# MARSHALL ISLANDS (THE)
# MICRONESIA (FEDERATED STATES OF)
# NORTHERN MARIANA ISLANDS (THE)
# PALAU
# PANAMA
# PUERTO RICO
# TIMOR-LESTE
# TURKS AND CAICOS ISLANDS (THE)
# UNITED STATES MINOR OUTLYING ISLANDS (THE)
# UNITED STATES OF AMERICA (THE)
# VIRGIN ISLANDS (BRITISH)
# VIRGIN ISLANDS (U.S.)
- USD
# 997, US Dollar (Next day), UNITED STATES OF AMERICA (THE)
- USN
# 940, Uruguay Peso en Unidades Indexadas (UI), URUGUAY
- UYI
# 858, Peso Uruguayo, URUGUAY
- UYU
# 927, Unidad Previsional, URUGUAY
- UYW
# 860, Uzbekistan Sum, UZBEKISTAN
- UZS
# 926, Bolívar Soberano, VENEZUELA (BOLIVARIAN REPUBLIC OF)
- VED
# 928, Bolívar Soberano, VENEZUELA (BOLIVARIAN REPUBLIC OF)
- VES
# 704, Dong, VIET NAM
- VND
# 548, Vatu, VANUATU
- VUV
# 882, Tala, SAMOA
- WST
# 950, CFA Franc BEAC, CAMEROON
# CENTRAL AFRICAN REPUBLIC (THE)
# CHAD
# CONGO (THE)
# EQUATORIAL GUINEA
# GABON
- XAF
# 951, East Caribbean Dollar, ANGUILLA
# ANTIGUA AND BARBUDA
# DOMINICA
# GRENADA
# MONTSERRAT
# SAINT KITTS AND NEVIS
# SAINT LUCIA
# SAINT VINCENT AND THE GRENADINES
- XCD
# 960, SDR (Special Drawing Right), INTERNATIONAL MONETARY FUND (IMF) 
- XDR
# 952, CFA Franc BCEAO, BENIN
# BURKINA FASO
# CÔTE D'IVOIRE
# GUINEA-BISSAU
# MALI
# NIGER (THE)
# SENEGAL
# TOGO
- XOF
# 953, CFP Franc, FRENCH POLYNESIA
# NEW CALEDONIA
# WALLIS AND FUTUNA
- XPF
# 994, Sucre, SISTEMA UNITARIO DE COMPENSACION REGIONAL DE PAGOS SUCRE
- XSU
# 965, ADB Unit of Account, MEMBER COUNTRIES OF THE AFRICAN DEVELOPMENT BANK GROUP
- XUA
# 886, Yemeni Rial, YEMEN
- YER
# 710, Rand, LESOTHO
# NAMIBIA
# SOUTH AFRICA
- ZAR
# 967, Zambian Kwacha, ZAMBIA
- ZMW
# 932, Zimbabwe Dollar, ZIMBABWE
- ZWL
Currency:
description: >-
Currency object containing the currency code and the accuracy of the minor
unit according to ISO 4217.
type: object
additionalProperties: false
properties:
code:
description: >-
Currency code.
type: string
$ref: /money#/CurrencyCode
decimals:
description: >-
The number of digits after the decimal separator, that are expressed
by the minor units of the currency.
For example for Euro, Euro cents express 2 digits after the
decimal separator.
In other words, the price in the main currency units would be the
`value * 10^(-decimals)`.
type: integer
minimum: 0
default: 2
MoneyAmount:
description: >-
Money amount is expressed as an amount of minor units of the currency.
Example price of 1.23 EUR is expressed as { value: 123 }
type: object
additionalProperties: false
required:
- value
properties:
value:
description: >-
The amount of minor units of the currency.
type: integer
Price:
description: >-
Price object containing the currency and the value of money.
type: object
additionalProperties: false
required:
- currency
- value
properties:
currency:
description: >-
Currency of the price.
type: object
$ref: /money#/Currency
value:
description: >-
Value in the minor units of the currency.
type: object
$ref: /money#/MoneyAmount

View File

@@ -0,0 +1,801 @@
description: >-
OCPP types (OCPP1.6 and OCPP2.0.1). The types are based more on the type definitions of OCPP201,
as these offer more flexibility and are easier to transfer to OCPP1.6 than vice versa.
types:
CustomData:
description: Custom data extension
required:
- vendor_id
- data
type: object
properties:
vendor_id:
description: Vendor Id to identify the customization, this is also included in the data field and only reproduced for convenience
type: string
data:
description: Custom json data object encoded as string
type: string
V2XFreqWattPointType:
description: A point of a frequency-watt curve.
type: object
required:
- frequency
- power
properties:
frequency:
type: number
description: Net frequency in Hz
power:
type: number
description: Power in W to charge (positive) or discharge (negative) at specified frequency.
V2XSignalWattPointCurve:
description: A point of a signal-watt curve.
type: object
required:
- signal
- power
properties:
signal:
type: integer
description: Signal value from an AFRRSignalRequest.
power:
type: number
description: Power in W to charge (positive) or discharge (negative) at specified frequency.
ChargingSchedulePeriod:
description: >-
Element providing information on a charging schedule period.
type: object
required:
- start_period
- limit
properties:
start_period:
type: integer
limit:
type: number
description: >-
Optional only when not required by the operationMode, as in CentralSetpoint, ExternalSetpoint, ExternalLimits,
LocalFrequency, LocalLoadBalancing.
Charging rate limit during the schedule period, in the applicable chargingRateUnit. This SHOULD be a
non-negative value; a negative value is only supported for backwards compatibility with older systems that
use a negative value to specify a discharging limit. When using chargingRateUnit = W, this field represents
the sum of the power of all phases, unless values are provided for L2 and L3, in which case this field
represents phase L1.
limit_L2:
type: number
description: Charging rate limit on phase L2 in the applicable chargingRateUnit.
limit_L3:
type: number
description: Charging rate limit on phase L3 in the applicable chargingRateUnit.
number_phases:
type: integer
stack_level:
type: integer
phase_to_use:
type: integer
discharge_limit:
type: number
description: >-
value <= 0. Limit in chargingRateUnit that the EV is allowed to discharge with. Note, these are negative
values in order to be consistent with setpoint, which can be positive and negative.
For AC this field represents the sum of all phases, unless values are provided for L2 and L3, in which case
this field represents phase L1.
discharge_limit_L2:
type: number
description: Limit in chargingRateUnit on phase L2 that the EV is allowed to discharge with
discharge_limit_L3:
type: number
description: Limit in chargingRateUnit on phase L3 that the EV is allowed to discharge with
setpoint:
type: number
description: >-
Setpoint in chargingRateUnit that the EV should follow as close as possible. Use negative values for
discharging.
When a limit and/or dischargeLimit are given the overshoot when following setpoint must remain within
these values. This field represents the sum of all phases,unless values are provided for L2 and L3, in which
case this field represents phase L1.
setpoint_L2:
type: number
description: Setpoint in chargingRateUnit that the EV should follow on phase L2 as close as possible.
setpoint_L3:
type: number
description: Setpoint in chargingRateUnit that the EV should follow on phase L3 as close as possible.
setpoint_reactive:
type: number
description: >-
Setpoint for reactive power (or current) in chargingRateUnit that the EV should follow as closely as possible.
Positive values for inductive, negative for capacitive reactive power or current.
This field represents the sum of all phases, unless values are provided for L2 and L3, in which case this
field represents phase L1.
setpoint_reactive_L2:
type: number
description: >-
Setpoint for reactive power (or current) in chargingRateUnit that the EV should follow on phase L2 as closely
as possible.
setpoint_reactive_L3:
type: number
description: >-
Setpoint for reactive power (or current) in chargingRateUnit that the EV should follow on phase L3 as closely
as possible.
preconditioning_request:
type: number
description: If true, the EV should attempt to keep the BMS preconditioned for this time interval.
evse_sleep:
type: boolean
description: >-
If true, the EVSE must turn off power electronics/modules associated with this transaction. Default value when
absent is false.
v2x_baseline:
type: number
description: >-
Power value that, when present, is used as a baseline on top of which values from v2xFreqWattCurve and
v2xSignalWattCurve are added
operation_mode:
type: string
description: Operation mode for (bi-)directional charging during a charging schedule period.
enum:
- Idle
- ChargingOnly
- CentralSetpoint
- ExternalSetpoint
- ExternalLimits
- CentralFrequency
- LocalFrequency
- LocalLoadBalancing
v2x_freq_watt_curve:
type: array
description: >-
Only required when operationMode = LocalFrequency. When used it must contain at least two coordinates to
specify a power-frequency table to use during this period. The table determines the value of setpoint power
for a given frequency. chargingRateUnit must be W for LocalFrequency control.
items:
type: object
$ref: /ocpp#/V2XFreqWattPointType
description: A point of a frequency-watt curve.
v2x_signal_watt_curve:
type: array
description: >-
Only used, but not required, when operationMode = LocalFrequency. When used it must contain at least two
coordinates to specify a signal-frequency curve to use during this period. The curve determines the value of
setpoint power for a given signal. chargingRateUnit must be W for LocalFrequency control.
items:
type: object
$ref: /ocpp#/V2XSignalWattPointCurve
description: A point of a signal-watt curve.
ChargingSchedule:
description: >-
Element providing information on an OCPP charging schedule.
type: object
required:
- evse
- charging_rate_unit
- charging_schedule_period
properties:
evse:
description: The OCPP 2.0.1 EVSE ID (not used in OCPP 1.6).
type: integer
minimum: 0
charging_rate_unit:
type: string
charging_schedule_period:
type: array
items:
description: schedule periods
type: object
$ref: /ocpp#/ChargingSchedulePeriod
duration:
type: integer
start_schedule:
type: string
min_charging_rate:
type: number
ChargingSchedules:
description: schedules for connectors
type: object
required:
- schedules
properties:
schedules:
description: array of schedules
type: array
items:
description: schedule for a connector
type: object
$ref: /ocpp#/ChargingSchedule
EVSE:
description: >-
Type of an EVSE. If only the id is present, this type identifies an EVSE.
If also a connector_id is given, this type identifies a Connector of the EVSE
type: object
required:
- id
properties:
id:
description: Id of the EVSE
type: integer
minimum: 1
connector_id:
description: An id to designate a specific connector (on an EVSE) by connector index number
type: integer
minimum: 1
OcppTransactionEvent:
description: >-
Element providing information on OCPP transactions.
type: object
required:
- transaction_event
- session_id
properties:
transaction_event:
description: >-
The transaction related event.
type: string
$ref: /ocpp#/TransactionEvent
evse:
description: >-
The OCPP 2.0.1 EVSE associated with the transaction.
type: object
$ref: /ocpp#/EVSE
session_id:
description: >-
The EVSE manager assigned session ID.
type: string
transaction_id:
description: >-
The CSMS assigned transaction ID. A string is used to support OCPP 2.0.1. For OCPP 1.6 the integer is converted to a string
type: string
TransactionEvent:
description: The transaction event enumeration
type: string
enum:
- Started
- Updated
- Ended
OcppTransactionEventResponse:
description: Information that can be returned with a OCPP TransactionEventResponse
type: object
required:
- original_transaction_event
properties:
original_transaction_event:
description: The original transaction event that promted this response
type: object
$ref: /ocpp#/OcppTransactionEvent
total_cost:
description: Running or total cost
type: number
charging_priority:
description: Priority from -9 to 9 for smart charging, higher values mean higher priority
type: integer
personal_message:
description: Personal message
type: object
$ref: /text_message#/MessageContent
DataTransferStatus:
description: Data Transfer Status enum
type: string
enum:
- Accepted
- Rejected
- UnknownMessageId
- UnknownVendorId
- Offline
DataTransferRequest:
description: Type for data transfer request provided by OCPP
type: object
additionalProperties: false
required:
- vendor_id
properties:
vendor_id:
description: Identifies the vendor
type: string
message_id:
description: Identifies the message
type: string
data:
description: Data provided by this data transfer
type: string
custom_data:
description: Custom data extension
type: object
$ref: /ocpp#/CustomData
DataTransferResponse:
description: Type for data transfer response provided by OCPP
type: object
additionalProperties: false
required:
- status
properties:
status:
description: Status of the data transfer
type: string
$ref: /ocpp#/DataTransferStatus
data:
description: Data provided by this data transfer
type: string
custom_data:
description: Custom data extension
type: object
$ref: /ocpp#/CustomData
KeyValue:
description: Type for a key value pair
type: object
additionalProperties: false
required:
- key
- read_only
properties:
key:
description: Key / Identifier
type: string
maximum: 50
read_only:
description: Indicates if the configuration key is configured to be read-only
type: boolean
value:
description: Value of the configuration key
type: string
maximum: 5000
GetConfigurationResponse:
description: Response to a GetConfiguration request
type: object
required:
- configuration_keys
- unknown_keys
properties:
configuration_keys:
description: List of known configuration keys of key value pairs
type: array
items:
description: Key value pair
type: object
$ref: /ocpp#/KeyValue
unknown_keys:
description: List of unknown configuration keys
type: array
items:
description: Unknown key
type: string
maximum: 50
ConfigurationStatus:
description: Response to a set_custom_configuration_key command
type: string
enum:
- Accepted
- Rejected
- RebootRequired
- NotSupported
SecurityEventEnum:
description: Enum for known security events
type: string
enum:
- FirmwareUpdated
- FailedToAuthenticateAtCsms
- CsmsFailedToAuthenticate
- SettingSystemTime
- StartupOfTheDevice
- ResetOrReboot
- SecurityLogWasCleared
- ReconfigurationOfSecurityParameters
- MemoryExhaustion
- InvalidMessages
- AttemptedReplayAttacks
- TamperDetectionActivated
- InvalidFirmwareSignature
- InvalidFirmwareSigningCertificate
- InvalidCsmsCertificate
- InvalidChargingStationCertificate
- InvalidTLSVersion
- InvalidTLSCipherSuite
- MaintenanceLoginAccepted
- MaintenanceLoginFailed
SecurityEvent:
description: Type for a security event
type: object
required:
- type
properties:
type:
description: Type of the security event
type: string
info:
description: Additional information about the occurred security event
type: string
critical:
description: >-
If set this overwrites the default criticality recommended in the OCPP 2.0.1 appendix.
A critical security event is transmitted as a message to the CSMS, a non-critical one is just written to the security log
type: boolean
timestamp:
description: Timestamp of the moment the security event was generated, if absent the current datetime is assumed
type: string
format: date-time
Variable:
description: >-
Type for a variable with a name and an optional instance
For OCPP1.6: A Variable should only contain a name. The name identifies
the configuration key.
For OCPP2.0.1: All properties of the Variable can be used
type: object
required:
- name
properties:
name:
description: Name of a variable
type: string
minLength: 0
maxLength: 50
instance:
description: Name of instance in case the variable exists as multiple instances
type: string
minLength: 0
maxLength: 50
Component:
description: >-
Type for a component with name, optional instance and optional evse
For OCPP1.6: A definition of a Component doesn't exist in OCPP1.6; In the context of OCPP1.6
this type may not be relevant or used.
For OCPP2.0.1: All properties of the Component can be used
type: object
required:
- name
properties:
name:
description: Name of a component
type: string
minLength: 0
maxLength: 50
instance:
description: Name of instance in case the component exists as multiple instances
type: string
minLength: 0
maxLength: 50
evse:
description: >-
Specifies the EVSE when component is located at EVSE level, also specifies
the connector when component is located at Connector level
type: object
$ref: /ocpp#/EVSE
ComponentVariable:
description: >-
Type for a combination of component and variable.
Note that for OCPP1.6 only the Variable.name (configuration key) is sufficient to identify a
configuration key. For OCPP2.0.1 all properties of the type(s) can be used.
type: object
required:
- component
- variable
properties:
component:
description: Component
type: object
$ref: /ocpp#/Component
variable:
description: Variable
type: object
$ref: /ocpp#/Variable
AttributeEnum:
description: >-
Attribute enum
Actual: The actual value of a variable
Target: The target value of a variable
MinSet: The minimal allowed value of a variable
MaxSet: The maximum allowed value of a variable
type: string
enum:
- Actual
- Target
- MinSet
- MaxSet
GetVariableStatusEnumType:
description: >-
Indicates the status of the GetVariableRequest as part of the GetVariableResult operation
Accepted: Variable successfully retrieved
Rejected: Request is rejected
UnknownComponent: Component is not known
UnknownVariable: Variable is not known
NotSupportedAttributeType: The AttributeType is not supported
type: string
enum:
- Accepted
- Rejected
- UnknownComponent
- UnknownVariable
- NotSupportedAttributeType
SetVariableStatusEnumType:
description: >-
Indicates the status of the SetVariableRequest operation as part of the SetVariableResult
Accepted: Variable successfully set
Rejected: Request is rejected
UnknownComponent: Component is not known
UnknownVariable: Variable is not known
NotSupportedAttributeType: The AttributeType is not supported
RebootRequired: A reboot is required
type: string
enum:
- Accepted
- Rejected
- UnknownComponent
- UnknownVariable
- NotSupportedAttributeType
- RebootRequired
EventTriggerEnum:
description: >-
Indicates the trigger reason of a generic event as part of the type EventData
Alerting: Monitored variable has passed an Lower or Upper Threshold
Delta: Delta Monitored Variable value has changed by more than specified amount
Periodic: Periodic Monitored Variable has been sampled for reporting at the specified interval
type: string
enum:
- Alerting
- Delta
- Periodic
EventNotificationType:
description: >-
Indicates the event notification type as part of the type EventData
HardWiredNotification: The software implemented by the manufacturer triggered a hardwired notification
HardWiredMonitor: Triggered by a monitor, which is hardwired by the manufacturer
PreconfiguredMonitor: Triggered by a monitor, which is preconfigured by the manufacturer.
CustomMonitor: Triggered by a monitor which is set by a message by the Charging Station Operator.
type: string
enum:
- HardWiredNotification
- HardWiredMonitor
- PreconfiguredMonitor
- CustomMonitor
GetVariableRequest:
description: >-
Type to request a variable value (OCPP2.0.1) or configuration value (OCPP1.6)
type: object
required:
- component_variable
properties:
component_variable:
description: >-
Identifier for which the value should be requested
type: object
$ref: /ocpp#/ComponentVariable
attribute_type:
description: AttributeEnum for which the value should be requested. When absent, actual is assumed
type: string
$ref: /ocpp#/AttributeEnum
GetVariableResult:
description: Result of a GetVariableRequest
type: object
required:
- status
- component_variable
properties:
status:
description: Status of the GetVariableResult
type: string
$ref: /ocpp#/GetVariableStatusEnumType
attribute_type:
description: AttributeEnum for which the value was requested. When absent, actual is assumed
type: string
$ref: /ocpp#/AttributeEnum
value:
description: >-
Value of the requested variable and AttributeEnum. This field can only be empty when the given
status is NOT accepted
type: string
minLength: 0
maxLength: 2500
component_variable:
description: Identifier for which the value was requested
type: object
$ref: /ocpp#/ComponentVariable
SetVariableRequest:
description: Type to request to set a variable or configuration key
type: object
required:
- component_variable
- value
properties:
component_variable:
description: Identifier for which the value should be set
type: object
$ref: /ocpp#/ComponentVariable
value:
description: Value of the variable that should be set
type: string
minLength: 0
maxLength: 1000
attribute_type:
description: AttributeEnum for which the value should be set. When absent, actual is assumed
type: string
$ref: /ocpp#/AttributeEnum
SetVariableResult:
description: Result of a SetVariableRequest
type: object
required:
- status
- component_variable
properties:
status:
description: Status of the SetVariableResult
type: string
$ref: /ocpp#/SetVariableStatusEnumType
component_variable:
description: Identifier for which the set of the value should be requested
type: object
$ref: /ocpp#/ComponentVariable
attribute_type:
description: AttributeEnum for which the set of the value is requested. When absent, actual is assumed
type: string
$ref: /ocpp#/AttributeEnum
EventData:
description: Type to report an event notification for a component-variable
type: object
required:
- component_variable
- event_id
- timestamp
- trigger
- actual_value
- event_notification_type
properties:
component_variable:
description: Identifier for which the event occurred
type: object
$ref: /ocpp#/ComponentVariable
event_id:
description: Identifies the event
type: integer
timestamp:
description: Timestamp of the moment the report was generated
type: string
format: date-time
trigger:
description: Type of the monitor that triggered this event
type: string
$ref: /ocpp#/EventTriggerEnum
actual_value:
description: Actual value of the variable
type: string
maxLength: 2500
event_notification_type:
description: Type of the event notification
type: string
$ref: /ocpp#/EventNotificationType
cause:
description: Refers to the Id of an event that is considered to be the cause for this event
type: integer
tech_code:
description: Technical (error) code as reported by component
type: string
maxLength: 50
tech_info:
description: Technical detail information as reported by component
type: string
maxLength: 500
cleared:
description: Cleared is set to true to report the clearing of a monitored situation
type: boolean
transaction_id:
description: >-
If an event notification is linked to a specific transaction, this field can be used
to specify its transactionId
type: string
maxLength: 36
variable_monitoring_id:
description: Identifies the VariableMonitoring which triggered the event
type: integer
OperationalStatusEnumType:
description: >-
Operational status of Charging Station /EVSE / Connector
type: string
enum:
- Inoperative
- Operative
ChangeAvailabilityRequest:
description: Request type to change the availability of the Charging Station/ an EVSE / a Connector.
type: object
required:
- operational_status
properties:
operational_status:
description: Type of availability change that the Charging Station should perform.
type: string
$ref: /ocpp#/OperationalStatusEnumType
evse:
description: >-
Specify EVSE/Connector whose status is changed. When omitted, the
message refers to the Charging Station as a whole.
type: object
$ref: /ocpp#/EVSE
ChangeAvailabilityStatusEnumType:
description: >-
Status returned in response to ChangeAvailabilityRequest.
type: string
enum:
- Accepted
- Rejected
- Scheduled
StatusInfoType:
description: >-
Element providing more information about the status.
type: object
required:
- reason_code
properties:
reason_code:
description: >-
A predefined code for the reason why the status is returned in this response.
The string is case-insensitive.
type: string
additional_info:
description: >-
Additional text to provide detailed information
type: string
ChangeAvailabilityResponse:
description: Response type to request to change the availability of the Charging Station/ an EVSE / a Connector.
type: object
required:
- status
properties:
status:
description: Indicates whether the Charging Station is able to perform the availability change.
type: string
$ref: /ocpp#/ChangeAvailabilityStatusEnumType
status_info:
description: Detailed status information.
type: object
$ref: /ocpp#/StatusInfoType
RegistrationStatus:
description: Indicates whether the Charging Station has been registered within the OCPP CSMS
type: string
enum:
- Accepted
- Pending
- Rejected
BootNotificationResponse:
description: OCPP BootNotificationResponse
type: object
required:
- status
- current_time
- interval
properties:
status:
description: Indicates whether the Charging Station has been registered within the OCPP CSMS
type: string
$ref: /ocpp#/RegistrationStatus
current_time:
description: Contains the CSMS current time in RFC3339 format
type: string
format: date-time
interval:
description: >-
When Status is Accepted, this contains the heartbeat interval in seconds. If the CSMS
returns something other than Accepted, the value of the interval field indicates the
minimum wait time before sending a next BootNotification request.
type: integer
status_info:
description: Detailed status information.
type: object
$ref: /ocpp#/StatusInfoType
MessageDirection:
description: OCPP message direction
type: string
enum:
- CSMSToChargingStation
- ChargingStationToCSMS
Message:
description: OCPP message with direction
type: object
required:
- message
- direction
properties:
message:
description: Serialized OCPP-J message
type: string
direction:
description: OCPP message direction
type: string
$ref: /ocpp#/MessageDirection
version:
description: OCPP version of the serialized message
type: string

View File

@@ -0,0 +1,32 @@
description: >-
Types needed for payment terminal - bookkeeping bank transactions, card types
types:
BankSessionToken:
description: >-
In some setups the unique token needs to be provided in the bank statement.
type: object
additionalProperties: false
properties:
token:
description: >-
Arbitrary token string. Typically short string that is printable case insensitive
ascii.
type: string
BankTransactionSummary:
description: >-
Summary of a bank transaction. Depends on bank and the backend. Therefore
it's mostly opaque data at the moment.
type: object
additionalProperties: false
properties:
session_token:
description: >-
Token to identify the session. This token can be used to download the
invoices.
type: object
$ref: /payment_terminal#/BankSessionToken
transaction_data:
description: >-
Arbitrary data that is needed to identify the transaction. This is
mostly opaque data at the moment.
type: string

View File

@@ -0,0 +1,138 @@
description: Power supply DC types
types:
Mode:
description: >-
Operation mode of power supply. Power supply delivers power in Export
mode and draws power in Import mode.
type: string
enum:
- "Off"
- "Export"
- "Import"
- "Fault"
ChargingPhase:
description: >-
Charging phase of the current mode change. Other is used for e.g. switching it off or any other internal testing not related to real charging.
type: string
enum:
- "Other"
- "CableCheck"
- "PreCharge"
- "Charging"
VoltageCurrent:
description: Voltage (V) and Current (A) at the input/output of the power supply
type: object
additionalProperties: false
required:
- voltage_V
- current_A
properties:
voltage_V:
description: Voltage in V
type: number
current_A:
description: Current in A
type: number
Capabilities:
description: Capabilities for this power supply.
type: object
additionalProperties: false
required:
- bidirectional
- max_export_voltage_V
- min_export_voltage_V
- max_export_current_A
- min_export_current_A
- max_export_power_W
- current_regulation_tolerance_A
- peak_current_ripple_A
properties:
bidirectional:
description: >-
'true: support bidirectional energy flow, false: support only
Export mode (output)'
type: boolean
current_regulation_tolerance_A:
description: Absolute magnitude of the regulation tolerance in Ampere
type: number
peak_current_ripple_A:
description: Peak-to-peak magnitude of the current ripple in Ampere
type: number
max_export_voltage_V:
description: Maximum voltage that the power supply can output in Volt
type: number
nominal_max_export_voltage_V:
description: Nominal maximum voltage that the power supply outputs in Volt
type: number
min_export_voltage_V:
description: Minimum voltage that the power supply can output in Volt
type: number
nominal_min_export_voltage_V:
description: Nominal minimum voltage that the power supply outputs in Volt
type: number
max_export_current_A:
description: Maximum current that the power supply can output in Ampere
type: number
nominal_max_export_current_A:
description: Nominal maximum current that the power supply can output in Ampere
type: number
min_export_current_A:
description: Minimum current limit that the power supply can set in Ampere
type: number
nominal_min_export_current_A:
description: Nominal minimum current limit that the power supply can set in Ampere
type: number
max_import_voltage_V:
description:
Maximum voltage that the power supply supports to import energy
in Volt
type: number
nominal_max_import_voltage_V:
description:
Nominal maximum voltage that the power supply supports to import energy
in Volt
type: number
min_import_voltage_V:
description:
Minimum voltage that the power supply requires to import energy
in Volt
type: number
nominal_min_import_voltage_V:
description:
Nominal minimum voltage that the power supply requires to import energy
in Volt
type: number
max_import_current_A:
description: Maximum current that the power supply can output in Ampere
type: number
nominal_max_import_current_A:
description: Nominal maximum current that the power supply can output in Ampere
type: number
min_import_current_A:
description: Minimum current limit that the power supply can set in Ampere
type: number
nominal_min_import_current_A:
description: Nominal minimum current limit that the power supply can set in Ampere
type: number
max_export_power_W:
description: Maximum export power that the power supply can output in Watt
type: number
nominal_max_export_power_W:
description: Nominal maximum export power that the power supply can output in Watt
type: number
max_import_power_W:
description: Maximum import power that the power supply can sink in Watt
type: number
nominal_max_import_power_W:
description: Nominal maximum import power that the power supply can sink in Watt
type: number
conversion_efficiency_import:
description: Typical import efficiency used for energy management
type: number
minimum: 0.0
maximum: 1.0
conversion_efficiency_export:
description: Typical export efficiency used for energy management
type: number
minimum: 0.0
maximum: 1.0

View File

@@ -0,0 +1,310 @@
description: Powermeter types
types:
TransactionReq:
description: Required input parameter for starting an OCMF transaction. These values will be included in the signed OCMF packet.
type: object
additionalProperties: false
required:
- evse_id
- transaction_id
- identification_status
- identification_type
- identification_flags
properties:
evse_id:
description: Id of this EVSE
type: string
transaction_id:
description: OCPP transaction UUID
type: string
identification_status:
description: >-
OCMF Identification Status (IS): General status for user assignment
type: string
$ref: /powermeter#/OCMFUserIdentificationStatus
identification_level:
description: >-
OCMF Identification Level (IL): Encoded overall status of the user assignment
type: string
$ref: /powermeter#/OCMFIdentificationLevel
identification_flags:
description: >-
OCMF Identification Flags (IF): Detailed statements about the user assignment, represented by one or more identifiers
type: array
items:
type: string
$ref: /powermeter#/OCMFIdentificationFlags
minItems: 0
maxItems: 4
identification_type:
description: >-
OCMF Identification Type (IT): Type of identification data
type: string
$ref: /powermeter#/OCMFIdentificationType
identification_data:
description: >-
OCMF Identification Data (ID): The actual identification data e.g. a hex-coded UID according to ISO 14443.
type: string
tariff_text:
description: >-
A textual description used to identify a unique tariff.
This field is intended for the tariff designation in "Direct Payment" use case.
type: string
minLength: 0
maxLength: 250
TransactionRequestStatus:
description: Status of a transaction start or stop request.
type: string
enum:
- OK
- NOT_SUPPORTED
- UNEXPECTED_ERROR
TransactionStartResponse:
description: Return value when a transaction is started.
type: object
additionalProperties: false
required:
- status
properties:
status:
type: object
description: Response status that indicates whether the transaction start request could successfully be performed.
$ref: /powermeter#/TransactionRequestStatus
error:
description: If status is not OK, a verbose error message.
type: string
transaction_min_stop_time:
description: Earliest point in time the started transaction can be stopped again (if a minimum duration is required by the meter); yields a RFC3339 timestamp.
type: string
format: date-time
transaction_max_stop_time:
description: Deadline for the transaction to be stopped again (if a minimum duration is required by the meter); yields a RFC3339 timestamp.
type: string
format: date-time
TransactionStopResponse:
description: Report returned when a signed transaction is requested to stop. If successful, includes the signed meter value object. In case of an error, an additional error message can be provided.
type: object
additionalProperties: false
required:
- status
properties:
status:
type: object
description: Response status that indicates whether the transaction stop request could successfully be performed.
$ref: /powermeter#/TransactionRequestStatus
start_signed_meter_value:
description: The signed meter value report for start of transaction. Needs to be filled if meter provides separate values for start and stop.
type: object
$ref: /units_signed#/SignedMeterValue
signed_meter_value:
description: The signed meter value report of the stopped transaction. Must be provided if status is OK.
type: object
$ref: /units_signed#/SignedMeterValue
error:
description: If status is not OK, a verbose error message.
type: string
OCMFIdentificationLevel:
description: >-
NONE: There is no user assignment. The other data for user assignment have no significance.
HEARSAY: The assignment is unsecured; e.g. by reading an RFID UID.
TRUSTED: The mapping can be trusted to some extent, but there is no absolute reliability. Example: Authorization by backend.
VERIFIED: The assignment has been verified by the signature component and special measures.
CERTIFIED: The assignment was verified by the signature component using a cryptographic signature that certifies the assignment.
SECURE: The mapping was established by a secure feature (e.g. secure RFID card, ISO 15118 with plug and charge, etc.).
MISMATCH: Error; UIDs do not match.
INVALID: Error; certificate not correct (check negative).
OUTDATED: Error; referenced trust certificate expired.
UNKNOWN: Certificate could not be successfully verified (no matching trust certificate found).
type: string
enum:
- NONE
- HEARSAY
- TRUSTED
- VERIFIED
- CERTIFIED
- SECURE
- MISMATCH
- INVALID
- OUTDATED
- UNKNOWN
OCMFIdentificationFlags:
description: >-
RFID_NONE: No assignment via RFID
RFID_PLAIN: Assignment via external RFID card reader
RFID_RELATED: Assignment via protected RFID card reader
RFID_PSK: A previously known shared key (pre-shared key) was used, e.g. with a secured RFID card.
OCPP_NONE: No user assignment by OCPP
OCPP_RS: Assignment by OCPP RemoteStart method
OCPP_AUTH: Assignment by OCPP Authorize method
OCPP_RS_TLS: Assignment by OCPP RemoteStart method, obtained via a secured TLS connection.
OCPP_AUTH_TLS: Assignment by OCPP Authorize method, obtained via a secured TLS connection.
OCPP_CACHE: Assignment by authorization cache of OCPP
OCPP_WHITELIST: Assignment by whitelist from OCPP
OCPP_CERTIFIED: A certificate of the backend was used which certifies the user mapping.
ISO15118_NONE: no user assignment by ISO 15118
ISO15118_PNC: Plug & Charge was used
PLMN_NONE: no user assignment
PLMN_RING: call
PLMN_SMS: short message
type: string
enum:
- RFID_NONE
- RFID_PLAIN
- RFID_RELATED
- RFID_PSK
- OCPP_NONE
- OCPP_RS
- OCPP_AUTH
- OCPP_RS_TLS
- OCPP_AUTH_TLS
- OCPP_CACHE
- OCPP_WHITELIST
- OCPP_CERTIFIED
- ISO15118_NONE
- ISO15118_PNC
- PLMN_NONE
- PLMN_RING
- PLMN_SMS
OCMFIdentificationType:
description: >-
NONE: No assignment available
DENIED: Assignment currently not available (due to two-factor authorization)
UNDEFINED: Type not specified
ISO14443: UID of an RFID card according to ISO 14443. Represented as 4 or 7 bytes in hexadecimal notation.
ISO15693: UID of an RFID card according to ISO 15693. Represented as 8 bytes in hexadecimal notation.
EMAID: Electro-Mobility-Account-ID according to ISO/IEC 15118 (string with length 14 or 15)
EVCCID: ID of an electric vehicle according to ISO/IEC 15118 (maximum length 6 characters)
EVCOID: EV Contract ID according to DIN 91286.
ISO7812: Identification card format according to ISO/IEC 7812 (credit and bank cards, etc.)
CARD_TXN_NR: Card transaction number (CardTxNbr) for a payment with credit or bank card used in a terminal at the charging point.
CENTRAL: Centrally generated ID. No exact format defined, can be e.g. a UUID. (OCPP 2.0)
CENTRAL_1: Centrally generated ID, e.g. by start via SMS. No exact format defined. (until OCPP 1.6)
CENTRAL_2: Centrally generated ID, e.g. by operator start. No exact format defined. (until OCPP 1.6)
LOCAL: Locally generated ID. No exact format defined, might be e.g. a UUID. (OCPP 2.0)
LOCAL_1: Locally generated ID, e.g. ID generated internally by the charge point. No exact format defined. (until OCPP 1.6)
LOCAL_2: Locally generated ID, for other cases. No exact format defined. (until OCPP 1.6)
PHONE_NUMBER: International phone number with leading "+".
KEY_CODE: User-related private key code. No exact format defined.
type: string
enum:
- NONE
- DENIED
- UNDEFINED
- ISO14443
- ISO15693
- EMAID
- EVCCID
- EVCOID
- ISO7812
- CARD_TXN_NR
- CENTRAL
- CENTRAL_1
- CENTRAL_2
- LOCAL
- LOCAL_1
- LOCAL_2
- PHONE_NUMBER
- KEY_CODE
OCMFUserIdentificationStatus:
description: >-
General status for user assignment
ASSIGNED: user successfully assigned
NOT_ASSIGNED: user not assigned
type: string
enum:
- ASSIGNED
- NOT_ASSIGNED
Powermeter:
description: Measured dataset (AC or DC)
type: object
additionalProperties: false
required:
- timestamp
- energy_Wh_import
properties:
timestamp:
description: Timestamp of measurement
type: string
format: date-time
meter_id:
description: A (user defined) meter id (e.g. id printed on the case)
type: string
phase_seq_error:
description: "AC only: true for 3 phase rotation error (ccw)"
type: boolean
energy_Wh_import:
description: Imported energy in Wh (from grid)
type: object
$ref: /units#/Energy
energy_Wh_export:
description: Exported energy in Wh (to grid)
type: object
$ref: /units#/Energy
power_W:
description:
Instantaneous power in Watt. Negative values are exported, positive
values imported Energy.
type: object
$ref: /units#/Power
voltage_V:
description: Voltage in Volts
type: object
$ref: /units#/Voltage
VAR:
description: Reactive power VAR
type: object
$ref: /units#/ReactivePower
current_A:
description: Current in ampere
type: object
$ref: /units#/Current
frequency_Hz:
description: Grid frequency in Hertz
type: object
$ref: /units#/Frequency
# Extension for individual signed meter values
energy_Wh_import_signed:
description: Imported energy in Wh (from grid)
type: object
$ref: /units_signed#/Energy
energy_Wh_export_signed:
description: Exported energy in Wh (to grid)
type: object
$ref: /units_signed#/Energy
power_W_signed:
description:
Instantaneous power in Watt. Negative values are exported, positive
values imported Energy.
type: object
$ref: /units_signed#/Power
voltage_V_signed:
description: Voltage in Volts
type: object
$ref: /units_signed#/Voltage
VAR_signed:
description: Reactive power VAR
type: object
$ref: /units_signed#/ReactivePower
current_A_signed:
description: Current in ampere
type: object
$ref: /units_signed#/Current
frequency_Hz_signed:
description: Grid frequency in Hertz
type: object
$ref: /units_signed#/Frequency
signed_meter_value:
description: >-
Signed collection of instantaneous meter values if supported by the meter.
This is intended for meters that only support signing a collection of meter values.
type: object
$ref: /units_signed#/SignedMeterValue
temperatures:
description: >-
An array of temperature sensors expressed in C, their definition and meaning is product specific
type: array
items:
type: object
$ref: /temperature#/Temperature

View File

@@ -0,0 +1,135 @@
description: Auth module types
types:
ReservationResult:
description: >-
Data of a ReservationResult
Accepted: Reservation has been made
Faulted: Reservation has not been made, because evses / connectors or specified evse / connector are in a
faulted state
Occupied: Reservation has not been made. All evses or the specified evse / connector is occupied
Rejected: Reservation has not been made. Charge Point is not configured to accept reservations
Unavailable: Reservation has not been made, because evses or specified evse / connector are in an unavailable
state
type: string
enum:
- Accepted
- Faulted
- Occupied
- Rejected
- Unavailable
Reservation:
description: Details on Reservation
type: object
additionalProperties: false
required:
- reservation_id
- id_token
- expiry_time
properties:
evse_id:
description: >-
The id of the evse to be reserved. When dismissed means that the reservation is not for a
specific evse
type: integer
reservation_id:
description: Id of the reservation
type: integer
id_token:
description: id token of the reservation
type: string
expiry_time:
description: Absolute UTC time point when reservation expires in RFC3339 format
type: string
format: date-time
parent_id_token:
description: parent_id
type: string
connector_type:
description: The connector type to make a reservation for
type: string
$ref: /evse_manager#/ConnectorTypeEnum
ReservationEndReason:
description: >-
Reason for reservation end
Expired: When the reservation expired before the reserved token was used for a session
Cancelled: When the reservation was cancelled manually
UsedToStartCharging: When the reservation ended because the reserved token was used for a session
GlobalReservationRequirementDropped: When the reservation ended for that specific EVSE because there is a
connector free and there are less reservations than available evse's
(reservation is still there but it is not occupying this EVSE anymore).
type: string
enum:
- Expired
- Cancelled
- UsedToStartCharging
- GlobalReservationRequirementDropped
ReservationEnd:
description: Details on Reservation End
type: object
additionalProperties: false
required:
- reason
- reservation_id
properties:
reason:
description: Reason why reservation ends
type: string
$ref: /reservation#/ReservationEndReason
reservation_id:
description: reservation_id
type: integer
ReservationCheckStatus:
description: >-
The reservation status of an evse id.
NotReserved: There is no reservation for the given evse id.
NotReservedForToken: There is a reservation for the given evse id, but not for this token.
ReservedForOtherToken: Reserved for other token and reservation has no parent token or parent token does not match.
ReservedForOtherTokenAndHasParentToken: There is a reservation for another id token, but the reservation also has
a group id token (which was not given when calling this function).
type: string
enum:
- NotReserved
- ReservedForToken
- ReservedForOtherToken
- ReservedForOtherTokenAndHasParentToken
ReservationCheck:
description: Check for a reserved token
type: object
additionalProperties: false
required:
- id_token
properties:
evse_id:
description: >-
The id of the evse to check. When it is dismissed, it means that the reservation is not for a
specific evse.
type: integer
id_token:
description: The id token to check the reservation for.
type: string
group_id_token:
description: >-
The group / parent id token to check the reservation for. If id_token is set and group_id_token as well, and
id_token is incorrect, the group_id_token will be checked. If that one is correct, there is a reservation
made for this group id token.
type: string
ReservationUpdateStatus:
description: Status of a reservation
type: object
additionalProperties: false
required:
- reservation_id
- reservation_status
properties:
reservation_id:
description: The reservation id
type: integer
reservation_status:
description: The reservation status
type: string
enum:
- Expired
- Removed
- Placed
- Cancelled
- Used

View File

@@ -0,0 +1,49 @@
description: Request types for the SerialCommHub Module
types:
StatusCodeEnum:
description: Success or error indication of command
type: string
enum:
- Success
- Error
- Timeout
Result:
description: Return type for IO transfer functions with 16 bit return values
type: object
required:
- status_code
properties:
status_code:
type: string
$ref: /serial_comm_hub_requests#/StatusCodeEnum
value:
type: array
items:
type: integer
minimum: 0
maximum: 65535
ResultBool:
description: Return type for IO transfer functions with boolean return values, e.g. for coil states
type: object
required:
- status_code
properties:
status_code:
type: string
$ref: /serial_comm_hub_requests#/StatusCodeEnum
value:
type: array
items:
type: boolean
VectorUint16:
description: Data content (raw data bytes)
type: object
required:
- data
properties:
data:
type: array
items:
type: integer
minimum: 0
maximum: 65535

View File

@@ -0,0 +1,233 @@
description: Types to provide the session price
types:
DefaultPrice:
description: >-
The currently applicable default pricing text for this charger,
independent of any active session. Contains human-readable text only —
no computed cost amounts are included. Published once on startup and
again whenever the applicable price changes (e.g. after a connectivity
state change or a configuration update).
type: object
additionalProperties: false
required:
- messages
properties:
messages:
description: >-
Price text in one or more languages. The first entry uses the
configured default language.
type: array
items:
description: Price text in a specific language
type: object
$ref: /text_message#/MessageContent
TariffMessage:
description: >-
Message containing cost information
type: object
additionalProperties: false
required:
- messages
properties:
ocpp_transaction_id:
description: Transaction id of ocpp.
type: string
identifier_id:
description: To which token this message is bound.
type: string
identifier_type:
description: The type of 'identifier_id'. If omitted, type will be session id.
type: string
$ref: /display_message#/IdentifierType
messages:
description: Message with session price information to show the user.
type: array
items:
description: Message with pricing information in a specific language
type: object
$ref: /text_message#/MessageContent
pre_authorized_amount:
description: >-
The pre-authorized amount used by the payment terminal. This amount
will be reserved on the customer's bank account when a session is
started with a bank card.
type: object
$ref: /money#/MoneyAmount
IdlePrice:
description: >-
Price components when idle
type: object
additionalProperties: false
properties:
grace_minutes:
description: >-
Grace period in minutes before idle time is charged.
Grace minutes start counting from the timestamp of the message in which state
changed from "Charging" to "Idle".
type: integer
hour_price:
description: >-
Price per hour while idle
type: object
$ref: /money#/Price
CostCategory:
description: Cost category
type: string
enum:
- Energy
- Time
- FlatFee
- Other
ChargingPriceComponent:
description: >-
Charging price for a category
type: object
properties:
category:
description: >-
Component type for this charging price
type: string
$ref: /session_cost#/CostCategory
price:
description: >-
Price for this component
type: object
$ref: /money#/Price
NextPeriodPrice:
description: Pricing for the next period
type: object
properties:
timestamp_from:
description: Time when these prices become active.
type: string
format: date-time
charging_price:
description: Price components while charging
type: array
items:
type: object
$ref: /session_cost#/ChargingPriceComponent
idle_price:
description: Price components while idle. Optional if no idle fee charged.
type: object
$ref: /session_cost#/IdlePrice
required:
- timestamp_from
- charging_price
SessionCostChunk:
description: >-
A chunk of the session cost. The total cost of the session is the sum of
all chunks.
type: object
additionalProperties: false
properties:
timestamp_from:
description: >-
Absolute timestamp for the start of this chunk in RFC3339 UTC format
type: string
format: date-time
timestamp_to:
description: >-
Absolute timestamp for the end of this chunk in RFC3339 UTC format
type: string
format: date-time
metervalue_from:
description: >-
Metervalue (energie Wh import) for the start of this chunk
type: integer
metervalue_to:
description: >-
Metervalue (energie Wh import) for the end of this chunk
type: integer
cost:
description: >-
Cost of the energy (or other things like time, base price, ...)
consumed during this chunk in the currency specified in the session
price
type: object
$ref: /money#/MoneyAmount
category:
description: >-
Cost category. Typically this is energy, time or a flat fee.
type: string
$ref: /session_cost#/CostCategory
SessionStatus:
description: >-
Session status enum. Session can be running or finished. Costs of the
running session are not final and can change.
type: string
enum:
- Running
- Idle
- Finished
SessionCost:
description: >-
Session cost object containing the total cost of the session and a list
of chunks
type: object
additionalProperties: false
required:
- session_id
- currency
- status
properties:
id_tag:
description: The id tag assigned to this transaction
type: object
$ref: /authorization#/ProvidedIdToken
session_id:
description: The session id
type: string
currency:
description: >-
Currency of the session cost. It applies to all chunks.
type: object
$ref: /money#/Currency
cost_chunks:
description: >-
List of cost chunks. The total cost of the session is the sum of
all chunks.
type: array
items:
description: One chunk of the session cost
type: object
$ref: /session_cost#/SessionCostChunk
idle_price:
description: >-
Prices for when the EV is idle.
type: object
$ref: /session_cost#/IdlePrice
charging_price:
description: >-
Charging prices.
type: array
items:
description: Charging price per type
type: object
$ref: /session_cost#/ChargingPriceComponent
next_period:
description: >-
Charging prices for the next period, starting from the given date/time
type: object
$ref: /session_cost#/NextPeriodPrice
status:
description: >-
Session status. Session can be running or finished. Costs of the
running session are not final and can change.
Only after the session is finished, the session cost can be committed
to bank and/or backend.
type: object
$ref: /session_cost#/SessionStatus
message:
description: >-
Message to show to the user containing information about the price
type: array
items:
description: Message with pricing information in a specific language
type: object
$ref: /text_message#/MessageContent
qr_code:
description: >-
QR Code with more information. For example when the charging is finished,
to download the invoice from
type: string

View File

@@ -0,0 +1,9 @@
description: SLAC shared types
types:
State:
description: SLAC state enum
type: string
enum:
- UNMATCHED
- MATCHING
- MATCHED

View File

@@ -0,0 +1,227 @@
description: EVerest system types
types:
FirmwareUpdateRequest:
description: Type defining a Firmware update request
type: object
additionalProperties: true
required:
- location
- request_id
properties:
retries:
description: >-
This specifies how many times the system must try to download
the firmware before giving up.
type: integer
minimum: 1
retry_interval_s:
description: The interval in seconds after which a retry may be attempted
type: integer
request_id:
description: The Id of this request
type: integer
location:
description: URI defining the origin of the firmware
type: string
retrieve_timestamp:
description: Time when the firmware update shall be retrieved in RFC3339 format
type: string
format: date-time
install_timestamp:
description: Time when the firmware update shall be installed in RFC3339 format
type: string
format: date-time
signing_certificate:
description: >-
Certificate with which the firmware was signed. PEM encoded X.509
certificate
type: string
signature:
description: Base64 encoded firmware signature
type: string
UpdateFirmwareResponse:
description: >-
Enum for the response of an update_firmware command
Accepted: Accepted this firmware update request. This does not mean the firmware update is successful, the system will now start the firmware update process
Rejected: Firmware update request rejected
AcceptedCanceled: Accepted this firmware update request, but in doing this has cancelled an ongoing firmware update
InvalidCertificate: The certificate is invalid
RevokedCertificate: Failure end state. The Firmware Signing certificate has been revoked
type: string
enum:
- Accepted
- Rejected
- AcceptedCanceled
- InvalidCertificate
- RevokedCertificate
UploadLogsRequest:
description: Type defining an upload logs request.
type: object
additionalProperties: true
required:
- location
properties:
retries:
description: >-
This specifies how many the system must try to upload the logs
before giving up.
type: integer
minimum: 1
retry_interval_s:
description: The interval in seconds after which an upload retry may be attempted
type: integer
oldest_timestamp:
description: >-
Oldest timestamp that should be incluced in the log in RFC3339
format
type: string
format: date-time
latest_timestamp:
description: >-
Latest timestamp that should be incluced in the log in RFC3339
format
type: string
format: date-time
location:
description: >-
The URL of the location at the remote system where the log should
be stored.
type: string
type:
description: >-
The type of the log (e.g. in OCPP there is the SecurityLog and
the DiagnosticsLog
type: string
request_id:
description: The id of the request
type: integer
UploadLogsStatus:
description: >-
Enum for the upload logs status response
Accepted: Request to upload logs has been accepted
Rejected: Request to upload logs has been rejected
AcceptedCanceled: Accepted this log upload, but in doing this has cancelled an ongoing log file upload
type: string
enum:
- Accepted
- Rejected
- AcceptedCanceled
UploadLogsResponse:
description: Response to a upload logs request
type: object
additionalProperties: false
required:
- upload_logs_status
properties:
file_name:
description: This contains the name of the log file that will be uploaded.
type: string
upload_logs_status:
description: The log status enum
type: string
$ref: /system#/UploadLogsStatus
LogStatusEnum:
description: >-
State describing the current status of log upload of the system
AcceptedCanceled: Log upload request accepted, but cancelled an ongoing log upload.
BadMessage: A badly formatted packet or other protocol incompatibility was detected
Idle: The system is not uploading a log file
NotSupportedOperation: The server does not support the operation
PermissionDenied: Insufficient permissions to perform the operation
Uploaded: File has been uploaded successfully
UploadFailure: Failed to upload the requested file
Uploading: File is being uploaded
type: string
enum:
- BadMessage
- Idle
- NotSupportedOperation
- PermissionDenied
- Uploaded
- UploadFailure
- Uploading
- AcceptedCanceled
LogStatus:
description: Type defining the status of a log upload
type: object
required:
- log_status
- request_id
properties:
log_status:
description: State describing the current status of log upload of the system
type: string
$ref: /system#/LogStatusEnum
request_id:
description: Id of the request
type: integer
FirmwareUpdateStatusEnum:
description: >-
State describing the current download/upload status of a firmware
update of the system
Downloaded: Intermediate state. New firmware has been downloaded by System
DownloadFailed: Failure end state. System failed to download firmware
Downloading: Intermediate state. Firmware is being downloaded
DownloadScheduled: Intermediate state. Downloading of new firmware has been scheduled
DownloadPaused: Intermediate state. Downloading has been paused
Idle: System is not performing firmware update related tasks
InstallationFailed: Failure end state. Installation of new firmware has failed
Installing: Intermediate state. Firmware is being installed
Installed: Successful end state. New firmware has successfully been installed in System
InstallRebooting: Intermediate state. System is about to reboot to activate new firmware
InstallScheduled: Intermediate state. Installation of the downloaded firmware is scheduled to take place on installDateTime
InstallVerificationFailed: Failure end state. Verification of the new firmware (e.g. using a checksum or some other means) has failed and installation will not proceed. (Final failure state)
InvalidSignature: Failure end state. The firmware signature is not valid
SignatureVerified: Intermediate state. Provide signature successfully verified
type: string
enum:
- Downloaded
- DownloadFailed
- Downloading
- DownloadScheduled
- DownloadPaused
- Idle
- InstallationFailed
- Installing
- Installed
- InstallRebooting
- InstallScheduled
- InstallVerificationFailed
- InvalidSignature
- SignatureVerified
FirmwareUpdateStatus:
description: Type defining the status of a firmware update
type: object
required:
- firmware_update_status
- request_id
properties:
firmware_update_status:
description: >-
State describing the current status of firmware update of the
system
type: string
$ref: /system#/FirmwareUpdateStatusEnum
request_id:
description: Id of the request
type: integer
ResetType:
description: Enum defining the type of a reset
type: string
enum:
- Soft
- Hard
- NotSpecified
BootReason:
description: Enum defining the boot reason
type: string
enum:
- ApplicationReset
- FirmwareUpdate
- LocalReset
- PowerUp
- RemoteReset
- ScheduledReset
- Triggered
- Unknown
- Watchdog

View File

@@ -0,0 +1,18 @@
description: Temperature type
types:
Temperature:
description: Temperature sensor expressed in C and a description (vendor specific) allowing to identify its purpose or meaning
type: object
additionalProperties: false
required:
- temperature
properties:
temperature:
description: The temperature of the sensor measured in C
type: number
identification:
description: A (vendor specific) ID if required
type: string
location:
description: Location of the measurement
type: string

View File

@@ -0,0 +1,25 @@
description: >-
Message to send, for example to show on a display
types:
MessageContent:
description: Contains message details
required:
- content
type: object
properties:
format:
type: string
$ref: /text_message#/MessageFormat
language:
type: string
content:
type: string
MessageFormat:
description: Format of the message to be displayed
type: string
enum:
- ASCII
- HTML
- URI
- UTF8
- QRCODE

View File

@@ -0,0 +1,24 @@
description: UK Random delay types
types:
CountDown:
description: Count down object
type: object
additionalProperties: false
required:
- countdown_s
- current_limit_after_delay_A
- current_limit_during_delay_A
properties:
countdown_s:
description: Remaining count down in seconds. It is set to zero if random delay is inactive
type: integer
current_limit_after_delay_A:
description: Current limit that will be used after the random delay is over
type: number
current_limit_during_delay_A:
description: Current limit that is used while the delay is active
type: number
start_time:
description: UTC timestamp when this random delay was started
type: string
format: date-time

View File

@@ -0,0 +1,114 @@
description: Unit types
types:
Current:
description: Current in Ampere
type: object
additionalProperties: false
properties:
DC:
description: DC current
type: number
L1:
description: AC L1 value only
type: number
L2:
description: AC L2 value only
type: number
L3:
description: AC L3 value only
type: number
N:
description: AC Neutral value only
type: number
Voltage:
description: Voltage in Volt
type: object
additionalProperties: false
properties:
DC:
description: DC voltage
type: number
L1:
description: AC L1 value only
type: number
L2:
description: AC L2 value only
type: number
L3:
description: AC L3 value only
type: number
Frequency:
description: "AC only: Frequency in Hertz"
type: object
additionalProperties: false
required:
- L1
properties:
L1:
description: AC L1 value
type: number
L2:
description: AC L2 value
type: number
L3:
description: AC L3 value
type: number
Power:
description:
Instantaneous power in Watt. Negative values are exported, positive
values imported Energy.
type: object
additionalProperties: false
required:
- total
properties:
total:
description: DC / AC Sum value
type: number
L1:
description: AC L1 value only
type: number
L2:
description: AC L2 value only
type: number
L3:
description: AC L3 value only
type: number
Energy:
description: Energy in Wh.
type: object
additionalProperties: false
required:
- total
properties:
total:
description: DC / AC Sum value (which is relevant for billing)
type: number
L1:
description: AC L1 value only
type: number
L2:
description: AC L2 value only
type: number
L3:
description: AC L3 value only
type: number
ReactivePower:
description: Reactive power VAR
type: object
additionalProperties: false
required:
- total
properties:
total:
description: VAR total
type: number
L1:
description: VAR phase A
type: number
L2:
description: VAR phase B
type: number
L3:
description: VAR phase C
type: number

View File

@@ -0,0 +1,156 @@
description: Unit types
types:
SignedMeterValue:
description: Representation of a signed meter value
type: object
additionalProperties: false
required:
- signed_meter_data
- signing_method
- encoding_method
properties:
signed_meter_data:
description: Signed meter data (encoded in a string representation with eg. Base64)
type: string
signing_method:
description: Method used to create the signature
type: string
encoding_method:
description: Method used to encode the meter values before signing them
type: string
public_key:
description: Public key (encoded in a string representation with eg. Base64)
type: string
timestamp:
description: Timestamp of measurement
type: string
format: date-time
Current:
description: Current in Ampere
type: object
additionalProperties: false
properties:
DC:
description: DC current
type: object
$ref: /units_signed#/SignedMeterValue
L1:
description: AC L1 value only
type: object
$ref: /units_signed#/SignedMeterValue
L2:
description: AC L2 value only
type: object
$ref: /units_signed#/SignedMeterValue
L3:
description: AC L3 value only
type: object
$ref: /units_signed#/SignedMeterValue
N:
description: AC Neutral value only
type: object
$ref: /units_signed#/SignedMeterValue
Voltage:
description: Voltage in Volt
type: object
additionalProperties: false
properties:
DC:
description: DC voltage
type: object
$ref: /units_signed#/SignedMeterValue
L1:
description: AC L1 value only
type: object
$ref: /units_signed#/SignedMeterValue
L2:
description: AC L2 value only
type: object
$ref: /units_signed#/SignedMeterValue
L3:
description: AC L3 value only
type: object
$ref: /units_signed#/SignedMeterValue
Frequency:
description: "AC only: Frequency in Hertz"
type: object
additionalProperties: false
properties:
L1:
description: AC L1 value
type: object
$ref: /units_signed#/SignedMeterValue
L2:
description: AC L2 value
type: object
$ref: /units_signed#/SignedMeterValue
L3:
description: AC L3 value
type: object
$ref: /units_signed#/SignedMeterValue
Power:
description:
Instantaneous power in Watt. Negative values are exported, positive
values imported Energy.
type: object
additionalProperties: false
properties:
total:
description: DC / AC Sum value
type: object
$ref: /units_signed#/SignedMeterValue
L1:
description: AC L1 value only
type: object
$ref: /units_signed#/SignedMeterValue
L2:
description: AC L2 value only
type: object
$ref: /units_signed#/SignedMeterValue
L3:
description: AC L3 value only
type: object
$ref: /units_signed#/SignedMeterValue
Energy:
description: Energy in Wh.
type: object
additionalProperties: false
properties:
total:
description: DC / AC Sum value (which is relevant for billing)
type: object
$ref: /units_signed#/SignedMeterValue
L1:
description: AC L1 value only
type: object
$ref: /units_signed#/SignedMeterValue
L2:
description: AC L2 value only
type: object
$ref: /units_signed#/SignedMeterValue
L3:
description: AC L3 value only
type: object
$ref: /units_signed#/SignedMeterValue
ReactivePower:
description: Reactive power VAR
type: object
additionalProperties: false
properties:
total:
description: VAR total
type: object
$ref: /units_signed#/SignedMeterValue
L1:
description: VAR phase A
type: object
$ref: /units_signed#/SignedMeterValue
L2:
description: VAR phase B
type: object
$ref: /units_signed#/SignedMeterValue
L3:
description: VAR phase C
type: object
$ref: /units_signed#/SignedMeterValue