Skip to content

Commit 89db9d2

Browse files
authored
Add options to force requesting/selecting VAS services for ISO15118-2 (#52)
This is a first step, because while selecting the VAS services, the parameter set is not yet selected. Signed-off-by: Michael Heimpold <michael.heimpold@chargebyte.com>
1 parent c31c4e7 commit 89db9d2

3 files changed

Lines changed: 25 additions & 6 deletions

File tree

iso15118/evcc/controller/simulator.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,12 @@ async def is_cert_install_needed(self) -> bool:
560560
async def is_internet_service_needed(self) -> bool:
561561
return EVEREST_EV_STATE.internet_service_needed
562562

563+
async def request_all_service_details(self) -> bool:
564+
return EVEREST_EV_STATE.all_service_details
565+
566+
async def select_all_vas_services(self) -> bool:
567+
return EVEREST_EV_STATE.all_vas_services
568+
563569
async def process_sa_schedules_dinspec(
564570
self, sa_schedules: List[SAScheduleTupleEntryDINSPEC]
565571
) -> int:
@@ -669,7 +675,7 @@ async def continue_charging(self) -> bool:
669675
# # await asyncio.sleep(0.5)
670676
# return True
671677
return not EVEREST_EV_STATE.StopCharging
672-
678+
673679
async def pause(self) -> bool:
674680
return EVEREST_EV_STATE.Pause
675681

iso15118/evcc/everest/ev_state.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class EVState:
1919
StopCharging = False
2020
Pause = False
2121
internet_service_needed = False
22+
all_service_details = False
23+
all_vas_services = False
2224

2325
# DC
2426
dc_max_current_limit: float = DEFAULT_DC_MAX_CURRENT_LIMIT_A

iso15118/evcc/states/iso15118_2_states.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -345,13 +345,24 @@ async def select_services(self, service_discovery_res: ServiceDiscoveryRes):
345345
)
346346
self.comm_session.sae_j2847_active = service.service_id
347347

348+
# Request more service details if you're interested in e.g.
349+
# an Internet service or a use case-specific service
348350
if (
349351
service.service_category == ServiceCategory.INTERNET
350352
and await self.comm_session.ev_controller.is_internet_service_needed()
351353
):
352354
self.comm_session.service_details_to_request.append(service.service_id)
353-
# Request more service details if you're interested in e.g.
354-
# an Internet service or a use case-specific service
355+
if (
356+
service.service_category == ServiceCategory.CUSTOM
357+
and await self.comm_session.ev_controller.request_all_service_details()
358+
):
359+
self.comm_session.service_details_to_request.append(service.service_id)
360+
361+
if await self.comm_session.ev_controller.select_all_vas_services():
362+
self.comm_session.selected_services.append(
363+
SelectedService(service_id=service.service_id)
364+
)
365+
355366

356367
logger.debug(f"Offered value-added services: {offered_services}")
357368

@@ -999,7 +1010,7 @@ async def build_current_demand_data(self) -> CurrentDemandReq:
9991010
dc_ev_charge_params = (
10001011
await self.comm_session.ev_controller.get_dc_discharge_params()
10011012
)
1002-
else:
1013+
else:
10031014
dc_ev_charge_params = (
10041015
await self.comm_session.ev_controller.get_dc_charge_params()
10051016
)
@@ -1524,8 +1535,8 @@ async def build_current_demand_data(self, current_demand_res: CurrentDemandRes)
15241535
await ev_controller.get_dc_charge_params()
15251536
)
15261537
# Todo(sl): trigger via node-red bpt and normal charging
1527-
1528-
else:
1538+
1539+
else:
15291540
dc_ev_charge_params = (
15301541
await ev_controller.get_dc_charge_params()
15311542
)

0 commit comments

Comments
 (0)