Skip to content

Commit fb9e72d

Browse files
committed
Update to SwitchEV/iso15118 version 0.25.2
2 parents 21120ac + 2cab83d commit fb9e72d

File tree

15 files changed

+62
-41
lines changed

15 files changed

+62
-41
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
55

66
## [Unreleased]
77

8+
## [0.25.2] - 2024-02-14
9+
* Fix for choosing PnC and DIN removal when the connection is non-TLS by @anudeep-20 in https://github.com/SwitchEV/iso15118/pull/367
10+
* Fix SessionID length in SessionSetupReq for ISO15118-20 by @adoebber in https://github.com/SwitchEV/iso15118/pull/378
11+
* fixed the issue when parameters are none in currentdemandReq by @ikaratass in https://github.com/SwitchEV/iso15118/pull/381
12+
* evcc charging loop time added to config by @ikaratass in https://github.com/SwitchEV/iso15118/pull/262
13+
* @anudeep-20 made their first contribution in https://github.com/SwitchEV/iso15118/pull/367
14+
815
## [0.25.1] - 2024-01-31
916
* fixed type returned by get_evse_max_current_limit by @tropxy in https://github.com/SwitchEV/iso15118/pull/373
1017
* Fix for ChargeParameterDiscovery get_evse_max_voltage by @tropxy in https://github.com/SwitchEV/iso15118/pull/376

iso15118/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.25.1"
1+
__version__ = "0.25.2"

