|
2 | 2 |
|
3 | 3 | ## Summary |
4 | 4 |
|
5 | | -This version ships an experimental version of the **Power Manager**, adds preliminary support for n:m relations between inverters and batteries and includes user documentation. |
| 5 | +The `microgrid` package now exposes grid connections uniformly and introduces formula operators for `consumption` and `production`, replacing the `logical_meter.*_{production,consumption}()` formulas. The `actor` package restarts crashed actors with a delay, and the `ConnectionManager` exposes the `microgrid_id` and `location` details. |
6 | 6 |
|
7 | | -## Upgrading |
8 | | - |
9 | | -- `microgrid.battery_pool()` method now accepts a priority value. |
10 | | - |
11 | | -- `microgrid.grid()` |
12 | | - |
13 | | - * Similar to `microgrid.battery_pool()`, the Grid is now similarily accessed. |
14 | | - |
15 | | -- `BatteryPool`'s control methods |
16 | | - |
17 | | - * Original methods `{set_power/charge/discharge}` are now replaced by `propose_{power/charge/discharge}` |
18 | | - * The `propose_*` methods send power proposals to the `PowerManagingActor`, where it can be overridden by proposals from other actors. |
19 | | - * They no longer have the `adjust_power` flag, because the `PowerManagingActor` will always adjust power to fit within the available bounds. |
20 | | - * They no longer have a `include_broken_batteries` parameter. The feature has been removed. |
| 7 | +There are also a few bug fixes, documentation improvements and other minor breaking changes. |
21 | 8 |
|
22 | | -- `BatteryPool`'s reporting methods |
23 | | - |
24 | | - * `power_bounds` is replaced by `power_status` |
25 | | - * The `power_status` method streams objects containing: |
26 | | - + bounds adjusted to the actor's priorities |
27 | | - + the latest target power for the set of batteries |
28 | | - + the results from the power distributor for the last request |
| 9 | +## Upgrading |
29 | 10 |
|
30 | | -- Move `microgrid.ComponentGraph` class to `microgrid.component_graph.ComponentGraph`, exposing only the high level interface functions through the `microgrid` package. |
| 11 | +- `actor` package |
31 | 12 |
|
32 | | -- An actor that is crashing will no longer instantly restart but induce an artificial delay to avoid potential spam-restarting. |
| 13 | + * Actors are now restarted after a small delay when they crash to avoid a busy loop and spamming the logs if the actor keeps failing to start. |
33 | 14 |
|
34 | | -## New Features |
| 15 | + * The `include_broken_batteries` argument was removed from the `PowerDistributingActor`'s `Request`. This option is no longer supported. |
35 | 16 |
|
36 | | -- New and improved documentation. |
| 17 | +- `microgrid` package |
37 | 18 |
|
38 | | - * A new *User Guide* section was added, with: |
| 19 | + * `grid`: The grid connection is now exposed as `microgrid.grid()`. This is more consistent with other objects exposed in the `microgrid` module, such as `microgrid.battery_pool()` and `microgrid.logical_meter()`. |
39 | 20 |
|
40 | | - + A glossary. |
41 | | - + An introduction to actors. |
| 21 | + * `battery_pool()`: The `include_broken_batteries` argument was removed from the `propose_*()` methods (it was also removed from the underlying type, `timeseries.BatteryPool`). This option is no longer supported. |
42 | 22 |
|
43 | | - * A new *Tutorials* section was added, with: |
| 23 | + * `ComponentGraph`: The component graph is now exposed as `microgrid.component_graph.ComponentGraph`. |
44 | 24 |
|
45 | | - + A getting started tutorial. |
| 25 | + * `logical_meter()`: The `*_consumption()` and `*_production()` methods were removed. You should use the new `consumption` and `production` formula operators instead. |
46 | 26 |
|
47 | | -- In `OrderedRingBuffer`: |
48 | | - - Rename `datetime_to_index` to `to_internal_index` to avoid confusion between the internal index and the external index. |
49 | | - - Add `index_to_datetime` method to convert external index to corresponding datetime. |
50 | | - - Remove `__setitem__` method to enforce usage of dedicated `update` method only. |
51 | | -- In `OrderedRingBuffer` and `MovingWindow`: |
52 | | - - Support for integer indices is added. |
53 | | - - Add `count_covered` method to count the number of elements covered by the used time range. |
54 | | - - Add `fill_value` option to window method to impute missing values. By default missing values are imputed with `NaN`. |
55 | | -- Add `at` method to `MovingWindow` to access a single element and use it in `__getitem__` magic to fully support single element access. |
| 27 | + For example: |
56 | 28 |
|
57 | | -- The PowerDistributingActor now supports n:m relations between inverters and batteries. |
| 29 | + ```python |
| 30 | + # Old: |
| 31 | + pv_consumption = logical_meter.pv_consumption_power() |
| 32 | + production = (logical_meter.pv_production_power() + logical_meter.chp_production_power()).build() |
| 33 | + # New: |
| 34 | + pv_consumption = logical_meter.pv_power().consumption().build() |
| 35 | + production = (logical_meter.pv_power().production() + logical_meter.chp_power().production()).build() |
| 36 | + ``` |
58 | 37 |
|
59 | | - This means that one or more inverters can be connected to one or more batteries. |
| 38 | +## New Features |
60 | 39 |
|
61 | | -- A `PowerManagingActor` implementation. |
| 40 | +- The configuration flag `resend_latest` can now be changed for channels owned by the `ChannelRegistry`. |
62 | 41 |
|
63 | | -- Allow configuration of the `resend_latest` flag in channels owned by the `ChannelRegistry`. |
| 42 | +- New formula operators for calculating `consumption()` and `production()` were added. |
64 | 43 |
|
65 | | -- Add consumption and production operators that will replace the logical meters production and consumption function variants. |
| 44 | +- The `ConnectionManager` now fetches microgrid metadata when connecting to the microgrid and exposes `microgrid_id` and `location` properties of the connected microgrid. |
66 | 45 |
|
67 | | -- Consumption and production power formulas have been removed. |
| 46 | + Users can access this information using `microgrid.connection_manager.get().microgrid_id` and `microgrid.connection_manager.get().location`. |
68 | 47 |
|
69 | | -- The documentation was improved to: |
| 48 | +- The documentation has been improved to: |
70 | 49 |
|
71 | | - * Show signatures with types. |
72 | | - * Show the inherited members. |
73 | | - * Documentation for pre-releases are now published. |
74 | | - * Show the full tag name as the documentation version. |
75 | | - * All development branches now have their documentation published (there is no `next` version anymore). |
| 50 | + * Display signatures with types. |
| 51 | + * Show inherited members. |
| 52 | + * Publish documentation for pre-releases. |
| 53 | + * Present the full tag name as the documentation version. |
| 54 | + * Ensure all development branches have their documentation published (the `next` version has been removed). |
76 | 55 | * Fix the order of the documentation versions. |
77 | 56 |
|
78 | | -- The `ConnectionManager` fetches microgrid metadata when connecting to the microgrid and exposes `microgrid_id` and `location` properties of the connected microgrid. |
79 | | - |
80 | 57 | ## Bug Fixes |
81 | 58 |
|
82 | | -- Fix rendering of diagrams in the documentation. |
83 | | -- The `__getitem__` magic of the `MovingWindow` is fixed to support the same functionality that the `window` method provides. |
84 | | -- Fixes incorrect implementation of single element access in `__getitem__` magic of `MovingWindow`. |
85 | | -- Fix incorrect grid current calculations in locations where the calculations depended on current measurements from an inverter. |
86 | | -- Fix power failure report to exclude any failed power from the succeeded power. |
| 59 | +- Fixed incorrect grid current calculations in locations where the calculations depended on current measurements from an inverter. |
| 60 | + |
| 61 | +- Corrected the power failure report to exclude any failed power calculations from the successful ones. |
0 commit comments