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,57 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
interface_srcs = glob(["*.yaml"])
interface_names = [name[:-5] for name in interface_srcs]
cpp_headers = [
"generated/interfaces/{}/Implementation.hpp".format(name) for name in interface_names
] + [
"generated/interfaces/{}/Interface.hpp".format(name) for name in interface_names
] + [
"generated/interfaces/{}/Types.hpp".format(name) for name in interface_names
]
# This separate label we need to resolve path to
# the directory later in the genrule
some_output = cpp_headers[0]
filegroup(
name = "interfaces",
srcs = interface_srcs,
visibility = ["//visibility:public"],
)
genrule(
name = "cpp-headers",
outs = cpp_headers,
srcs = interface_srcs + [
"//lib/everest/framework/schemas:schemas",
"//lib/everest/framework:dependencies.yaml",
"@everest-core//types",
"@everest-core//errors",
"@everest-core//:MODULE.bazel",
],
tools = [
"//applications/utils/ev-dev-tools:ev-cli",
],
cmd = """
$(location //applications/utils/ev-dev-tools:ev-cli) interface 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_output})`/..
""".format(
some_output = some_output
)
)
cc_library(
name = "interfaces_lib",
hdrs = [":cpp-headers"],
visibility = ["//visibility:public"],
includes = ["."],
deps = [
"//types:types_lib",
],
copts = ["-std=c++17"],
)

View File

@@ -0,0 +1,482 @@
description: This interface defines a ISO15118 charger.
cmds:
# Setup the module
setup:
description: At startup all necessary info should be sent to the module once.
arguments:
evse_id:
description: >-
Set an ID that uniquely identifies the EVSE and the power outlet the
vehicle is connected to
type: object
$ref: /iso15118#/EVSEID
sae_j2847_mode:
description: Charger is supporting SAE J2847 V2G/V2H version
type: string
$ref: /iso15118#/SaeJ2847BidiMode
debug_mode:
description: Enable/Disable debug mode
type: boolean
set_charging_parameters:
description: >-
At startup, set the the charging parameters at least once. May be updated later on.
If a charging session is currently active, some updated values may only be used for the next charging session.
arguments:
physical_values:
description: Set up initial physical values for a AC or DC charging session
type: object
$ref: /iso15118#/SetupPhysicalValues
session_setup:
description: At each session start this info should be sent to the module.
arguments:
payment_options:
description: Providing a list of payment options to the EVCC
type: array
items:
description: These are the payment options a SECC offers to the EVCC
type: string
$ref: /iso15118#/PaymentOption
minItems: 1
maxItems: 2
supported_certificate_service:
description: >-
The charger supports the certificate installation/update service and has a
connection to an SA for this purpose
type: boolean
central_contract_validation_allowed:
description: >-
Indicates if the vehicle contract may be forwarded to and validated by a CSMS in case
local validation was not successful
type: boolean
bpt_setup:
description: >-
At startup, set the bpt setup for ISO15118-20 at least once. May be updated later on.
arguments:
bpt_config:
description: The required parameters for a BPT setup
type: object
$ref: /iso15118#/BptSetup
set_powersupply_capabilities:
description: >-
At startup, set the min and max limits from the power supply. Can be updated later on.
arguments:
capabilities:
description: The required capabilities from the power supply
type: object
$ref: /power_supply_DC#/Capabilities
# Response messages to vars:
authorization_response:
description: >-
This message is an async response to a previously published require_auth_eim
or require_auth_pnc. The SECC informs the EVCC whether the authorization
is accepted or not.
arguments:
authorization_status:
description: Authorization status of the ID Token
type: string
$ref: /authorization#/AuthorizationStatus
certificate_status:
description: Certificate status information
type: string
$ref: /authorization#/CertificateStatus
ac_contactor_closed:
description: >-
This message is an async response to a previously published ac_close_contactor
or ac_open_contactor.
arguments:
status:
description: Set to true when contactor is closed, false when contactor is open
type: boolean
# Events
dlink_ready:
description: >-
Signals dlink_ready from SLAC layer according to ISO15118-3
arguments:
value:
description: >-
Set to true when link becomes ready, false when the link is terminated
type: boolean
cable_check_finished:
description: >-
Cable check is finished, voltage is under 20V and insulation resistor
on the cable is alright
arguments:
status:
description: Set to true when cable check is okay
type: boolean
receipt_is_required:
description: >-
This element is used by the SECC to indicate that the EVCC is required
to send a MeteringReceiptReq message for the purpose of signing the
meter info record.
arguments:
receipt_required:
description: >-
Set to true when receipt is required, set to false when not
type: boolean
stop_charging:
description: Stops the charging process
arguments:
stop:
description: Set to true when to stop, set to false when to continue
type: boolean
pause_charging:
description: Pause the charging process (only in ISO15118-20)
arguments:
pause:
description: Set to true when to pause, set to false when to continue
type: boolean
no_energy_pause_charging:
description: >-
Right now there is no power available for the charging process. According to
IEC61851-23:2023 CC3.5.3 the charger can pause the session before or after the cable check and
pre charge stage.
arguments:
mode:
description: >-
Set to different no energy pause modes. For PauseAfterPrecharge the charger should pause but
has power for cable check and pre charge. For PauseBeforeCableCheck the charger should pause
before cable check. For AllowEvToIgnorePause charger should ignore, that the ev will go to
CurrentDemand instead of pausing the session, this is against IEC61851-23:2023.
type: string
$ref: /iso15118#/NoEnergyPauseMode
update_supported_app_protocols:
description: >-
Update the supported charging protocols (DIN70121, ISO15118-2, ISO15118-20). Defaults are typically
configured already; if this command is not called, the module keeps its default set of supported protocols.
Note: This command is intended exclusively for Fake DC, primarily to disable specific supported protocols
in case of incompatibilities between EVCC and SECC.
arguments:
supported_app_protocols:
description: Supported communication protocols advertised by the EVSE
type: object
$ref: /iso15118#/SupportedAppProtocols
result:
description: >-
Returns true if the supported protocols were updated successfully
type: boolean
# Update physical values
update_energy_transfer_modes:
description: >-
Update the supported energy transfer modes. Call at least once during start up.
Typically for ISO15118-2 and basic charging we expect unidirectional charging modes.
For ISO15118-20 the user can set what type of modes the hardware supports, may that be
bidirectional, unidirectional, wireless, etc charging.
arguments:
supported_energy_transfer_modes:
description: Available energy transfer modes supported by the EVSE
type: array
items:
description: The different energy modes supported by the SECC
type: object
$ref: /iso15118#/EnergyTransferMode
minItems: 1
maxItems: 6
update_ac_max_current:
description: Update the maximum allowed line current restriction per phase. Call at least once during start up.
arguments:
max_current:
description: Max current in A
type: number
minimum: 0
maximum: 400
update_ac_parameters:
description: Update the d20 initial ac parameters. Call at least once during start up
arguments:
ac_parameters:
description: Ac parameters the EVSE is setting
type: object
$ref: /iso15118#/AcParameters
update_ac_maximum_limits:
description: Update the ac maximum limits. Call at least once during start up.
arguments:
maximum_limits:
description: Maximum values (charge and discharge) the EVSE can deliver
type: object
$ref: /iso15118#/AcEvseMaximumPower
update_ac_minimum_limits:
description: Update the ac minimum limits. Call at least once during start up.
arguments:
minimum_limits:
description: Minimum values (charge and discharge) the EVSE can deliver
type: object
$ref: /iso15118#/AcEvseMinimumPower
update_ac_target_values:
description: Update the ac target values. Call at least once before charging begins.
arguments:
target_values:
description: AC target values
type: object
$ref: /iso15118#/AcTargetValues
update_ac_present_power:
description: >-
Update the present power from the powermeter. Call at least once before charging begins
arguments:
present_power:
description: Present active power
type: object
$ref: /units#/Power
update_dc_maximum_limits:
description: Update the maximum limits. Call at least once during start up.
arguments:
maximum_limits:
description: Maximum values (current, power and voltage) the EVSE can deliver
type: object
$ref: /iso15118#/DcEvseMaximumLimits
update_dc_minimum_limits:
description: Update the minimum limits. Call at least once during start up.
arguments:
minimum_limits:
description: Minimum values (current and voltage) the EVSE can deliver
type: object
$ref: /iso15118#/DcEvseMinimumLimits
update_isolation_status:
description: Update the isolation condition
arguments:
isolation_status:
description: Result of the isolation monitoring
type: string
$ref: /iso15118#/IsolationStatus
update_dc_present_values:
description: Update the present values from the DC powersupply
arguments:
present_voltage_current:
description: Present voltage and current
type: object
$ref: /iso15118#/DcEvsePresentVoltageCurrent
update_meter_info:
description: Update meter info
arguments:
powermeter:
description: >-
Includes the meterInfo record containing the latest meter reading
and other meter relevant data
type: object
$ref: /powermeter#/Powermeter
# Error handling
send_error:
description: An error has happened. Send this error to inform the EV.
arguments:
error:
description: The EVSE error enum
type: string
$ref: /iso15118#/EvseError
reset_error:
description: Reset all errors
vars:
supported_app_protocols_secc:
description: >-
Supported charging protocols of the SECC. This always returns all supported protocols,
even if they are restricted via cmd update_supported_app_protocols.
type: object
$ref: /iso15118#/SupportedAppProtocols
require_auth_eim:
description: An EIM authorization is required
type: "null"
require_auth_pnc:
description: >-
The EVCC provides the payment details for a PnC authorization by sending
the signature certificate chain and eMAID.
type: object
$ref: /authorization#/ProvidedIdToken
ac_close_contactor:
description: The contactor should be closed
type: "null"
ac_open_contactor:
description: The contactor should be opened
type: "null"
start_cable_check:
description: The charger should now start a cable check
type: "null"
start_pre_charge:
description: The charger should now start the pre charge phase
type: "null"
dc_open_contactor:
description: The contactor should be opened
type: "null"
v2g_setup_finished:
description: >-
v2g_setup_finished from ISO15118-3. Trigger when EV sends a PowerDeliveryReq
message with ChargeProgess equals Start or Stop
type: "null"
current_demand_started:
description: The charging process has started and the EV wants to be charged
type: "null"
current_demand_finished:
description: The charging process was finished
type: "null"
sae_bidi_mode_active:
description: The SAE J2847 bidi mode is active
type: "null"
evcc_id:
description:
Specifies the EVs identification in a readable format. It contains
the MAC address of the EVCC in uppercase
type: string
pattern: ^[A-F0-9]{2}(:[A-F0-9]{2}){5}$
selected_payment_option:
description: This element is used for indicating the payment type
type: string
$ref: /iso15118#/PaymentOption
requested_energy_transfer_mode:
description:
Selected energy transfer mode for charging that is requested by the
EVCC.
type: string
$ref: /iso15118#/EnergyTransferMode
departure_time:
description: >-
Optional: [RFC3339 UTC] This element is used to indicate when the
vehicle intends to finish the charging process
type: string
format: date-time
ac_eamount:
description: >-
[Wh] Amount of energy reflecting the EV's estimate how much energy
is needed to fulfill the user configured charging goal for the current charging
session
type: number
minimum: 0
maximum: 200000
ac_ev_max_voltage:
description: >-
[V] The RMS of the maximal nominal voltage the vehicle can accept,
measured between one phase and neutral
type: number
minimum: 0
maximum: 1000
ac_ev_max_current:
description: "[A] Maximum current supported by the EV per phase"
type: number
minimum: 0
maximum: 400
ac_ev_min_current:
description: >-
[A] EVMinCurrent is used to indicate to the SECC that charging below
this minimum is not energy/cost efficient for the EV
type: number
minimum: 0
maximum: 400
ac_ev_power_limits:
description: >-
Ac charge & discharge power values supported and allowed by the EV
type: object
$ref: /iso15118#/AcEvPowerLimits
ac_ev_present_powers:
description: Present active and reactive power measured from the EV
type: object
$ref: /iso15118#/AcEvPresentPowerValues
ac_ev_dynamic_control_mode:
description: >-
The parameters the EVCC offers and sets for ac dynamic control mode
type: object
$ref: /iso15118#/AcEvDynamicModeValues
dc_ev_energy_capacity:
description: "Optional: [Wh] Energy capacity of the EV"
type: number
minimum: 0
maximum: 200000
dc_ev_energy_request:
description: "Optional: [Wh] Amount of energy the EV requests from the EVSE"
type: number
minimum: 0
maximum: 200000
dc_full_soc:
description: >-
Optional: [%] SOC at which the EV considers the battery to be fully
charged
type: number
minimum: 0
maximum: 100
dc_bulk_soc:
description: >-
Optional: [%] SOC at which the EV considers a fast charge process
to end
type: number
minimum: 0
maximum: 100
dc_ev_status:
description: Current status of the EV
type: object
$ref: /iso15118#/DcEvStatus
dc_bulk_charging_complete:
description: >-
Optional: If set to TRUE, the EV indicates that bulk charge (approx.
80% SOC) is complete
type: boolean
dc_charging_complete:
description: >-
Optional: If set to TRUE, the EV indicates that full charge (100%
SOC) is complete
type: boolean
dc_ev_target_voltage_current:
description: Target voltage and current requested by the EV
type: object
$ref: /iso15118#/DcEvTargetValues
dc_ev_maximum_limits:
description:
Maximum Values (current, power and voltage) supported and allowed
by the EV
type: object
$ref: /iso15118#/DcEvMaximumLimits
dc_ev_remaining_time:
description: Estimated or calculated time until bulk and full charge is complete
type: object
$ref: /iso15118#/DcEvRemainingTime
hlc_session_failed:
description: >-
Published by the HLC module whenever an HLC session failure is detected,
immediately when it occurs. Provides a protocol-agnostic reason for the
failure independently of the EvseManager state machine transitions.
type: string
$ref: /evse_manager#/HlcSessionFailedReasonEnum
dlink_terminate:
description: Terminate the data link and become UNMATCHED.
type: "null"
dlink_error:
description: Terminate the data link and restart the matching process.
type: "null"
dlink_pause:
description: Request power saving mode, while staying MATCHED.
type: "null"
ev_app_protocol:
description: >-
Debug_Lite - This request message provides a list of charging protocols
supported by the EVCC
type: object
$ref: /iso15118#/AppProtocols
v2g_messages:
description: >-
Debug - This element contains all V2G elements and should be used
for debug purposes only
type: object
$ref: /iso15118#/V2gMessages
selected_protocol:
description: >-
Debug - Contains the selected protocol
type: string
display_parameters:
description: >-
Parameters that may be displayed on the EVSE (Soc, battery capacity)
type: object
$ref: /iso15118#/DisplayParameters
d20_dc_dynamic_charge_mode:
description: >-
The parameters the EVCC offers and sets for dynamic control mode
type: object
$ref: /iso15118#/DcChargeDynamicModeValues
dc_ev_present_voltage:
description: Present Voltage measured from the EV
type: number
meter_info_requested:
description: The EV requested meter infos from the EVSE
type: "null"
selected_service_parameters:
description: From the EV selected service parameters
type: object
$ref: /iso15118#/SelectedServiceParameters
ev_termination:
description: >-
The EV termination code as described in ISO15118-20.
type: object
$ref: /iso15118#/EvTermination

