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:
57
tools/EVerest-main/interfaces/BUILD.bazel
Normal file
57
tools/EVerest-main/interfaces/BUILD.bazel
Normal 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"],
|
||||
)
|
||||
482
tools/EVerest-main/interfaces/ISO15118_charger.yaml
Normal file
482
tools/EVerest-main/interfaces/ISO15118_charger.yaml
Normal 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
|
||||
82
tools/EVerest-main/interfaces/ISO15118_ev.yaml
Normal file
82
tools/EVerest-main/interfaces/ISO15118_ev.yaml
Normal 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'
|
||||
32
tools/EVerest-main/interfaces/ISO15118_vas.yaml
Normal file
32
tools/EVerest-main/interfaces/ISO15118_vas.yaml
Normal 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
|
||||
19
tools/EVerest-main/interfaces/ac_rcd.yaml
Normal file
19
tools/EVerest-main/interfaces/ac_rcd.yaml
Normal 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
|
||||
49
tools/EVerest-main/interfaces/auth.yaml
Normal file
49
tools/EVerest-main/interfaces/auth.yaml
Normal 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
|
||||
8
tools/EVerest-main/interfaces/auth_token_provider.yaml
Normal file
8
tools/EVerest-main/interfaces/auth_token_provider.yaml
Normal 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
|
||||
24
tools/EVerest-main/interfaces/auth_token_validator.yaml
Normal file
24
tools/EVerest-main/interfaces/auth_token_validator.yaml
Normal 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
|
||||
@@ -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
|
||||
22
tools/EVerest-main/interfaces/car_simulator.yaml
Normal file
22
tools/EVerest-main/interfaces/car_simulator.yaml
Normal 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
|
||||
8
tools/EVerest-main/interfaces/charger_information.yaml
Normal file
8
tools/EVerest-main/interfaces/charger_information.yaml
Normal 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
|
||||
9
tools/EVerest-main/interfaces/connector_lock.yaml
Normal file
9
tools/EVerest-main/interfaces/connector_lock.yaml
Normal 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
|
||||
30
tools/EVerest-main/interfaces/dc_external_derate.yaml
Normal file
30
tools/EVerest-main/interfaces/dc_external_derate.yaml
Normal 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
|
||||
|
||||
10
tools/EVerest-main/interfaces/debug_json.yaml
Normal file
10
tools/EVerest-main/interfaces/debug_json.yaml
Normal 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
|
||||
46
tools/EVerest-main/interfaces/display_message.yaml
Normal file
46
tools/EVerest-main/interfaces/display_message.yaml
Normal 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
|
||||
1
tools/EVerest-main/interfaces/empty.yaml
Normal file
1
tools/EVerest-main/interfaces/empty.yaml
Normal file
@@ -0,0 +1 @@
|
||||
description: This interface is empty and can be used for a config-only (main) implementation
|
||||
17
tools/EVerest-main/interfaces/energy.yaml
Normal file
17
tools/EVerest-main/interfaces/energy.yaml
Normal 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
|
||||
2
tools/EVerest-main/interfaces/energy_manager.yaml
Normal file
2
tools/EVerest-main/interfaces/energy_manager.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
description: This interface defines the global EnergyManager
|
||||
vars: {}
|
||||
@@ -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
|
||||
14
tools/EVerest-main/interfaces/error_history.yaml
Normal file
14
tools/EVerest-main/interfaces/error_history.yaml
Normal 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
|
||||
63
tools/EVerest-main/interfaces/ev_board_support.yaml
Normal file
63
tools/EVerest-main/interfaces/ev_board_support.yaml
Normal 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
|
||||
16
tools/EVerest-main/interfaces/ev_manager.yaml
Normal file
16
tools/EVerest-main/interfaces/ev_manager.yaml
Normal 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
|
||||
28
tools/EVerest-main/interfaces/ev_slac.yaml
Normal file
28
tools/EVerest-main/interfaces/ev_slac.yaml
Normal 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
|
||||
109
tools/EVerest-main/interfaces/evse_board_support.yaml
Normal file
109
tools/EVerest-main/interfaces/evse_board_support.yaml
Normal 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
|
||||
205
tools/EVerest-main/interfaces/evse_manager.yaml
Normal file
205
tools/EVerest-main/interfaces/evse_manager.yaml
Normal 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
|
||||
238
tools/EVerest-main/interfaces/evse_security.yaml
Normal file
238
tools/EVerest-main/interfaces/evse_security.yaml
Normal 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
|
||||
|
||||
|
||||
|
||||
18
tools/EVerest-main/interfaces/example.yaml
Normal file
18
tools/EVerest-main/interfaces/example.yaml
Normal 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
|
||||
@@ -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
|
||||
3
tools/EVerest-main/interfaces/example_user.yaml
Normal file
3
tools/EVerest-main/interfaces/example_user.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
description: >-
|
||||
This interface defines an example_user interface that uses the example
|
||||
interface
|
||||
17
tools/EVerest-main/interfaces/external_energy_limits.yaml
Normal file
17
tools/EVerest-main/interfaces/external_energy_limits.yaml
Normal 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
|
||||
4
tools/EVerest-main/interfaces/generic_error.yaml
Normal file
4
tools/EVerest-main/interfaces/generic_error.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
description: >-
|
||||
Interface providing access to generic errors
|
||||
errors:
|
||||
- reference: /errors/generic
|
||||
36
tools/EVerest-main/interfaces/iso15118_extensions.yaml
Normal file
36
tools/EVerest-main/interfaces/iso15118_extensions.yaml
Normal 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
|
||||
36
tools/EVerest-main/interfaces/isolation_monitor.yaml
Normal file
36
tools/EVerest-main/interfaces/isolation_monitor.yaml
Normal 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
|
||||
55
tools/EVerest-main/interfaces/kvs.yaml
Normal file
55
tools/EVerest-main/interfaces/kvs.yaml
Normal 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
|
||||
144
tools/EVerest-main/interfaces/ocpp.yaml
Normal file
144
tools/EVerest-main/interfaces/ocpp.yaml
Normal 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
|
||||
89
tools/EVerest-main/interfaces/ocpp_1_6_charge_point.yaml
Normal file
89
tools/EVerest-main/interfaces/ocpp_1_6_charge_point.yaml
Normal 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
|
||||
16
tools/EVerest-main/interfaces/ocpp_data_transfer.yaml
Normal file
16
tools/EVerest-main/interfaces/ocpp_data_transfer.yaml
Normal 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
|
||||
65
tools/EVerest-main/interfaces/over_voltage_monitor.yaml
Normal file
65
tools/EVerest-main/interfaces/over_voltage_monitor.yaml
Normal 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
|
||||
30
tools/EVerest-main/interfaces/payment_terminal.yaml
Normal file
30
tools/EVerest-main/interfaces/payment_terminal.yaml
Normal 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
|
||||
7
tools/EVerest-main/interfaces/power.yaml
Normal file
7
tools/EVerest-main/interfaces/power.yaml
Normal 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
|
||||
75
tools/EVerest-main/interfaces/power_supply_DC.yaml
Normal file
75
tools/EVerest-main/interfaces/power_supply_DC.yaml
Normal 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
|
||||
37
tools/EVerest-main/interfaces/powermeter.yaml
Normal file
37
tools/EVerest-main/interfaces/powermeter.yaml
Normal 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
|
||||
46
tools/EVerest-main/interfaces/reservation.yaml
Normal file
46
tools/EVerest-main/interfaces/reservation.yaml
Normal 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
|
||||
187
tools/EVerest-main/interfaces/serial_communication_hub.yaml
Normal file
187
tools/EVerest-main/interfaces/serial_communication_hub.yaml
Normal 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
|
||||
24
tools/EVerest-main/interfaces/session_cost.yaml
Normal file
24
tools/EVerest-main/interfaces/session_cost.yaml
Normal 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
|
||||
40
tools/EVerest-main/interfaces/slac.yaml
Normal file
40
tools/EVerest-main/interfaces/slac.yaml
Normal 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
|
||||
7
tools/EVerest-main/interfaces/solar_forecast.yaml
Normal file
7
tools/EVerest-main/interfaces/solar_forecast.yaml
Normal 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
|
||||
78
tools/EVerest-main/interfaces/system.yaml
Normal file
78
tools/EVerest-main/interfaces/system.yaml
Normal 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
|
||||
17
tools/EVerest-main/interfaces/test_control.yaml
Normal file
17
tools/EVerest-main/interfaces/test_control.yaml
Normal 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
|
||||
5
tools/EVerest-main/interfaces/tibber_price_forecast.yaml
Normal file
5
tools/EVerest-main/interfaces/tibber_price_forecast.yaml
Normal 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
|
||||
24
tools/EVerest-main/interfaces/uk_random_delay.yaml
Normal file
24
tools/EVerest-main/interfaces/uk_random_delay.yaml
Normal 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
|
||||
Reference in New Issue
Block a user