Skip to content

Commit

Permalink
Revised OCPP module documentation and added section for OCPP201
Browse files Browse the repository at this point in the history
Signed-off-by: Piet Gömpel <pietgoempel@gmail.com>
  • Loading branch information
Pietfried committed Oct 15, 2024
1 parent f97875c commit 85c918b
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
3 changes: 2 additions & 1 deletion modules/OCPP/OCPP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ void OCPP::set_external_limits(const std::map<int32_t, ocpp::v16::EnhancedChargi
for (auto const& [connector_id, schedule] : charging_schedules) {

if (not this->is_evse_sink_configured(connector_id)) {
EVLOG_warning << "Can not apply external limits! No evse energy sink configured for evse_id: " << connector_id;
EVLOG_warning << "Can not apply external limits! No evse energy sink configured for evse_id: "
<< connector_id;
continue;
}

Expand Down
7 changes: 5 additions & 2 deletions modules/OCPP/doc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,11 @@ The integration of the composite schedules are implemented through the optional
of this module. Depending on the number of EVSEs configured, each composite limit is communicated via a seperate sink, including the composite schedule
for EVSE with id 0 (representing the whole charging station). The easiest way to explain this is with an example. If your charging station
has two EVSEs you need to connect three modules that implement the `external_energy_limits` interface: One representing evse id 0 and
two representing your actual EVSEs. Note that it is important to specify the connections in the EVerest config file in the correct order
(0,1,2).
two representing your actual EVSEs.

📌 **Note:** You have to configure an evse mapping for each module connected via the evse_energy_sink connection. This allows the module to identify
which requirement to use when communication the limits for the EVSEs. For more information about the module mapping please see
`3-tier module mappings <https://everest.github.io/nightly/general/05_existing_modules.html#tier-module-mappings>`_.

This module defines a callback that gets executed every time charging profiles are changed, added or removed by the CSMS. The callback retrieves
the composite schedules for all EVSEs (including evse id 0) and calls the `set_external_limits` command of the respective requirement that implements
Expand Down
23 changes: 23 additions & 0 deletions modules/OCPP201/doc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,26 @@ The Variable used as part of the NotifyEventRequest is constantly defined to `Pr

The goal is to have a more advanced mapping of reported errors to the respective component-variable combinations in the future.

Energy Management and Smart Charging Integration
================================================

OCPP2.0.1 defines the SmartCharging feature profile to allow the CSMS to control or influence the power consumption of the charging station.
This module integrates the composite schedule(s) within EVerests energy management. For further information about smart charging and the
composite schedule calculation please refer to the OCPP2.0.1 specification.

The integration of the composite schedules are implemented through the optional requirement(s) `evse_energy_sink`(interface: `external_energy_limits`)
of this module. Depending on the number of EVSEs configured, each composite limit is communicated via a seperate sink, including the composite schedule
for EVSE with id 0 (representing the whole charging station). The easiest way to explain this is with an example. If your charging station
has two EVSEs you need to connect three modules that implement the `external_energy_limits` interface: One representing evse id 0 and
two representing your actual EVSEs.

📌 **Note:** You have to configure an evse mapping for each module connected via the evse_energy_sink connection. This allows the module to identify
which requirement to use when communication the limits for the EVSEs. For more information about the module mapping please see
`3-tier module mappings <https://everest.github.io/nightly/general/05_existing_modules.html#tier-module-mappings>`_.

This module defines a callback that gets executed every time charging profiles are changed, added or removed by the CSMS. The callback retrieves
the composite schedules for all EVSEs (including evse id 0) and calls the `set_external_limits` command of the respective requirement that implements
the `external_energy_limits` interface. In addition, the config parameter `CompositeScheduleIntervalS` defines a periodic interval to retrieve
the composite schedule also in case no charging profiles have been changed. The configuration paramater `RequestCompositeScheduleDurationS` defines
the duration in seconds of the requested composite schedules starting now. The value configured for `RequestCompositeScheduleDurationS` shall be greater
than the value configured for `CompositeScheduleIntervalS` because otherwise time periods could be missed by the application.

0 comments on commit 85c918b

Please sign in to comment.