Skip to content

Commit eb29a05

Browse files
committed
Remove states method for streaming ev charger state changes
This will be replaced by a method that streams states along with power and current metrics for individual ev chargers. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 69f5c06 commit eb29a05

File tree

3 files changed

+8
-28
lines changed

3 files changed

+8
-28
lines changed

src/frequenz/sdk/timeseries/ev_charger_pool/__init__.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
"""Interactions with EV Chargers."""
55

66
from ._ev_charger_pool import EVChargerPool
7-
from ._state_tracker import EVChargerPoolStates, EVChargerState
87

98
__all__ = [
109
"EVChargerPool",
11-
"EVChargerPoolStates",
12-
"EVChargerState",
1310
]

src/frequenz/sdk/timeseries/ev_charger_pool/_ev_charger_pool.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import logging
99
import uuid
1010

11-
from frequenz.channels import Receiver, Sender
11+
from frequenz.channels import Sender
1212

1313
from ... import microgrid
1414
from ...actor import ChannelRegistry, ComponentMetricRequest
@@ -19,7 +19,6 @@
1919
EVChargerPowerFormula,
2020
FormulaGeneratorConfig,
2121
)
22-
from ._state_tracker import EVChargerPoolStates, StateTracker
2322

2423
logger = logging.getLogger(__name__)
2524

@@ -61,29 +60,13 @@ def __init__(
6160
component_category={ComponentCategory.EV_CHARGER}
6261
)
6362
}
64-
self._state_tracker: StateTracker | None = None
6563
self._namespace = f"ev-charger-pool-{uuid.uuid4()}"
6664
self._formula_pool = FormulaEnginePool(
6765
self._namespace,
6866
self._channel_registry,
6967
self._resampler_subscription_sender,
7068
)
7169

72-
async def _stop(self) -> None:
73-
if self._state_tracker:
74-
await self._state_tracker.stop()
75-
76-
def states(self) -> Receiver[EVChargerPoolStates]:
77-
"""Return a receiver that streams ev charger states.
78-
79-
Returns:
80-
A receiver that streams the states of all ev chargers in the pool, every
81-
time the states of any of them change.
82-
"""
83-
if not self._state_tracker:
84-
self._state_tracker = StateTracker(self._component_ids)
85-
return self._state_tracker.new_receiver()
86-
8770
async def total_current(self) -> FormulaReceiver3Phase:
8871
"""Fetch the total current for the ev chargers in the pool.
8972

tests/timeseries/test_ev_charger_pool.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414

1515
from frequenz.sdk import microgrid
1616
from frequenz.sdk.microgrid.component import ComponentMetricId
17-
from frequenz.sdk.timeseries.ev_charger_pool import (
18-
EVChargerPool,
17+
from frequenz.sdk.timeseries.ev_charger_pool import EVChargerPool
18+
from frequenz.sdk.timeseries.ev_charger_pool._state_tracker import (
1919
EVChargerPoolStates,
2020
EVChargerState,
21+
StateTracker,
2122
)
2223
from frequenz.sdk.timeseries.logical_meter import LogicalMeter
2324
from tests.timeseries._formula_engine.utils import (
@@ -35,11 +36,10 @@ async def test_state_updates(self, mocker: MockerFixture) -> None:
3536

3637
mockgrid = MockMicrogrid(grid_side_meter=False, sample_rate_s=0.01)
3738
mockgrid.add_ev_chargers(5)
38-
request_chan, channel_registry = await mockgrid.start(mocker)
39-
40-
pool = EVChargerPool(channel_registry, request_chan.new_sender())
39+
await mockgrid.start(mocker)
4140

42-
states = pool.states()
41+
state_tracker = StateTracker(set(mockgrid.evc_ids))
42+
states = state_tracker.new_receiver()
4343

4444
async def check_next_state(
4545
expected: dict[int, EVChargerState],
@@ -85,7 +85,7 @@ async def check_next_state(
8585
expected_states[evc_1_id] = EVChargerState.ERROR
8686
await check_next_state(expected_states, (evc_1_id, EVChargerState.ERROR))
8787

88-
await pool._stop() # pylint: disable=protected-access
88+
await state_tracker.stop()
8989
await mockgrid.cleanup()
9090

9191
async def test_ev_power( # pylint: disable=too-many-locals

0 commit comments

Comments
 (0)