View File

@@ -0,0 +1,82 @@
description: This interface defines a simple ISO15118 ev.
cmds:
start_charging:
description: Start the ev charging process
arguments:
EnergyTransferMode:
description: >-
Selected energy transfer mode for charging that is requested
by the EVCC
type: string
$ref: /iso15118#/EnergyTransferMode
SelectedPaymentOption:
description: Selected payment option
type: object
$ref: /iso15118#/SelectedPaymentOption
DepartureTime:
description: >-
The time when the EVCC wants to leave the charging station (in seconds)
type: number
EAmount:
description: >-
The amount of energy that the EVCC wants to charge (in kWh)
type: number
result:
description: Returns true if the evcc simulation started
type: boolean
stop_charging:
description: Stop the ev charging communication process
pause_charging:
description: Pause the ev charging communication process
set_fault:
description: >-
TODO_SL: Set the different ev faults to communicate these errors
to the charging station
set_dc_params:
description: Set the target parameters for a dc charging process
arguments:
EvParameters:
description: Target parameters for dc charging
type: object
$ref: /iso15118#/DcEvParameters
set_bpt_dc_params:
description: Set the bpt parameters for dc charging
arguments:
EvBPTParameters:
description: BPT parameters for dc charging
type: object
$ref: /iso15118#/DcEvBPTParameters
enable_sae_j2847_v2g_v2h:
description: Enable the SAE J2847 2 V2H V2G
update_soc:
description: Updating the EV SoC state
arguments:
SoC:
description: The actual State of Charge from the EV
type: number
minimum: 0
vars:
v2g_session_finished:
description: The v2g session between the charger and the car is finished
type: 'null'
ev_power_ready:
description: The car is ready for power (HLC)
type: boolean
ac_evse_max_current:
description: EVSE max current per phase
type: number
minimum: 0
maximum: 400
ac_evse_target_power:
description: Evse AC max target power
type: object
$ref: /iso15118#/AcTargetPower
dc_power_on:
description: The ev wants to close the dc contactors
type: 'null'
stop_from_charger:
description: The charger wants to stop the charging process
type: 'null'
pause_from_charger:
description: The charger wants to pause the session (only d20)
type: 'null'

View File

@@ -0,0 +1,32 @@
description: Custom VAS provider for ISO 15118
vars:
offered_vas:
description: List of offered VAS Service IDs
type: object
$ref: /iso15118_vas#/OfferedServices
cmds:
get_service_parameters:
description: >-
This command dynamically returns the parameter sets for a single service.
It is called upon receiving ServiceDetailReq and returns the payload for ServiceDetailRes.
arguments:
service_id:
type: integer
description: Service ID
result:
type: array
description: Parameter Sets for this VAS
items:
type: object
$ref: /iso15118_vas#/ParameterSet
selected_services:
description: >-
Callback to notify the VAS provider which services and parameter sets were selected by the EV.
It is called upon receiving ServiceSelectionReq and called only once per Request.
arguments:
selected_services:
description: List of selected services and their parameter set IDs
type: array
items:
type: object
$ref: /iso15118_vas#/SelectedService

View File

@@ -0,0 +1,19 @@
description: >-
This interface provides an AC Residual Current Monitor (RCD). Actual emergency switch off is done in HW directly,
but this interface allows some control and telemetry.
cmds:
self_test:
description: >-
Executes a self test of the RCD. If it fails, an error of type Selftest should be raised.
reset:
description: >-
Resets the RCD after a trigger. May not be supported by actual hardware.
result:
description: 'True: Reset successful, False: Reset failed.'
type: boolean
vars:
rcd_current_mA:
description: Residual current in mA. Note that this does not trigger anything, it is merely for reporting.
type: number
errors:
- reference: /errors/ac_rcd

View File