iso15118/evcc/comm_session_handler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def __init__(
139139
# Avoids recomputing the signature, eim, pnc params during authorization loop.
140140
self.authorization_req_message: Optional[AuthorizationReq] = None
141141

142-
self.is_tls = self.config.use_tls
142+
self.is_tls = False
143143

144144
self.sae_j2847_active: int = 0
145145

@@ -164,7 +164,7 @@ def create_sap(self) -> Union[SupportedAppProtocolReq, None]:
164164
# Protocol equal to “TCP” and Security equal to “No transport layer security”
165165
# according to Table 23. Remove it from the supported protocols list if
166166
# use_tls is enabled
167-
if self.config.use_tls:
167+
if self.is_tls:
168168
try:
169169
supported_protocols.remove(Protocol.DIN_SPEC_70121)
170170
logger.warning(
@@ -435,6 +435,10 @@ async def start_comm_session(self, host: IPv6Address, port: int, is_tls: bool):
435435
self.iface,
436436
self.ev_controller,
437437
)
438+
# Overwriting is_tls field in EVCCCommunicationSession with the setting
439+
# returned from SDP response. Remember is_tls field in config still represents
440+
# the value initially provided in evcc_config.
441+
comm_session.is_tls = is_tls
438442

439443
try:
440444
await comm_session.send_sap()

iso15118/evcc/controller/simulator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class SimEVController(EVControllerInterface):
141141

142142
def __init__(self, evcc_config: EVCCConfig):
143143
self.config = evcc_config
144-
self.charging_loop_cycles: int = 0
144+
self.charging_loop_cycles: int = evcc_config.charge_loop_cycle
145145
self.precharge_loop_cycles: int = 0
146146
self.welding_detection_cycles: int = 0
147147
self._charging_is_completed = False

iso15118/evcc/evcc_config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ class EVCCConfig(BaseModel):
6969
# The SECC must not transmit more entries than defined in this parameter.
7070
max_supporting_points: Optional[int] = Field(1024, alias="maxSupportingPoints")
7171

72+
# charge cycle count
73+
charge_loop_cycle: Optional[int] = Field(10, alias="chargeLoopCycle")
74+
7275
def load_raw_values(self):
7376
# conversion of list of strings to enum types.
7477
self.supported_energy_services = load_requested_energy_services(

iso15118/evcc/states/sap_states.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ async def process_message(
128128
protocol.protocol_ns
129129
)
130130
header = MessageHeaderV20(
131-
session_id=self.get_session_id(), timestamp=time.time()
131+
session_id=self.get_session_id(length=8), timestamp=time.time()
132132
)
133133
next_msg = SessionSetupReqV20(
134134
header=header,
@@ -170,17 +170,18 @@ async def process_message(
170170
f"ID '{sap_res.schema_id}'"
171171
)
172172

173-
def get_session_id(self) -> str:
173+
def get_session_id(self, length=1) -> str:
174174
"""
175175
Check if there's a saved session ID from a previously paused charging
176176
session and applies that for the now resumed charging session.
177-
If there's no stored session ID, we'll set the session ID equal to zero.
177+
If there's no stored session ID, we'll set the session ID equal to zero
178+
with the specified length in bytes.
178179
The session ID is also stored as a comm session variable.
179180
"""
180181
if evcc_settings.ev_session_context.session_id:
181182
self.comm_session.session_id = evcc_settings.ev_session_context.session_id
182183
evcc_settings.ev_session_context.session_id = None
183184
else:
184-
self.comm_session.session_id = bytes(1).hex().upper()
185+
self.comm_session.session_id = bytes(length).hex().upper()
185186

186187
return self.comm_session.session_id

iso15118/secc/controller/ev_data.py

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -333,31 +333,30 @@ def update_charge_loop_parameters(
333333
self.present_soc = current_demand_req.dc_ev_status.ev_ress_soc
334334
self.target_current = current_demand_req.ev_target_current.get_decimal_value()
335335
self.target_voltage = current_demand_req.ev_target_voltage.get_decimal_value()
336-
self.remaining_time_to_max_soc = ( # noqa: E501
337-
None
338-
if current_demand_req.remaining_time_to_full_soc is None
339-
else current_demand_req.remaining_time_to_full_soc.get_decimal_value()
340-
)
341-
self.remaining_time_to_bulk_soc = ( # noqa: E501
342-
None
343-
if current_demand_req.remaining_time_to_bulk_soc is None
344-
else current_demand_req.remaining_time_to_bulk_soc.get_decimal_value()
345-
)
346-
self.session_limits.dc_limits.max_charge_current = ( # noqa: E501
347-
None
348-
if current_demand_req.ev_max_current_limit is None
349-
else current_demand_req.ev_max_current_limit.get_decimal_value()
350-
)
351-
self.session_limits.dc_limits.max_charge_power = ( # noqa: E501
352-
None
353-
if current_demand_req.ev_max_power_limit is None
354-
else current_demand_req.ev_max_power_limit.get_decimal_value()
355-
)
356-
self.session_limits.dc_limits.max_voltage = ( # noqa: E501
357-
None
358-
if current_demand_req.ev_max_voltage_limit is None
359-
else current_demand_req.ev_max_voltage_limit.get_decimal_value()
360-
)
336+
if current_demand_req.remaining_time_to_full_soc is not None:
337+
self.remaining_time_to_max_soc = (
338+
current_demand_req.remaining_time_to_full_soc.get_decimal_value()
339+
)
340+
341+
if current_demand_req.remaining_time_to_bulk_soc is not None:
342+
self.remaining_time_to_bulk_soc = (
343+
current_demand_req.remaining_time_to_bulk_soc.get_decimal_value()
344+
)
345+
346+
if current_demand_req.ev_max_current_limit is not None:
347+
self.session_limits.dc_limits.max_charge_current = (
348+
current_demand_req.ev_max_current_limit.get_decimal_value()
349+
)
350+
351+
if current_demand_req.ev_max_power_limit is not None:
352+
self.session_limits.dc_limits.max_charge_power = (
353+
current_demand_req.ev_max_power_limit.get_decimal_value()
354+
)
355+
356+
if current_demand_req.ev_max_voltage_limit is not None:
357+
self.session_limits.dc_limits.max_voltage = (
358+
current_demand_req.ev_max_voltage_limit.get_decimal_value()
359+
)
361360

362361
def update_schedule_exchange_parameters(
363362
self, control_mode: ControlMode, schedule_exchange_req: ScheduleExchangeReq

iso15118/shared/examples/evcc/DIN/evcc_config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
],
55
"energyTransferMode": "DC_extended",
66
"isCertInstallNeeded": false,
7-
"useTls": false
7+
"useTls": false,
8+
"chargeLoopCycle": 10
89
}

iso15118/shared/examples/evcc/iso15118_2/evcc_config_eim_ac.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
"AC"
77
],
88
"isCertInstallNeeded": false,
9-
"useTls": false
9+
"useTls": false,
10+
"chargeLoopCycle": 10
1011
}

iso15118/shared/examples/evcc/iso15118_2/evcc_config_eim_dc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
],
88
"energyTransferMode": "DC_extended",
99
"isCertInstallNeeded": false,
10-
"useTls": false
10+
"useTls": false,
11+
"chargeLoopCycle": 10
1112
}

0 commit comments

Comments
 (0)