|
1 | 1 | # Release Notes
|
2 | 2 |
|
3 |
| -## Summary |
4 |
| - |
5 |
| -New `Quantity` types! These types can have units (power, current, voltage, etc.) and are *type- and unit-safe* in the sense that users can't accidentally sum a power with a voltage, or a power in kW with a power in W. |
6 |
| - |
7 |
| -## Upgrading |
8 |
| - |
9 |
| -- `Sample` objects no longer hold `float`s, but rather `Quantity` or one of its subclasses, like `Power`, `Current`, `Energy`, etc. based on the type of values being streamed. |
10 |
| - |
11 |
| - ```python |
12 |
| - sample: Sample[Power] = await battery_pool.power.new_receiver().receive() |
13 |
| - power: float = sample.value.as_watts() |
14 |
| - ``` |
15 |
| - |
16 |
| -- `BatteryPool.soc` now streams values of type `Sample[Quantity]`, and `BatteryPool.capacity` now streams values of type `Sample[Energy]`. |
17 |
| - |
18 |
| - ```python |
19 |
| - battery_pool = microgrid.battery_pool() |
20 |
| - soc_sample: Sample[Quantity] = await battery_pool.soc.new_receiver().receive() |
21 |
| - soc: float = soc_sample.value.base_value |
22 |
| - |
23 |
| - capacity_sample: Sample[Energy] = await battery_pool.capacity.new_receiver().receive() |
24 |
| - capacity: float = soc_sample.value.as_watt_hours() |
25 |
| - ``` |
26 |
| - |
27 |
| -- `MicrogridApiClient.set_power` no longer returns a `protobuf.Empty` result, but a `None`. This won't affect you unless you are using the low level APIs of the SDK. |
28 |
| - |
29 |
| -## New Features |
30 |
| - |
31 |
| -- The logical meter has a new method that returns producer power, that is the sum of all energy producers. |
32 |
| - |
33 |
| -- `Quantity` types (`Power`, `Current`, `Energy`, `Voltage`) for providing type- and unit-safety when dealing with physical quantities. |
34 |
| - |
35 | 3 | ## Bug Fixes
|
36 | 4 |
|
37 |
| -- Two bugs in the ring buffer which is used by the `MovingWindow` class were fixed: |
38 |
| - - `len(buffer)` was not considering potentially existing gaps (areas without elements) in the buffer. |
39 |
| - - A off-by-one error in the gap calculation logic was fixed that recorded a gap when there was none if an element with a future timestamp was added that would create a gap of exactly 1. |
40 |
| - |
41 |
| -- A formula engine lifetime issue, when creating higher order formula receivers without holding on to a reference to the engine, was fixed. |
| 5 | +- Fix formatting issue for `Quantity` objects with zero values. |
0 commit comments