@@ -0,0 +1,49 @@
description: Interface of authentication framework
cmds:
set_connection_timeout:
description: Sets the connection timeout
arguments:
connection_timeout:
description: Connection timeout in seconds
type: integer
minimum: 10
maximum: 300
set_master_pass_group_id:
description: >-
Sets the master pass group id. IdTokens that have this id as parent_id_token belong to the Master Pass Group.
This means they can stop any ongoing transaction, but cannot start transactions. This can, for example, be used by
law enforcement personal to stop any ongoing transaction when an EV has to be towed away. If master_pass_group_id
is an empty string, it is not used.
arguments:
master_pass_group_id:
description: The master pass group id
type: string
maxLength: 36
withdraw_authorization:
description: >-
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
arguments:
request:
description: The request
type: object
$ref: /authorization#/WithdrawAuthorizationRequest
result:
description: >-
Accepted in case requested authorization was removed
AuthorizationNotFound in case no match for request was found
Rejected in case module could not process the request for other reasons
type: string
$ref: /authorization#/WithdrawAuthorizationResult
vars:
token_validation_status:
description: Emits all events related to current token validation
type: object
$ref: /authorization#/TokenValidationStatusMessage
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,8 @@
description: Interface to provide a token
vars:
provided_token:
description: The provided token
type: object
$ref: /authorization#/ProvidedIdToken
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,24 @@
description: Checks provided tokens for validity
cmds:
validate_token:
description: Validate auth token and return result (with optional reason string)
arguments:
provided_token:
description: >-
Contains information about the authorization request
type: object
$ref: /authorization#/ProvidedIdToken
result:
description: >-
Result object containing validation result
type: object
$ref: /authorization#/ValidationResult
vars:
validate_result_update:
description: >-
Updated validation result for a given token due to some changes. These
can be triggered by TransactionEvent messages or StartTransaction.
type: object
$ref: /authorization#/ValidationResultUpdate
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,11 @@
description: >-
Provides the token that can be used to uniquely identify the session in the
bank statement.
cmds:
get_bank_session_token:
description: >-
Returns the token.
result:
description: token
type: object
$ref: /payment_terminal#/BankSessionToken

View File

@@ -0,0 +1,22 @@
description: >-
This defines a car simulator that can execute a full charging session,
from plugging in to plugging out. It uses HIL or SIL simulation controllers from
e.g. the Yeti HIL simulator.
cmds:
enable:
description: >-
Enables or disables the simulation.
arguments:
value:
description: Enable/Disable simulation mode
type: boolean
execute_charging_session:
description: Executes a charging simulation string
arguments:
value:
description: Charging simulation string
type: string
vars:
enabled:
description: Indicates whether simulation is currently enabled or not
type: boolean

View File

@@ -0,0 +1,8 @@
description: This interface is the internal charger information interface between nodes.
cmds:
get_charger_information:
description: Queries the current charger information
result:
description: Returns an object with the current charger meta information
type: object
$ref: /charger_information#/ChargerInformation

View File

@@ -0,0 +1,9 @@
description: >-
This interface defines one connector locking motor (e.g. for AC sockets with no fixed attached cable)
cmds:
lock:
description: Lock connector lock
unlock:
description: Unlock connector lock (e.g. normal unlock or enforced by OCPP)
errors:
- reference: /errors/connector_lock

View File

@@ -0,0 +1,30 @@
description: >-
Provides an interface for implementing DC power supply derating functionality.
This allows integration of hardware-specific derating logic, for example,
adjusting output current based on internal temperature measurements.
In the simplest case, derating is determined solely by the plug temperature,
as reported by the evse_board_support driver. This value is exposed here for convenience.
More advanced implementations may incorporate additional temperature sensors,
such as relay temperature or other relevant measurements, to enable more precise control.
Note that this is for DC output in DC charging only.
To derate for AC chargers (or the AC side in DC chargers), use an EnergyNode and set external_limits instead.
cmds:
set_external_derating:
description: >-
Set external derating values. The provided values
will be merged with the existing internal capabilities of the power supply:
The minimum of the internal and external values will be used.
All values are optional, unset means no limit.
arguments:
derate:
description: Operation mode of power supply
type: object
$ref: /dc_external_derate#/ExternalDerating
vars:
plug_temperature_C:
description: Current temperature of the plug in degree celsius
type: number

View File

@@ -0,0 +1,10 @@
description: >-
This interface defines a generic JSON object debug variable publisher
for use in any module. Can be used to display debug variables e.g. in web interface.
vars:
title:
description: Title of the Debug object
type: string
debug_json:
description: Provides the debug object as a json object
type: object

View File

@@ -0,0 +1,46 @@
description: >-
A module that implements this interface should be able to:
- store (add, remove, change) and retrieve predefined messages
- show messages on a display
When a display message contains a session id, the display message must be removed once the session has ended.
cmds:
set_display_message:
description: >-
Command to set or replace a display message.
arguments:
request:
description: >-
Request to set a display message
type: array
items:
description: The display messages to set
type: object
$ref: /display_message#/DisplayMessage
result:
description: >-
Response to the set display message request.
type: object
$ref: /display_message#/SetDisplayMessageResponse
get_display_messages:
description: Command to get one or more display messages.
arguments:
request:
description: The request for display messages
type: object
$ref: /display_message#/GetDisplayMessageRequest
result:
description: The display messages or an empty array if there are none
type: object
$ref: /display_message#/GetDisplayMessageResponse
clear_display_message:
description: Command to remove a display message
arguments:
request:
description: The request to clear a message
type: object
$ref: /display_message#/ClearDisplayMessageRequest
result:
description: Response on the clear message request
type: object
$ref: /display_message#/ClearDisplayMessageResponse

View File

@@ -0,0 +1 @@
description: This interface is empty and can be used for a config-only (main) implementation

View File

@@ -0,0 +1,17 @@
description: >-
This interface is the internal energy management interface between nodes.
cmds:
enforce_limits:
description: The EnergyManager enforces a limit using this command.
arguments:
value:
description: Limit object that will be routed through the tree.
type: object
$ref: /energy#/EnforcedLimits
vars:
energy_flow_request:
description: >-
Request energy flow to supply/limit energy import (direction from grid
to car) and/or consume/limit energy export (car to grid).
type: object
$ref: /energy#/EnergyFlowRequest

View File

@@ -0,0 +1,2 @@
description: This interface defines the global EnergyManager
vars: {}

View File

@@ -0,0 +1,8 @@
description: This interface defines the interface for an energy price forecast
vars:
energy_pricing:
description: >-
Forecast JSON Object containing timestamps and the price forecast
for both import and export.
type: object
$ref: /energy_price_information#/EnergyPriceSchedule

View File

@@ -0,0 +1,14 @@
description: This interface provides access to the error history of the EVerest framework
cmds:
get_errors:
description: Takes a list of filters and returns a list of errors
arguments:
filters:
type: object
description: Filters to apply to the list of errors
$ref: /error_history#/FilterArguments
result:
description: List of filtered errors
type: array
items:
$ref: /error_history#/ErrorObject

View File

@@ -0,0 +1,63 @@
description: This defines the board support package for the EV side
cmds:
enable:
description: Enable/disable the simulation
arguments:
value:
description: true to enable, false to disable
type: boolean
set_cp_state:
description: Sets the CP State that should be set by the EV board support driver (controlled by S2)
arguments:
cp_state:
description: The CP State
type: string
$ref: /ev_board_support#/EvCpState
allow_power_on:
description: >-
Sets allow_power_on flag. If false, contactor must never be switched on.
arguments:
value:
description: 'True: allow power on, false: do not allow power on.'
type: boolean
diode_fail:
description: Setting a diode failure
arguments:
value:
description: "True: diode failure"
type: boolean
set_ac_max_current:
description: Setting the max current requested from the ev
arguments:
current:
description: Max current requested from the ev
type: number
set_three_phases:
description: Setting three or one phase support
arguments:
three_phases:
description: "True: Three phase support, False: One phase support"
type: boolean
set_rcd_error:
description: Setting a rcd error. Only for simulation purpose.
arguments:
rcd_current_mA:
description: RCD current in mA
type: number
vars:
bsp_event:
description: >-
Events from CP/Relais
type: object
$ref: /board_support_common#/BspEvent
bsp_measurement:
description: >-
BSP Measurements
type: object
$ref: /board_support_common#/BspMeasurement
ev_info:
description: More details about the EV if available
type: object
$ref: /evse_manager#/EVInfo
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,16 @@
description: >-
This interface defines the ev manager. An ev manager represents the
charging logic of the ev side
cmds: {}
vars:
bsp_event:
description: >-
Events from CP/Relais
type: object
$ref: /board_support_common#/BspEvent
ev_info:
description: More details about the EV if available
type: object
$ref: /evse_manager#/EVInfo
errors:
- reference: /errors/evse_manager

View File

