|
46 | 46 | from ..timeseries.battery_pool._battery_pool_reference_store import ( |
47 | 47 | BatteryPoolReferenceStore, |
48 | 48 | ) |
| 49 | + from ..timeseries.consumer import Consumer |
49 | 50 | from ..timeseries.ev_charger_pool import EVChargerPool |
50 | 51 | from ..timeseries.logical_meter import LogicalMeter |
51 | 52 |
|
@@ -118,6 +119,7 @@ def __init__( |
118 | 119 | self._power_managing_actor: _power_managing.PowerManagingActor | None = None |
119 | 120 |
|
120 | 121 | self._logical_meter: LogicalMeter | None = None |
| 122 | + self._consumer: Consumer | None = None |
121 | 123 | self._grid: Grid | None = None |
122 | 124 | self._ev_charger_pools: dict[frozenset[int], EVChargerPool] = {} |
123 | 125 | self._battery_pools: dict[frozenset[int], BatteryPoolReferenceStore] = {} |
@@ -169,6 +171,23 @@ def logical_meter(self) -> LogicalMeter: |
169 | 171 | ) |
170 | 172 | return self._logical_meter |
171 | 173 |
|
| 174 | + def consumer(self) -> Consumer: |
| 175 | + """Return the consumer instance. |
| 176 | +
|
| 177 | + If a Consumer instance doesn't exist, a new one is created and returned. |
| 178 | +
|
| 179 | + Returns: |
| 180 | + A Consumer instance. |
| 181 | + """ |
| 182 | + from ..timeseries.consumer import Consumer |
| 183 | + |
| 184 | + if self._consumer is None: |
| 185 | + self._consumer = Consumer( |
| 186 | + channel_registry=self._channel_registry, |
| 187 | + resampler_subscription_sender=self._resampling_request_sender(), |
| 188 | + ) |
| 189 | + return self._consumer |
| 190 | + |
172 | 191 | def ev_charger_pool( |
173 | 192 | self, |
174 | 193 | ev_charger_ids: set[int] | None = None, |
@@ -447,6 +466,11 @@ def logical_meter() -> LogicalMeter: |
447 | 466 | return _get().logical_meter() |
448 | 467 |
|
449 | 468 |
|
| 469 | +def consumer() -> Consumer: |
| 470 | + """Return the [`Consumption`][frequenz.sdk.timeseries.consumer.Consumer] measuring point.""" |
| 471 | + return _get().consumer() |
| 472 | + |
| 473 | + |
450 | 474 | def ev_charger_pool(ev_charger_ids: set[int] | None = None) -> EVChargerPool: |
451 | 475 | """Return the corresponding EVChargerPool instance for the given ids. |
452 | 476 |
|
|
0 commit comments