Skip to content

Commit

Permalink
fixed hlc update, refactored logs and fixed cs limits update in evse_…
Browse files Browse the repository at this point in the history
…data
  • Loading branch information
tropxy committed Feb 2, 2025
1 parent cbf66e2 commit 5257702
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 17 deletions.
22 changes: 11 additions & 11 deletions iso15118/secc/controller/evse_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,17 +286,17 @@ def update_dc_charge_parameters(
self.energy_to_be_delivered = (
dc_charge_parameter.evse_energy_to_be_delivered.get_decimal_value()
)
# Create the session limits based on the rated limits
# without exceeding the rated limits
for value in vars(rated_limits):
if hasattr(self.session_limits.dc_limits, value):
rated_value = getattr(rated_limits, value)
session_value = getattr(self.session_limits.dc_limits, value)
try:
if not session_value or (session_value > rated_value):
setattr(self.session_limits.dc_limits, value, rated_value)
except TypeError:
pass
# Create the session limits based on the rated limits
# without exceeding the rated limits
for value in vars(rated_limits):
if hasattr(self.session_limits.dc_limits, value):
rated_value = getattr(rated_limits, value)
session_value = getattr(self.session_limits.dc_limits, value)
try:
if not session_value or (session_value > rated_value):
setattr(self.session_limits.dc_limits, value, rated_value)
except TypeError:
pass

def update_ac_charge_parameters_v20(
self,
Expand Down
4 changes: 2 additions & 2 deletions iso15118/secc/controller/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ def get_target_power_limits():
active_discharge_mode = True
target_active_power = (-1) * evse_session_limits.max_discharge_power
else:
logger.error("No Active Power setpoint is provided. Setting to 0.")
logger.warning("No Active Power setpoint is provided. Setting to 0.")
target_active_power = 0

if (evse_session_limits.max_charge_reactive_power or 0) > 0 and (
Expand All @@ -552,7 +552,7 @@ def get_target_power_limits():
-1
) * evse_session_limits.max_discharge_reactive_power
else:
logger.error("No Reactive Power setpoint is provided. Setting to 0.")
logger.warning("No Reactive Power setpoint is provided. Setting to 0.")
target_reactive_power = 0

# Conversion to RationalNumber
Expand Down
12 changes: 8 additions & 4 deletions iso15118/secc/states/iso15118_20_states.py
Original file line number Diff line number Diff line change
Expand Up @@ -1120,6 +1120,13 @@ async def process_message(
ResponseCode.FAILED_SCHEDULE_SELECTION_INVALID,
)
return
# According to section 8.5.6 in ISO 15118-20, the EV enters into HLC-C
# (High Level Controlled Charging) once
# PowerDeliveryRes(ResponseCode=OK) is sent with a ChargeProgress=Start
# To facilitate testing, we will set the HLC-C flag to True here
# but if the contactor wont close as expected, we set
# the HLC-C flag to False and stop the state machine immediately
await self.comm_session.evse_controller.set_hlc_charging(True)

# [V2G20-1617] The EVCC shall signal CP State B before sending the
# first PowerDeliveryReq with ChargeProgress equals "Start" within V2G
Expand All @@ -1134,17 +1141,14 @@ async def process_message(
)

if not await self.comm_session.evse_controller.is_contactor_closed():
await self.comm_session.evse_controller.set_hlc_charging(False)
self.stop_state_machine(
"Contactor didn't close",
message,
ResponseCode.FAILED_CONTACTOR_ERROR,
)
return

# According to section 8.5.6 in ISO 15118-20, the EV enters into HLC-C
# (High Level Controlled Charging) once
# PowerDeliveryRes(ResponseCode=OK) is sent with a ChargeProgress=Start
await self.comm_session.evse_controller.set_hlc_charging(True)

if self.comm_session.selected_energy_service.service in (
ServiceV20.AC,
Expand Down

0 comments on commit 5257702

Please sign in to comment.