@@ -0,0 +1,28 @@
description: ISO15118-3 SLAC interface for EV side
cmds:
reset:
description: Reset SLAC
trigger_matching:
description: Trigger start of matching process
result:
type: boolean
description: >-
True on success, returns False if transition was unexpected and
cannot be handled by SLAC state machine.
vars:
state:
description: Provides the state enum.
type: string
$ref: /slac#/State
dlink_ready:
description: >-
Inform higher layers about a change in data link status. Emits true
if link was set up and false when the link is shut down.
type: boolean
ev_mac_address:
description: >-
Inform higher layers about the MAC address of the charging connector
type: string
pattern: ^[A-F0-9]{2}(:[A-F0-9]{2}){5}$
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,109 @@
description: >-
This interface defines the board support driver for AC or DC minimal power path: ControlPilot,
output contactors.
Other components of the power path such as IMD(DC)/RCD(AC)/Connector Lock etc have their own interfaces.
cmds:
enable:
description: >-
Enables or disables the charging port. When disabled, the BSP must prevent new charging sessions
and may signal unavailability using a hardware-appropriate CP state (E/F/X1) and/or mechanical
blocking.
While disabled, the BSP should still listen for PWM updates and cache the last duty cycle received.
When re-enabled, it must apply the cached PWM value.
arguments:
value:
description: 'True: enabled, false: disabled.'
type: boolean
pwm_on:
description: >-
Turns PWM on with duty cycle (in percent). This command only applies when the charging port is enabled;
if disabled, the value must be cached and applied when re-enabled.
arguments:
value:
description: PWM duty cycle (>0, <100)
type: number
minimum: 0
maximum: 100
cp_state_X1:
description: Turns PWM off (constant high voltage) This command only applies when the charging port is enabled;
if disabled, the value must be cached and applied when re-enabled.
cp_state_F:
description: >-
Turns PWM off with error state F: continuous -12 V on Control Pilot, indicating
EV supply equipment not available. This command only applies when the charging port is enabled;
if disabled, the value must be cached and applied when re-enabled.
cp_state_E:
description: >-
Sets the Control Pilot line to 0 V (state E) by disabling the power output or shorting to ground.
This state is typically used to simulate that no charger is connected to the EV.
This command only applies when the charging port is enabled; if disabled, the value must be
cached and applied when re-enabled.
Note: This command requires hardware support for setting Control Pilot to 0 V (state E).
allow_power_on:
description: >-
Sets allow_power_on flag. If false, Relais must never be switched
on.
arguments:
value:
description: Flag and context
type: object
$ref: /evse_board_support#/PowerOnOff
ac_switch_three_phases_while_charging:
description: >-
Optional, in case of doubt do not implement. Report in hardware_capabilites if this command is supported.
This command switches between one and three phase operation during an active charging session.
Some cars can be permanently destroyed by that, so the bsp needs to implement a special sequence for the switching.
The exact sequence can be defined by the BSP, but one example would be a C2->C1->B1->F->B1->B2->C2 or similar.
Use with caution.
arguments:
value:
description: 'True: switch to 3ph, False: switch to 1ph'
type: boolean
ac_set_overcurrent_limit_A:
description: >-
Many chargers implement a fast over current shutdown directly in the hardware that triggers if the EV draws more current than
the PWM allows.
If the hardware does not have this functionality, just ignore this command. Do not use it to set the PWM duty cycle.
Otherwise this command reports a value that should be used for the overcurrent detection.
A margin needs to be added to avoid false triggers. Do not use the PWM duty cycle to infer the current limit in the BSP,
as this will not work with HLC.
arguments:
value:
description: Ampere current limit value
type: number
vars:
event:
description: Event from ControlPilot signal/output relais
type: object
$ref: /board_support_common#/BspEvent
ac_nr_of_phases_available:
description: Instantaneous phase count available to car
type: integer
minimum: 1
maximum: 3
telemetry:
description: Other telemetry
type: object
$ref: /evse_board_support#/Telemetry
capabilities:
description: >-
Hardware capabilities/limits. The BSP must publish this variable at least once during start up.
For AC, the capabilities are the limits of the AC hardware power path. For DC, this are the limits for the AC input for the AC/DC converter.
The BSP may publish this variable to update limits in case they change during runtime, e.g. if the maximum current changes because the hardware gets too hot.
type: object
$ref: /evse_board_support#/HardwareCapabilities
ac_pp_ampacity:
description: >-
Current carrying capacity of the connected cable in ampere for AC charging
with a socket. Publish whenever it changes.
This has no meaning for DC or AC charging with a fixed attached cable, it does not
need to be implemented and the returned value is not used in those cases.
type: object
$ref: /board_support_common#/ProximityPilot
request_stop_transaction:
description: Publish to stop the transaction gracefully (e.g. user pressed the stop button)
type: object
$ref: /evse_manager#/StopTransactionRequest
errors:
- reference: /errors/evse_board_support
- reference: /errors/ac_rcd

View File

