|
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