From b9a3c33485c2f85d358f89031413e3d77256b270 Mon Sep 17 00:00:00 2001 From: Cornelius Claussen Date: Wed, 2 Oct 2024 14:26:06 +0200 Subject: [PATCH 1/2] Limit to ev_max_current/voltage if target is higher Signed-off-by: Cornelius Claussen --- modules/EvseManager/EvseManager.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/EvseManager/EvseManager.cpp b/modules/EvseManager/EvseManager.cpp index 7d28f3a9b..1f76d0665 100644 --- a/modules/EvseManager/EvseManager.cpp +++ b/modules/EvseManager/EvseManager.cpp @@ -362,6 +362,18 @@ void EvseManager::ready() { if (config.hack_skoda_enyaq and (v.dc_ev_target_voltage < 300 or v.dc_ev_target_current < 0)) return; + // Limit voltage/current for broken EV implementations + auto ev = get_ev_info(); + if (ev.maximum_current_limit.has_value() and + v.dc_ev_target_current > ev.maximum_current_limit.value()) { + v.dc_ev_target_current = ev.maximum_current_limit.value(); + } + + if (ev.maximum_voltage_limit.has_value() and + v.dc_ev_target_voltage > ev.maximum_voltage_limit.value()) { + v.dc_ev_target_voltage = ev.maximum_voltage_limit.value(); + } + if (v.dc_ev_target_voltage not_eq latest_target_voltage or v.dc_ev_target_current not_eq latest_target_current) { latest_target_voltage = v.dc_ev_target_voltage; From e1371cffd3b06f21ab2ce08b61d5f8c99fd69f19 Mon Sep 17 00:00:00 2001 From: Cornelius Claussen Date: Wed, 2 Oct 2024 14:27:37 +0200 Subject: [PATCH 2/2] const auto Signed-off-by: Cornelius Claussen --- modules/EvseManager/EvseManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/EvseManager/EvseManager.cpp b/modules/EvseManager/EvseManager.cpp index 1f76d0665..33d03439f 100644 --- a/modules/EvseManager/EvseManager.cpp +++ b/modules/EvseManager/EvseManager.cpp @@ -363,7 +363,7 @@ void EvseManager::ready() { return; // Limit voltage/current for broken EV implementations - auto ev = get_ev_info(); + const auto ev = get_ev_info(); if (ev.maximum_current_limit.has_value() and v.dc_ev_target_current > ev.maximum_current_limit.value()) { v.dc_ev_target_current = ev.maximum_current_limit.value();