Skip to content

Commit f4e273b

Browse files
authored
Add documentation around error handling to EvseManager and OCPP modules (EVerest#819)
Signed-off-by: pietfried <pietgoempel@gmail.com>
1 parent 1cd809c commit f4e273b

File tree

3 files changed

+100
-4
lines changed

3 files changed

+100
-4
lines changed

modules/EvseManager/doc.rst

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,5 +219,74 @@ If the single phase and three phase intervals do not overlap, there is no hyster
219219
Note that many cars support 32A on 1ph even if they are limited to 16A on 3ph. Some however are limited to 16A
220220
in 1ph mode and will hence charge slower then expected in 1ph mode.
221221

222+
Error Handling
223+
==============
224+
225+
The control flow of this module can be influenced by the error implementation of its requirements. This section documents
226+
the side effects that can be caused by errors raised by a requirement.
227+
228+
This module subscribes to all errors of the following requirements:
229+
* evse_board_support
230+
* connector_lock
231+
* ac_rcd
232+
* isolation_monitor
233+
234+
A raised error can cause the EvseManager to become Inoperative. This means that charging is not possible until the error is cleared.
235+
If no charging session is currently running, it will prevent sessions from being started. If a charging session is currently running and an error is raised
236+
this will interrupt the charging session.
237+
238+
The following sections provide an overview of errors that cause the EvseManager to become Inoperative until the error is cleared.
239+
240+
evse_board_support
241+
------------------
242+
243+
evse_board_support/DiodeFault
244+
evse_board_support/VentilationNotAvailable
245+
evse_board_support/BrownOut
246+
evse_board_support/EnergyManagement
247+
evse_board_support/PermanentFault
248+
evse_board_support/MREC2GroundFailure
249+
evse_board_support/MREC4OverCurrentFailure
250+
evse_board_support/MREC5OverVoltage
251+
evse_board_support/MREC6UnderVoltage
252+
evse_board_support/MREC8EmergencyStop
253+
evse_board_support/MREC10InvalidVehicleMode
254+
evse_board_support/MREC14PilotFault
255+
evse_board_support/MREC15PowerLoss
256+
evse_board_support/MREC17EVSEContactorFault
257+
evse_board_support/MREC19CableOverTempStop
258+
evse_board_support/MREC20PartialInsertion
259+
evse_board_support/MREC23ProximityFault
260+
evse_board_support/MREC24ConnectorVoltageHigh
261+
evse_board_support/MREC25BrokenLatch
262+
evse_board_support/MREC26CutCable
263+
evse_board_support/VendorError
264+
evse_board_support/CommunicationFault
265+
266+
connector_lock
267+
--------------
222268

269+
connector_lock/ConnectorLockCapNotCharged
270+
connector_lock/ConnectorLockUnexpectedClose
271+
connector_lock/ConnectorLockUnexpectedOpen
272+
connector_lock/ConnectorLockFailedLock
273+
connector_lock/ConnectorLockFailedUnlock
274+
connector_lock/MREC1ConnectorLockFailure
275+
connector_lock/VendorError
276+
277+
ac_rcd
278+
------
279+
280+
ac_rcd/MREC2GroundFailure
281+
ac_rcd/VendorError
282+
ac_rcd/Selftest
283+
ac_rcd/AC
284+
ac_rcd/DC
285+
286+
isolation_monitor
287+
-----------------
288+
289+
isolation_monitor/DeviceFault
290+
isolation_monitor/CommunicationFault
291+
isolation_monitor/VendorError
223292

modules/OCPP/doc.rst

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,36 @@
1-
Global Errors
2-
=============
1+
Global Errors and Error Reporting
2+
=================================
33

4-
The `enable_global_errors` flag for this module is true. This module is therefore able to retrieve and process all reported errors
4+
The `enable_global_errors` flag for this module is enabled. This module is therefore able to retrieve and process all reported errors
55
from other modules loaded in the same EVerest configuration.
66

7+
In OCPP1.6 errors and can be reported using the `StatusNotification.req` message. If this module gets notified about a raised error,
8+
it initiates a `StatusNotification.req` that contains information about the error that has been raised.
9+
10+
The field `status` of the `StatusNotification.req` will be set to faulted only in case the error is of the special type `evse_manager/Inoperative`.
11+
The field `connectorId` is set based on the mapping (for evse id and connector id) of the origin of the Error.
12+
If no mapping is provided, the error will be reported on connectorId 0. Note that the mapping can be configured per module
13+
inside the EVerest config file.
14+
The field `errorCode` is set based in the `type` property of the error.
15+
16+
The fields `info`, `vendorId` and `vendorErrorCode` are set based on the error type and the provided error properties. Please see the definiton
17+
of `get_error_info` to see how the `StatusNotification.req` is constructed based on the given error.
18+
19+
The `StatusNotification.req` message has some limitations with respect to reporting errors:
20+
* Single errors can not simply be cleared. If multiple errors are raised it is not possible to clear individual errors
21+
* Some fields of the message have relatively small character limits (e.g. `info` with 50 characters, `vendorErrorCode` with 50 characters)
22+
23+
This module attempts to follow the Minimum Required Error Codes (MRECS): https://inl.gov/chargex/mrec/ . This proposes a unified methodology
24+
to define and classify a minimum required set of error codes and how to report them via OCPP1.6.
25+
26+
This module currently deviates from the MREC specification in the following points:
27+
* Simultaneous errors: MREC requires to report simultaneous errors by reporting them in a single `StatusNotification.req` by separating the
28+
information of the fields `vendorId`and `info` by a semicolon. This module sends one `StatusNotifcation.req` per individual errors because
29+
of the limited maximum characters of the `info` field.
30+
* MREC requires to always use the value `Faulted` for the `status` field when reporting an error. The OCPP1.6 specification defines the
31+
`Faulted` value as follows: "When a Charge Point or connector has reported an error and is not available for energy delivery . (Inoperative).".
32+
This module therefore only reports `Faulted` when the Charge Point is not available for energy delivery.
33+
734
Interaction with EVSE Manager
835
=============================
936

modules/OCPP201/doc.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Global Errors
22
=============
33

4-
The `enable_global_errors` flag for this module is true. This module is therefore able to retrieve and process all reported errors
4+
The `enable_global_errors` flag for this module is enabled. This module is therefore able to retrieve and process all reported errors
55
from other modules loaded in the same EVerest configuration.

0 commit comments

Comments
 (0)