@@ -0,0 +1,205 @@
description: >-
This interface defines the evse manager. An evse manager represents the
charging kernel of one physical connector.
cmds:
get_evse:
description: Call to get information about the EVSE including its connectors
result:
description: Object that contains information of the EVSE including its connectors
type: object
$ref: /evse_manager#/Evse
enable_disable:
description: Enables or disables the evse. Turns off PWM with error F. Charging is only possible if an EVSE is enabled.
arguments:
connector_id:
description: Specifies the ID of the connector to enable. If 0, the whole EVSE should be enabled
type: integer
cmd_source:
description: Source of the enable command
type: object
$ref: /evse_manager#/EnableDisableSource
result:
description: >-
Returns true if evse is enabled after the command, false if it is disabled.
This may not be the same value as the request, since there may be a higher priority request
from another source that is actually deciding whether it is enabled or disabled.
type: boolean
authorize_response:
description: >-
Reports the result of an authorization request to the EvseManager.
Contains the provided_token for which authorization was requested and
the validation_result
arguments:
provided_token:
description: The token for which authorization was requested
type: object
$ref: /authorization#/ProvidedIdToken
validation_result:
description: The validation result
type: object
$ref: /authorization#/ValidationResult
withdraw_authorization:
description: >-
Call to signals that EVSE is not further authorized to start a transaction
(e.g. on a connection_timeout)
reserve:
description: >-
Call to signal that EVSE is reserved. This can be used to e.g. change
the color of the HMI LEDs to indicate reservation.
arguments:
reservation_id:
description: >-
The reservation id (should be added to the TransactionStarted event). Set this to a negative value if there is
no specific reservation id for this evse but the evse should still move to a Reserved state because of total
global reservations.
type: integer
result:
description: Returns true if the EVSE accepted the reservation, else false.
type: boolean
cancel_reservation:
description: Call to signal that EVSE is not reserved anymore
pause_charging:
description: Call to signal EVSE to pause charging
result:
description: >-
Returns true if successfully paused or was already in paused_by_evse
mode
type: boolean
resume_charging:
description: Call to signal EVSE to resume charging
result:
description: >-
Returns true if resume was successful, false otherwise (e.g. resuming
a car pause won't work)
type: boolean
stop_transaction:
description: >-
Stops transaction and cancels charging externally, charging can only
be resumed by replugging car. EVSE will also stop transaction automatically
e.g. on disconnect, so this only needs to be called if the transaction should
end before.
arguments:
request:
description: Request to stop the transaction.
type: object
$ref: /evse_manager#/StopTransactionRequest
result:
description: Returns true if successful
type: boolean
force_unlock:
description: >-
Forces connector to unlock connector now. During normal operation, connector
will be locked/unlocked in the correct sequence. Do not use this function except
if explicitly requested by e.g. management cloud.
arguments:
connector_id:
description: Specifies the ID of the connector that should be unlocked
type: integer
result:
description: >-
Returns true if unlocking command was accepted, or false if it is not supported.
It does not reflect the success/failure of the actual unlocking.
If unlocking fails, the connector_lock interface shall raise an error asynchronously.
type: boolean
external_ready_to_start_charging:
description: >-
There are situations where another module needs to do some initialization after evse manager is in principle ready to start charging.
This command can be used (optimally in combination with a configuration option) to delay charging ready until the external module is done with its initialization
result:
description: Returns true if the signal was used by the evse manager implementation
type: boolean
set_plug_and_charge_configuration:
description: >-
Sets the configuration required for ISO15118 to handle contract authorization.
arguments:
plug_and_charge_configuration:
description: The plug and charge configuration object
type: object
$ref: /evse_manager#/PlugAndChargeConfiguration
update_allowed_energy_transfer_modes:
description: >-
Sets the supported energy transfer mode for ISO15118. It is expected that this command will update the ISO15118
software stack to only propose the list of allowed_energy_transfer_modes presented in this message.
If a transaction is already in progress, it is expected that this triggers a service renegotiation.
If no HLC is present, this will be accepted, but do nothing.
arguments:
allowed_energy_transfer_modes:
description: >-
The list of supported energy transfer modes. It cannot be empty as we need to propose something
to the EV.
type: array
items:
type: string
$ref: /iso15118#/EnergyTransferMode
minItems: 1
result:
description: Returns an enum indicating whether the update was successful or not.
type: string
$ref: /evse_manager#/UpdateAllowedEnergyTransferModesResult
vars:
session_event:
description: Emits all events related to sessions
type: object
$ref: /evse_manager#/SessionEvent
hlc_session_failed:
description: >-
Published whenever an HLC session failure occurs and the connection is terminated.
Uses the uuid field to correlate with session_event. Not used with basic charging.
type: object
$ref: /evse_manager#/HlcSessionFailedEvent
limits:
description: Limits of this evse, published on change
type: object
$ref: /evse_manager#/Limits
ev_info:
description: More details about the EV if available
type: object
$ref: /evse_manager#/EVInfo
car_manufacturer:
description: Car manufacturer (if known)
type: string
$ref: /evse_manager#/CarManufacturer
telemetry:
description: Other telemetry
type: object
$ref: /evse_board_support#/Telemetry
powermeter:
description: Measured dataset
type: object
$ref: /powermeter#/Powermeter
powermeter_public_key_ocmf:
description: Powermeter public key
type: string
evse_id:
description: EVSE ID including the connector number, e.g. DE*PNX*E123456*1
type: string
hw_capabilities:
description: "Hardware capability/limits"
type: object
$ref: /evse_board_support#/HardwareCapabilities
enforced_limits:
description: Enforced limits for this node (coming from the EnergyManager)
type: object
$ref: /energy#/EnforcedLimits
waiting_for_external_ready:
description: >-
Signals that the EVSE Manager is in principle ready to start charging,
but delays sending its ready signal waiting for the external_ready_to_start_charging command.
type: boolean
ready:
description: Signals that the EVSE Manager is ready to start charging
type: boolean
selected_protocol:
description: >-
Contains the selected protocol used for charging for informative purposes
type: string
supported_energy_transfer_modes:
description: >-
Contains the list of supported energy transfers e.g. AC mono/tri, DC, DC_BPT, etc.
type: array
items:
type: object
$ref: /iso15118#/EnergyTransferMode
minItems: 1
errors:
- reference: /errors/evse_manager

View File

@@ -0,0 +1,238 @@
description: >-
This interface provides security related functions and access to secure storage that an EVSE needs to provide.
This includes the handling of all security related functions specified within OCPP and ISO15118. The modules
that implement this interface are responsible for checking the validity period of the leaf certificates and
initiate certificate signing request if leaf certificates are about to expire.
cmds:
install_ca_certificate:
description: Command to install a new CA certificate
arguments:
certificate:
description: A PEM encoded X.509 certificate.
type: string
certificate_type:
description: Indicates the type of the certificate
type: string
$ref: /evse_security#/CaCertificateType
result:
description: Result of the attempt to install a CA certificate
type: string
$ref: /evse_security#/InstallCertificateResult
delete_certificate:
description: Command to delete a certificate
arguments:
certificate_hash_data:
description: Indicates the certificate that should be deleted
type: object
$ref: /evse_security#/CertificateHashData
result:
description: Result of the attempt to delete a certificate
type: string
$ref: /evse_security#/DeleteCertificateResult
update_leaf_certificate:
description: Command to install or update SECC or CSMS leaf certificate
arguments:
certificate_chain:
description: Leaf certificate or certificate chain that should be installed
type: string
certificate_type:
description: Indicates the type of the certificate
type: string
$ref: /evse_security#/LeafCertificateType
result:
description: Result of the attempt to install or update a leaf certificate
type: string
$ref: /evse_security#/InstallCertificateResult
verify_certificate:
description: Command to verify the given certificate
arguments:
certificate_chain:
description: Leaf certificate or certificate chain that is to be verified
type: string
certificate_types:
description: Indicates the type of the certificate
type: array
items:
minimum: 1
type: string
$ref: /evse_security#/LeafCertificateType
result:
description: Result of the verification
type: string
$ref: /evse_security#/CertificateValidationResult
get_installed_certificates:
description: Command to retrieve installed certificates of the EVSE
arguments:
certificate_types:
description: Types of certificates to be retrieved
type: array
items:
minimum: 0
type: string
$ref: /evse_security#/CertificateType
result:
description: Indicates the result of the command and optional certificate hash data
type: object
$ref: /evse_security#/GetInstalledCertificatesResult
get_v2g_ocsp_request_data:
description: >-
Command to retrieve the OCSP request data of the V2G certificates. Contains OCSP data for each
certificate that is present in the chain (excluding the root).
result:
description: The OCSP request data of all V2G CA certificates including the Sub CAs (excluding the root)
type: object
$ref: /evse_security#/OCSPRequestDataList
get_mo_ocsp_request_data:
description: >-
Command to retrieve the OCSP request data of the given MO certificate chain. Contains OCSP data
for each certificate that is present in the chain (excluding the root)
arguments:
certificate_chain:
description: Certificate chain for which the OCSP data is retrieved
type: string
result:
description: >-
The OCSP request data of the given certificate chain. Contains OCSP data for each
certificate in the given chain.
type: object
$ref: /evse_security#/OCSPRequestDataList
update_ocsp_cache:
description: Command to update the OCSP cache with the given data
arguments:
certificate_hash_data:
description: Certificate hash data that identifies the certificate for which the cache should be updated
type: object
$ref: /evse_security#/CertificateHashData
ocsp_response:
description: OCSPResponse class as defined in IETF RFC 6960. DER and then base64 encoded
type: string
is_ca_certificate_installed:
description: Command that indicates if the given CA certificate type is installed
arguments:
certificate_type:
description: Specifies that CA certificate type
type: string
$ref: /evse_security#/CaCertificateType
result:
description: True if CA certificate is installed, else false
type: boolean
generate_certificate_signing_request:
description: Command to generate a certificate signing request for the given use
arguments:
certificate_type:
description: Specifies the leaf certificate type
type: string
$ref: /evse_security#/LeafCertificateType
country:
description: Specifies the country name (C) of the certificate
type: string
organization:
description: Specifies the organization name (O) of the certificate
type: string
common:
description: Specifies the common name (CN) of the certificate
type: string
use_tpm:
description: Specifies if the CSR should store the private key on the TPM
type: boolean
result:
description: The certificate signing request in PEM format
type: object
$ref: /evse_security#/GetCertificateSignRequestResult
get_leaf_certificate_info:
description: Command to get the paths of the certificate and the respective key
arguments:
certificate_type:
description: Specifies the leaf certificate type
type: string
$ref: /evse_security#/LeafCertificateType
encoding:
description: Specifies the encoding of the key
type: string
$ref: /evse_security#/EncodingFormat
include_ocsp:
description: Specifies whether per-certificate OCSP data is also requested
type: boolean
result:
description: The response to the requested command
type: object
$ref: /evse_security#/GetCertificateInfoResult
get_all_valid_certificates_info:
description: >-
Finds the latest valid leafs, for each root certificate that is present on the filesystem,
and returns all the newest valid leafs that are present for different roots
arguments:
certificate_type:
description: Specifies the leaf certificate type
type: string
$ref: /evse_security#/LeafCertificateType
encoding:
description: Specifies the encoding of the key
type: string
$ref: /evse_security#/EncodingFormat
include_ocsp:
description: Specifies whether per-certificate OCSP data is also requested
type: boolean
result:
description: The response to the requested command
type: object
$ref: /evse_security#/GetCertificateFullInfoResult
get_verify_file:
description: Command to get the file path of a CA bundle that can be used for verification
arguments:
certificate_type:
description: Specifies that CA certificate type
type: string
$ref: /evse_security#/CaCertificateType
result:
description: The path of the CA bundle file
type: string
get_verify_location:
description: Command to get the file path of the CA root directory that can be used for verification. Will also invoke c_rehash for that directory
arguments:
certificate_type:
description: Specifies that CA certificate type
type: string
$ref: /evse_security#/CaCertificateType
result:
description: The path of the CA certificates directory
type: string
get_leaf_expiry_days_count:
description: >-
Command to get the days count until the given leaf certificate expires.
If no leaf certificate is installed this command will return 0
arguments:
certificate_type:
description: Indicates the type of the certificate
type: string
$ref: /evse_security#/LeafCertificateType
result:
description: days count until given leaf certificate expires
type: integer
verify_file_signature:
description: >-
Verify the file at the given path using the provided certificate and signature
arguments:
file_path:
description: Path to the file that should be verified
type: string
signing_certificate:
description: >-
Certificate with which the file was signed. PEM encoded X.509 certificate
type: string
signature:
description: Base64 encoded file signature
type: string
result:
description: True if verification succeeded, false if not
type: boolean
vars:
certificate_store_update:
description: >-
Variable that indicates that the certificate store has been updated, i.e. either a certificate has been installed or deleted.
This is used to notify other modules that the certificate store has changed.
type: object
$ref: /evse_security#/CertificateStoreUpdate

View File

@@ -0,0 +1,18 @@
description: >-
This interface defines an example interface that uses multiple framework
features
cmds:
uses_something:
description: This command checks if something is stored under a given key
arguments:
key:
description: Key to check the existence for
type: string
pattern: ^[A-Za-z0-9_.]+$
result:
description: Returns 'True' if something was stored for this key
type: boolean
vars:
max_current:
description: Provides maximum current of this supply in ampere
type: number

View File

@@ -0,0 +1,7 @@
description: >-
This is an example interface used for the error framework example modules.
errors:
- reference: /errors/example#/ExampleErrorA
- reference: /errors/example#/ExampleErrorB
- reference: /errors/example#/ExampleErrorC
- reference: /errors/example#/ExampleErrorD

View File

@@ -0,0 +1,3 @@
description: >-
This interface defines an example_user interface that uses the example
interface

View File

@@ -0,0 +1,17 @@
description: >-
This interface allows to limit energy flow at a specific node of the energy tree from the outside (e.g. from ocpp).
cmds:
set_external_limits:
description: Set additional external energy flow limits at this node.
arguments:
value:
description: External limits object
type: object
$ref: /energy#/ExternalLimits
vars:
capabilities:
description: >-
Describes the maximum/rated energy flow at this node, e.g. how many phases are configured,
the maximum current and the nominal voltage. This is published at least once during start up.
type: object
$ref: /energy#/CapabilityLimits

View File

@@ -0,0 +1,4 @@
description: >-
Interface providing access to generic errors
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,36 @@
description: This interface is used to share data between ISO15118 and OCPP modules to support the requirements of the OCPP protocol
cmds:
set_get_certificate_response:
description: >-
CertificateInstallationRes/CertificateUpdateRes - Set the new/updated Contract Certificate (including the certificate chain)
and the corresponding encrypted private key. Should be forwarded to EVCC.
This is an async response to a previously published iso15118_certificate_request
arguments:
certificate_response:
description: The response raw exi stream and the status from the CSMS system
type: object
$ref: /iso15118#/ResponseExiStreamStatus
vars:
iso15118_certificate_request:
description: >-
The vehicle requests the SECC to deliver the certificate that belong
to the currently valid contract of the vehicle.
Response will be reported async via set_get_certificate_response
type: object
$ref: /iso15118#/RequestExiStreamSchema
charging_needs:
description: >-
The ISO15118-20 bidirectional charging is required to send this message for OCPP 2.1
during the 'ScheduleExchangeReq' state machine. For ISO15118-2 and OCPP 2.1 this message
has to be sent during the 'ChargeParameterDiscoveryReq' state machine
type: object
$ref: /iso15118#/ChargingNeeds
ev_info:
description: >-
The ISO15118 ev information concerning the certificates used for TLS, the supported protocols and evccId.
type: object
$ref: /iso15118#/EvInformation
service_renegotiation_supported:
description: >-
Indicates whether service renegotiation is supported or not.
type: boolean

View File

@@ -0,0 +1,36 @@
description: >-
This interface defines an isolation monitoring device (IMD) according
to IEC 61557-8 for DC charging. This is used to verify isolation of the DC lines
before starting high voltage charging and during charging.
cmds:
start:
description: >-
Start recurring isolation measurements. The device should monitor
the isolation status until stopped and publish the resistance data in regular
intervals. The actual interval is device dependent.
stop:
description: >-
Stop recurring measurements. The device should stop to monitor the
isolation resistance and stop publishing the data.
start_self_test:
description: >-
Start self test. This will be done during the CableCheck phase, so a DC voltage will be present
according to IEC 61851-23 (2023). The command should return immediately.
The "self_test_result" variable must be published once the self testing is done.
Note that on many hardware devices this can take a long time (e.g. 20 seconds).
arguments:
test_voltage_V:
description: >-
Specifies the test voltage [V] that is applied on the DC pins during self test.
This can be used to verify the internal voltage measurement of the IMD.
type: number
vars:
isolation_measurement:
description: Isolation monitoring measurement results
type: object
$ref: /isolation_monitor#/IsolationMeasurement
self_test_result:
description: Indicates the self test is done and publishes the result. Set "true" for success, "false" for failure.
type: boolean
errors:
- reference: /errors/isolation_monitor

View File

@@ -0,0 +1,55 @@
description: This interface defines a simple key-value-store interface
cmds:
store:
description: This command stores a value under a given key
arguments:
key:
description: Key to store the value for
type: string
pattern: ^[A-Za-z0-9_.]*$
value:
description: Value to store
type:
- 'null'
- string
- number
- integer
- boolean
- array
- object
load:
description: >-
This command loads the previously stored value for a given key (it
will return null if the key does not exist)
arguments:
key:
description: Key to load the value for
type: string
pattern: ^[A-Za-z0-9_.]+$
result:
description: The previously stored value
type:
- 'null'
- string
- number
- integer
- boolean
- array
- object
delete:
description: This command removes the value stored under a given key
arguments:
key:
description: Key to delete the value for
type: string
pattern: ^[A-Za-z0-9_.]+$
exists:
description: This command checks if something is stored under a given key
arguments:
key:
description: Key to check the existence for
type: string
pattern: ^[A-Za-z0-9_.]+$
result:
description: Returns 'True' if something was stored for this key
type: boolean

View File

@@ -0,0 +1,144 @@
description: >-
This interface allows to control an OCPP service and set and get data from the OCPP service. It is designed
to be used for both OCPP1.6 and OCPP2.0.1 module implementations. Therefore, the vars, commands and types
are based more on the definitions of OCPP2.0.1, as this offers more flexibility and it is easier to transfer
to the capabilities of OCPP1.6 than vice versa.
cmds:
stop:
description: >-
Disconnects the websocket connection and stops the OCPP communication.
No OCPP messages will be stored and sent after a restart.
result:
type: boolean
description: >-
Returns true if the service could be stopped successfully, else
false
restart:
description: >-
Connects the websocket and enables OCPP communication after a previous
stop call.
result:
type: boolean
description: >-
Returns true if the service could be restarted successfully, else
false
security_event:
description: >-
Triggers a SecurityEventNotification.req at the CSMS if it is deemed critical, either by setting the flag in this event or if absent automatically by libocpp
arguments:
event:
description: A security event
type: object
$ref: /ocpp#/SecurityEvent
get_variables:
description: >-
Command to get a variable from OCPP.
With OCPP1.6: Retrieves a configuration key.
With OCPP2.0.1: Retrieves a variable with value from the device model storage
arguments:
requests:
description: List of GetVariableRequest
type: array
items:
minimum: 0
type: object
$ref: /ocpp#/GetVariableRequest
result:
description: >-
List of GetVariableResult containing the result for every requested value. Preserves the order of the input requests.
type: array
items:
type: object
$ref: /ocpp#/GetVariableResult
set_variables:
description: >-
Command to set a variable at OCPP.
With OCPP1.6: This command can be used to set configuration keys
With OCPP2.0.1: This command can be used to set variables in the device model storage
arguments:
requests:
description: List of SetVariableRequests
type: array
items:
minimum: 0
type: object
$ref: /ocpp#/SetVariableRequest
source:
description: Source of variable values
type: string
result:
description: >-
List of SetVariableResult containing the result for every requested set operation
type: array
items:
type: object
$ref: /ocpp#/SetVariableResult
change_availability:
description: >-
Allows to send a ChangeAvailabilityRequest internally (as can be done by the CSMS).
arguments:
request:
description: >-
The ChangeAvailabilityRequest as specified in OCPP2.0.1.
For OCPP 1.6:
type: object
$ref: /ocpp#/ChangeAvailabilityRequest
result:
description: >-
Response to ChangeAvailabilityRequest as specified in OCPP 2.0.1
type: object
$ref: /ocpp#/ChangeAvailabilityResponse
monitor_variables:
description: >-
Command to start monitoring the given ComponentVariable(s). Any of the provided
configuration keys will be published on change by the CSMS.
Consecutive calls of this operation will not override but extend the existing monitors.
With OCPP1.6: This command can be used to monitor configuration keys
With OCPP2.0.1: This command can be used to monitor any kind of variable in the device model storage
arguments:
component_variables:
description: List of ComponentVariable(s) to monitor
type: array
items:
type: object
$ref: /ocpp#/ComponentVariable
vars:
ocpp_transaction_event:
description: Emits events related to OCPP transactions
type: object
$ref: /ocpp#/OcppTransactionEvent
ocpp_transaction_event_response:
description: Emits OCPP transaction responses
type: object
$ref: /ocpp#/OcppTransactionEventResponse
charging_schedules:
description: >-
Object that contains OCPP charging schedules of all connectors. The
object contains one composite charging schedule for each connector id starting
from connector 0. Connector 0 contains a schedule for the whole charging station.
type: object
$ref: /ocpp#/ChargingSchedules
is_connected:
description: Indicates if chargepoint is connected to CSMS
type: boolean
security_event:
description: Published when an internal security event occurred
type: object
$ref: /ocpp#/SecurityEvent
event_data:
description: >-
Published for a component variable combination when a variable with a monitor has been changed
For OCPP1.6: The object may only contain the required properties of the EventData type because in OCPP1.6
there is not more information available or required.
For OCPP2.0.1: The object may contain all available properties
type: object
$ref: /ocpp#/EventData
boot_notification_response:
description: >-
Published any time a BootNotificationResponse message is received from the CSMS
type: object
$ref: /ocpp#/BootNotificationResponse
ocpp_message:
description: A serialized OCPP message, published when callback logging is activated
type: object
$ref: /ocpp#/Message

View File

@@ -0,0 +1,89 @@
description: This interface defines a OCPP 1.6 charge point
cmds:
stop:
description: >-
Disconnects the websocket connection and stops the OCPP communication.
No OCPP messages will be stored and sent after a restart.
result:
type: boolean
description: >-
Returns true if the service could be stopped successfully, else
false
restart:
description: >-
Connects the websocket and enables OCPP communication after a previous
stop call.
result:
type: boolean
description: >-
Returns true if the service could be restarted successfully, else
false
get_configuration_key:
description: >-
Gets the response to the requested configuration key containing a list of the values of the requested keys
and a list of the keys that are unknown
arguments:
keys:
description: List of keys for which the values are requested. If empty, all keys and values are returned
type: array
items:
description: A key
type: string
result:
description: Response to the requested operation
type: object
$ref: /ocpp#/GetConfigurationResponse
set_configuration_key:
description: >-
Command to set a configuration key
arguments:
key:
description: Key that should be set
type: string
maximum: 50
value:
description: Value that should be set for the given key
type: string
maximum: 500
result:
description: Indicates the result of the requested operation
type: string
$ref: /ocpp#/ConfigurationStatus
monitor_configuration_keys:
description: >-
Monitors the given configuration key. In case this configuration keys is changed by the CSMS the configuration key
the changed configuration key will be published. Consecutive calls of this operation will not override but extend the
existing monitors
arguments:
keys:
description: Keys that should be monitored
type: array
items:
description: Key that should be montired
type: string
maximum: 50
security_event:
description: >-
Triggers a SecurityEventNotification.req at the CSMS. This event is queued with a guaranteed delivery
to the CSMS.
arguments:
type:
description: type of the security event
type: string
info:
description: Additional information about the occurred security event
type: string
vars:
is_connected:
description: Indicates if chargepoint is connected to CSMS
type: boolean
configuration_key:
description: >-
Published when a configuration key has been changed by the CSMS and a monitor has been registered
using the command monitor_configuration_keys
type: object
$ref: /ocpp#/KeyValue
security_event:
description: Published when an internal security event occurred
type: object
$ref: /ocpp#/SecurityEvent

View File

@@ -0,0 +1,16 @@
description: This interface defines a OCPP data transfer
cmds:
data_transfer:
description: >-
Performs a OCPP data transfer request and returns the response
arguments:
request:
description: >-
Request object containing data transfer request
type: object
$ref: /ocpp#/DataTransferRequest
result:
description: >-
Result object containing data transfer response
type: object
$ref: /ocpp#/DataTransferResponse

View File

@@ -0,0 +1,65 @@
description: >-
This interface defines a fast over voltage monitoring device according
to IEC61851-23:2023 6.3.1.106.2 and 6.3.1.106.3 for DC charging.
6.3.1.106.2
An emergency shutdown needs to be triggered if the DC output voltage is above the limit of Table 103 for 9ms.
The actual shutdown needs to be handled in a lower layer outside of EVerest, but this interface sets the
correct voltage limit during the power transfer and stops monitoring at the end of the session.
After the actual emergency shutdown was already performed, report an MREC5OverVoltage error with severity set to high.
6.3.1.106.3
An error shutdown needs to be triggered if the DC output voltage is above the limits of Table 104:
- Present voltage > negotiated maximum for >400ms: Trigger error shutdown in <50ms.
- Present voltage > negotiated maximum for <400ms and >200ms: Allow energy transfer or error shutdown
- Present voltage > negotiated maximum for <200ms: Allow energy transfer
To trigger an error shutdown, raise the error MREC5OverVoltage with severity set to medium or low.
Once an MREC5OverVoltage error was raised, it shall only be cleared when the reset_over_voltage_error command is called.
All other errors shall be raised/cleared when they occur/are no longer active immediately.
The var voltage_measurement_V should be published in regular intervals, e.g. 1 second. It is not
used to compare it with the overvoltage threshold setting in EVerest, that has to be done in the OVM device itself.
It will only be used to validate that the OVM and the IMD see the same voltage to ensure they are correctly wired to the same
charging port. If it is not available in hardware, do not publish the voltage_measurement_V at all.
cmds:
set_limits:
description: >-
Set the overvoltage limits. It will be called any time the voltage limits change, independent of
whether the monitoring is currently active or not.
The values shall be cached, and the last value received shall be used as threshold while monitoring is active.
arguments:
emergency_over_voltage_limit_V:
description: >-
Specifies the over voltage threshold [V] for emergency shutdown
(based on IEC61851-23:2023 Table 103 and IEC61851-23-3:(DRAFT 2025) Table 202)
An emergency shutdown shall be triggered if the DC output voltage is higher
than this value.
type: number
error_over_voltage_limit_V:
description: >-
Specifies the over voltage threshold [V] for error shutdown (for use with IEC61851-23:2023 Table 104).
An error shutdown shall be triggered if the DC output voltage is higher
than this value. The OVM shall trigger an emergency shutdown if error shutdown does not work properly
(after 2.5s, see CC.3.4.2).
type: number
start:
description: >-
Start monitoring. Called once at the beginning of power transfer.
Use the last limits set by set_limits and make sure to update them when set_limits is called while monitoring is active.
Trigger shutdowns and raise errors as needed.
stop:
description: >-
Stop monitoring. Called once at the end of power transfer.
Do not raise any over voltage errors or trigger any shutdowns in this mode.
reset_over_voltage_error:
description: >-
Resets the detection logic to allow for new charging session after an over voltage error occurred.
This shall clear the over voltage error.
If monitoring is still active, it shall be stopped.
vars:
voltage_measurement_V:
description: Measured voltage in V
type: number
errors:
- reference: /errors/over_voltage_monitor

View File

@@ -0,0 +1,30 @@
description: Interface that provides functionality for a Payment Terminal
cmds:
enable_card_reading:
description: >-
Enables or disables card reading for given connector. An empty vector
disables every card type.
arguments:
supported_cards:
description: Supported card types array
type: array
items:
type: string
$ref: /authorization#/AuthorizationType
connector_id:
description: Which connector
type: integer
allow_all_cards_for_every_connector:
description: >-
Enable all card types on each connector. This is default behavior on the startup
vars:
bank_transaction_summary:
description: >-
Provides information of the session that was committed to the bank.
This data may be needed for accounting purposes.
Summary of a bank transaction. Depends on bank and the backend. Therefore
it's mostly opaque data at the moment.
type: object
$ref: /payment_terminal#/BankTransactionSummary
errors:
- reference: /errors/payment_terminal

View File

@@ -0,0 +1,7 @@
description: This interface defines the interface of a power supply
vars:
max_current:
description: This is the maximum current of the power supply
type: number
minimum: 1
maximum: 60

View File

@@ -0,0 +1,75 @@
description: >-
Interface for power supplies used for DC charging
Implementation guidelines for this interface:
1) During start up of the driver, publish capabilities as soon as they are available, ideally in ready() function.
The charging logic in EvseManager will not allow any charging until it receives the capabilities at least once.
Capabilities may be published at any later point in time to update the values. This may happen if they e.g. change due
to thermal derating etc. If a charging session is active when the update is received,
only power/current limits will be applied immediately. All other values will become active at the next charging session.
2) setMode/setVoltageCurrent commands should be executed on the hardware immediately. If this is not possible because an error is currently active
(e.g. communication to the hardware is lost), the driver module shall cache the last mode and voltage/current settings.
Once the PSU is back on-line (e.g. after a CommunicationFault), set the last mode and voltage/current value received and only after that clear the error.
3) setMode to Off requires special attention. To avoid switching the output relays of the charger off under full load, make sure to return
from the setMode function(Off) only when the current is below a safe threshold for switching off the relays (exact value is hardware dependent).
If communication is lost with the power supply, make sure to still return, the call must not block for a longer period of time.
EVerest will ensure the order of the calls is correct during shutdown, but will not wait for the power supply to actually turn off:
1. call setMode(Off) on power_supply_DC
2. call allow_power_on(false) on evse_board_support
If the setMode(Off) returns immediately, it may happen that the bsp implementation opens the relays before the power supply is shutdown.
4) var voltage_current shall be published on regular intervals. The interval depends on the hardware, but it shall be at least once per second. If possible,
update at e.g. 4 Hertz is recommended.
cmds:
setMode:
description: Set operation mode of the bidirectional DC power supply
arguments:
mode:
description: Operation mode of power supply
type: string
$ref: /power_supply_DC#/Mode
phase:
description: >-
Charging phase for this mode change. This information should normally not be needed by the power supply,
as it should always just operate in CCCV mode. Some special setups however are handling CableCheck/PreCharge/Charge
a little bit different internally.
type: string
$ref: /power_supply_DC#/ChargingPhase
setExportVoltageCurrent:
description: Set output target voltage limit. Must be within reported limits.
arguments:
voltage:
description: Output voltage in Volt
type: number
current:
description: Output current limit in Ampere
type: number
setImportVoltageCurrent:
description: >-
Set minimal import voltage and current limit. Must be within reported
limits.
arguments:
voltage:
description: Current will be drawn if input is above this voltage (in Volt)
type: number
current:
description: Input current limit in Ampere
type: number
vars:
voltage_current:
description: Voltage/Current at the input/output
type: object
$ref: /power_supply_DC#/VoltageCurrent
mode:
description: Current mode. Published on change.
type: string
$ref: /power_supply_DC#/Mode
capabilities:
description: >-
Publish capabilities of this PSU.
type: object
$ref: /power_supply_DC#/Capabilities
errors:
- reference: /errors/power_supply_DC

