@@ -550,9 +550,12 @@ def scheduled_charging_calc_current(self,
550550 if plan .limit .selected != "soc" :
551551 soc_request_interval_offset = 0
552552 log .debug ("Verwendeter Plan: " + str (plan .name ))
553- if limit .selected == "soc" and soc >= limit .soc_limit and soc >= limit .soc_scheduled :
553+ if (limit .selected == "soc" and
554+ (soc > limit .soc_limit if (plan .bidi_charging_enabled and bidi_state == BidiState .BIDI_CAPABLE )
555+ else soc >= limit .soc_limit ) and
556+ soc >= limit .soc_scheduled ):
554557 message = self .SCHEDULED_CHARGING_REACHED_LIMIT_SOC
555- elif limit .selected == "soc" and limit .soc_scheduled <= soc < limit .soc_limit :
558+ elif limit .selected == "soc" and limit .soc_scheduled <= soc <= limit .soc_limit :
556559 if plan .bidi_charging_enabled and bidi_state == BidiState .BIDI_CAPABLE :
557560 message = self .SCHEDULED_CHARGING_BIDI
558561 current = min_current
@@ -634,7 +637,7 @@ def stop(self) -> Tuple[int, str, str]:
634637 return 0 , "stop" , "Keine Ladung, da der Lademodus Stop aktiv ist."
635638
636639 def bidi_charging_allowed (self , selected_plan : int , soc : float ):
637- # Wenn zu über den Limit-SoC geladen wurde, darf nur noch bidirektional entladen werden.
640+ # Wenn über den Limit-SoC geladen wurde, darf nur noch bidirektional entladen werden.
638641 for plan in self .data .chargemode .scheduled_charging .plans :
639642 if plan .id == selected_plan :
640- return soc <= plan .limit .soc_limit
643+ return soc < plan .limit .soc_limit
0 commit comments