Skip to content

Commit 4e96e28

Browse files
committed
Remove support for repeating EV charger commands to the API
The API would reset power back to 0 after an interval only for batteries. For EV chargers and PV inverters, it will not have a reset mechanism. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent bd8a9f0 commit 4e96e28

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

src/frequenz/sdk/actor/power_distributing/_component_managers/_ev_charger_manager/_ev_charger_manager.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import grpc
1212
from frequenz.channels import Broadcast, Sender, merge, select, selected_from
13-
from frequenz.channels.timer import SkipMissedAndDrift, Timer
1413
from frequenz.client.microgrid import ApiClient, ComponentCategory, EVChargerData
1514
from typing_extensions import override
1615

@@ -30,7 +29,6 @@
3029
_logger = logging.getLogger(__name__)
3130

3231
_DEFAULT_API_REQUEST_TIMEOUT = timedelta(seconds=5.0)
33-
_TGT_POWER_RESEND_INTERVAL = timedelta(seconds=5.0)
3432

3533

3634
class EVChargerManager(ComponentManager):
@@ -223,10 +221,8 @@ async def _run(self) -> None: # pylint: disable=too-many-locals
223221
)
224222
target_power_rx = self._target_power_channel.new_receiver()
225223
api_request_timeout = _DEFAULT_API_REQUEST_TIMEOUT
226-
resend_timer = Timer(_TGT_POWER_RESEND_INTERVAL, SkipMissedAndDrift())
227224
latest_target_powers: dict[int, Power] = {}
228-
async for selected in select(ev_charger_data_rx, target_power_rx, resend_timer):
229-
resending = False
225+
async for selected in select(ev_charger_data_rx, target_power_rx):
230226
target_power_changes = {}
231227
now = datetime.now(tz=timezone.utc)
232228

@@ -277,21 +273,14 @@ async def _run(self) -> None: # pylint: disable=too-many-locals
277273
diff_power = allocated_power - self._target_power
278274
target_power_changes = self._deallocate_unused_power(diff_power)
279275

280-
elif selected_from(selected, resend_timer):
281-
target_power_changes = latest_target_powers
282-
resending = True
283-
284276
if target_power_changes:
285277
_logger.debug("Setting power to EV chargers: %s", target_power_changes)
286278
else:
287279
continue
288-
if not resending:
289-
for component_id, power in target_power_changes.items():
290-
self._evc_states.get(component_id).update_last_allocation(
291-
power, now
292-
)
280+
for component_id, power in target_power_changes.items():
281+
self._evc_states.get(component_id).update_last_allocation(power, now)
293282

294-
latest_target_powers.update(target_power_changes)
283+
latest_target_powers.update(target_power_changes)
295284
result = await self._set_api_power(
296285
api, target_power_changes, api_request_timeout
297286
)

0 commit comments

Comments
 (0)