View File

@@ -0,0 +1,37 @@
description: This interface defines a generic powermeter for 5 wire TN networks.
cmds:
start_transaction:
description: Starts a transaction on the power meter (for signed metering according to German Eichrecht)
arguments:
value:
description: All information that should be included in the signed OCMF packet
type: object
$ref: /powermeter#/TransactionReq
result:
description: True on success, False if transaction could not be started in the power meter
type: object
$ref: /powermeter#/TransactionStartResponse
stop_transaction:
description: >-
Stop the transaction on the power meter and return the signed metering information.
If the transaction id is an empty string, all ongoing transaction should be cancelled.
This is used on start up to clear dangling transactions that might still be ongoing
in the power meter but are not known to the EvseManager.
arguments:
transaction_id:
description: Transaction id
type: string
result:
description: Response to transaction stop request including OCMF string.
type: object
$ref: /powermeter#/TransactionStopResponse
vars:
powermeter:
description: Measured dataset
type: object
$ref: /powermeter#/Powermeter
public_key_ocmf:
description: The public key for OCMF
type: string
errors:
- reference: /errors/powermeter

View File

@@ -0,0 +1,46 @@
description: Interface for reservations
cmds:
reserve_now:
description: Reserves an evse.
arguments:
request:
type: object
$ref: /reservation#/Reservation
description: Requests to make a reservation
result:
description: >-
Returns Accepted if reservation was successful or specifies error code.
type: string
$ref: /reservation#/ReservationResult
cancel_reservation:
description: Cancels the reservation with the given reservation_id
arguments:
reservation_id:
description: Id of the reservation
type: integer
result:
description: >-
Returns true if reservation was cancelled. Returns false if there
was no reservation to cancel.
type: boolean
exists_reservation:
description: >-
Checks if there is a reservation made for the given connector and token. Will also return true if there
is a reservation with this token for evse id 0.
arguments:
request:
type: object
$ref: /reservation#/ReservationCheck
description: >-
The information to send for the check if there is a reservation on the given connector for the given token.
result:
description: >-
Returns an enum which indicates the reservation status of the given id / id token / group id token combination.
type: string
$ref: /reservation#/ReservationCheckStatus
vars:
reservation_update:
description: >-
Update of the reservation.
type: object
$ref: /reservation#/ReservationUpdateStatus

