|
17 | 17 | from datetime import timedelta |
18 | 18 |
|
19 | 19 | from frequenz.channels import Broadcast, Sender |
20 | | -from frequenz.client.microgrid import ComponentCategory, InverterType |
| 20 | +from frequenz.client.microgrid import ComponentId |
| 21 | +from frequenz.client.microgrid.component import Battery, EvCharger, SolarInverter |
21 | 22 |
|
22 | 23 | from .._internal._channels import ChannelRegistry |
23 | 24 | from ..actor._actor import Actor |
@@ -103,31 +104,32 @@ def __init__( |
103 | 104 | self._battery_power_wrapper = PowerWrapper( |
104 | 105 | self._channel_registry, |
105 | 106 | api_power_request_timeout=api_power_request_timeout, |
106 | | - component_category=ComponentCategory.BATTERY, |
| 107 | + component_class=Battery, |
107 | 108 | ) |
108 | 109 | self._ev_power_wrapper = PowerWrapper( |
109 | 110 | self._channel_registry, |
110 | 111 | api_power_request_timeout=api_power_request_timeout, |
111 | | - component_category=ComponentCategory.EV_CHARGER, |
| 112 | + component_class=EvCharger, |
112 | 113 | ) |
113 | 114 | self._pv_power_wrapper = PowerWrapper( |
114 | 115 | self._channel_registry, |
115 | 116 | api_power_request_timeout=api_power_request_timeout, |
116 | | - component_category=ComponentCategory.INVERTER, |
117 | | - component_type=InverterType.SOLAR, |
| 117 | + component_class=SolarInverter, |
118 | 118 | ) |
119 | 119 |
|
120 | 120 | self._logical_meter: LogicalMeter | None = None |
121 | 121 | self._consumer: Consumer | None = None |
122 | 122 | self._producer: Producer | None = None |
123 | 123 | self._grid: Grid | None = None |
124 | 124 | self._ev_charger_pool_reference_stores: dict[ |
125 | | - frozenset[int], EVChargerPoolReferenceStore |
| 125 | + frozenset[ComponentId], EVChargerPoolReferenceStore |
126 | 126 | ] = {} |
127 | 127 | self._battery_pool_reference_stores: dict[ |
128 | | - frozenset[int], BatteryPoolReferenceStore |
| 128 | + frozenset[ComponentId], BatteryPoolReferenceStore |
| 129 | + ] = {} |
| 130 | + self._pv_pool_reference_stores: dict[ |
| 131 | + frozenset[ComponentId], PVPoolReferenceStore |
129 | 132 | ] = {} |
130 | | - self._pv_pool_reference_stores: dict[frozenset[int], PVPoolReferenceStore] = {} |
131 | 133 | self._frequency_instance: GridFrequency | None = None |
132 | 134 | self._voltage_instance: VoltageStreamer | None = None |
133 | 135 |
|
@@ -208,7 +210,7 @@ def new_ev_charger_pool( |
208 | 210 | self, |
209 | 211 | *, |
210 | 212 | priority: int, |
211 | | - component_ids: abc.Set[int] | None = None, |
| 213 | + component_ids: abc.Set[ComponentId] | None = None, |
212 | 214 | name: str | None = None, |
213 | 215 | set_operating_point: bool = False, |
214 | 216 | ) -> EVChargerPool: |
@@ -238,7 +240,7 @@ def new_ev_charger_pool( |
238 | 240 | self._ev_power_wrapper.start() |
239 | 241 |
|
240 | 242 | # We use frozenset to make a hashable key from the input set. |
241 | | - ref_store_key: frozenset[int] = frozenset() |
| 243 | + ref_store_key: frozenset[ComponentId] = frozenset() |
242 | 244 | if component_ids is not None: |
243 | 245 | ref_store_key = frozenset(component_ids) |
244 | 246 |
|
@@ -288,7 +290,7 @@ def new_pv_pool( |
288 | 290 | self, |
289 | 291 | *, |
290 | 292 | priority: int, |
291 | | - component_ids: abc.Set[int] | None = None, |
| 293 | + component_ids: abc.Set[ComponentId] | None = None, |
292 | 294 | name: str | None = None, |
293 | 295 | set_operating_point: bool = False, |
294 | 296 | ) -> PVPool: |
@@ -316,7 +318,7 @@ def new_pv_pool( |
316 | 318 | self._pv_power_wrapper.start() |
317 | 319 |
|
318 | 320 | # We use frozenset to make a hashable key from the input set. |
319 | | - ref_store_key: frozenset[int] = frozenset() |
| 321 | + ref_store_key: frozenset[ComponentId] = frozenset() |
320 | 322 | if component_ids is not None: |
321 | 323 | ref_store_key = frozenset(component_ids) |
322 | 324 |
|
@@ -365,7 +367,7 @@ def new_battery_pool( |
365 | 367 | self, |
366 | 368 | *, |
367 | 369 | priority: int, |
368 | | - component_ids: abc.Set[int] | None = None, |
| 370 | + component_ids: abc.Set[ComponentId] | None = None, |
369 | 371 | name: str | None = None, |
370 | 372 | set_operating_point: bool = False, |
371 | 373 | ) -> BatteryPool: |
@@ -395,7 +397,7 @@ def new_battery_pool( |
395 | 397 | self._battery_power_wrapper.start() |
396 | 398 |
|
397 | 399 | # We use frozenset to make a hashable key from the input set. |
398 | | - ref_store_key: frozenset[int] = frozenset() |
| 400 | + ref_store_key: frozenset[ComponentId] = frozenset() |
399 | 401 | if component_ids is not None: |
400 | 402 | ref_store_key = frozenset(component_ids) |
401 | 403 |
|
@@ -555,7 +557,7 @@ def producer() -> Producer: |
555 | 557 | def new_ev_charger_pool( |
556 | 558 | *, |
557 | 559 | priority: int, |
558 | | - component_ids: abc.Set[int] | None = None, |
| 560 | + component_ids: abc.Set[ComponentId] | None = None, |
559 | 561 | name: str | None = None, |
560 | 562 | set_operating_point: bool = False, |
561 | 563 | ) -> EVChargerPool: |
@@ -600,7 +602,7 @@ def new_ev_charger_pool( |
600 | 602 | def new_battery_pool( |
601 | 603 | *, |
602 | 604 | priority: int, |
603 | | - component_ids: abc.Set[int] | None = None, |
| 605 | + component_ids: abc.Set[ComponentId] | None = None, |
604 | 606 | name: str | None = None, |
605 | 607 | set_operating_point: bool = False, |
606 | 608 | ) -> BatteryPool: |
@@ -645,7 +647,7 @@ def new_battery_pool( |
645 | 647 | def new_pv_pool( |
646 | 648 | *, |
647 | 649 | priority: int, |
648 | | - component_ids: abc.Set[int] | None = None, |
| 650 | + component_ids: abc.Set[ComponentId] | None = None, |
649 | 651 | name: str | None = None, |
650 | 652 | set_operating_point: bool = False, |
651 | 653 | ) -> PVPool: |
|
0 commit comments