View File

@@ -0,0 +1,187 @@
description: >-
This interface provides multiplexed access to one serial port (e.g. RS485)
for multiple clients.
cmds:
modbus_read_holding_registers:
description: >-
Send a Modbus RTU 'read holding registers' command via serial
interface to the target hardware. (return value: response)
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
first_register_address:
description: Start address for read operation (16 bit address)
type: integer
minimum: 0
maximum: 65535
num_registers_to_read:
description: Number of registers to read (16 bit each)
type: integer
minimum: 1
result:
description: Result of the transfer
type: object
$ref: /serial_comm_hub_requests#/Result
modbus_read_input_registers:
description: "Send a Modbus RTU 'read input registers' command via serial
interface to the target hardware. (return value: response)"
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
first_register_address:
description: Start address for read operation (16 bit address)
type: integer
minimum: 0
maximum: 65535
num_registers_to_read:
description: Number of registers to read (16 bit each)
type: integer
minimum: 1
result:
description: Result of the transfer
type: object
$ref: /serial_comm_hub_requests#/Result
modbus_write_multiple_registers:
description: >-
Send a Modbus RTU 'write multiple registers' command via serial
interface to the target hardware. (return value: response)
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
first_register_address:
description: Start address for write operation (16 bit address)
type: integer
minimum: 0
maximum: 65535
data_raw:
description: >-
Data content to be written to the above selected registers (in
16 bit words)
type: object
$ref: /serial_comm_hub_requests#/VectorUint16
result:
description: Status code of the transfer
type: string
$ref: /serial_comm_hub_requests#/StatusCodeEnum
modbus_write_single_register:
description: >-
Send a Modbus RTU 'write single register' command via serial interface
to the target hardware. (return value: response)
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
register_address:
description: Address of the register to write to (16 bit address)
type: integer
minimum: 0
maximum: 65535
data:
description: Data content to be written to the above selected register
type: integer
minimum: 0
maximum: 65535
result:
description: Status code of the transfer
type: string
$ref: /serial_comm_hub_requests#/StatusCodeEnum
modbus_read_coils:
description: >-
Send a Modbus RTU 'read coils' command via serial interface to the target
hardware. (return value: response)
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
first_coil_address:
description: Start address for read operation (16 bit address)
type: integer
minimum: 0
maximum: 65535
num_coils_to_read:
description: Number of coils to read (1 bit each)
type: integer
minimum: 1
maximum: 65535
result:
description: Result of the transfer
type: object
$ref: /serial_comm_hub_requests#/ResultBool
modbus_write_single_coil:
description: >-
Send a Modbus RTU 'write single coil' command via serial interface to
the target hardware. (return value: response)
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
coil_address:
description: Address of the coil to write to (16 bit address)
type: integer
minimum: 0
maximum: 65535
data:
description: Data content to be written to the selected coil
type: boolean
result:
description: Status code of the transfer
type: string
$ref: /serial_comm_hub_requests#/StatusCodeEnum
nonstd_write:
description: >-
Non standard mode to write registers in read discrete input mode
without waiting for reply. Used e.g. by GYDCG-UBC1 isolation monitor.
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
first_register_address:
description: Start address for read operation (16 bit address)
type: integer
minimum: 0
maximum: 65535
num_registers_to_read:
description: Number of registers to read (16 bit each)
type: integer
minimum: 1
nonstd_read:
description: >-
Non standard mode to read registers in read coils mode, but getting a malformed reply.
Used e.g. by GYDCG-UBC1 isolation monitor.
arguments:
target_device_id:
description: ID (1 byte) of the device to send the commands to
type: integer
minimum: 0
maximum: 255
first_register_address:
description: Start address for write operation (16 bit address)
type: integer
minimum: 0
maximum: 65535
num_registers_to_read:
description: Number of registers to read (16 bit each)
type: integer
minimum: 0
maximum: 65535
result:
description: Result of the transfer
type: object
$ref: /serial_comm_hub_requests#/Result

View File

@@ -0,0 +1,24 @@
description: >-
This interface publishes the running or finished session costs. This interface
provides cost of one session. If we have more than one EVESEID, we need to
instantiate this interface for each EVSE.
vars:
default_price:
description: >-
The currently applicable default pricing text for this charger,
independent of any active session. Published once on startup and again
whenever the applicable price changes (e.g. after a connectivity state
change or a configuration update). Absent if no default price is
configured.
type: object
$ref: /session_cost#/DefaultPrice
tariff_message:
description: Message to show to the user with information about the tariff.
type: object
$ref: /session_cost#/TariffMessage
session_cost:
description: >-
Session cost object containing the total cost of the session and a list
of chunks
type: object
$ref: /session_cost#/SessionCost

View File

@@ -0,0 +1,40 @@
description: ISO15118-3 SLAC interface for EVSE side
cmds:
reset:
description: Reset SLAC
arguments:
enable:
description: 'true: start SLAC after reset, false: stop SLAC'
type: boolean
enter_bcd:
description: Signal pilot state change to B/C/D from A/E/F.
leave_bcd:
description: Signal pilot state change to A/E/F from B/C/D.
dlink_terminate:
description: Terminate the data link and become UNMATCHED.
dlink_error:
description: Terminate the data link and restart the matching process.
dlink_pause:
description: Request power saving mode, while staying MATCHED.
vars:
state:
description: Provides the state enum.
type: string
$ref: /slac#/State
dlink_ready:
description: >-
Inform higher layers about a change in data link status. Emits true
if link was set up and false when the link is shut down.
type: boolean
request_error_routine:
description: >-
Inform the higher layer to execute the error routine for a SLAC connection
retry
type: 'null'
ev_mac_address:
description: >-
Inform higher layers about the MAC address of the vehicle (upper case)
type: string
pattern: ^[A-F0-9]{2}(:[A-F0-9]{2}){5}$
errors:
- reference: /errors/generic

View File

@@ -0,0 +1,7 @@
description: This interface defines the interface for an solar energy production forecast
vars:
forecast:
description: >-
Forecast JSON Object containing a timestamp and the energy forecast
in watthours.
type: object

View File

@@ -0,0 +1,78 @@
description: Interface for system wide operations of EVerest
cmds:
update_firmware:
description: Call to start a firmware update
arguments:
firmware_update_request:
description: Meta data containing information about the firmware request
type: object
$ref: /system#/FirmwareUpdateRequest
result:
description: Returns the result of the attempt to update the firmware
type: string
$ref: /system#/UpdateFirmwareResponse
allow_firmware_installation:
description: Call to allow a firmware installation to proceed
upload_logs:
description: Call to start a log upload
arguments:
upload_logs_request:
description: Meta data containing information about the log request request
type: object
$ref: /system#/UploadLogsRequest
result:
description: Returns the result of the attempt to upload the logs
type: object
$ref: /system#/UploadLogsResponse
is_reset_allowed:
description: Call to determine if a reset of the system is allowed
arguments:
type:
description: Type of the reset (Soft or Hard)
type: string
$ref: /system#/ResetType
result:
description: >-
Indicates if the system can be reset
type: boolean
reset:
description: Call to reset the system immediately
arguments:
type:
description: Type of the reset (Soft or Hard)
type: string
$ref: /system#/ResetType
scheduled:
description: >-
Indicates if this reset command was scheduled or immediately executed. A scheduled reset means that the system was waiting for
all transactions to finish before this command was executed. This value is only informational.
type: boolean
set_system_time:
description: Call to set the system time of EVerest
arguments:
timestamp:
description: The new system time in RFC3339 format
type: string
format: date-time
result:
description: >-
Returns true if the system time could be set successfully, else
false
type: boolean
get_boot_reason:
description: Call to get the boot reason of the system
result:
description: Returns the boot reason of the system
type: string
$ref: /system#/BootReason
vars:
firmware_update_status:
description: Describes the current status of a firmware update of the system
type: object
$ref: /system#/FirmwareUpdateStatus
log_status:
description: Describes the current status of log upload of the system
type: object
$ref: /system#/LogStatus
errors:
- reference: /errors/system

View File

@@ -0,0 +1,17 @@
description: This interface defines the everest-testing control functions on EVerest
cmds:
start_charging:
description: Enables the EvManager to begin charging
arguments:
mode:
description: Sets charging mode (e.g. raw, iso15118)
type: string
minLength: 1
maxLength: 20
result:
description: Charging state of the EvManager
type: string
vars:
state:
description: State of the test control instance
type: string

View File

@@ -0,0 +1,5 @@
description: This interface defines the interface for an energy price forecast
vars:
forecast:
description: Forecast JSON Object containing a timestamp and the price forecast
type: object

View File

@@ -0,0 +1,24 @@
description: >-
This interface provides functions for a random delay feature as required by the UK smart charging regulations
The logic whether to use a random delay or not is not included in EvseManager, a different module can use this
interface to enable/disable the feature during runtime and cancel a running random delay.
This always applies to all connectors of this EVSE.
By default, on start up, random delays are disabled.
cmds:
enable:
description: Call to enable the random delay feature
disable:
description: Call to disable the random delay feature
cancel:
description: Cancels a running random delay. The effect is the same as if the time expired just now.
set_duration_s:
description: Set the maximum duration of the random delay. Default is 600 seconds.
arguments:
value:
description: Maximum duration in seconds
type: integer
vars:
countdown:
description: Countdown of the currently running random delay
type: object
$ref: /uk_random_delay#/CountDown